diff options
Diffstat (limited to 'Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectS.html')
-rw-r--r-- | Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectS.html | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectS.html b/Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectS.html deleted file mode 100644 index 7f743523a42..00000000000 --- a/Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectS.html +++ /dev/null @@ -1,249 +0,0 @@ -<HTML> -<HEAD> -<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-2"> -<TITLE>Chyby v TeXu</TITLE> -<STYLE TYPE="text/css"> -<!-- - ol.section li { font-size:large;font-weight:bold;margin-top:1em; } - ul.question li { font-size:medium;font-weight:normal;margin-top:.2em; } ---> -</STYLE> -</HEAD> -<BODY BACKGROUND="images/back_narrow.gif" -BGCOLOR="#ffffff" -TEXT="#000000" -LINK="#900000" -ALINK="#C14242" -VLINK="#D30000"> -<TABLE BORDER=0> -<TR><TD width=30> </TD> -<TD><TABLE width="100%" BORDER=0> -<TR><TD valign="middle" align="center"><FONT SIZE="+2"><B>Chyby v TeXu</FONT></TD><TD align="right"> -<a href="http://www.cstug.cz/"><IMG BORDER=0 SRC="images/logo.gif" ALT="CSTUG" HEIGHT=51 WIDTH=165 ALIGN="right"></a><BR> -</TD></TR></TABLE></TD></TR> -<TR><TD></TD><TD></TD></TR> -<TR><TD></TD><TD><HR></TD></TR> - <TR><TD></TD><TD> - <P> - -<P> -Poněvadž TeX je makroprocesor, je často poměrně obtížné porozumět jeho -chybovým hláškám; to je bohužel vlastnost makroprocesorů. Knuth se -snažil vnést jasno do tohoto problému ve svém TeXbooku tím, že -uživatelům naznačil, aby získlali detektivní schopnosti moderního -Sherlocka Holmese; ačkoliv má tento přístup jakýsi romantický nádech, -není pro aktivní uživatele (La)TeXu příliš užitečný. Tato odpověď -(z části odvozená z článku Sebastiana Rathze z <I>TUGboatu</I> -Vol 16(4)) nabízí -obecnou radu, jak reagovat na chyby pomocí chybových zpráv a jiné -odpovědi v této sekci pojednávají o jiných bežných (ale matoucích) -chybách, se kterými se můžete v TeXu setkat. V Sebastianově článku se -objevuje obsáhlý seznam rad, v němž mimo jiné stojí: -<UL> - <LI> Podívejte se podrobně na chybu; některé chyby se nejprve mohou zdát -záhadné, ale často obsahují přímé vodítko k vyřešení problému. Pro další -detaily je dobré si pročíst následující otázku. - <LI> Přečtěte si soubor <CODE>.log</CODE>; obsahuje podrobnější informace o věcech, -kterým třeba nerozumíte, často nejsou předloženy jako chyby. - <LI> Buďte si vědomi množství souvislostí, které TeX obnáší. Chybové -hlášky vám dávají kousky TeXového kódu (nebo samotného dokumentu), -aby vám ukázal, kde se právě stala chyba, je možné zkontrolovat, kolik -těchto chyb se ve vašem dokumentu objevuje. Nyní LaTeX dává TeXu -pokyn, aby vám vypsal pouze jeden řádek z kontextu, avšak pokud chcete, -můžete mu říct, aby vypsal více řádků. To provedete umístěním příkazu -<CODE>\setcounter{errortextlines}{999}</CODE> v preambuli vašeho dokumentu. - <LI> Jako poslední východisko může být použítelným nástrojem trasování; -čtení celého dokumentu vás může velice rychle zavést ke zdroji vašeho -problému. Musíte si přečíst některé pasáže z TeXbooku -(viz Otázku <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>), -abyste tomuto problému zcela porozuměli. Příkaz <CODE>\tracingall</CODE> nastavuje -maximální trasování; nastavuje také výstup přicházející na interaktivní -terminál. Běžně je nejjednodušší pročíst trasování použitím vašeho -oblíbeného textového editoru k prohlížení <CODE>.log</CODE> souborů. -</UL> - -<P> -<P><A NAME="Q-errstruct"><HR><H3>Struktura chybových hlášek v TeXu</H3></A> - -<P> -TeXové chybové hlášky připomínají dobu, kdy byl TeX vymyšlen -(70. léta minulého století): k uživatelům nejsou příliš přátelské, ačkoliv -obsahují veškeré informace, které může TeX nabídnout, obvykle jsou -vyloženy přehledně a stručně. Všechny chybové hlášky mají v TeX{}u -stejnou strukturu: -<UL> - <LI> chybová hláška - <LI> kontext - <LI> stručný návod na řešení problému -</UL> -Chybová hláška uvede stav TeXu, který způsobil daný problém. Bohužel, -v soustavě balíků maker jako je LaTeX však bývá odhalení konkrétního -problému v makrech vyšší úrovně poměrně obtížné. Mnohé chyby, které se -v LaTeXu objevují, se tváří jako generické chyby s chybným textem -vloženým LaTeXem nebo jeho balíky. - -<P> -Kontext chyby je stylizovaná reprezentace toho, co TeX udělal, když -detekoval chybu. Jak bylo poznamenáno v Otázce <A HREF="sectS.html#Q-jaknane">Jak na chyby v TeXu?</A>, -makrobalíček může TeXu říct, jak dlouhý kontext má zobrazit. Každá -řádka kontextu je rozdělena v bodě chyby; pokud chyba ve skutečnosti -nastane v makru volaném z aktuální řádky, zlom nastane v bodě volání. -Pokud má makro parametry, tak se řádka zlomí až za posledním z nich. Např. -<BR> -<CODE>\blah and so on</CODE><BR> vyvolá chybu -<PRE> -! Undefined control sequence. -1.4 \blah - and so on -</PRE> -zatímco -<PRE> -\newcommand{\blah}[1]{\bleah #1} -\blah{to you} -</PRE> -má za důsledek hlášku -<PRE> -! Undefined control sequence. -\blah #1->\bleah - #1 -1.5 \blah{\bleah}, folks -</PRE> -Pokud chyba nastane v argumentu, pak se nám mohou objevit věci jako -např. po zadání -<PRE> -\newcommand{\blah}[1]{#1 to you} -\blah{\bleah}, folks -</PRE> -si můžeme přečíst -<PRE> -! Undefined control sequence. -<argument> \bleah - -<P> -1.5 \blah{\bleah} - , folks -</PRE> -Příkazový řádek akceptuje jednoznakové příkazy, jejichž seznam si -můžete nechat vypsat zadáním znaku <CODE>?</CODE>. Jedním z bezprostředně -nejdůležitějších příkazů je říkaz <CODE>h</CODE>, který vám dá na výstup přesnější -zprávu občas doplněnou pokynem, jak chybu odstranit, případně jak se -jí vyhnout. Pokud stisknete <CODE>enter</CODE>, nebo jinou klávesu, kterou váš systém -používá k ukončení řádky, TeX se pokusí pokračovat (často s poněkud -menším úspěchem.) - -<P> -<P><A NAME="Q-extrapz"><HR><H3>Pravá složená závorka navíc</H3></A> - -<P> -Viděli jste ve vašem LaTeXovém zdroji znak -„<CODE>}</CODE>“ -navíc a přesto LaTeX, -v tomto místě nehlásil chybu? Toto je způsob, jak říci TeXu, že jste -vložili křehký příkaz s pohyblivým argumentem (viz -Otázku <A HREF="sectR.html#Q-protect">Proč se v LaTeXu užívá ochran (protection)</A>). Příkladem takovéhoto křehkého příkazu je -třeba <CODE>\footnote</CODE>; pokud ho vložíte jako argument příkazu <CODE>\section</CODE>, -pak vám sekvence -<PRE> -\section{Mumble\footnote{I couldn't think of anything better}} -</PRE> -dá na výstup: -<PRE> -! Argument of \@sect has an extra }. -</PRE> -Obvykle se tato situace řeší použitím robustního příkazu namísto toho, -který používáte nebo přeměnit váš příkaz na robustní pomocí prefixu -<CODE>\protect</CODE>, který ve výše zmíněném případě může vypadat takto: -<PRE> -\section{Mumble\protect\footnote{I couldn't think of anythimg better}}. -</PRE> -Na závěr ještě jedna poznámka: <CODE>\protect</CODE> vždy nemusí být řešením, -Otázka <A HREF="sectO.html#Q-pozntab">Poznámky pod čarou v tabulkách</A> popisuje jednotlivé případy. - -<P> -<P><A NAME="Q-nenimisto"><HR><H3>Není místo pro přidání nových věcí</H3></A> - -<P> -Technologie, která byla Knuthovi dostupná v době, kdy vytvářel TeX, -příliš neumožňovala spravovat dynamické paměti; většinou jsou místa -v paměti v TeXu alokována jako pole pevné délky. Mnoho těchto fixovaných -polí je v moderních implementacích TeXu rozšiřitelných, avšak velikost -polí těchto registrů je obecně omezena počtem 256; většinou nemůže být -změněna, pokud stále budete chtít zavolat výsledky TeXu (viz -Otázku <A HREF="sectB.html#Q-LaTeXwhat">Co je to LaTeX</A>). -Pokud naplníte jeden z těchto registrů, můžete dostat chybovou hlášku -<PRE> -! No room for a new \<thing>. -</PRE> -Zde se místo <CODE>\<thing></CODE> může objevit <CODE>\count</CODE> (objekt, který tvoří -základ příkazu <CODE>\newcounter</CODE>), <CODE>\skip</CODE> (objekt, který tvoří základ -příkazu <CODE>\newlength</CODE>), <CODE>\box</CODE> (objekt, který tvoří základ příkazu -<CODE>\newsavebox</CODE>), <CODE>\dimen</CODE>, <CODE>\muskip</CODE>, <CODE>\toks</CODE>, <CODE>\read</CODE>, -<CODE>\write</CODE> nebo <CODE>\language</CODE> (všechny typy balíků, které se zde -používají, jsou v LaTeXu skryté; limit počtu objektů -<CODE>\read</CODE> a <CODE>\write</CODE> je omezen číslem 16). - -<P> -Není zde žádná možnost, jak -tuto chybu přímo opravit, nemůžete totiž přímo zvětšit počet dostupných -registrů, aniž by to učinil přímo LaTeX. (Jistě, Omega -a e-TeX – viz Otázku <A HREF="sectT.html#Q-omega">Projekt Omega</A> respektive -Otázku <A HREF="sectT.html#Q-NTS">Projekt <I>NTS</I></A> – to umí, stejně jako VTeX firmy -MicroPress Inc – viz Otázku <A HREF="sectF.html#Q-commercial">Komerční implementace TeXu</A>). Nejobecnější -způsob, jak se setkat s jednou z těchto chyb, je použít nefunkční makro -nebo použít dobré makro na špatném místě (případy jsou diskutovány -v Otázce <A HREF="sectS.html#Q-epsfbit"><CODE>epsf</CODE> přestává po jisté době spolupracovat</A>). Nicméně občas potřebujete více, než vám -TeX může nabídnout, pokud se tak stane, -musíte použít jiný způsob vytvoření objektů. Příkladem je složitější -nahrávání PiCTeXu v LaTeXu (viz Otázku <A HREF="sectR.html#Q-picerror">Proč nemůžu nahrát PiCTeX</A>). - -<P> -<P><A NAME="Q-epsfbit"><HR><H3><CODE>epsf</CODE> přestává po jisté době spolupracovat</H3></A> - -<P> -Zdá se, že některé kopie dokumentace <CODE>epsf.tex</CODE> naznačují, že příkaz -<CODE>\input epsf</CODE> je potřebný pro každý vložený symbol. Pokud vezmete toto -doporučení příliš doslovně, pak se vám za chvíli objeví chyba -<PRE> -! No room for a new \read. -</PRE> -Je to protože pokaždé, když se <CODE>epsf.tex</CODE> nahrává, je alokován nový -handle pro soubor určený pouze pro čtení, který kontroluje tento soubor -a pak zde není dost místa pro další věci (viz -Otázku <A HREF="sectS.html#Q-nenimisto">Není místo pro přidání nových věcí</A>). Řešení je jednoduché – toto je totiž -případ nesprávného použití maker; každý -totiž potřebuje číst <CODE>epsf.tex</CODE> pouze jednou, změňte tedy -<PRE> -... -\input epsf -\epsffile{...} -... -\input epsf -\epsffile{...} -atd. -</PRE> -na -<PRE> -\input epsf -</PRE> -kdesi na začátku dokumentu a pak doplňte váš příkaz <CODE>\epsffile</CODE> -přizpůsobením velikosti pomocí příkazu <CODE>\epsfxsize</CODE>. - -<P> - -<P> - -<P><HR></TD></TR> -<TR><TD></TD><TD><TABLE BORDER=0><TR> -<TD valign=middle align=left> -<a href="http://www.cstug.cz/"> -<IMG BORDER=0 SRC="images/logo.gif" - ALT="CSTUG" HEIGHT=51 WIDTH=165 ALIGN="right"><BR> -</TD><TD valign=top align=left><FONT SIZE="-1"> -(c) 1997, 1998, 2003 -Tomáš Hudec, Libor Škarvada -<BR> -Poslední aktualizace: 13.11.2004 23:15 -</FONT></TD></TR></TABLE></TD></TR></TABLE> - -</BODY> -</HTML> |