LaTeX/Tworzenie dokumentu

Jak wcześniej wspominaliśmy LATEX nie jest środowiskiem graficznym, kodowanie oparte jest na pisaniu zwykłego pliku tekstowego z odpowiednimi tagami jego formatowania. Nie bez przyczyny więc wiele osób próbuje tu przyrównywać składanie dokumentu do tworzenia strony WWW, czy raczej pisania programu komputerowego, gdzie podgląd dotychczas wykonanej pracy wymaga odpowiedniego dokończenia składni używanych funkcji w źródle i ewentualnego jego przetworzenia - kompilacji. Dlatego też nie należy się spodziewać specjalnych przycisków "Generuj LaTeX" czy "PDF", które wyręczą nas w wykonywaniu danych czynności ponieważ tworzenie polega najczęściej na ręcznym wpisaniu komend w linii wiersza poleceń, lub wpisania ścieżki dostępu kompilowanych plików dokumentu w odpowiednim programie. Mimo to, tak jak powstały setki programów GUI ułatwiających pracę z tworzeniem stron WWW, czy pomagających w pisaniu programów komputerowych tak i dla środowiska LATEX w obecnych czasach spotkać można całą gamę programów, wspomagających składanie dokumentów, które wyręczyć nas mogą w podstawowych czynnościach. Niektóre z tych programów opisane zostały w dziale oprogramowanie.

Ze względu na ich znaczną ilość i zróżnicowanie, zajmijmy się podstawowym sposobem generowania dokumentów.

Wszystkie dystrybucje LaTeXa wsparte są przez podstawowe aplikacje zwane generatorami lub profesjonalniej kompilatorami. Podstawę większości obecnie spotykanych dystrybucji stanowią przynajmniej programy:

  • tex: prosty kompilator, przekształcający plik TeX w DVI
  • pdftex: kompilator przekształcający plik TeX w dokument PDF
  • latex: najczęściej i domyślnie używany generator, który na podstawie pliku LaTeXa tworzy DVI
  • pdflatex: na bazie pliku LaTeX tworzy dokument PDF
  • dvi2ps: dokonuje konwersji pliku DVI do PostScriptu
  • dvipdfm: dokonuje konwersji pliku DVI do dokumentu PDF

Należy przypomnieć, że LaTeX tworzony był z myślą o tworzeniu przede wszystkim dokumentów DVI, a następnie PostScript. Kompilator PDFLaTeX jest załączany od pewnego czasu i w większości starszego lub dedykowanego oprogramowania nie musi być domyślnym składnikiem, a już tym bardziej domyślnym kompilatorem programów z interfejsem GUI.

Powyższe ostrzeżenie ma na celu zwrócić uwagę użytkowników używających środowisk GUI przed "czeskimi błędami" jakie wykonują przy tworzeniu plików PDF. Nagminnym jest bowiem m.in. tworzenie dokumentów LATEX z błędnym definiowaniem pliku. Przykładowo: Wiele osób po kompilacji dokumentu do DVI zgłasza brak grafik w podglądzie dokumentu PDF, czy zupełnie inny układ od przewidzianego. Zacznijmy od tego że DVI nie jest dokumentem PDF! Jest ono bowiem formatem graficznym dokumentu, obecnie traktowanym jako przejściowy, służącym do generacji końcowego pliku w formacie PostScript, umożliwiającym m.in. szybki podgląd wykonanej pracy - a jak napisaliśmy na wstępie PS bazuje na systemie wektorowym - stąd też powstaną optyczne różnice w wyglądzie i nawet układzie dokumentów pisanych z myślą o generacji w formacie PDF i tych pisanych pod PS. Aby podejrzeć plik PDF należy więc użyć kompilatora pdflatex, a następnie otworzyć tak powstały gotowy plik PDF by ujrzeć rezultat wykonanej pracy. Owszem dostępna jest konwersja DVI do PDF z użyciem dvipdfm jednakże to rozwiązanie nie jest zalecane, ponieważ posiada swoje wady.

Jak widać środowisko LaTeX oferuje nam całą gamę możliwości kompilacyjnych i konwersyjnych z pomocą różnych programów konwersyjnych wchodzących w skład pakietu. I tak możemy kompilować lub konwertować kolejno:

Możliwości konwersyjne i kompilacyjne
Możliwości konwersyjne i kompilacyjne

Powinniśmy tutaj zaznaczyć, że LaTeX jest zbiorem makr systemu TeX, stąd też prawidłowość iż dokumenty TeX można kompilować z użyciem środowiska LaTeX jest tylko jednostronna - co oznacza, że środowiskiem TeX nie uda nam się skompilować dokumentów napisanych w LaTeXu.

