Kun asiat menevät pieleen

LaTeXin tapa reagoida virheisiin ei ole ihan sellainen kuin mihin 2020-luvun ohjelmoija on tottunut, ja oletuskäyttäytyminen on hyvinkin erikoinen. Mietit jo ehkä sitäkin, miksi käännöskomento oli niin mutkikas: mihin tarvittiin -interaction=nonstopmode?

Puuttuva loppu

Kokeillaanpa. Tehdään dokumenttiin pieni virhe ja jätetään lopusta \end{document} pois. Aloita puhtaalta pöydältä ja poista kaikki tiedostot. Kirjoita nimellä lapio.tex tällainen dokumentti:

\documentclass{article}
\begin{document}
Testi

Yritä nyt kääntää tätä seuraavalla komennolla:

pdflatex lapio.tex

Mitä tapahtui?

Kokeillaan nyt, mitä -interaction=nonstopmode vaikuttaa. Käytetään samaa virheellistä dokumenttia ja käännetään se nyt näin:

pdflatex -interaction=nonstopmode lapio.tex

Mitä tapahtui?

Kumpikaan ei taida olla ihan sellainen lopputulos, jota haluaisimme nähdä, mutta jälkimmäinen lienee hiukan vähemmän mystinen. Käytämme siis toistaiseksi kokeiluissamme komentoa pdflatex -interaction=nonstopmode lapio.tex.

Puuttuva alku

Tehdään vielä muutama kokeilu. Mitä tapahtuu, jos unohdetaankin \begin{document}? Luo siis tällainen virheellinen dokumentti:

\documentclass{article}
Testi
\end{document}

Ja käännä se näin:

pdflatex -interaction=nonstopmode lapio.tex

Mitä tapahtui?

Kun oikein tarkasti lukee LaTeXin tulostetta, joskus siellä on hyödyllistäkin tietoa. LaTeX itseasiassa onnistui kyllä kertomaan, missä kohtaa vika tarkalleen ottaen oli. Kun katsot tulostetta, näet siellä myös tällaisen pätkän:

l.2 T
     esti

Ollaan siis tiedoston rivillä 2 (l.2), ja rivinvaihdolla on merkitty ongelman tarkka paikka: LaTeX on juuri saanut luettua kirjaimen "T" ja seuraavaksi olisi vuorossa "esti", mutta jo tässä T-kirjaimen kohdalla LaTeX ei tiennyt, mitä tehdä. LaTeX ei odottanut tavallista tekstiä ennen \begin{document}-komentoa, eikä tiedä, mitä sille tekisi.

Puuttuva sisältö

Kokeillaan vielä tällaista dokumenttia, josta puuttuu kokonaan sisältö:

\documentclass{article}
\begin{document}
\end{document}

Huolehdi taas, että aloitat puhtaalta pöydältä ja hakemistossa ei ole mitään muuta kuin pelkkä lapio.tex-tiedosto. Käännä tiedosto näin:

pdflatex -interaction=nonstopmode lapio.tex

Mitä tapahtui? Valitse paras vastine:

Nämä kokeilut virheellisten dokumenttien kanssa on hyvä pitää mielessä jatkossa, jos törmäät LaTeXin kanssa mystisiin virhetilanteisiin.

Palautusta lähetetään...