DODODODODODOD FAKULTA INFORMATIKY MASARYKOVA UNIVERZITA ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODO □ ODODODODODOD ODODODODODODQ Kterak sobě v T[=Xu dokument vyrobiti při zachování duševního zdraví David Antoš O čem to bude ► předpokládám uživatelskou znalost I^T^Xu ► pokusím se vysvětlit principy co se v T^Xu děje ► proč se někdy „chová divně" ► best practices ► článek na konferenci ► matematika ► obrázky ► bibliografie ► ladění a kontrola překladu 2 Základní pojmy ► ... a většina toho má v názvu „TfX".. . ► Tj=Xje sázecí systém založený na nízkoúrovňových řídících sekvencích, které popisují, jak na stránku umístit text. ► např. \hskip, \if ► engine: implementace Tj=Xu ► např. TeX, PDFTeX, LuaTeX, XeTeX, ExTeX, . .. ► makrobalíky: sady maker rozšiřující funkcionalitu ► např. plainTEX, I5TeX, ConTEXt, ... ► často i specializované ► formát: obvykle dump paměti TfXu po načtení makrobalíku ► pouze optimalizace ► formáty výstupních souborů: ► DVI (DeVice Independent) ► PDF ► pdftex tex - DVI - dvipdfm - PDF ► tex - DVI - dvips - PostScript - ps2pdf nebo pstopdf -PDF 3 Základy značkovaní v |ATj=Xu \documentclass[volby] {styl} ... preambule ... \begin{document}-... text . . . \end{document}- styl: article, report, book, letter, slides nebo to, co dodali organizátoři konference (např. lines) volby: např. a4paper 4 Preambule obsahuje typicky ► natažení balíků balíky rozšiřují funkcionalitu |ATp_Xu ► \usepackage[utf8]{inputenc} \usepackage[english,czech]{babel} ► definice maker 5 Text dokumentu ► text může obsahovat speciální znaky, např. nezlomitelná mezera ► — pro -,---pro — *■ 10-15, interpunkce - jako zde - je oddělena mezerami, doporučuji sázet ~— ► to mark an inserted sentence—like here—use---and spačes ► použití maker ► \guillemotleft France\guillemotright vysadí «France» ► použití prostředí \begin{proof} Je zjevný. \end{proof} vysadí Důkaz. Je zjevný. Doporučení - preambule ► tahejte jen balíky, které opravdu potřebujete ► balíky mohou vytvořit konflikt ► v horším případě tiše předefinovat nějaké makro ► balík hyperref vždy jako poslední ► nevytvářejte nový článek smazáním textu předchozího článku, ale ze vzorového dokumentu (pokud možno) omezuje to chyby jako ► zapomenutý původní nadpis ► loňské místo konání konference v článcích používejte „rozumně standardní" balíky neboje přibalte ► editor obvykle pracuje na „přiměřeně nové distribuci T^Xu" ► pozor na balíky typu \usepackage{times} - v konferenčním stylu změní písmo 7 Odbočka: značkovací jazyky ► značkovací jazyk obsahuje vlastní text a instrukce pro jeho zpracování ► např. nadpis nebo \section{nadpis} vizuální a logické značky ► vizuální popisují, jak má objekt vypadat ► {\bf tohle bude tučně} ► logické popisují, co objekt znamená \strong{tohle sice taky, ale...} ► ... ale můžeme to jednou definicí změnit ► tedy: používejte logické značkování v textu a nadefinujte si makro Základy makroprogramování ► IATeX ► \newcommand{CMD}[NARGS] {DEFN} ► \renewcommand ► \newenvironment{ENV}[NARGS]{BEGDEF}{ENDDEF} \renewenvironment ► kontroluje, zda makro nebylo již definováno varianty s „re" předefinují význam makra ► příklad \newcommand-C\oper}- [1] {\ensuremath{\mathbf {\hat{#l}-}-}-}- ► použití: \oper{A} ► vysadí: A ► \makeatletter a \makeatother 9 Doporučení - značkovaní textu nadefinujte si makra pro věci, které potřebujete více než jed klidně až na úroveň základních symbolů: \newcommand{\MathematicalEntity}[1]{{\it #1}} \newcommand{\RoutingM\MathematicalEntity{R}-}-\newcommand{\FirewallM\MathematicalEntity{F}-}- Ize pak psát stylem $$\RoutingARP_l=(\NextHopInt(\Routing_i), \NextHopMAC(\ARP_j))$$ a sázet tak /?a = (NHInt(/?/),NHMac(^)) ... srovnej s $$\mathit{RA}_l=(\mathrm{NH_{Int}}(R_i), \mathrm{NH_{Mac}}(A_j))$$ Doporučení - značkovaní textu ► před definovaním vlastních maker je dobré se podívat, jestli vhodný balík neexistuje ► příklady u konferenčních stylů většinou obsahují příklady s větami a důkazy (značkujte je stejně) ► do konferenčních stylů nezasahujte např. zápornými mezerami nebo změnami velikosti čehokoli ► je vhodné pojmenovávat vlastní makra velkými písmeny ► aproximace jmenného prostoru doporučuji definice dát do zvláštního souboru a ten načíst v preambuli pomocí \input{soubor} 11 Chci změnit vzhled dokumentu ► tohle nedělejte v článku, kterému dodali styl! ► na většinu věcí existuje v I^T^Xu balík ► jen ho najít. .. ► dodržujte typografické zvyklosti ► minimalistické změny jsou obvykle jediné rozumné ► lze předefinovat makra v dokumentu ► najdeme definici makra ve zdrojácích |ATf£Xu ► vytáhneme do preambule ► obalíme \makeatletter a \makeatother ► předefinujeme 12 Příprava zdrojového textu - česká specifika ► historicky se užíval formát cs(pdf)latex a \usepackage{czech}- ► dnes pro to není důvod ► rozumná sazba češtiny v |ATj=Xu dnes ► dokument v UTF-8 ► \usepackage[czech]{babel} \usepackage[utf8]{inputenc} ► Babelu lze nastavit více jazyků a přepínat mezi nimi ► přepíná typografické zvyklosti a dělení slov ► překládáme (pdf)latex ► lze použít i jiné kódování (latin2, cpl250) ► do UTF-8 se dají přímo psát uvozovky ► do jiného kódování lze psát ,,uvozovky takto'' 13 Česká specifika ► skrčky UTF-8 ► některé editory do UTF-8 umístí na začátek tři bajty Byte-Order Mark nelze míchat zdrojové soubory v různém kódování ► některé styly natvrdo nastavují kódování (fithesis, OASICS, ...) ► bezpečná cesta pro malé množství diakritiky ► p\v{r}\'{\i}li\v{s} \v{z}lut\'y k\accent23u\v{n} příliš žlutý kůň ► diakritika ve výstupních souborech Tj=Xu je obvykle kompozitní ► z PDF tedy většinou nejde udělat cuťn'paste 14 Anglická specifika ► nej lepší způsob sazby uvozovek je ''like this); ► hyphen - ► en-dash — ► em-dash---(jako interpunkce bez mezer, jakkoli to vypadá divně) 15 Jak Tj=X zpracovává vstupní text brutálně zjednodušeno, zanedbáváme matematiku, tabulky, ... ► čtení souborů, rozpoznánítokenů ► proto požírá obvykle mezery za makrem ► otevření souboru píše do logu za „(" ► expanze maker až do úrovně primitivů ► vzniká seznam materiálu typu box-glue-penalty ► ten se láme na základě hodnoty „badness" ► zlom odstavce, vzniká seznam zalomených řádků ► bez dělení slov ► s dělením slov ► s povolením mezislovních mezer \emergencystretch ► zlom a kompletace stránky ► stránkový zlom na základě penalt ► hlavičky, patičky, čísla stran, .. . (output rutina) 16 Problémy při překladu ► chyba při překladu je obvykle v makroexpanzi (./tex.vrb) [14] (./tex.vrb) [15] Runaway argument? ! Paragraph ended before \@xverbatim was complete. \par 1.349 \end{frame} ► ? nápověda, r pokračuj, x konec doběhnutí překladu neznamená, že je dokument v pořádku ► není to validace jako u XML ► nutno zkontrolovat log a výstup 17 Ladění ► když selže „kouknu a vidím" ► čtěte chybové hlášky ► ty ale dokáží být docela kryptické ► chyba (zejména Runaway argument) se často projeví o kus dále ► půlení intervalu pomocí \iffalse \fi ► umístíme na vhodná místa (tj. nikoli doprostřed makra) a zkusíme tím chybu lokalizovat ► vhodné i pro hledání zavlečené mezery ► vhodný model programování: step-wise refinement ► programování po kousku, časté překlady 18 Problémy ve zlomu, varování v logu ► přetečené a podtečené boxy (./tex.vrb Overfull \hbox (19.29063pt too wide) in paragraph at lines 12—14 [] []\0Tl/cmtt/m/n/10.95 \newcommand{\oper}[1] {\ensuremath{\mathbf{\hat{#l}}}} je třeba vizuálně zkontrolovat (chyby pod 1 pt nebo badness pod 200 je většinou možno ignorovat) ► problémy s křížovými odkazy (je třeba překládat třikrát) There were undefined references ► chybějící odkazy do bibliografie ► s volbou draft se do dokumentu sází „slimáci" 19 Bibliografie ► osvědčilo se (mi) ► ke každému článku v archivu hned napsat bibliografický záznam ► z adresářové struktury vyrobit bib soubor pomocí find ► správný překlad s bibliografií: latex - bibtex - latex - latex ► vzniklé bbl lze vložit přímo do zdrojáku ► nicméně pro systematické úpravy je lepší editovat stylový soubor (bst) 20 Obrázky v IATeXu ► používejte pdfTj=X, umí načítat ► PDF, JPEG, PNG ► balík graphicx ► pro vektorové obrázky je vhodné preferovat vektorový formát ► pokud musíte použít Tp_X, umí načíst EPS 21 Zdroje dokumentace, literatura ► hledání vhodného balíku ► http://ctan.org/ ► dokumentace balíku ► CTAN ► texdoc balik ► info latex2e ► knihy ► Goossens, Mittelbach, Samarin: The |ATf£X Companion - D. Knuth: The TeXbook ► kapitoly "fine points of mathematical typing" ► P. Olšák: Tf£Xbook naruby (reference pro pokročilé) ► V. Eijkhout: Tf£X by topic (reference pro velmi pokročilé) ► mírný off-topic: Knuth, Larrabee, Roberts: Mathematical Writing 22 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Inovace doktorského studia na Fakultě informatiky MU (IDSnaFI) (CZ.1.07/2.2.00/15.0196)