Jak ud∞lßm <I>X</I> v TeXu nebo LaTeXu?
   
Jak ud∞lßm X v TeXu nebo LaTeXu? CSTUG


Prost°edφ d∙kaz (proof)

Nenφ mo╛nΘ vytvo°it prost°edφ proof (matematick² d∙kaz), kterΘ by umo╛≥ovalo automatickΘ vklßdßnφ znaΦky konce d∙kazu. N∞kterΘ d∙kazy konΦφ ve vysazenΘ (displayed) matematice, jinΘ nikoli. Jestli╛e vstup obsahuje ...\] \end{proof} pak LaTeX ukonΦφ vysazenou matematiku a je p°ipraven sßzet nov² °ßdek, ani╛ by p°edtφm Φetl jakoukoli informaci spojenou s ukonΦenφm d∙kazu. ZnaΦka konce d∙kazu se tedy vysßzφ na nov² °ßdek, av╣ak podle tradic sazby se na nov² °ßdek sßzet nemß, a proto je ho t°eba p°i psanφ ka╛dΘho d∙kazu vklßdat ruΦn∞.


MatematickΘ v∞ty a definice sßzenΘ antikvou

Chceme-li vyu╛φt v²hod p°φkazu \newtheorem, a p°itom nechceme b²t omezeni na to, ╛e obsah bude vysßzen sklon∞n²m fontem (nap°. k vytvo°enφ poznßmek, p°φklad∙, d∙kaz∙,...) pak pou╛ijeme styl theorem.sty (CTAN2etools). Pop°φpad∞ m∙╛eme definovat prost°edφ, nap°. remark, jeho╛ obsah bude sßzen antikvou (roman):

  \newtheorem{preremark}{Poznßmka}
  \newenvironment{remark}%
    {\begin{preremark}\rm}{\end{preremark}}
Prost°edφ nebude sprßvn∞ fungovat v p°φpad∞, ╛e mimo LaTeX 2e (nov² standard LaTeXu) pou╛ijeme Makro NFSS (The New Font Selection Scheme). P°φkaz \rm mß toti╛ v tomto p°φpad∞ odli╣n² v²znam.


OznaΦenφ Φφseln²ch mno╛in

Je jist∞ dobrΘ mφt p°φkazy typu \R pro standardnφ mno╛inu reßln²ch Φi jin²ch Φφsel. TradiΦn∞ byly tyto mno╛iny sßzeny tuΦn∞. Matematici v╣ak obvykle nemajφ p°φstup k tlust²m k°φdßm, a proto si vymysleli specißlnφ symboly, kterΘ se nynφ b∞╛n∞ pou╛φvajφ pro oznaΦenφ \R, \C, atd. Tyto symboly jsou oznaΦovßny jako ,,zdvojenß latinka`` (blackboard bold). D°φve, ne╛ zaΦneme trvat na pou╛itφ t∞chto symbol∙, bylo by dobrΘ se zamyslet, zda by nebylo lΘpe se navrßtit k p∙vodnφmu oznaΦovßnφ Φφseln²ch mno╛in prost²m tuΦn²m pφsmem, co╛ by Φinilo v∞c daleko jednodu╣╣φ.

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. ZdrojovΘ soubory fontu jsou v CTANamsfonts-symbols

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 tech-support@math.ams.org.

Jinß ·plnß sada font∙ zdvojenΘ latinky, rodina font∙ bbold, je dostupnß ve zdrojov²ch souborech pro METAFONT v adresß°i CTANbbold. 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.

Lze vytvo°it jednoduchß makra pro tvorbu zdvojenΘ latinky:

  \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}}}
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).


Jak vysßzφm znaΦku stupn∞ v TeXu

