| |||
Dlho sa považovalo za nemožné vytvoviť prostredie
AMSLaTeXovský balík \begin{proof} text... \begin{equation*} matematika... \tag*{\qedhere} \end{equation*} \end{proof}Konštrukcia \tag*{\qedhere} môže byť použitá v ľubovolnom číslovacom prostredí
AMSLaTeXu.amsthm.sty : distribuované ako súčasť sady AMSLaTeX CTAN: amslatexntheorem : CTAN: ntheorem
Chceme-li využít výhod příkazu \newtheorem{preremark}{Poznámka} \newenvironment{remark}% {\begin{preremark}\upshape}{\end{preremark}}
Balík
Je dobré mít příkazy typu
Sada velkých písmen zdvojené latinky je součástí AMS-fontů
„msam“ (např. „msam10“ pro velikost 10pt) a „msbm“.
Fonty obsahují veliké množství matematických symbolů, které podstatně
rozšiřují sadu symbolů dodávanou ve standardní distribuci TeXu v Type 1
formátu. K dispozici jsou podpůrné soubory pro běh pod Plain TeXem
a LaTeXem (balíky
Součástí balíku jsou i dva soubory, z nichž jeden usnadňuje vkládání fontů do
dokumentu a ve druhém jsou definovány příkazy pro jednotlivé symboly.
Oba lze použít jak v TeXu tak v LaTeXu.
Otázky a doporučení tykající se těchto fontů směrujte na
Jiná úplná sada fontů zdvojené latinky, rodina fontů bbold, je dostupná ve zdrojových souborech pro METAFONT v adresáři CTAN: bbold. Zajímavostí je, že tyto fonty obsahují kromě velkých i malá písmena, které jsou na skutečných tabulích vidět jen zřídka. Zdrojový adresář fontu obsahuje také zdrojové soubory LaTeXovského balíku umožňujícího používaní fontu. Fonty nejsou dostupny v Type 1 formátu.
Alternativním zdrojem Type 1 fontů se znaky zdvojené latinky můžou být pořád
se rozšiřující sady kompletních rodin (jak komerční, tak volně dostupné), které
byly připraveny pro použití s TeXem/LaTeXem ( Výběr zvětšovatelných obrysových fontů).
Z volně dostupných sad poskytujý repliky
V případě, že font nemáme, lze vytvořit také jednoduchá makra pro tvorbu zdvojených znaků: \newcommand{\R}{{\sf R\hspace*{-0.9ex}% \rule{0.15ex}{1.5ex}\hspace*{0.9ex}}} \newcommand{\N}{{\sf N\hspace*{-1.0ex}% \rule{0.15ex}{1.3ex}\hspace*{1.0ex}}} \newcommand{\Q}{{\sf Q\hspace*{-1.1ex}% \rule{0.15ex}{1.5ex}\hspace*{1.1ex}}} \newcommand{\C}{{\sf C\hspace*{-0.9ex}% \rule{0.15ex}{1.3ex}\hspace*{0.9ex}}} \newcommand{\openone}{\leavevmode\hbox{\small1\kern-2.8pt\normalsize1}}která lze s úspěchem použít v případě, že okolní text je sázen cmr10 .
Avšak, jelikož se nejedná o řádné matematické fonty, nelze je
užít v matematických indexech. Krom toho velikost a poloha vertikální
linky je ovlivněna výběrem fontu okolního textu (makra obsahují
ex ).
Pomocí makra
Uvozovky v češtině, slovenštině, jakož i jiných středoevropských
jazycích, mají jiný tvar než anglické “”, které TeX sází
implicitně.
Nejjednodušší způsob, jak vysázet text v „našich“ uvozovkách, je
pomocí makra
Lepším a obecnějším řešením je makro Tomáše Hály
TeX implicitně předpokládá, že v zápisu desetinných čísel odděluje desetiny od jednotek desetinná tečka. Čárku zapsanou v matematickém módu TeX považuje za oddělovač položek v posloupnostech, množinách apod., a proto za ni sází malou mezeru.
Chceme-li jednorázově vysázet desetinné číslo s desetinnou čárkou,
stačí čárku uzavřít do skupiny: Takové řešení je však nevýhodné pro texty, kde je desetinných čísel mnoho. V takovém případě lze nastavit globálně, že za čárkou v matematickém módu se mezera sázet nemá: \mathcode`,="002C $3,14159$Pokud při tomto globálním nastavení přesto někde mezeru udělat potřebujeme, musíme ji napsat explicitně: $(m,\,n)$ nebo $\{0,\:1,\:2\}$ .
Jiným řešením je ponechat ve vstupním souboru desetinné tečky, ale přemapovat na čárky (to se hodí třeba tehdy, když máme velké soubory desetinných čísel z jiných výstupů). \mathcode`.="002C $3.14159$
Snad nejjednoduchším řešením je použití balíku
TeXovské/LaTeXovské boxy nemôžu byť pri bežnom použití zalamované. Keď raz niečo vysádzate do boxu, zostane to tam a box bude prečnievať niektorý z okrajov stránky (v prípade, že sa nezmestí do oblasti, kam má byť vysádzaný). Ak chcete mať podstatnú časť textu orámovanú (alebo zafarbenú), obmedzenia začínajú predstavovať skutočné bremeno. Našťastie sa problém dá obísť.
Balík
Balík
Pre používateľov
Font
Vzhľad je kritický vo výpisoch programov, hlavne shellovských skriptoch Unixu.
Balík
Kedykoľvek požadujete od LaTeXu nové počítadlo, LaTeX vytvorí mnoho „zákulisných“ príkazov ako aj počítadlo samotné.
csx{newcounter{fred}} okrem iného vytvorí príkaz csx{the}
Definícia csx{the} Takže ak napríklad chcete, aby čísla sekcií boli ukončené bodkou, môžete upraviť csx{thesection} tak, aby sa expandoval s ukončovacou bodkou. Takáto zmena csx{thesection} však má vplyv na definúciu csx{thesubsection}: budete musieť predefinovať kopu iných vecí. Radšej použite štandardné techniky na prispôsobenie a prezentáciu čísel sekcií (viď Otázku Úprava prezentácie čísel sekcií).
Teraz predpokladajme, že chcete, aby číslo stránky bolo na konci každej stránky
obklopené pomlčkami („–nnn–“). Chcete to dosiahnuť
predefinovaním csx{thepage} (všetky čísla stránok v obsahu budú pravdepodobne
rovnakého tvaru) alebo predefinovaním csx{pageref} referencií? V tomto
prípade je najlepšie spraviť modifikáciu predefinovaním štýlu strany, napríklad
balíkom
Formát položiek obsahu je ovládaný niekoľkými internými príkazmi (spomínané
v sekcii 2.4 The LaTeX Companion — viď
Otázku Knihy o TeXu a příbuzná literatura). Príkazy csx{@pnumwidth},
csx{@tocrmarg} a csx{@dotsep} ovládajú priestor pre čísla strán,
odsadenie od praváho okraju a separáciu bodiek v bodkovaných vodiacich linkách.
Séria príkazov csx{l@xxx}, kde
Balík
Triedy
Balík
\usepackage{enumerate} ... \begin{enumerate}[(a)] \item ... ... \end{enumerate}začne zoznam, ktorého návestia sú (a), (b), (c), ..., zatiaľ čo
\usepackage{enumerate} ... \begin{enumerate}[I/] \item ... ... \end{enumerate}začne zoznam, ktorého návestia sú I/, II/, III/, ...
Balík
Ak potrebujete netradičný dizajn balík,
\usepackage{enumitem} ... \begin{enumerate}[label=\Roman{*}/] \item ... ... \end{enumerate}Všimnite si, že „ * “ v hodnote kľúča značí počítadlo zoznamu
tejto úrovne. Môžete tiež manipulovať s formátom odkazov na návestia položiek
zoznamu:
\usepackage{enumitem} ... \begin{enumerate}[label=\Roman{*}/, ref=(\roman{*})] \item ... ... \end{enumerate}aby formát odkazov na položky zoznamu vyzeral ako (i), (ii), (iii) a tak ďalej.
Trieda
Lamportova kniha (viď Otázku Knihy o TeXu a příbuzná literatura) udáva rozličné parametre pre
rozvrhnutie zoznamu (ako napríklad csx{topsep}, csx{itemsep} a csx{parsep}),
ale nespomína už, že sú nastavované automaticky v zozname samotnom. Funguje to
tak, že každý zoznam vykoná príkaz csx{@list}
Existujú balíky poskytujúce určitú kontrolu nad medzerami v zoznamov, málokedy
však adresujú oddelenie od okolitého textu (definované príkazom csx{topsep}).
Balík
\newenvironment{itemize*}% {\begin{itemize}% \setlength{\itemsep}{0pt}% \setlength{\parskip}{0pt}}% {\end{itemize}}Balík paralist poskytuje veľa prístupov pre kompaktnejšie zoznamy:
enumerate ako balík
enumerate (viď Otázku Pekne číslované zoznamy).
Maximum v kompaktnosti (každého druhu) je poskytované balíkom
Balíky
Balík
Enumitem tiež
dovoľuje manipulovať s formátom návestia (základnejším spôsobom ako balík
enumerate — Otázka Pekne číslované zoznamy).enumerate.sty : distribuované ako súčasť CTAN: 2etoolsenumitem.sty : distribuované ako súčasť CTAN: bezosexpdlist.sty : CTAN: expdlistmemoir.cls : CTAN: memoirmdwlist.sty : distribuované ako súčasť CTAN: mdwtoolsparalist.sty : CTAN: paralistsavetrees.sty : CTAN: savetrees
Často je vhodné mať vysvetľujúci text mimo zoznamu, medzi za sebou idúcimi
položkami. V prípade
Pri Jedným z prístupov je zapamätať si stav číslovania do vlastnej premennej a neskôr (pri pokračovaní číslovania) ho obnoviť:
\newcounter{saveenum} ... \begin{enumerate} ... \setcounter{saveenum}{\value{enumi}} \end{enumerate}
Toto je rozumné v malých dávkach. Problémom (okrem „ukecanosti“ riešenia) je
správne nastavenie úrovne (
„mám použiť čítač
Balík
\begin{enumerate} ... \suspend{enumerate}Balík povoľuje zadať voliteľný názov (ako pri \suspend[id]{enumerate} ), aby
ste mohli identifikovať konkrétne prerušenie, a tým poskytuje možnosť
manipulovania s vnorenými prerušeniami.
Ak prerušujete pekne číslované zoznamy (viď Otázku Pekne číslované zoznamy),
musíte pri pokračovaní v zozname znovu dodať voliteľné parametre
„item label layout“ (položka, návestie, rozvrhnutie) vyžadované balíkom
\begin{enumerate}[\textbf{Item} i] ... \suspend{enumerate} enumerate.sty : distribuované ako súčasť CTAN: 2etoolsmdwlist.sty : distribuované ako súčasť CTAN: mdwtools
V poslených rokov množstvo autorov argumentovalo, že príklady vytvorené Lamportom v jeho LaTeX manuálu (viď Otázku Knihy o TeXu a příbuzná literatura) obmedzovali štýl autorov a viedli k extrémne úbohému dizajnu tabuliek. V skutočnosti je ťažke čo i len zistiť, čo mnohé z príkladov Lamportovej knihy znamenajú. Kritika sa zameriava na prehnané použitie liniek (horizontálnych aj vertikálnych) a na slabé vertikálne odstupy poskytované Lamportovymi makrami. Problém vertikálnych odstupov je hocikým jednoducho viditeľný a je riešený v mnohých balíkoch — viď Otázku Rozostupy riadkov v tabuľkách.
Argument týkajúci sa liniek je prezentovaný v skvelej eseji, ktorá tvorí
predslov dokumentácie balíku
Lamportov LaTeX neflexibilne trval na tom, že popisky majú byť na spodku
tabuľky. Kedže sa tabuľka môže rozprestierať na viacerých stranách, tradičná
typografia umiestňuje popisky navrch plávajúceho prostredia tabuľky. Príkaz
csx{caption} bude mať zlú pozíciu (o
\begin{table} \caption{Ukážková tabuľka} \begin{tabular}{...} ... \end{tabular} \end{table}Balík topcapt tento problém rieši:
\usepackage{topcaption} ... \begin{table} \topcaption{Ukážková tabuľka} \begin{tabular}{...} ... \end{tabular} \end{table}Triedy KOMA-script poskytujú podobný príkaz csx{captionabove}, obsahujú tiež
voľbu triedy, ktorá zaistí, že v prostredí tabuliek csx{caption}
znamená csx{captionabove}.
Manuálny postup je celkom jednoduchý:
\begin{table} \setlength{\abovecaptionskip}{0pt} \setlength{\belowcaptionskip}{10pt} \caption{Ukážková tabuľka} \begin{tabular}{...} ... \end{tabular} \end{table}spraví to, čo chceme. (Balík je sám o sebe mierne komplikovanejší...) booktabs.sty : CTAN: booktabssada KOMA script : CTAN: koma-scripttopcapt.sty : CTAN: topcapt
Existujú dva základné spôsoby na tvorbu tabuliek pevnej šírky v LaTeXu: môžete roztiahnuť úseky (medzery) medzi stĺpcami, alebo môžete roztiahnuť určité bunky tabuľky.
Základný LaTeX môže roztiahnuť medzery. Prostredie \begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}}lllr}csx{extracolsep} je tiež použitý na všetky medzistĺpcové medzery napravo. Ak nechcete roztiahnuť všetky medzery, pridajte \extracolsep{0pt} , čím zrušíte
pôvodné.
Balík
Balík
TeXovské/LaTeXovské mechanizmy správy medzier medzi riadkami (tzv. „leading“) sa spoliehajú na TeXovský algoritmus výstavby odstavcov, ktorý porovnáva tvary za sebou idúcich riadkov a upravuje medzeru medzi nimi. Tieto mechanizmy nemôžu pri vytváraní tabuľky fungovať rovnakým spôsobom, pretože tvorba odstavcov samotné riadky nevidí. Výsledkom je, že tabuľky sú občas vysádzané s riadkami nepríjemne blízko pri sebe (alebo občas aj veľmi ďaleko).
Tradičný typograf by upravil medzeru medzi riadkami tabuľky
pomocou podpery („strut“; jedná sa o kovový oddelovač). Používateľ TeXu
môže spraviť presne to isté: väčšina balíkov makier definuje príkaz csx{strut},
ktorý udáva vhodnú medzeru vzhľadom na aktuálnu veľkosť textu. Umiestnenie
príkazu csx{strut} na koniec problémového riadku tabuľky je najjednoduchšie
riešenie problému (ak funguje). Ďalšie uvedené riešenia sú špecifické pre
LaTeX, ale niektoré sa dajú jednoducho preložiť na príkazy
Ak sa vo vašej tabuľke ukazuje systematický problém (t.j. každý riadok je
posunutý o rovnaký úsek) použite príkaz csx{extrarowheight} definovaný balíkom
\usepackage{array}% v preambule ... \setlength{\extrarowheight}{length} \begin{tabular}{....}
Na napravenie jediného riadku, ktorého zlé nastavenie príkaz csx{strut}
neopravuje, môžete postupovať vlastnou definíciou pomocou
Dostupné sú však aj obecné riešenia. Balík
Balík
Dokumentáciu
Tabuľky sú štandardne sádzané do svojich vlastných boxov, čo má za následok, že sa na hranici stránky nerozdelia. Bohužiaľ náš svet produkuje tabuľky dlhšie než jedna strana a my ich potrebujeme vysádzať.
Pre jednoduché tabuľky (ktorých tvar je veľmi pravidelný) môže byť
najjednoduchším riešením prostredie
Balík
Zdanlivou alternatívou k
Balík
Balík
Balík
Dokumentáciu
Často je potrebné zmeniť zarovnanie
... & \centering blah ... \\sa ľahko stretnete s chybami sťažujúcimi sa na „misplaced csx{noalign}“ (zle umiestnený csx{noalign}), „extra alignment tab“ (zarovnávací tabulátor navyše), prípadne na niečo podobné. Problém je, že príkaz znamená rozličné veci za rozličných
okolností: prostredie tabular prepína jeho význam na hodnotu použiteľnú
v tabuľke, csx{centering}, csx{raggedright} a csx{raggedleft} ju menia
na niečo nekompatibilné. Všimnite si, že problém vzniká iba v poslednej bunke
riadku: kedže každá bunka je sádzaná do boxu, jej nastavenia sa strácajú u
& (alebo ), ktorý ho ukončuje.
Jednoduchým (starým) riešením je zachovanie významu
\newcommand\PBS[1]{\let\temp=\\% #1% \let\\=\temp }čo použijete napríklad nasledovne:
... & \PBS\centering blah ... \\
Technika používajúca csx{PBS} bola vyvinutá v dobe LaTeX 2.09, pretože skutočná
hodnota
... & \centering blah ... \tabularnewlineToto môže byť zakomponované do jednoduchého makra:
\newcommand{\RBS}{\let\\=\tabularnewline} ... ... & \centering\RBS blah ... \\Použitie:
... & \centering\RBS blah ... \\(zapamätajte si, že spätné lomítko zachovávate s csx{PBS} pred príkazom, ktorý ju mení a obnovujete s csx{RBS} po príkaze; csx{RBS} je v skutočnosti mierne preferovaný, ale starý trik tu zostáva).
Fígle csx{PBS} a csx{RBS} nám dobre slúžia tiež v špecifikáciach formátu poľa
(„field format“) v preambule pri balíku
\begin{tabular}{...>{\centering\RBS}% p{50mm}} ...alebo
\begin{tabular}{...>{\PBS\centering}% p{50mm}} ...
array.sty : distribuované ako súčast CTAN: 2etools
Každá bunka tabuľky je sádzaná do boxu, takže zmena štýlu fontu (prípadne niečoho iného) platí iba po koniec bunky. Ak máte tabuľku s mnohými bunkami alebo dlhú tabuľku, v ktorej potrebujete zvýrazniť množstvo riadkov, pridávanie štýlu fontu do každej bunky bude veľmi zdĺhavé.
S balíkom
\usepackage{array} \newcolumntype{$}{>{% \global\let\currentrowstyle\relax}% } \newcolumntype{^}{>{\currentrowstyle}} \newcommand{\rowstyle}[1]{% \gdef\currentrowstyle{#1}% #1\ignorespaces }Teraz pred prvý špecifikátor stĺpcu vložíme „ $ “ a „^ “ pred
modifikátory nasledujúcich. Potom použijeme csx{rowstyle} na začiatku každého
riadku, ktorý chceme modifikovať:
\begin{tabular}{|$l|^l|^l|} \hline \rowstyle{\bfseries} Nadpis & Veľký a & Tučný \\ \hline Text & text & text \\ Text & text & text \\ \rowstyle{\itshape} Text & text & v~kurzíve \\ Text & text & text \\ \hline \end{tabular}Balík array funguje s rôznymi inými prostrediami typu tabular
z iných balíkov (napríklad longtable ), tento trik však bohužiaľ nefunguje
vždy.array.sty : distribuované ako súčasť CTAN: 2etools
Nie je ťažké vymyslieť dizajn tabuľky, ktorý bude vyžadovať, aby sa určitá bunka rozprestierala na viacerých riadkoch. Príkladom môže byť tabuľka, v ktorej najľavejší stĺpec označuje zbytok tabuľky. Toto môžete spraviť (v jednoduchých prípadoch) použitím diagonálneho rozdelenia v rohových bunkách. Spomenutá technika vás však prísne obmedzuje v tom, čo môže byť použité ako obsah bunky.
Balík
\begin{tabular}{|c|c|} \hline \multirow{4}*{Bežný text g} & Stĺpec g2a\\ & Stĺpec g2b \\ & Stĺpec g2c \\ & Stĺpec g2d \\ \hline \end{tabular}a multirow umiestni „Bežný text g“ na vertikálny stred priestoru
definovaného ostatnými riadkami. Všimnite si, že riadky neobsahujúce
špecifikáciu „multi-row“ musia mať prázne bunky, v ktorých sa viacriadková
bunka objaví.
„
\begin{tabular}{|c|c|} \hline \multirow{4}{25mm}{Bežný\\text g} & Stĺpec g2a\\ & Stĺpec g2b \\ & Stĺpec g2c \\ & Stĺpec g2d \\ \hline \end{tabular}Podobný efekt (s možnosťou trochu väčšej sofistikovanosti) môžeme dosiahnuť vložením menšej tabuľky, ktorá zoradí text, do * -deklarovaného csx{multirow}.
Príkaz csx{multirow} môže byť použitý aj na písanie vertikálneho textu oboma
smermi (s pomocou balíkov
\begin{tabular}{|l|l|} \hline \multirow{4}*{\rotatebox{90}{ahoj}} & Stĺpec g2a\\ & Stĺpec g2b \\ & Stĺpec g2c \\ & Stĺpec g2d \\ \hline \end{tabular}Takto dostanete text bežiaci nahor; pre opačný smer použite uhol -90 .
Dokumentácia
Ak použijete \begin{figure} ... \end{figure}v prostredí multicols , obrázok (figure) sa neobjaví. Ak namiesto toho
použijete
\begin{figure*} ... \end{figure*}obrázok sa roztiahne na šírku stránky (ako prostredie figure* v štandardnej
možnosti LaTeXu, twocolumn ).
Pomocou umiestnenia „
Plávajúce strany používajú tri LaTeXovské dĺžky (t.j. TeXovské skipy) na definíciu svojho rozloženia:
LaTeXovské štandardy sú: Najčastejšia potreba, aby floaty začínali na začiatku strany, sa dá jednoducho uspokojiť: \makeatletter \setlength{\@fptop}{-\@fpsep} \makeatotherPamätajte si, že toto je „globálne“ nastavenie (najlepšie vykonané v súbore triedy alebo prinajhoršom v preambule dokumentu). Zmena pre jediný float bude pravdepodobne (prinajlepšom) celkom komplikovaná.
Nejjednodušším způsobem, jak vytvořit v obsahu položku pro takové zvláštní
části textu jako jsou například předmluvy, je užití čítače
\setcounter{secnumdepth}{-1} \chapter{Předmluva}Samozřejmě, že před opětovným použitím číslovaného oddílu je potřeba nastavit parametr secnumdepth
zpět na jeho obvyklou hodnotu (ve standardních stylech 2).
Podobná nastavení jsou provedena automaticky v knižní třídě LaTeXu příkazy csx{frontmatter} a csx{backmatter}.
Následuje vysvětlení.
Použije-li se
\section , \subsection ,...) pracují obdobně, avšak
testují jinou hodnotu.
Hodnota čítače Balík abstract (viz Otázku Jednosloupcový výtah v dvousloupcovém dokumentu) zahrnuje volbu pro přidání abstraktu do obsahu, zatímco balík tocbibind (CTAN: tocbibind) má volbu pro vložení samotného obsahu, bibliografie, rejstříku atd. do obsahu.
Častý štýl „malého“ obsahu pre každú časť, kapitolu alebo dokonca sekciu
je podporovaný balíkom
Základný princíp balíku spočíva v generovaní malého
\usepackage{minitoc} ... \begin{document} ... \tableofcontents \dominitoc \listoffigures \dominilof ... \chapter{blah blah} \minitoc \mtcskip \minilof ...hoci je možných veľa možností rozvíjania (napríklad csx{minitoc} pre každú kapitolu nie je potrebné).
Dokumentácia je dosť rozsiahla a celko dobre čitateľná: spracujte súbor
distribúcie
Štandardné indexovacie schopnosti LaTeXu (tie, čo sú poskytované balíkom
Balík Na vytvorenie „obecného“ indexu a indexu „autorov“ môžete napísať:
\usepackage{multind} \makeindex{general} \makeindex{authors} ... \index{authors}{Robin Fairbairns} ... \index{general}{FAQs} ... \printindex{general}{Obecný index} \printindex{authors}{Index autorov}Pre dokončenie úlohy spustite LaTeX na vašom súbore dostatočne mnohokrát, aby návestia a iné veci boli stabilné, a potom spustite príkazy
makeindex general makeindex authorspred ďalším spustením LaTeXu. Všimnite si, že názvy indexových súborov, ktoré sa spracúvajú, nemusia mať žiadny vzťah k názvu LaTeXovského súboru, ktorý spracúvame. (K balíku sa nedodáva žiadna dokumentácia. Lepší popis, než vidíte hore, nedostanete.)
Balík
Pre použitie balíku
\usepackage{index} \makeindex \newindex{aut}{adx}{and}{Index mien}Príkazy nahrajú balík, definujú a „hlavný“ index (pôvodný štýl) a následne definujú index autorov. V tele dokumentu môžeme nájsť príkazy ako:
\index[aut]{Robin Fairbairns} ... \index{FAQs}Príkazy uložia záznam do indexu autorov, potom záznam do hlavného indexu. Na konci dokumentu máme dva príkazy:
\printindex \printindex[aut]Tieto vytlačia hlavný index, a potom index autorov. Za predpokladu, že sa príkazy budú nachádzať v súbore myfile.tex , spustite po dostatočnom
množstve behov LaTeXu, aby boli návestia stabilné, nasledujúce príkazy
(tu sú ukázané shellovské príkazy z Unixu, ale princíp je rovnaký nezávisle
na použitom systéme):
makeindex myfile makeindex myfile.adx -o myfile.andPotom znovu spustite LaTeX. Príkazy makeindex spracujú myfile.idx do myfile.ind (štandardná akcia), a potom
myfile.adx do myfile.and . Tie dva súbory sú potrebné ako vstup pre
dva príkazy csx{printindex} v súbore myfile.tex .
Balík
splitidx vygeneruje súbor csx{jobname}. pre
položky indexu generované príkazmi ako \sindex[ .
Ako pri ostatných balíkoch, aj tu je táto metóda limitovaná celkovým počtom
výstupných súborov TeXu. splitindex je však dodávaný s malým
spustiteľným súborom splitindex (dostupný pre množstvo operačných
systémov). Ak tento doplnkový program použijete (a nepoužijete voľbu split ),
nebudete limitovaní počtom indexov. Okrem tohto triku podporuje
splitidx rovnaké veci ako index . Príklad použitia nájdete
v dokumentácii.
Trieda
LaTeXovský mechanizmus návestí je navrhnutý pre neosobný svet akademických publikácií, v ktorých všetko má číslo. Ak si máme zaznamenať názvy vecí, ktorým sme priradili návestie, je potrebné rozšírenie. Sú dostupné dva balíky rozširujúce príkazy LaTeXu na tvorbu sekcií, aby poskytli možnosť odkazovania názvom sekcie.
Balík
Balík
Trieda
Sada
\documentclass[...]{memoir} ... \usepackage[...]{hyperref} \usepackage{memhfixc}
Všetky tri balíky pre odkazy podľa mena definujú odkazovacie príkazy rovnakého
názvu ako balík: csx{titleref}, csx{byname} a csx{nameref}. Balík
Pri tvorbe sady vzájomne súvisiacich dokumentov sa budete často chcieť odkazovať na návestia v druhých dokumentoch sady, ale samostatný LaTeX toto nepovoľuje.
Z toho dôvodu bol napísaný balík
\usepackage{xr} \externaldocument{volume1}do vášho súčasného dokumentu nahrajú sa všetky odkazy z volume1 .
Čo však v prípade, že majú oba dokumenty sekciu s návestím „introduction“ (úvod; je to celkom pravdepodobné)? Balík poskytuje prostriedky na transformáciu všetkých importovaných návestí, takže ich nemusíte meniť v žiadnom dokumente. Napríklad:
\usepackage{xr} \externaldocument[V1-]{volume1}nahrá odkazy zo súboru volume1 , ale pred každý vloží predponu
V1- . Takže na úvod v dokumente „volume 1“ by ste sa odkazovali:
\usepackage{xr} \externaldocument[V1-]{volume1} ... ... úvod dokumentu volume1 (\ref{V1-introduction})...Aby prostriedky xr fungovali s balíkom hyperref , potrebujete
balík xr-hyper . Pre jednoduché krížové hyperodkazy (t.j. na lokálny
PDF súbor, ktorý ste práve skompilovali) napíšte:
\usepackage{xr-hyper} \usepackage{hyperref} \externaldocument[V1-]{volume1} ... ... the \nameref{V1-introduction})...a pomenovaný odkaz sa objaví ako aktívny link na kapitolu „úvod“ súboru volume1.pdf .
Pre link na PDF dokument na webe, pre ktorý máte .aux súbor, napíšte:
\usepackage{xr-hyper} \usepackage{hyperref} \externaldocument[V1-]{volume1}% [http://mybook.com/volume1.pdf] ... ... the \nameref{V1-introduction})... xr.sty : distribuované ako súčasť CTAN: 2etoolsxr-hyper.sty : distribuované s CTAN: hyperref
Prostredie
Balík
Balík
\noindent% \eqparbox{place}% {\textbf{Widgets, Inc.}} \hfill \eqparbox{title}% {\textbf{Senior Widget Designer}} \hfill \eqparbox{dates}{\textbf{1/95--present}}Kód zabezpečí, že všetky tri položky majú rovnakú šírku, takže riadky vyzerajú pravidelne. Príkaz csx{eqboxwidth} vám dovoľuje použiť zmeranú šírku skupiny: dokumentácia ukazuje, ako môže byť príkaz použitý na vytvorenie rozumne vyzerajúcich stĺpcov miešajúcich riadky c , r alebo
l , s ekvivalentnou položkou p{...} tým, že z riadkov s pevnou šírkou
spravíte skupinu eqparbox a nakoniec použijete csx{parbox} so šírkou,
ktorá bola pre skupinu zmeraná.
Balík
Dokumentácia (v samotnom súbore balíku) vypisuje rozličné reštrikcie a veci,
ktoré je ešte treba spraviť, ale balík sa ukázal ako užitočný pre rozličné
úlohy.
Standardní LaTeXový příkaz
Balík Pokud není tabulka plovoucí, pak můžete použít jednu z možností:
Dokumentace
Zmeny štýlov popiskov môžete spraviť opätovnou definíciou príkazov, ktoré
popisky vytvárajú. Takže napríklad
\renewcommand{\fnum@figure}% {\textbf{Fig.~\thefigure}}čo spôsobí, že číslo bude vysádzané tučné. (Všimnite si, že v pôvodnej definícii bolo použité viď Otázku Změna slov používaných LaTeXem.) Prepracovanejších zmien môžeme dosiahnuť úpravou príkazu \caption , kedže však na túto prácu neexistujú balíky, nie sú
takéto zmeny (ktoré môžu byť dosť náročné) odporúčané bežných používateľom.
Balík
Trieda
Dokumentácia
V minulosti odporúčaný balík
Balík
Předpokládejme, že editor našeho oblíbeného časopisu vyžaduje,
aby nadpisy oddílů byly centrované a vysázené kapitálkami a pododdíly
byly zarovnány vpravo a vysázeny kurzívou. Nechce se nám však zaplétat do
takového druhu programování jaký je popsán v The LaTeX Companion
(viz Knihy o TeXu a příbuzná literatura;
\newcommand{\ssection}[1]{% \section[#1]{\centering\textsc{#1}}} \newcommand{\ssubsection}[1]{% \subsection[#1]{\raggedright\textit{#1}}}se pak použijí namísto obvyklých \section a \subsection .
Není to však nejhezčí řešení. Čísla v nadpisech oddílů
zůstávají vysázena tučně a hvězdičkovaná forma příkazů musí
být předefinována zvlášť.
Uvedené definice nebudou správně fungovat
v případě, že se použije
Makro NFSS (The New Font Selection Scheme) mimo LaTeX 2e (nový standard LaTeXu),
jelikož v takovém případě se příkazy měnící typ písma chovají odlišně.
Balík CTAN: sectsty nabízí jednoduše použitelnou sadu příkazů pro tuto práci, zatímco balík CTAN: titlesec umožňuje pokročilejší řešení této problematiky (titlesec přichází s druhým balíkem – titletoc – který je používán pro úpravu formátu celého obsahu.
Záhlaví příkazů
Balík
LaTeX poskytuje výnimočne jednoduchý mechanizmus príloh: príkaz
\section{Moja inšpirácia} ...sa vysádza (v dokumente triedy article ) nasledovne:
textbf{1 Moja inšpirácia} ... textbf{2 Rozvíjanie inšpirácie} ... textbf{A Ako ma kopla múza} ... čo je väčšinou dostačujúce. Všimnite si, že po tom, čo ste zapli sádzanie príloh, LaTeX vám neumožňuje cestu späť — po prílohe nemôže nasledovať normálna sekcia (\section ) alebo kapitola (\chapter ).
Balík
\usepackage{appendix} ... \appendix \appendixpage \addappheadtotocPríkaz \appendixpage pridáva nad prvú prílohu oddelený nadpis
„Appendices“ (prílohy) a príkaz \addappheadtotoc pridáva podobný nadpis
do obsahu. Tieto jednoduché modifikácie pokrývajú potreby mnohých ľudí týkajúce
sa príloh.
Balík tiež poskytuje prostredie
\usepackage[toc,page]{appendix} ... \begin{appendices} ... \end{appendices}Skvelé je, že keď prostredie appendices skončí, môžete v sekciách a kapitolách
pokračovať ako predtým — číslovanie nie je ovplyvnené.
Balík poskytuje aj ďalšiu možnosť sádzania príloh — vo forme podriadených
úsekov v dokumente. Prostredie
\usepackage{appendix} ... \section{Moja inšpirácia} ... \begin{subappendices} \subsection{Ako ma kopla múza} ... \end{subappendices}Výsledkom bude niečo podobné: textbf{1 Moja inšpirácia} ... textbf{1.A Ako ma kopla múza} ... textbf{2 Rozvíjanie inšpirácie} ... S balíkom sa dá robiť ešte veľa zaujímavých vecí, pre detaili sú užívatelia odkazovaný na dokumentáciu.
Trieda
Plávajúce obrázky a tabuľky obyčajne vychádzajú v rovnakej šírke ako stránka,
ale v dvojstĺpcových dokumentoch sú obmedzené šírkou stĺpca. Toto ale občas
nie je dostačujúce, takže existujú alternatívne verzie prostredí float —
v dvojstĺpcových dokumentoch poskytuje
Hviezdičkové plávajúce (float) prostredia sa môžu objaviť iba na vrchu stránky
alebo na celej stránke — direktívy float rozloženia
Rovnice šírky celej strany môžu byť bohužiaľ prispôsobené iba vnútru float
prostredí. Mali by ste ich zahŕňať do prostredí
LaTeX používá stylů, jež neodsazují první odstavec za nadpisem.
Je mnoho důvodů proč tomu tak je, ale ne každému to vyhovuje
(např. to neodpovídá tradicím české typografie).
Užijeme-li styl
Umístění příkazu Bohužel neexistuje rozumný způsob, jak zamezit zobrazování těchto poznámek v záhlaví při povolení zobrazování v obsahu. K jejich potlačení musíte udělat toto:
Poznámky v popiskoch sú obzvlášť komplikované: predstavujú samostatný problém (navyše k problémom poznámok v nadpisoch a tabuľkách spomínaných v predchádzajúcich otázkach).
Takže okrem používania voliteľného parametru príkazu csx{caption} (alebo
podobného), aby sme sa vyhli migrácii poznámky do Zoznamu ... (List of
...), a vloženia objektu, ktorého popisky obsahujú poznámku, do minipage,
musíme naviac čeliť tendencii príkazu csx{caption} vytvárať text
poznámky dvakrát. Pre tento posledný problém neexistuje čisté riešenie, ktorého
by si bol autor vedomý. Ak týmto problémom trpíte, dobre vytvorený príkaz
csx{caption} v prostredí \begin{figure} \begin{minipage}{\textwidth} ... \caption[Popisky pre LOF]% {Skutočné popisky\footnote{blah}} \end{minipage} \end{figure}môže vytvoriť dve kópie tela poznámky „blah“. (Efekt sa objavuje pri popiskoch, ktoré sú dosť dlhé, aby na sadzbu vyžadovali dva riadky, a teda pri takom krátkom popisku by sa neobjavil.) Dokumentácia balíku ccaption popisuje skutočne strašný spôsob, ako problém obísť.ccaption.sty : CTAN: ccaption
Ak sa rovnaká poznámka objaví na rozličných miestach v dokumente, je často nevhodné opakovať celú poznámku znovu. Opakovaniu sa môžeme vyhnúť poloautomatickou cestou alebo jednoduchým označovaním poznámok, o ktorých vieme, že ich budeme opakovať, a následným odkazovaním na výsledok. Plne autmatické riešenie (také, čo detekuje a potláča) neexistuje. Ak viete, že budete mať iba jednu opakovanú poznámku, riešenie je jednoduché: iba použite voliteľný parameter csx{footnotemark} na zdôraznenie opakovania:
...\footnote{Opakujúca sa poznámka} ... ...\footnotemark[1]...@ čo je veľmi jednoduché, kedže vieme, že bude existovať iba poznámka čislo 1. Podobná technika môže byť použitá, keď už sú poznámky stabilné, použijete číslo, ktoré LaTeX alokoval. Toto však môže byť únavné, kedže ľubovolná zmena sadzby by mohla zmeniť vzťahy medzi poznámkou a opakovaním: značkovanie je nevyhnuteľne lepšie. Môžeme použiť jednoduché ručné značkovanie poznámok pomocou dedikovaného počítadla:
\newcounter{fnnumber} ... ...\footnote{Opakovaný text}% \setcounter{fnnumber}{\thefootnote}% ... ...\footnotemark[\thefnnumber]Je to ale trochu zdĺhavé. Na pomoc si môžeme privolať značkovacie mechanizmy LaTeXu, ale pred vyhodnotením csx{ref} počas druhého priebehu LaTeXom sa objavujú nepekné chybové hlásenia:
...\footnote{Opakovaný text\label{fn:repeat}} ... ...\footnotemark[\ref{fn:repeat}]Alternatívne môžete použiť príkaz csx{footref}, ktorého výhodou je schopnosť fungovať, dokonca aj keď nie je značka poznámky vyjadrená ako číslo. Príkaz je definovaný v balíku footmisc a v triede memoir (prinajmenšom).
csx{footref} zredukuje predchádzajúci príklad na:
...\footnote{Opakovaný text\label{fn:repeat}} ... ...\footref{fn:repeat}Toto je najčistejšie riešenie. Všimnite si, že príkaz csx{label} musí byť vo vnútri parametru csx{footnote}.
Balík
\DeclareFixedFootnote{\rep}{Opakovaný text} ... ...\rep{} ...\rep{}Balík zaručuje, že opakovaný text sa objavuje na strane najviac raz: obvykle zrejme bude potrebný viac než jeden beh LaTeXu, aby ste sa opakovaní zbavili. fixfoot.sty : CTAN: fixfootfootmisc.sty : CTAN: footmiscmemoir.cls : CTAN: memoir
Očividným riešením je resetovanie počítadla vždy, keď zmeníme stranu, pomocou interných mechanizmov LaTeXu (viď Otázku „Master“ a „slave“ počítadlá). Miesto zmeny stránky bohužial nie je predvídateľné (nie na konci tlačenej stránky, takže takéto spojenie funguje iba so šťastím). Výsledkom je, že resetovanie poznámok je nevyhnuteľne dvojprechodový proces používajúci určitý druh návestí. Návestia sú tak či tak dôležité, kedže sa bežne vyskutuje požiadavka na značkovanie poznámok symbolmi (s veľmi malými množinami symbolov). Existujú tri balíky, ktoré toto dokážu.
Balík
Balík
Balík
Dokumentácia
Zmena veľkosti tela textu LaTeXovského je prekvapujúco ťažká úloha, najlepšia rada pre začiatočníkov je, aby to neskúšali. Medzi fundamentálnymi obmedzeniami TeXu, obmedzeniami spojenými s návrhom LaTeXu a dobrými dizajnovými a sádzačskými zvykmi existuje určitá spojitosť. Každá zmena musí byť teda dobre premyslená a musí byť zaistené, že funguje a zároveň je oku príjemná.
Lamportove varovanie v jeho sekcii „Customizing the Style“ nesmie byť brané
na ľahkú váhu. Jednopalcové okraje papieru formátu A4 sú prijateľné pre písacie
stroje, ale nie pre sadzbu desaťbodovým (prípadne väčším) písmom, pretože sa
takéto široké, husté riadky ťažko čítajú. Ideálne by na riadok nemalo byť viac
ako 75 znakov (pre dvojstĺpcový text sa obmedzenie mení).
Ovládacie prvky LaTeXu dovoľujú zmeniť vzdialenosť od okajov stránky k ľavému
a hornému okraju vášho textu, ako aj výšku a šírku textu.
Zmena výšky a šírky vyžaduje viac zručnosti, než by ste čakali. Výška by si mala
zachovať určitý vzťah k vzdialenostiam po sebe nasledujúcich účiarí
(
Ovládacie prvky sú vyjadrené množinou parametrov stránky. V istom zmysle sú
komplexné a pri predefinovávaní rozvrhnutia stránky si môžeme ľahko popliesť ich
vzájomné vzťahy. Balík
Definitívnym nástrojom pre zmenu rozmerov a pozície tlačeného materiálu
na stránke je balík
Použítie balíku
Ak to stále chcete spraviť sami, začnite sa zoznamovať s parametrami LaTeXu
pre rozloženie stránky. Pozrite si napríklad sekciu C.5.3 LaTeX manuálu
(str. 181–182) alebo príslušné sekcie v iných manuáloch LaTeXu
(viď Otázku Knihy o TeXu a příbuzná literatura).
Parametre
Ďalším prekvapením je, že jednoduchou modifikáciou parametrov veľkosti textu
nemôžete zmeniť šírku a výšku textu v dokumente. Parametre by mali byť menené
iba v preambule dokumentu, teda pred výrazom \newenvironment{changemargin}[2]{% \begin{list}{}{% \setlength{\topsep}{0pt}% \setlength{\leftmargin}{#1}% \setlength{\rightmargin}{#2}% \setlength{\listparindent}{\parindent}% \setlength{\itemindent}{\parindent}% \setlength{\parsep}{\parskip}% }% \item[]}{\end{list}}Toto prostredie akceptuje dva parametre a odsadí ľavý a pravý okraj podľa hodnôt príslušných parametrov. Záporné hodnoty spôsobia zúženie okrajov, takže \begin{changemargin}{-1cm}{-1cm} zúži ľavý a pravý okraj o 1cm.
Balík
Balík
Pre potlačenie iba na jednej strane použite
Pre potlačenie číslovania postupnosti strán môžete použiť
Problémové príkazy triedy
\renewcommand*{\titlepagestyle}{empty}
Alternatívou (vo všetkých triedach) je použitie celkom príjemného
Balík
\renewcommand*{\pagemark}{}aby ste dosiahli to isté ako pri triku s gobble , bez resetovania čísla
stránky.nopageno : CTAN: nopagenobalík KOMA script : CTAN: koma-scriptmemoir.cls : CTAN: memoirscrpage2.sty : distribuované ako súčasť CTAN: koma-script
Slovo se vloží do boxu a poté se zjistí šířka tohoto boxu. Například: \newdimen\stringwidth \setbox0=\hbox{hi} \stringwidth=\wd0Je třeba však mít na paměti, že je-li v \hbox u sousloví,
hodnota, kterou určíme, bude pouze přibližnou šířkou, kterou bude
vysázené zaujímat ve skutečném textu, neboť mezislovní mezery se
při sazbě odstavce mohou změnit.
V LaTeXu lze problém řešit takto: \newlength{\gnat} \settowidth{\gnat}{\textbf{small}}Hodnota \gnat se v tomto případě nastaví na hodnotu šířky
„small“ vysázeného tučně.
Toto zistenie môžete potrebovať pre automatické generovanie záhlavia alebo päty stránky zaznamenávajúceho práve spracúvaný súbor. Nie je to jednoduché...
TeX si pamätá iba to, čo považuje za názov práce (job),
v primitíve csx{jobname}. Predstavuje názov súboru, ktorý bol prvý predaný
TeXu, orezaný o meno adresáru a ľubovolnú príponu (ako napríklad
Toto je v prípade malých dokumentov udržiavaných v jednom súbore. Väčšina
významných dokumentov bude však udržiavaná vo viacerých súboroch a TeX sa
nesnaží držať si prehľad vstupných súborov práce. Prehľad si teda musí
udržiavať užívateľ sám — jediným spôsobom je úprava vstupných príkazov, aby si
pamätali detaily názvov súborov. Toto je práve v prípade V prípade LaTeXu majú vstupné príkazy pekne pravidelnú syntax. Stačí na ne teda použiť najjednoduchšie upravovacie techniky: \def\ThisFile{\jobname} \newcounter{FileStack} \let\OrigInput\input \renewcommand{\input}[1]{% \stepcounter{FileStack} \expandafter\let \csname NameStack\theFileStack\endcsname \ThisFile \def\ThisFile{#1}% \OrigInput{#1}% \expandafter\let\expandafter \ThisFile \csname NameStack\theFileStack\endcsname \addtocounter{FileStack}{-1}% }(Podobne aj pre csx{include}.) Kód predpokladá, že budete vždy pre csx{input} používať syntax LaTeXu, t.j. vždy použijete parameter uzavretý do zložených zátvoriek.
Balík
Keď zdielate dokument s niekým iným (možno v rámci spoločného vývoja), je
vhodné, aby obaja korešpondenti mali rovnaký dokument, ako aj rovnakú sadu
pomocných súborov. Váš korešpondent zjavne potrebuje rovnakú sadu súborov
(ak napríklad používate balík Najjednoduchším riešením je LaTeXovský príkaz csx{listfiles}. Ten do súboru logu umiestňuje zoznam použitých súborov a ich verzií. Ak tento zoznam vypreparujete a pošlete ho so svojím súborom, môže byť použitý ako kontrolný zoznam v prípade problémov. Majte na pamäti, že csx{listfiles} zaregistruje iba veci vložené „štandardnými“ LaTeXovskými mechanizmami (csx{documentclass}, csx{usepackage}, csx{input}, csx{include}, csx{includegraphics} atď.). Ak však použijete primitívnu syntax TeXu: \input mymacros mymacros.tex nebude príkazom csx{listfiles} zahrnutý do zoznamu,
kedže ste obišli mechanizmus zaznamenávajúci jeho použitie.
Balík
Systém bundledoc používa csx{listfiles} na tvorbu archívu (napríklad
Často potrebujeme zreteľne vyznačiť, ako náš dokument zmenil. Najčastejší postup, „pruhy zmien“ (change bars; tiež známe ako „pruhy revízií“ — revision bars), však vyžaduje od programátora prekvapivo veľkú lstivosť (problém je, že TeX poriadne neposkytuje programátorovi žiadne informácie o aktuálnej pozícii, z ktorej by mohol byť vypočítaný domnelý začiatok alebo koniec pruhu; PDFTeX informácie poskytuje, ale nie sme si zatiaľ vedomí o žiadnom programátorovi, ktorý by to využil na napísanie changebar balíku založeného na PDFTeXu).
Najjednoduchší balík poskytujúci pruhy zmien je
Najstarším riešením je balík
Balík
Trieda
Aj keď LaTeX (alebo ľubovolný iný balík odvodený z TeXu) nie je v skutočnosti kompilátor, ľudia často chcú, aby robil veci pre kompilátor typické. Častou požiadavkou je podmienená „kompilácia“ a blokové komentáre. Na tento účel je dostupných viacero LaTeXu špecifických prostriedkov.
Jednoduché príkazy
Ak sa vaša požiadavka týka dokumentu, z ktorého chýbajú celé kapitoly, zvážte
LaTeXovský systém csx{include}/csx{includeonly}. Ak vložíte vaše súbory
pomocou csx{include} (namiesto csx{input} — viď
Otázku Co se děje při použití příkazu
Pomocou balíku
Ak si chcete vybrať konkrétne stránky dokumentu, použite balík \documentclass{article} \usepackage[final]{pdfpages} \begin{document} \includepdf[pages=30-40]{yoursource.pdf} \end{document}(Na vloženie celého dokumentu môžete napísať \includepdf[pages=-]{yoursource.pdf}vynechajúc začiatočnú a koncovú stranu dokumentu vo voliteľnom parametri.)
Ak chcete byť pri vkladaní alebo vynechávaní malých častí súboru, zvážte balíky
Dôležitým rozvojom
Balík
Konečne balík
Bežným spôsobom zostavovania veľkých dokumentov je ich rozdelenie na sadu menších súborov (napr. jeden na každú kapitolu) a uchovávanie všetkého, čo súvisí s jedným z týchto súborov, v podadresári. TeX bohužiaľ nemá možnosť zmeny aktuálneho adresáru, takže všetky súbory, na ktoré sa odkazujete, musíte uviest relatívne voči adresáru hlavného súboru. Väčšina ľudí toto pokladá za neintuitívne.
Vhodným riešením môže byť použitie techniky rozšírenia cesty
z Otázky „Dočasné“ inštalácie súborov TeXu alebo LaTeXu. Ak však v dokumente používate viacero súborov
rovnakého názvu (napr.
Balík Graph: \includegraphics{picture} \input{explanation} \import{/home/friend/}{results} potom vloží oba súbory. Príkaz
csx{subimport} robí to isté pre podadresár (relatívna cesta radšej než
absolútna), existujú zodpovedajúce príkazy csx{includefrom}
a csx{subincludefrom}.import.sty : CTAN: import
Použitie make s LaTeXom je komplikované. Potreba viacnásobného spustenia LaTeXu (napr. pre ustálenie obsahu, návestí, pridanie bibliografie, indexu atď.) sa ťažko vyjadruje obvyklým druhom grafu závilostí, ktorý konštruujeme pre make. Z tochto dôvodu bol jediným balíkom podobným make na CTANe (dlhú dobu) latexmk, čo je skript pre Perl analyzujúci závislosti vášho dokumentu, v prípade potreby spúšťajúci BibTeX alebo makeindex (v prípade zmeny súborov, ktoré uvedené programy používajú ako vstup) atď. Latexmk je dobrým riešením, nedávno bol aktualizovaný a obsahuje množstvo skvelých vlastností dovoľujúcich mu pracovať ako veľmi jednoduchý WYSIWYG systém.
Systém
Novším prírastkom je balík
Jednoduché dokumenty (tie, čo začínajú stranou 1 a nemajú v číslovaní strán
nijaké zlomy až po poslednú stranu) nepredstavujú pri hľadaní odpovede na túto
otázku žiadny problém. Počet strán hlási balík Pre komplikovanejšie dokumenty (napríklad knihy s inak čislovanou úvodnou časťou) tento jednoduchý prístup nestačí.
Balík
Balík
Trieda
Balíky
Napriek tomu, že je LaTeX pôvodne založený na Plain TeXu (viď
Otázku Aký je vzťah medzi LaTeXom a
Skutočne spoľahlivé riešenia je preloženie príkazov Plain TeXu tak, aby
produkovali ekvivalent pôvodnej sémantiky. Toto však v mnohých prípadoch nie
je praktické a pre tieto prípady si často musíte pomôcť balíkom
\begin{plain} \input{plain-doc} \end{plain}Je známe, že balík zlyháva napríklad pri dokumentoch používajúcich AMSTeX, určite by zlyhal aj pri požiadavke o načítanie Eplainu. Všetky tieto problémy sa dajú prekonať (aj keď to niekedy nie je ľahké), ale nám v mnohých prípadoch šetrí mnoho práce. plain.sty : distribuované ako súčasť CTAN: carlisle
Predpokladajme, že ste si vybrali správny TeXovský „jazyk“ (viď
Otázku Ako funguje v TeXu rozdeľovanie slov?), pravdepodobne nedosiahnete požadovaný výsledok
sadzbou jedného jazyka a použitím rozdeľovacích pravidiel jazyka druhého.
(Ak ste používateľ LaTeXu, vyberte si správny jazyk pomocou Čo iné sa ešte môže pokaziť?
\hyphenation{ana-lysis pot-able} (anglické príklady); všimnite si, že
(v tomto prípade pre slovo „analysis“) môžete anulovať TeXom navrhované
rozdelenie (ana-lysis je britské etimologické rozdelenie; niekomu sa zdá
americké rozdelenie „nešťastné“...).hyphenat.sty : CTAN: hyphenat
Táto akcia sa môže zdať nezvyčajnou (jednou z veľmi propagovaných vlastností TeXu je kvalita rozdeľovania), ale niekedy je potrebná. Skutočným problémom je, že kvalita TeXovského výstupu je štandardne do veľkej miery závislá na prítomnosti rozdeľovania. TeX (zmätočne) ponúka štyri mechanizmy na potlačenie rozdeľovania (pred rozšíreniami TeXu verzie 3 to boli iba dve). Prvou možnosťou je nastavenie pokút za rozdeľovanie csx{hyphenpenalty} a csx{exhyphenpenalty} na „nekonečnú“ hodnotu (t.j. napríklad 10000). Toto znamená, že každý riadok, ktorý by obsahoval rozdelenie, bude pokutovaný dostatočne na to, aby k nemu nedošlo. Nevýhodou metódy je nutnosť opätovného vyhodnocovania odstavcov, a teda pomalosť celej metódy.
Ďalším spôsobom je výber jazyka, pre ktorý neexistujú rozdeľovacie vzory.
Niektoré distribúcie vytvárajú jazyk Tretia alternatíva je nastavenie csx{left-} a/alebo csx{righthyphenmin} na dostatočne veľkú hodnotu, aby sa zabránilo akémukoľvek rozdeľovaniu, kedže hodnota minima bude väčšia ako dĺžka najdlhšieho slova, ktoré je TeX ochotný rozdeliť (vhodnou hodnotou je 62). Poslednou možnosťou z násho zozname je potlačenie rozdeľovania celého textu použitím aktuálneho fontu príkazom \hyphenchar\font=-1Toto nie je práve praktický spôsob potlačenia rozdeľovania, kedže príkaz musí byť použitý pre každý font v dokumente, ale práve týmto spôsobom zabraňuje rozdeľovaniu LaTeX samotný v tt a iných fontoch pevnej šírky.
Výber konkrétnej techniky záleží na tom, čo chcete robiť. Ak text, ktorého rozdelenie chcete potlačiť, nie je celý odstavec, vašou jedinou voľbou je použitie nerozdeľovaného jazyka: hodnota jazyku je zachovaná s textom (rovnakým spôsobom ako aktuálny font); na počítanie rozdeľovania sú použité hodnoty rozdeľovacích limitov a pokút aktívne na konci odstavca.
Na druhú stranu, pri písaní viacjazyčného dokumentu použitím balíku
Ak jednoducho vypnete rozdeľovanie pre dlhší úsek textu, výstup bude mať
nerovný okraj (s mnohými pretekajúcimi riadkami) a každý beh TeXu vás bude
bombardovať hláškami o pretečení (overfull) a podtečení (underfull) riadkov.
Aby ste sa tomuto vyhli, máte dve možnosti. Môžete použiť csx{sloppy} (alebo
jeho verziu v podobe prostredia
LaTeX štandardne neposkytuje žiadne prostriedky spracovania tučných
„teletype“ alebo „small-caps“ fontov. Existuje pre to praktický dôvod
(Knuth nikdy takéto fonty nenavrhol), ale existujú aj typografické dôvody
(polotučný font
Na CTANe existuje „extra“ sada súborov METAFONTu, ktoré poskytujú tučné
verzie
Ak potrebujete použiť Type 1 fonty, nemôžete postupovať s fontami Knuthovho
štýlu, kedže neexistujú Type 1 verzie
Jednoduchým řešením tohoto problému je příkaz
Znak podčiarknutia
Stredne pokročilý programátor makier môže vygenerovať rýchly „hack“
na povolenie sadzby
Existuje tu však jeden problém. Textové fonty OT1 obsahujú znak
Ak je požiadavkou iba občasné použitie znaku \def\us{\char`\_} ... \texttt{create\us process}Táto konštrukcia nie je ani najmenej robustná (v bežnom hovorovom význame), ale je robustná pri expanzii (t.j. v LaTeXovskom význame slova), takže ju používajte opatrne (nemusíte sa však starať o nadpisy sekcii a podobné veci). underscore.sty : CTAN: underscore
Pre dlhým časom robili niektoré balíky znak `@' aktívnym, takže pre jeho sadzbu boli potrebné špeciálne opatrenia. Aj keď sú tieto balíky ešte stále dostupné, používa ich málo ľudí a tí, čo ich používajú, majú prístup k veľmi dobrej dokumentácii. Bežným ľuďom (ako sú napríklad autori originálneho anglického FAQ) stačí jednoducho napísať znak `@'.
Token csx{jobname} produkuje postupnosť znakov s kódom kategórie 12 („iné“) bez ohľadu na to, čo danými znakmi v skutočnosti je. Keďže je nevyhnutne potrebné porovnať makro s obsahom iného makra (použitím csx{ifx}), je potrebné vytvoriť makro, ktorého expanzia vyzerá rovnako ako expanzia csx{jobname}. Toto môžeme spraviť pomocou csx{meaning}, ak „odrežeme“ prefix príkazu csx{show}. Celý príkaz vyzerá nasledovne:
\def\StripPrefix#1>{} \def\jobis#1{FF\fi \def\predicate{#1}% \edef\predicate{\expandafter\StripPrefix \meaning\predicate}% \edef\job{\jobname}% \ifx\job\predicate }A je použitý nasledovne:
\if\jobis{mainfile}% \message{YES}% \else \message{NO}% \fiZapamätajte si, že príkaz csx{StripPrefix} nemusí byť definovaný, ak používate LaTeX — tu už interný príkaz (viď Otázku \@ a @ ve jménech maker)
csx{strip@prefix}, ktorý môžete použiť, existuje.
Európska mena „Euro“ je reprezentovaná symbolom s mierne pochybným dizajnom, ale je to dôležitá mena a používatelia TeXu/LaTeXu ju potrebujú sádzať. Európska komisia najskôr požadovala, aby symbol Euro bol vždy vysádzaný grotesk fontom, táto požiadavka však bola našťastie zrušená a teda je možné najlepšie využiť sadzobné úsilie, aby symbol vyzeral aspoň trochu solídne (typograficky).
Fonty v kódovaní TS1 poskytované ako súčasť distribúcie fontov EC
obsahujú glyfy pre Euro. Fonty sa nazývajú Text Companion (TC) fonty
a poskytujú rovnaký rozsah kresieb ako EC fonty samotné. Balík
Vstupné kódovanie
Obrysové fonty obsahujúce iba symboly Eura sú (zadarmo) dostupné
z Adobe fonty sú pre prostredie bez Computer Modern fontov najlepšia voľba. Zjavne sú navhrnuté tak, aby sedeli s Adobe Times, Helvetica a Courier, ale sú zrejme použiteľné s širším rozsahom moderných fontov.
Balík
Sada Symboly Euro sa dajú nájsť na množstve iných miest, ktoré tu pre úplnosť spomenieme.
Fonty
Iné sady založené na METAFONTe obsahujúce Euro symboly môžete nájsť v balíku
Obsiahly zoznam symbolov (viď Otázku Kde nájdem symbol pre...) obsahuje príkazy
pre symboly csx{textcopyright}, csx{textregistered} a csx{texttrademark},
ktoré sú dostupné vo fontoch v TS1 kódovaní a ich použitie sa umožňuje
balíkom V skutočnosti sú v štandardnom LaTeXu povolené všetky tri príkazy, ale glyfy, ktoré dostanete, nie sú veľmi pekné. Konkrétne csx{textregistered} sa správa zvláštne pri vložení do tučného textu (napríklad nadpis sekcie), pretože sa skladá z „small-caps“ písmena, ktoré sa typicky pri požiadavke na vysádzanie v tučnom fonte degraduje na písmeno normálneho tvaru. Z glyfu sa teda stane `r' v krúžku, ale správnym symbolom malo byť `R' v krúžku.
Tomuto efektu sa použitím Ďalší problém nastáva, keď chcete csx{textregistered} v pozícii horného indexu (aby symbol vyzeral podobne ako csx{texttrademark}). Použitím horného indexu matematického módu za týmto účelom vyvolá množstvo nezmyselných chýb, takže musíte použiť
\textsuperscript{\textregistered}
Použije se příkaz \newcommand{\diag}{\mathop{\rm diag}}
Spodní a horní indexy funkce \newcommand{\diag}{\mathop{\mathrm{diag}}\nolimits}
AMSLaTeX (ve svém balíku \DeclareMathOperator{\diag}{diag}csx{DeclareMathOperator*} deklaruje operátor tak, aby byly spodní a horní indexy umístněny v pozici csx{limits} (viz Otázku Pozície horných a dolných indexov operátorov).
Jedným z mála do očí bijúcich nedostatkov v schopnostiach TeXu sádzať
matematiku je nemožnosť sadzby oddeľovačov vo vnútri matematických výrazov.
TeX poskytuje primitíva nazvané csx{left} a csx{right}, ktoré môžu byť
použité na modifikáciu zátvoriek (akéhokoľvek druhu) okolo matematických
výrazov, ako napríklad:
V mnohých prípadoch pri matematike budete potrebovať príkaz csx{middle} na použitie vo výrazoch ako: \left\{ x\in \mathbb{N} \middle| x \mbox{ párne} \right\}na špecifikáciu množiny párnych prirodzených čísel Systém e-TeX (viď Projekt NTS) definuje presne takýto príkaz, ale používatelia Knuthovho pôvodného systému potrebujú pomoc. Balík Donalda Arseneaua braket poskytuje príkazy pre špecifikáciu množín (ako je
uvedené vyššie) a pre Diracovove zátvorky (a symboly „bra“ a „ket“).
Balík používa príkaz zabudovaný do e-TeXu (ak zistí, že beží pod e-TeXom).braket.sty : CTAN: braket
V V LaTeXu je samozrejme všetko automatizované: pre každú veľkosť (textového) fontu existuje schéma určujúca, aké veľkosti matematických fontov sa majú použiť. „Schéma“ najskôr skontroluje sadu „známych“ veľkostí textu, z ktorých pre každú sú dopredu deklarované veľkosti matematiky. Ak veľkosť textu nie je „známa“, sú veľkosti script- a scriptscriptfont vypočítané ako fixné násobky veľkostí textových fontov. (Použité koeficienty sú csx{defaultscriptratio}ensuremath{=}0.7, a csx{defaultscriptscriptratio}ensuremath{=}0.5.)
Vzorec pevného násobku môže produkovať nepríjemné výsledky (hlavne ak používate
fonty, o ktorých si LaTeX myslí, že sú dostupné iba vo fixnej sade veľkostí).
Môžete taktiež chcieť úplne zmeniť myšlienky LaTeXu, napríklad sadzbou
matematiky citeľne menšej alebo väčšej, než je okolný text. Za týmto
účelom môže byť použitý LaTeXovský príkaz:
csx{DeclareMathSizes} môže byť použitý iba v preambule dokumentu: dostupné je
iba jedno priradenie pre každú veľkosť textového fontu na celý dokument.
Tri bodky sú bežne požadované a LaTeX ich natívne poskytuje v celkom
slušnom rozsahu (csx{dots}, csx{cdots}, csx{vdots} a csx{ddots}). Použitím
balíku
Sada AMSLaTeX poskytuje rozsah „sémanticky pomenovaných“ elíps na použitie
v rôznych situáciach: csx{dotsb} pre použitie medzi dvojicami binárnych
operátorov, csx{dotsc} medzi dvojicami čiarok a tak ďalej.
Balík
Balík
Dokumentácia
Najbežnejším ručne písaným štýlom pre výrazy je umiestnenie limitných výrazov
operátorov ako csx{sum} a csx{int} fyzicky nad a pod operátor.
V TeXu/LaTeXu píšeme tieto výrazy pomocou horných a dolných indexov
aplikovaných na operátor, ale nie vždy sa vo výstupe TeXu objavia ako
v „ručne písanej“ podobe.
Dôvod je ten, že keď sa výraz objaví v normálnom texte (je teda v štýle
csx{textstyle}), umiestnenie hraníc operátoru by mohlo viesť k nerovnému
riadkovaniu (a teda k ťažko čitateľnému textu). Je preto obvyklé
(v csx{textstyle}) umiestňovať tieto hranice ako horné a dolné indexy
premenných.
Toto však nie je obecne dostačujúce, takže je poskytované primitívum
csx{limits}:
Naopak, môžete chcieť zmeniť usporiadanie hraníc v csx{displaystyle}.
Za týmto účelom existuje príslušný príkaz csx{nolimits}:
(Zapamätajte si, že makro csx{int} má obyvkle csx{nolimits} zabudované
do definície. V TeXbooku existuje príklad, ktorý ukazuje, ako zvláštne
vyzerá csx{int}csx{limits} vysádzané.)
Keď v TeXu/LaTeXu píšeme matematiku, majú písmená, z ktorých tvoríme bežný
text, špeciálny význam: všetky sa stanú jednopísmenovými názvami premenných.
Písmená sú sádzané kurzívou, ale nie rovnakou kurzívou ako v bežnom texte:
postupnosť písmen v matematike (napríklad „here“) vyzerá zvlášte
„zvlnená“ oproti tomu istému slovu v texte vysádzanom kurzívou. Rozdiel je,
že text v kurzíve je podrezaný (kerned), aby sa písmená k sebe dobre zmestili,
ziatiaľ čo matamtika je sádzaná, aby vyzerala, ako keď navzájom násobíte
h, e, r a písmeno e. Ďalšou zvláštnosťou
matematiky v TeXu je ingorovanie medzier: prinajlepšom môžeme v tomto
zvláštnom fonte písať slová.
Ak chceme mať dobre vyzerajúci text medzi matematikou, musíme zaviesť určité
opatrenia. Ak používate LaTeX, nasledujúca rada by vám mala pomôcť.
Najjednoduchšie je použiť csx{mbox} alebo csx{textrm}:
$z = a_{\mbox{other end}}$vyzerá veľmi zle. Ďalší jednoduchý postup využíva csx{textrm} a vyzerá sľubnejšie:
$z = a_{\textrm{other end}}$je určite v poriadku. Okolitý text však nemusí byť v našej antikve. Ak vám záleží na rovnakom texte, musíte si vybrať medzi csx{textrm}, csx{textsf} a tak ďalej. (Matematická inštancia vašej antikvy (csx{mathrm}) má správnu veľkosť, ale keďže je určená na použitie v matematike, medzery sú ignorované — používajte csx{mathrm} iba pre názvy premenných v kolmej rímskej abecede.) Tieto problémy môžete opraviť výbermi veľkosti písma v texte, napr.:
$z = a_{\mbox{\scriptsize other end}}$Príklad bude fungovať, ak je okolitý text štandardnej dokumentovej veľkosti, inak dostanete nesprávnu veľkosť.
Tieto skratky sú (takmer) v poriadku pre „občasného“ matematika, ale
skutoční matematici žiadajú postup, ktorý odbremeňuje sádzača od myšlienok
vyžadovaných pri predchádzajúcich postupoch. AMSLaTeX, ako obvykle,
poskytuje všetko potrebné — príkaz csx{text}. Príkaz v skutočnosti balík
\usepackage{amsmath} ... $z = a_{\text{other end}}$a text bude rovnakej veľkosti a v rovnakom fonte ako text okolitý. AMSLaTeX tiež prostredníctvom príkazu csx{intertext} poskytuje opatrenia pre komentáre vložené do niektorej z jeho viacriadkových zobrazovacích štruktúr. Napríklad:
\begin{align} A_1&=N_0(\lambda;\Omega')- \phi(\lambda;\Omega'),\\ A_2&=\phi(\lambda;\Omega')- \phi(\lambda;\Omega),\\ \intertext{a konečne} A_3&=\mathcal{N}(\lambda;\omega). \end{align}umiestni text „a konečne“ na samostatný riadok pred posledný riadok zobrazenia. Príkaz môže byť použitý iba bezprostredne po príkaze \\ .
Vyčerpávajúcu dokumentáciu AMSLaTeXu nájdete v súbore
Pri opakovaní existujúcej rovnice nechcete iba rovnakú matematiku, chcete aj
opätovne použiť pôvodné návestie.
Balík
\usepackage{amsmath} ... \begin{equation} a=b \label{eq1} \end{equation} ... Nezabudnite, že \begin{equation} a=b \tag{\ref{eq1}} \end{equation}Druhá inštancia ensuremath{a=b} tu bude vysádzaná s kópiou návestia prvej inštancie vytvorenou príkazom csx{tag}.
Vyčerpávajúcu dokumentáciu AMSLaTeXu nájdete v súbore
Součástí TeXových dokumentů mohou být obrázky. Protože pro obrázky existuje mnoho formátů, existuje i více způsobů, jak zařídit, aby se nám na daném místě dokumentu obrázek objevil. Obrázek se však nevkládá „přímo do zdrojového textu“. Do zdrojového textu se umístí volání makra, které vytvoří místo pro obrázek. Skutečný import obrazových dat provede posléze TeXový ovladač.
Obvykle používaný formát obrázků je
Vkládání bitmapových obrázků ve formátu
Někdy je třeba umístit obrázek dovnitř odstavce, na jednu stranu
textového zrcadla – takovým obrázkům říkáme obtékané.
Balík CTAN: picinpar definuje prostředí Další podobné balíky můžete v případě zájmu najít na CTANu (CTAN: wrapfig nebo CTAN: window).
Donald Knuth definoval logo TeXu jako konkrétní ukázku toho, co TeX umí. Žel, mnozí si však myslí, že tím přivodil záplavu různých log, jako například AMSTeX, PiCTeX, BibTeX atd. vytvořených pomocí velkého množství různých fontů, velikostí i základních linek — jistě vám to znepříjemní čtení. Lamport vymyslel logo LaTeX, což pak přirozeně vedlo ke vzniku nynějšího loga LaTeX 2e. Není však nutně třeba uvádět tato loga v jejich komplikovaném tvaru všude tam, kde se příslušný název vyskytne, avšak pro ty, kdo trvají na jejich použití, existuje v souboru CTAN: texnames veliké množství předdefinovaných log. Fonty loga METAFONTu mohou být přidány k fontům, které LaTeX 2e již zná (tak, že se pak může měnit jeho rozměr spolu s okolním textem) použitím balíku CTAN: mflogo. Při použití Knuthova fontu pro MetaPost však můžou nastat problémy (můžete dostat něco jako „META O T“). Nezoufejte, autor samotný používá jenom „MetaPost“.
Pro ty, kdo nepotřebují mít v dokumentu vysázená ta „správná“ loga,
stačí použít
Občas je třeba dvousloupcový článek opatřit jednosloupcovým výtahem. Nejlepším způsobem je použít následující trik: \documentclass[twocolumn]{article} ... \begin{document} ... % \author, etc \twocolumn[ \begin{@twocolumnfalse} \maketitle \begin{abstract} ... \end{abstract} \end{@twocolumnfalse} ]
Takto však nebude pracovat správně, použijete-li \title{Demonstration} \author{Me, You\thanks{}} \twocolumn[ ... to samé, co výše ... ] { \renewcommand{\thefootnote}% {\fnsymbol{footnote}} \footnotetext[1]{Thanks for nothing} }atd.
Alternativně můžete použít balík abstract (dostupný
z CTAN: abstract), který (kromě jiných
usnadnění práce s abstrakty) poskytuje k použití příkaz \twocolumn[ \maketitle \begin{onecolabstract} ... text \end{onecolabstract} ] \saythanks
LaTeX používá několik symbolických jmen, které vytvářejí automatický
text (nadpisy, tituly atd.). Např. část textu vysázená příkazem
Nicméně pro neanglického uživatele je přirozené používat babel, protože nabízí mnoho výhod a zpříjemňuje vytváření dokumentů v jejich přirozeném jazyce. Zvláště pokud v babelu vyberete jiný jazyk, tak vám zajistí, že LaTeXová symbolická jména budou vhodně překládána do vybraného jazyka podle vašeho pořadavku.
Bohužel výběr jmen v babelu nevyhoví vždy požadavkům uživatele,
proto je
třeba mechanismus pro náhradu standardních jmen. Kdykoliv
babel
vybere jiný jazyk, pak jsou všechna standardní jména přeložena právě do
tohoto jazyka. Babel zvláště vybírá hlavní jazyk dokumentu,
když je
vykonán příkaz \addto\captionczech{% \renewcommand{\contentsname}{Obsah}% }
Někteří neuroticky estetičtí programátoři považují „krásné“ zdrojové kódy za něco k nezaplacení. Správně strukturované zdrojové kódy však mají své místo při psaní disertačních prací studenty informatických i jiných věd, od kterých se očekává, že v budoucnosti budou programovat. Běžně se používá doslovné citování kódů. Doslovné vkládání kódů je však rozebíráno jinde (viz Otázku Doslovné (verbatim) vložení souboru v LaTeXu). Problém sazby specifikací algoritmů (otázka Sadzba pseudokódu v LaTeXu) je v tomto FAQ uveden také na jiném místě.
„Krásné“ kódy jsou generovány pomocí pre-compileru, avšak balík
Dobrým pre-compilerem je systém
Systém
Systém
Systém highlight (CTAN: highlight) je obecný konvertor
produkující formáty HTML, RTF a také TeX/LaTeX. Tvrdí
o sobě, že je vysoce přispůsobitelný, distribuce obsahuje definice mnoha
jazyků. Dokumentace je poskytována jako
Konsenzus týkajúci sa správnosti sadzby pseudokódu neexistuje. Máme teda na výber z množstva balíkov LaTeXu určených na tvorbu esteticky príjemných výpisov pseudokódu. Pseudokód sa od výpisu skutočného programu líši v tom, že nemá striktnú syntax ani sémantiku. Pseudokód má predstavovať čistú interpretáciu algoritmu, takže môže potrebovať použiť matematické zápisy, obrázky, tabuľky a iné vlastnosti LaTeXu, ktoré sa v tradičných programovacích jazykoch neobjavujú. Sadzba výpisov programov je opísaná na inom mieste (viď Otázku Výpisy zdrojových kódů v LaTeXu).
Určite si môžete na sadzbu pseudokódu vytvoriť vlastné prostredie, napríklad
pomocou prostredia
Sada
Balík
Balík
Poctivé použitie štýlu „Introduction to Algorithms“ dosiahneme Cormenovým
vlastným balíkom
Balík
Použitie balíku Žiadny z uvedených balíkov nie je dokonalý. Faktory, ktoré by mali ovplyvniť váš výber, sú preferovaný štýl výstupu, potreba rozšírenia alebo modifikácie kľúčových slov a potreba umiestniť algoritmy do plávajúceho prostredia ako obrázky a tabuľky . Dostupnosť dokumentácie:
algorithm2e.sty : CTAN: algorithm2esada algorithms : CTAN: algorithmsalg.sty : CTAN: algclrscode.sty : CTAN: clrscodefloat.sty : CTAN: floatnewalg.sty : CTAN: newalgprogram.sty : CTAN: program
Tento symbol („přeškrtnutý“ znak integrálu) není obsažen v žádném fontu, který by byl bežně dostupný uživatelům TeXu nebo LaTeXu, může však být vytvořen pomocí následujícího makra: \def\Xint#1{\mathchoice {\XXint\displaystyle\textstyle{#1}}% {\XXint\textstyle\scriptstyle{#1}}% {\XXint\scriptstyle\scriptscriptstyle{#1}}% {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}% \!\int} \def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$} \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}} \def\ddashint{\Xint=} \def\dashint{\Xint-}Pro sazbu jednou přeškrtnutého znaku integrálu se použije příkaz \dashint , pro sazbu dvakrát přeškrtnutého znaku použijeme
\ddashint .
Babel umí pracovat se širokou řadou jazyků, avšak občas se
stane, že nový
uživatel chce používat jazyk, který jeho instalace TeXu neumí
používat.
Např. požadavek Package babel Warning: No hyphenation patterns ... were loaded fo the language `Catalan'. ... I will use the patterns loaded for ... \language=0 instead.Problém je v tom, že TeX neví, jak dělit katalánská slova: musíte mu to říct dříve, než babel začne pracovat. V LaTeXové instalaci musíte přidat do souboru language.dat , který je součástí
babelovké
instalace, řádek catalan cahyphen.tex který, pokud odstraníte komentovací znaménko (%) , řekne LaTeXu, že
má
nahrát vzor pro katalánské dělení slov, pokud mu řeknete, aby vytvořil
nový formát. Bohužel, v mnoha babelovských distribucích právě tento
řádek není správný – musíte zkontrolovat jména souborů, obsahující
vzory, které se chystáte použít. Jak můžete vidět, v autorově systému
je očekáván soubor cahyphen.tex , ačkoliv jméno souboru, který je
v systému, je cahyph.tex . V lepších distribucích je většina
těchto souborů obsažena, chybějící soubory si můžete najít na CTANovském
archívu. Pokud si stáhnete nový soubor, zajistěte jeho korektní
instalaci (viz Otázku Instalace nových balíčků). Nakonec musíte obnovit
formáty,
které používáte (ve skutečnosti většina uživatelů používá
babel
v LaTeXových dokumentech, takže zde bude dost formátů, které bude
nutno upravit; nicméně uživatelé často opravují soubory, které s tímto
nemají nic společného).
POZOR: Je možné, že váš TeX skončí s chybovou hláškou týkající se
nedostatku paměti při vytváření nových formátů. Většina TeXových
implementací má na uchování dat týkajících se tohoto problému vyhrazeno
pole fixní délky. Pokud shledáte, že vám přetekla paměť, může
to být zásluha prohledávání seznamu dostupných jazyků ve vašem souboru
| |||
|