| |||
Vyhledávání podle slov v CS-FAQ
Není možné vytvořit prostředí
Chceme-li využít výhod příkazu \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.
Je jistě 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. Zdrojové soubory fontu jsou v CTAN: amsfonts-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
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. 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 ).
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$
Chceme-li, aby nejvyšší úroveň číslovaného výčtu \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
Použijeme-li styl
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ží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
\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.
Standardní LaTeXový příkaz
Ve standardním LaTeXu se nadpisy tabulek centrují, zatímco tabulky se
sázejí od levého okraje. Je-li tabulka úzká, není výsledek estetický.
Řešením může být balík CTAN: caption2. Zarovnání nadpisu se pak
nastaví pomocí
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ů
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í a obsahu. K jejich potlačení musíte udělat toto:
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ří (
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 CTAN: fullpage,
který nastaví okraje stránky shodně s Lepší je však CTAN: vmargin, 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
Parametry
\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.)
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ě.
Obecnější prostředí, které rovněž umožňuje vypouštět části textu, CTAN: comment 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í.
Jednoduchým řešením tohoto problému je příkaz
Použije se příkaz \newcommand{\diag}{\mathop{\rm diag}}
Spodní a horní indexy funkce \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í
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šími podobnými balíky jsou 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.
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 {itabstract} (dostupný
z CTAN: abstract), který (kromě jiných
usnadnění práce s abstrakty) nabízí 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). ,,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
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 vyhraženo
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
| |||
|