Praca dyplomowa w LaTeX-u

Zacznę od pewnej historii, która wydarzyła się lat temu dziesięć. Około 22 zapukała do mnie bliska załamania nerwowego koleżanka, która za kilka godzin miała oddać pracę magisterską. Niestety - ponieważ "formatowała" plik głównie za pomocą spacji i tabulatur, po wyjustowaniu i wstawieniu paru poprawek oraz ilustracji, wszystko, ale to wszystko, się rozjechało. Nie było choćby jednego elementu, który wydawałby się być na swoim miejscu: przypisy, tabele, ilustracje, podpisy do tych elementów... Prawie pół nocy zajęło przywrócenie tego tekstu do jako takiego stanu.
Oczywiście, winna była przede wszystkim jej ignorancja, brak podstawowej wiedzy na temat obsługi edytorów tekstu. Nie wiem czy jest to obecnie w programie nauczania w szkołach, ale z pewnością być powinno. Każdy w dzisiejszych czasach powinien wiedzieć, że tekst się formatuje za pomocą odpowiednich poleceń. Ale tak naprawdę, w edytorach typu WYSIWYG (MS Word, LibreOffice Writer), kontrola nad tekstem jest tylko częściowa. Otworzenie pliku na innym komputerze, jeżeli stosowaliśmy niestandardowe czcionki i na przykład format strony, może być wydarzeniem traumatycznym.
W te wakacje pisałem - kolejną już - pracę dyplomową. Postanowiłem przy tej okazji nauczyć się obsługi środowiska do profesjonalnego składu tekstu - LaTeX-u (laj-tek-u, nie lateksa ;-) ). Mam za sobą redakcję i edycję już kilku tekstów tego rodzaju z magisterką włącznie, z grubsza wiedziałem więc, co będzie mi potrzebne:


  • Kontrola marginesów,
  • edytowalne paginy (nagłówki i stopki),
  • listy i enumeracje,
  • automatyczny spis treści na podstawie nagłówków,
  • automatyczne bibliografia na podstawie cytowań,
  • obsługa tabel,
  • obsługa wstawianych ilustracji,
  • itp...

Wiem, że wszystko to można byłoby mieć w LibreOffice, ale wiedziony ciekawością spróbowałem napisać - niezbyt długą, stustronicową rozprawę właśnie w LaTeX-u.

What you mean, is what you get

Czym różni się od innych edytorów? Po pierwsze filozofią działania oraz zastosowaniem.
LaTeX jest przeznaczony do tworzenia prac, które mają przyjąć formę DRUKOWANĄ - czy to w postaci wydruku rzeczywistego, czy też w formie plików przenośnych, np. PDF.
Użytkownik posiada absolutnie pełną kontrolę nad tym, jak jego plik będzie wyglądał po wydrukowaniu. Efekt osiągany jest poprzez system znaczników. Otóż pliki tworzone w LaTeX-u, są czystymi tekstowymi plikami ASCII, zawierającymi tekst oraz znaczniki formatowania, które należy skompilować do PDF. Dzięki temu świetnie złożone książki można pisać chociażby w vi czy nano, a nawet windowsowym notatniku. Oczywiście, raczej nikt nie korzysta z takich możliwości, są bowiem dostępne bardzo dobrej jakości IDE do LaTeX-u. Ja używałem TexMakera, który znacząco ułatwił mi pracę: podświetla elementy składni, ułatwia odnalezienie bloków kodu, co w przypadku zagnieżdżonych enumeracji sprawdza się doskonale, wyświetla podgląd wyjściowego pliku obok kodu, zawiera kreatory, na przykład tabel. O skrótach, dzięki którym tekst kompiluje się w locie i mamy prawie efekt WYSIWYG nie wspomnę.

Korzyści

LaTeX w procesie tworzenia tekstu pełni rolę zecera. My - jako autorzy (dostawcy tekst) i redaktorzy (wydający polecenia, na przykład gdzie wstawić akapit, gdzie tekst ma być pogrubiony, a gdzie pochylony, itp.) w jednej osobie - możemy złożyć na naszym zecerze najbrudniejszą robotę. LaTeX (kierując się wskazówkami od edytora, czyli naszym kodem) podejmie decyzję, na przykład gdzie przełamać linię lub stronę, czy przenieść tekst. Ponieważ domyślny układ został stworzony przez prawdziwych redaktorów i zecerów, otrzymujemy dokument wysokiej klasy.