Generowanie dokumentu edytuj

Generowanie odbywa się z wiersza poleceń poprzez zwykłe podanie komend, oczywiście programy z graficznym interfejsem, mogą nas wyręczyć odpowiednim skrótem klawiszowym.

Generowanie pliku w konsoli odbywa się w identyczny sposób do kompilacji programów języka C z użyciem kompilatorów GCC, tzn.

  1. w konsoli, docieramy do katalogu w któym znajduje się nasz plik hello.tex, który chcemy wygenerować
  2. wpisujemy nazwę programu generującego (np. wygenerujemy DVI kompilatorem "latex")
latex hello
  1. Uwaga: pisanie rozszerzenia *.tex nie jest koniecznie - kompilator automatycznie postara się rozpoznać plik.
  2. po wpisaniu tej komendy ujrzymy informację zwrotną kompilatora, np.
Output written on hello.dvi (2 page, 464 bytes).
Transcript written on hello.log

Informacja ta zapisywana jest w pliku .log (opis w następnym akapicie).

Procedura kompilacji czy konwersji odpowiednich plików jest za każdym razem identyczna z podaną, wystarczy przebywając w aktywnym katalogu zawierającym pliki z poziomu konsoli wpisać polecenie

nazwakompilatora nazwapliku

aby uzyskać pożądany format dokumentu.

Jeśli wszystko przebiegło bez przeszkód - możemy oglądać wynik naszej pracy w pliku wizualnym DVI o nazwie hello.dvi, dowolną przeglądarką tego typu plików (wiele przegląarek PDF obsługuje również ten format). Czasami mogą pojawić się błędy w zależności od kompilatora powinny one zostać wyświetlone w informacji zwrotnej, a na pewno zostaną zarchiwizowane w logu: w tym przypadku pliku hello.log. Informacje o Logu i najczęściej pojawiających się wiadomościach opisane zostaną w dalszej części książki.

Generowanie pliku w GUI odbywa się prościej - poprzez zwykłe naciśnięcie odpowiedniego przycisku. Przed kompilacją jednak należy sprawdzić jaki aktualnie kompilator przypisany został jako domyślny, aby zaoszczędzić sobie niepotrzebnych nerwów. W zależności od programu plik log zawierający przebieg kompilacji i informacje o ewentualnych błędach jest zapisywany albo przy powstającym pliku albo w odpowiednim katalogu domyślnym programu.

Log i wiadomości edytuj

Za każdym razem gdy staramy się skompilować nasz dokument, niezależnie czy tworząc DVI czy plik PDF, debbuger (wbudowany najczęściej w kompilator) generuje listę wiadomości o ostrzeżeniach i wyjątkach jakie wystąpiły przed lub w trakcie kompilacji. W efekcie kompilacji otrzymujemy co najmniej jeden plik. Pożądane byłoby otrzymanie naszego przykładowego dokumentu "hello" - odpowiednio hello.dvi lub hello.pdf w zależności od użytego kompilatora. Jednakże ze względu na błędy jakie mogliśmy popełnić przy składaniu dokumentu proces kompilacji może przebiegać zupełnie inaczej niż zamierzyliśmy lub zakończyć się niepowodzeniem. Niezależnie od wyniku kompilacji zawsze pojawi się co najmniej jeden plik - noszący nazwę naszego dokumentu i rozszerzeniu .log (hello.log). W pliku tym zawarty jest zapis zawierający informacje o działaniach podjętych przez kompilator jak i zdarzeniach dotyczących błędów kompilacji. Dzięki temu możemy dowiedzieć się które elementy stały się problematyczne lub mogą spowodować różnice dokumentu skompilowanego od zamierzonego.

Plik .log precyzyjnie określa numer linii w której wystąpił błąd. Bardzo często oprócz tego zawiera dodatkowe informacje, które mogą nas naprowadzić na sposób jego rozwiązania. Ponadto .log zawiera najczęściej listę wszystkich użytych "paczek" w dokumencie łącznie z opisem jego klasy, ilości stron czy wielkości wyjściowej.

Jeśli kompilacja przebiegła bezproblemowo plik będzie miał postać dwulinijkowego komunikatu, typu:

Output written on hello.dvi (2 page, 464 bytes).
Transcript written on hello.log

W którym jak widać zapisane są nazwy powstałych w trakcie kompilacji plików, jak również ilość stron i rozmiar skompilowanego dokumentu.