Pomocφ makra \degree definovanΘho takto: \newcommand{\degree}[1][]{\ensuremath{{#1}^\circ}}


Jak vysßzφm ,,st°edoevropskΘ`` uvozovky

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 \uv: v~\uv{na╣ich} uvozovkßch. Makro \uv je souΦßstφ balφk∙ czech.sty a slovak.sty.

Lep╣φm a obecn∞j╣φm °e╣enφm je makro Tomß╣e Hßly \uviq, kterΘ dovoluje uvozovanΘ texty vno°ovat. Toto makro je souΦßstφ distribuce CSTeX.


Chci desetinnou Φßrku mφsto teΦky

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: $3{,}14159$.

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$


OznaΦovßnφ polo╛ek v²Φt∙

Chceme-li, aby nejvy╣╣φ ·rove≥ ΦφslovanΘho v²Φtu enumerate byla oznaΦena ,,I/``, ,,II/``, ..., musφme pou╛φt p°φkazy:

   \renewcommand{\theenumi}{\Roman{enumi}}
   \renewcommand{\labelenumi}{\theenumi/}
Mo╛nΘ styly Φφslovßnφ jsou popsßny v oddφle 6.3 Lamportova manußlu (viz Knihy o TeXu a p°φbuznß literatura). Jsme-li pohodlnφ a po zm∞n∞ \labelenumi provedeme pouze jedno zpracovßnφ LaTeXem, budou na╣e k°φ╛ovΘ odkazy chybnΘ.

Pro ni╛╣φ ·rovn∞ v²Φtu enumerate je t°eba zam∞nit enumi v p°edchozφm p°φklad∞ za enumii, enumiii Φi enumiv, podle ·rovn∞, kterou chceme upravovat. Je-li novΘ oznaΦenφ polo╛ky ╣ir╣φ ne╛ oznaΦenφ p∙vodnφ, je takΘ t°eba zm∞nit \leftmargini, \leftmarginii atd.

Pou╛ijeme-li styl enumerate.sty (CTAN2etools) pro LaTeX 2e, kter² °e╣φ obdobn² problΘm, zφskßme stejn² v²sledek jako p°edchozφm p°φklad∞ tak, ╛e na zaΦßtek v²Φtu umφstφme p°φkaz \begin{enumerate}[I/].


NeΦφslovanΘ oddφly v obsahu

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 secnumdepth, kter² je popsßn v dodatku C manußlu LaTeXu. Nap°φklad:

    \setcounter{secnumdepth}{-1}
    \chapter{P°edmluva}
Samoz°ejm∞, ╛e p°ed op∞tovn²m pou╛φtφm ΦφslovanΘho oddφlu je pot°eba nastavit parametr secnumdepth zp∞t na jeho obvyklou hodnotu (ve standardnφch stylech 2).

Nßsleduje vysv∞tlenφ. Pou╛ije-li se \chapter bez hv∞zdiΦky:

  1. vlo╛φ se n∞co do .toc souboru;
  2. je-li ΦφtaΦ secnumdepth v∞t╣φ nebo roven nule, zv∞t╣φ se ΦφtaΦ kapitoly o jedniΦku a vysßzφ se jeho hodnota.
  3. vysßzφ se nßzev kapitoly.
Ostatnφ p°φkazy na rozd∞lovßnφ textu (\section, \subsection,...) pracujφ obdobn∞, av╣ak testujφ jinou hodnotu.


Vzhled nadpis∙

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; \@ a @ ve jmΘnech maker samotnΘ je diskutovßno pod `@'). Nßsledujφcφ trik pravd∞podobn∞ editory uspokojφ. Nov∞ definovanΘ p°φkazy \ssection\ssubsection:

  \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∞.


Odsazenφ odstavce po nadpisu

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 indentfirst.sty (CTAN2etools), pak se tento mechanismus potlaΦφ, tak╛e prvnφ odstavec bude odsazen.


Zm∞na okraj∙ v LaTeXu

Nem∞≥te okraje v LaTeXu, nauΦte se LaTeX, napi╣te n∞kolik dokument∙ a teprve potΘ se zkuste zeptat znovu: ,,Jak zm∞nφm okraje v LaTeXu``.

Nikdy nelze zm∞nit skuteΦnΘ okraje dokumentu pomocφ programu, jeliko╛ velikost okraj∙ zßvisφ na konkrΘtnφ velikosti pou╛itΘho papφru, kterß se m∙╛e li╣it od velikosti, se kterou pracuje poΦφtaΦ (nap°φklad standardnφ americk² papφr mß jinou ╣φ°ku ne╛ papφr formßtu A4). Co v╣ak lze m∞nit, jsou vzdßlenosti od domn∞lΘho hornφho a levΘho okraje papφru a ╣φ°ka a v²╣ka textovΘho zrcadla. Zm∞na ╣φ°ky a v²╣ky textu vy╛aduje daleko vφce zruΦnosti, ne╛ by se dalo Φekat. V²╣ka textu by m∞la mφt jist² vztah ke vzdßlenosti po sob∞ nßsledujφcφch ·Φa°φ (\baselineskip). ⌐φ°ka by nem∞la b²t v∞t╣φ ne╛ 75 znak∙. Lamportova upozorn∞nφ v kapitole ,,Customizing the Style`` bychom m∞li brßt vß╛n∞. JednopalcovΘ okraje na papφru formßtu A4 jsou vhodnΘ pro psanφ na stroji, ale nehodφ se pro sazbu desetibodov²m pφsmem, jeliko╛ tolik znak∙ na jednom °ßdku zhor╣uje Φitelnost.


Trvßnφ na zm∞n∞ okraj∙ v LaTeXu

V tΘto odpov∞di se nejprve nauΦφme zm∞nit okraje v celΘm dokumentu, potΘ se dozvφme, jak zm∞nit okraje jenom v jeho Φßsti.

Snad nejsnaz╣φm zp∙sobem, jak zφskat vφce mφsta na strßnce, je pou╛φt stylu CTANfullpage, kter² nastavφ okraje strßnky shodn∞ s plain TeXem, t.j.  jednopalcovΘ okraje od v╣ech Φty° stran papφru. Krom∞ standardnφho americkΘho formßtu obsahuje i nastavenφ pro formßt A4.

Lep╣φ je v╣ak CTANvmargin, kter² obsahuje nadefinovanou mno╛inu velikostφ papφru (nadmno╛inu t∞ch, je╛ obsahuje LaTeX 2e), mo╛nost definovßnφ vlastnφ velikosti papφru, nastavenφ okraj∙ a podporu dvoustrannΘho tisku.

Nßsleduje krßtkΘ vysv∞tlenφ parametr∙ popisujφcφch strßnku v LaTeXu. Podrobnosti jsou probrßny v oddφle C.5.3 manußlu LaTeXu (str. 181-182). PoΦßtek sou°adnΘho systΘmu dvi souboru je jeden inch od hornφho a jeden inch od levΘho okraje papφru. To vysv∞tluje, proΦ v manußlu LaTeXu je pou╛φvßno soustavn∞ o jeden inch mΘn∞. V sou°adnΘm systΘmu dvi souboru rostou kladnΘ hodnoty vpravo v horizontßlnφ a dol∙ ve vertikßlnφ ose. Proto chceme-li, aby okraje textu byly blφ╛e ne╛ jeden inch k levΘmu nebo hornφmu okraji, musφ b²t hodnoty odpovφdajφcφch parametr∙, t.j. \evensidemargin, \oddsidemargin, \topmargin, zßpornΘ.

Parametry \topmargin, ... neumo╛≥ujφ zm∞nit velikosti okraj∙ uvnit° dokumentu, lze je m∞nit pouze v preambuli zdrojovΘho textu, t.j. p°ed p°φkazem \begin{document}. K nastavenφ okraj∙ uvnit° dokumentu lze definovat prost°edφ:

\newenvironment{changemargin}[2]{%
 \begin{list}{}{%
  \setlength{\topsep}{0pt}%
  \setlength{\leftmargin}{#1}%
  \setlength{\rightmargin}{#2}%
  \setlength{\listparindent}{\parindent}%
  \setlength{\itemindent}{\parindent}%
  \setlength{\parsep}{0pt plus 1pt}%
 }%
\item[]}{\end{list}}

Prost°edφ umo╛≥uje odsadit text zleva a zprava o hodnoty uvedenΘ v jeho prvnφm a druhΘm parametru. ZßpornΘ hodnoty vedou k z·╛enφ okraje; nap°φklad \begin{changemargin}{-1cm}{-1cm} z·╛φ lev² a prav² okraj o 1cm. (Je t°eba upozornit, ╛e hodnota 0pt plus 1pt p°i°azenß \parsep je zßkladnφ hodnotou pro LaTeX; sprßvn∞ by tam v╣ak m∞la b²t hodnota stejnß jako v okolnφm textu.)


Zji╣t∞nφ ╣φ°ky pφsmene, slova nebo souslovφ

Slovo se vlo╛φ do boxu a potΘ se zjistφ ╣φ°ka tohoto boxu. Nap°φklad:

  \newdimen\stringwidth
  \setbox0=\hbox{hi}
  \stringwidth=\wd0
Je t°eba v╣ak mφt na pam∞ti, ╛e je-li v \hboxu 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∞.


VylouΦenφ Φßsti textu z .dvi souboru

verbatim.sty Rainera Sch÷pfa zavßdφ prost°edφ comment, kterΘ umo╛≥uje Φßst textu mezi \begin{comment}\end{comment} oznaΦit jako komentß° a tedy vylouΦit z .dvi. Balφk lze nalΘzt na CTANu v adresß°i CTAN2etools.

Obecn∞j╣φ prost°edφ, kterΘ rovn∞╛ umo╛≥uje vypou╣t∞t Φßsti textu, CTANcomment Viktora Eijkhouta, nabφzφ navφc jednoduchΘ prost°edky pro definici vlastnφch prost°edφ pro ponechßnφ nebo p°eskoΦenφ Φßsti textu v dokumentu, p°iΦem╛ lze nastavit, zda prost°edφ prßv∞ slou╛φ pro ponechßnφ textu nebo jeho vynechßnφ.


Definice nov²ch oznaΦenφ matematick²ch funkcφ v LaTeXu

Pou╛ije se p°φkaz \mathop podobn∞ jako v tomto p°φklad∞:

  \newcommand{\diag}{\mathop{\rm diag}}

Spodnφ a hornφ indexy funkce \diag budou umφst∞ny obdobn∞ jako u \lim (limita). K tomu, aby indexy byly v╛dy umφst∞ny vpravo od oznaΦenφ funkce, se pou╛ije tato definice:

  \newcommand{\diag}{\mathop{\rm diag}\nolimits}

Tyto definice fungujφ pouze v LaTeXu 2e a LaTeXu 2.09, av╣ak nelze je pou╛φt spolu s NFSS (viz PodivnΘ chovßnφ \rm, \bf, atd.). V LaTeXu 2e lze problΘm °e╣it i tak, ╛e se pou╛ije p°φkaz \operatornameamstex.sty, kterΘ je souΦßstφ AMSLaTeXu (CTANamslatex).


Sazba nßzv∙ program∙ pou╛φvan²ch spolu s TeXem

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. 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 CTANtexnames 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 CTANmflogo.

Pro ty, kdo nepot°ebujφ mφt v dokumentu vysßzenß ta ,,sprßvnß`` loga, staΦφ pou╛φt AMS-\TeX{} (AMS-TeX) namφsto AMSTeX, Pic\TeX{} (PicTeX) namφsto PiCTeX, Bib\TeX{} (BibTeX) namφsto BibTeX, atp.


CSTUG
(c) 22.10.1999 13:30 Libor ⌐karvada, Tomß╣ Hudec, Ale╣ Vφtek
P°ipomφnky, opravy a zejmΘna odpov∞di na dal╣φ ΦastΘ otßzky posφlejte na adresu cstug-faq@cstug.cz
P°ipomφnky k HTML verzi posφlejte na adresu libor@fi.muni.cz nebo hudec@fi.muni.cz.