Wsparcie

LaTeX jest wykorzystywany głównie w środowiskach naukowych i wśród profesjonalistów zajmujących się składem tekstu. Posiada zatem doskonałą dokumentację (również w języku polskim, zwłaszcza wspaniałe ,,Nie za krótkie wprowadzenie...'') oraz, co bardzo przypomina mi środowisko Debiana, przyjazną wspólnotę. Nie zdarzyło się, abym nie mógł znaleźć rozwiązania jakiegokolwiek problemu. Chwila googlania, i odpowiedź się znajdowała - najczęściej na StackExchange.

Jak to wygląda w praktyce

Minimalny wpis wygląda mniej więcej tak:


\documentclass{article} 
\begin{document} 
Hello world! 
\end{document}

Lista enumeratywna


\begin{itemize}
\item Coś
\item CośCoś
\item CośCośCoś
\edn{itemize}

Podobnie wyglądałoby wyliczenie, użyłbym po prostu \begin{enumerate}. Oczywiście, mogę zmodyfikować polecenie, tak aby, zamiast kropek w wyliczeniach były jakieś inne znaki, mogę modyfikować odstępy między poszczególnymi elementami oraz akapitami poprzedzającym i następującym...

Jeżeli mamy stworzoną bibliografię, ręcznie albo za pomocą oprogramowania zewnętrznego, na przykład Zotero, możemy używać cytowań w tekście, a LaTeX sam złoży nam bibliografię, jedynie z użytych w tekście źródeł. Odpada zatem jedna z większych bolączek każdej pracy dyplomowej. Nie muszę chyba dodawać, że sam wybierasz jak będzie wyglądała zarówno bibliografia, jak i samo cytowanie w tekście. Ja używałem spolszczonego APA-like. Cytowania były dziecinnie proste:


\cite[s. 49]{grabowska_neurobiologiczne_2012}

Dawało w tekście finalnym: (Grabowska i Jednoróg, 2012, s. 49). Dzięki temu, że baza źródeł była zdefiniowana, LaTeX wiedział do jakiego źródła odnosi się wpis grabowska_neurobiologiczne_2012.

Samą bibliografię wstawia się za pomocą zwykłego wpisu w odpowiednim miejscu:


\bibliography{nazwa_pliku_źródłowego}

Spis treści podobnie:


\addtocontents{toc}

Oczywiście, dodając pewne parametry, można zadecydować, że na przykład niektóre elementy w pisie treści mają być obecne, ale bez kropek pomiędzy nazwą a numerem strony.

Wstawianie ilustracji? Żaden problem:

\includegraphics[width=\textwidth]{./Obrazy/Arkusz-0.png

W tym przykładzie użyłem modyfikatora, który nakazuje naszemu zecerowi dopasowanie szerokości ilustracji do szerokości łamu.

Najbardziej skomplikowane były dla mnie tabele, jednak samo tworzenie ich w np. LO Writerze jest znacznie prostsze. Ale również W LaTeX-u da się zrobić wszystko: łączyć komórki, bawić się obramowaniami, itp.

Warto?

Zależy do czego. Do dłuższych prac na pewno. LaTeX pomaga w pewnym momencie zapomnieć o edytorskiej stronie naszej pracy. Dobrze ustawiony plik główny, spisana baza źródeł, opanowany TexMaker pozwolił mi w końcu zapomnieć o stresie, że coś może się rozjechać wyglądać źle po wydrukowaniu. Niemniej, wymagało ode mnie sporo wysiłku, aby przestawić swoje myślenie, przeczytać wprowadzenie do środowiska i nauczyć się korzystać z forum (na marginesie dodam, że nie musiałem ani razu pytać, na wszystkie moje wątpliwości, ktoś już udzielił odpowiedzi). Poza tym, kodowanie w LaTeX-u to dla każdego pasjonata programowania prawdziwa przyjemność. Moim zdaniem jednak, środowisko nie nadaje się dla zupełnie zielonych użytkowników nietechnicznych. Zupełnie jak z Uniksem: LaTeX is user friendly. It is just choosy about who its friends are...