Wprowadzenie do pracy z literaturą naukową: wprowadzenie do LaTeXa
Table of Contents
- 1. LaTeX
- 1.1. Co to jest LaTeX
- 1.2. Prosty dokument w LaTeXu
- 1.3. Najważniejsze elementy składni
- 1.4. Klasa dokumentu
- 1.5. Podział dokumentu na mniejsze pliki
- 1.6. Pakiety
- 1.7. Repozytorium pakietów
- 1.8. Struktura dokumentu
- 1.9. Odnośniki
- 1.10. Przykład dokumentu z etykietami
- 1.11. Konwencje nadawania etykiet
- 1.12. Proces kompilacji
- 1.13. Wyjście kompilacji
- 1.14. Dystrybucje TeXa
- 1.15. Matematyka
- 2. Szczegółowe użycie
- 3. Składanie bibliografii
- 4. Narzędzia pomocnicze
1. LaTeX
1.1. Co to jest LaTeX
LaTeX jest zbiorem makr ułatwiających korzystanie z języka TeX.
Czym w takim razie jest TeX? TeX jest językiem programowania stworzonym przez D. Knutha, wyspecjalizowanym do generowania dokumentów do druku.
1.2. Prosty dokument w LaTeXu
\documentclass[a4paper]{article} % definicja klasy dokumentu %początek preambuły \usepackage[utf8]{inputenc} \usepackage{amssymb} \usepackage[MeX]{polski} \title{XYZ} \author{Jan Karwowski} %koniec preambuły \begin{document} \section{Pierwsza sekcja} treść sekcji \end{document}
Dokument w LaTeXu możemy podzielić na dwie podstawowe części: preambułę i właściwą treść dokumentu.
1.3. Najważniejsze elementy składni
- Większość tekstu wprowadzanego pomiędzy
\begin{document}
i\end{document}
będzie po prostu treścią generowanego dokumentu. Uwaga: jest całkiem sporo znaków specjalnych. Pojedyncze znaki nowej linii są ignorowane, podwójne definiują akapity. - Makra – w TeXu makra wywoływane są poprzez podanie nazwy makra poprzedzonej backslashem. Jeśli makro przyjmuje jakieś argumenty, to są one podawane w nawiasach klamrowych lub prostokątnych po nazwie makra. Argumenty w nawiasach kwadratowych to argumenty opcjonalne.
- komentarze: znak
%
oznacza komentarz od bieżącego miejsca do końca linii. - otoczenia (environments) – mamy dwa wyspecjalizowane makra
\begin{X}
i\end{X}
. LaTeX pozwala definiować otoczenia, które albo w jakiś sposób zmieniają styl tekstu, albo udostępniają specjalne makra, formatowania, etc. - zakresy ograniczone klamerkami: większość wartości zmiennych
globalnych w TeXu obowiązuje w obrębie zakresu, np.
{\color{green} abc def} ghi
– ustawienie kolory działa dla abc i def, ale ghi jest juz poza zakresem.
1.4. Klasa dokumentu
Klasa dokumentu definiuje bazowy zestaw makr do używania w danym
dokumencie. W większości przypadków będzie to podstawowe formatowanie
tekstu i podział na rozdziały/sekcje/ itp. Dostępne elementy różnią
się w zależności od klasy. Np. w klasie book
da się definiować
rozdziały, a w klasie article
tylko sekcje. W klasie beamer
, która
służy do przygotowania prezentacji podstawowym bytem są ramki
(frame
, czyli slajdy), które nie istnieją w innych klasach.
Dokument może mieć dokładnie jedną klasę (\documentclass
w
pierwszej linii.
Poza klasami dostarczanymi z daną dystrybucją LaTeXa, często można spotkać klasy przygotowane przez wydawnictwa, przeznaczone do przygotowania dokumentów na daną konferencję/do danego czasopisma.
1.5. Podział dokumentu na mniejsze pliki
Są dwa makra pozwalające włączyć treść zewnętrznego pliku:
include
– łamie stronę po zawartości pliku, używa oddzielnych plików pomocniczych dla włączonych zawartości, nie może być zagnieżdżanyinput
W obu przypadkach ścieżki względne we włączonych plikach rozpatrywane są względem głównego pliku TeX!
1.6. Pakiety
Pakiety definiują dodatkowe makra, mamy na przykład pakiety definiujące dodatkowe symbole matematyczne (amssymb), dodatkowe komendy do formatowania tabel (booktabs), kolorowania (xcolor), itd.
Do załączania pakietów służy makro \usepackage[]{}
. Obowiązkowy
argument (w nawiasach klamrowych) to nazwa pakietu, a opcjonalny to
opcje pakietu.
W momencie kiedy zaczynamy korzystać z pakietów, czyli praktycznie zawsze, należy pamiętać, że pod względem technologicznym LaTeX jest bardzo ubogi. wszelkiego rodzaju konfiguracja odbywa się z użyciem ustawiania bezargumentowych makr (odpowiednik zmiennych globalnych), co oznacza, że pakiety mogą skutecznie przeszkadzać sobie nawzajem, szczególnie jeśli zakres ich odpowiedzialności pokrywa się ze sobą. W przypadku dziwnych efektów zawsze warto poszukać informacji o niepożądanych interakcjach między używanymi pakietami.
1.7. Repozytorium pakietów
ctan.org: The Comprehensive TeX Archive Network
Zawiera też dokumentację pakietów
1.8. Struktura dokumentu
Istotną cechą LaTeXa jest to, że promuje on definiowanie struktury dokumentu, a nie wyglądu.
W większości klas mamy dostępne następujące makra do definiowania kolejnych poziomów nagłówków:
\section{Tytuł sekcji}
\subsection{Tytuł sekcji}
\subsubsection{Tytuł sekcji}
\paragraph{Tytuł akapitu}
W większości przypadków sekcje są numerowane, np, trzecia podsekcja w drugiej sekcji ma numer 2.3. Akapity zwykle nie są numerowane. Style numeracji można oczywiście konfigurować.
Za pomocą makra \tableofcontents
można wstawić spis treści.
1.9. Odnośniki
Powodem dla którego w dokumentach użytkowych numeruje się poszczególne elementy (np. sekcje) jest łatwość odnoszenia się to tych bytów poprzez wskazanie numerów. Ręczne wpisywanie numerów – problem przy zmianie struktury (co powoduje zmianę numeracji).
LaTeX ma makra:
\label{nazwa}
– do zaznaczania punktu, do którego będziemy się odnosić, odpowiednik<a name="nazwa">
w htmlu.\ref{nazwa}
– generuje odnośnik – numer bytu, w którym jest\label{nazwa}
Jest to numer ostatniego numerowanego bytu widocznego w danym zakresie.\pageref{nazwa}
– numer strony, gdzie jest\label{nazwa}
.
1.10. Przykład dokumentu z etykietami
% profanacja wieszcza \section{Wpłynąłem na}\label{sec:wpl}% 1 suchego przestwór oceanu, Wóz nurza się w zieloność \subsection{i jak łódka brodzi,} Śród fali łąk \label{sec:ija} % 1.1 szumiących, \label{sec:ija2} % 1.1 \subsection{śród kwiatów powodzi,} \subsubsection{Omijam} koralowe ostrowy burzanu.\label{sec:omi}% 1.2.1 \section{Już mrok zapada,} nigdzie drogi ni kurhanu;\label{sec:juz} % 2
1.11. Konwencje nadawania etykiet
- Etykiety są po prostu napisami, dowolnymi.
- Przyjęło się, żeby łatwiej nawigować po dokumencie stosować prefiksy
- etykiety sekcji zwykle zaczyna się od
sec:
, np.sec:introduction
- etykiety tabel
tab:
- etykiety obrazków (figure)
fig:
- etykiety równań
eq:
- itd.
- etykiety sekcji zwykle zaczyna się od
- Tych nazw nie widać w łatwy sposób w wyjściu w formie pdf
1.12. Proces kompilacji
- Kompilacja TeXa jest jednoprzebiegowa. To znaczy, że czytany jest kod, a potem na bieżąco generowane jest wyjście. W przypadku odnośników do elementów, które znajdują się dalej w tekście (do przodu), pojawia się problem.
- Uruchomienie TeXa poza właściwym plikiem wynikowym generuje pliki
.aux i .toc (i w zależności od użytych pakietów może generować
jeszcze inne). Pliki pomocnicze zawierają informacje, które mogą
się przydać przy kolejnym przebiegu kompilacji, np. pozycje etykiet
w poprzednim przebiegu. Te informacje są wykorzystywane przez makro
\ref
.- dwukrotny przebieg może nie wystarczyć, bo wstawienie odnośnika może spowodować przeniesienie jakiegoś kawałka tekstu na kolejną stronę.
- wyjście przebiegu TeXa zawiera informację, o tym, czy od ostatniego przebiegu zmieniły się pozycje etykiet.
1.13. Wyjście kompilacji
- Tradycyjnym formatem wyjściowym TeXa jest format DVI (device independent format).
- Większość dystrybucji TeXa pozwala również generować PostScript i PDF.
- Typowe dystrybucje mają trzy różne polecenia:
latex
,pslatex
,pdflatex
, które generują wyjście w różnych formatach.
1.14. Dystrybucje TeXa
Dygresja.
Czym są dystrybucje TeXa. Nie ma jednej centralnej wersji kompilatora TeXa lub LaTeXa i zbioru różnego rodzaju pakietów. Są różne zestawy (potencjalnie z różnymi kompilatorami), które zawierają różne zestawy i wersje pakietów.
Najpopularniejsze:
- MikTeX
- TeXlive
1.15. Matematyka
LaTeX jest szczególnie znany z tego, że da się w nim składać złożone wzory matematyczne w sposób ogarnialny dla człowieka.
Trzy podstawowe sposoby wprowadzania matematyki:
- wzór wewnątrz tekstu
- jest po prostu traktowany jak pozostałe słowa
a tekście, jest częścią linii i może być łamany automatycznie na
wiele linii (inline math). Może być wprowadzony na dwa sposoby,
albo pomiędzy dolarami:
$a+b$
albo pomiędzy makrami\(
i\)
:\(a+b\)
. - wzór wyróżniony
- (display math). Jest w oddzielnej przestrzeni
między liniami. Silnik składający ten wzór działa też trochę
inaczej, m.in indeksy dolne i górne są bardziej rozsunięte, większe są
odstępy przy kresce ułamkowej, w przypadku sum i podobnych granice
są pod symbolem. Wprowadzany albo z użyciem
$$
albo z użyciem makr\[
i\]
, ewentualnie otoczenieequation*
. - wzór numerowany
- szczególny przypadek poprzedniego, wzór
dodatkowo ma numer (i można mu zdefiniować etykietę). Otoczenie
equation
.
2. Szczegółowe użycie
2.1. amsmath
amsmath jest popularnych pakietem rozszerzającym podstawowe możliwości składania wzorów matematycznych, właściwie każda praca, w której są wzory, używa tego pakietu.
Pozwala między innymi na:
- eleganckie wyrównywanie układów równań
- łamanie równań na kilka linii
- możliwość definiowania własnych nazw operatorów w stylu min i max
- …
Dodatkowo: amssymb – rozszerzony zbiór symboli
2.2. Otoczenie verbatim
Czasami wygodnie jest wprowadzić fragment tekstu, bez interpretacji znaków specjalny. Tekst w otoczeniu verbatim jest składany fontem stałej szerokości, a znaki specjalne nie są interpretowane (podobnie jak <pre> w htmlu)
2.3. Elementy pływające
Poza tekstem, często będziecie umieszczać rysunki, tabele lub podobne elementy.
- te elementy mają kształt prostokąta
- nie mieszczą się w linii
- umieszczenie ich w środku zdania spowodowałoby zaburzenie płynności czytania tekstu
- LaTeX potrafi je umieścić w pobliżu miejsca, gdzie element został umieszczony w kodzie (czasami na innej stronie)
- Makro
\clearpage
powoduje, że wszystkie nieumieszczone elementy pływające zostaną umieszczone przed następującym dalej tekstem. - pakiet
float
umożliwia dokładniejszą konfigurację - są pakiety do robienia podrysunków
2.4. Rysunki
Otoczenie float
\begin{figure}[t] % kod realizujący rysunek \caption{Schemat połączeń w sieci wewnętrznej} \label{fig:conn-scheme} \end{figure} %tu kończy się zakres obowiązywania caption
Label zawsze po caption
Argument opcjonalny, tu t
, definiuje preferowane umieszczenie
elementu, tu top – na górze strony.
2.5. Rysunki – wstawianie
Do wstawiania rysunków z zewnętrznych plików zwykle używa się pakietu
graphicx
\usepackage{graphicx} %... \includegraphics[width=\columnwidth]{rysunek}
- Zwykle
includegraphics
umieszcza się wewnątrz figure. - Rozszerzenia pliku
- Podając ścieżkę bez rozszerzenia wybiera się format preferowany dla danego formatu wyjściowego (nie każde wyjście obsługuje każdy format wejściowy). Można mieć kilka nazw z tym samym rozszerzeniem i wybrać preferowane.
- Można podać ścieżkę z rozszerzeniem.
- Dla wyjścia PDF najlepiej mieć grafiki wektorowe w PDF
- Skalowanie nie jest jedyną możliwą wartością opcjonalnego argumentu.
2.6. Tabele
Pływające otoczenie do tabel table
. Oddzielna numeracja od
rysunków. Tabele zwykle maja podpis (caption
) nad tabelą, a nie
pod.
Składanie tabeli: otoczenie tabular
.
\begin{tabular}{cr|rl|c} a&b&c&d&e\\ \hline f&g&h&i&j\\ a&b&c&d&e\\ \end{tabular}
Argument otoczenia specyfikuje kolumny, litera oznacza wyrównanie (do lewej, do prawej, do środka, są też bardziej zaawansowane specyfikacje, np. odstępów między kolumnami). Pionowa kreska oznacza kreskę między kolumnami.
W środowiskach, które preferują użycie pakietu booktabs
, wstawianie
pionowych kresek jest bardzo nieeleganckie.
2.7. Pseudokody
Jest dostępnych wiele pakietów do formatowania pseudokodów (niekompatybilnych ze sobą nawzajem), na przykład:
- algorithmic
- algorithm2e
- algorithmicx
Ważniejsze funkcjonalności:
- formatowanie funkcji, słów kluczowych, itd.
- różne formy wyróżniania bloków
- numerowanie linii (z etykietami i możliwością odnośników)
2.8. Kody programów
Pakiet listings
pozwala wstawić kod programu, obsługuje tez
kolorowanie składni.
2.9. Hyperref
Pakiet wpływający na wyjście w formacie PDF, dodający odnośniki i metadane.
2.10. Nagłówki i stopki
- Zwykle domyślny format nagłówków i stopek jest definiowany przez klasę dokumentu.
- W prostych klasach będą numery stron, w bardziej zaawansowanych mogą się pojawiać takie elementy, jak tytuł dokumentu, tytuł rozdziału, itp.
- Pakiet
fancyhdr
pozwala na łatwą konfigurację nagłówków i stopek.
2.11. Grafika wektorowa w ramach dokumentu
Poza włączaniem grafik z plików zewnętrznych, są pakiety, które pozwalają rysować w użyciem makr TeX. Popularne to:
- pstricks
- tikz
2.12. Komunikaty kompilacji
Warto czytać ostrzeżenia kompilacji (oczywiście)!
- Odniesienia do brakujących etykiet (w wyjściu zastąpione znakami zapytania)
- Brakujące wpisy w bibliografii (omówione dalej)
- Problemy z łamaniem linii:
- Overfull – TeX nie znalazł dobrego sposobu na złamanie linii i fragment jest za marginesem. Może dotyczyć też zbyt szerokich tabel i obrazków.
- Underfull – punkt złamania linii był na tyle wcześnie, że tekst jest nienaturalnie rozstrzelony.
- Informacja czy zmieniły się pozycje etykiet i czy potrzebny jest kolejny przebieg.
3. Składanie bibliografii
3.1. Pakiety do zarządzania bibliografią
Pakiety, które służą do generowania listy cytowań na końcu dokumentu wraz z odnośnikami:
- bibtex (najstarszy i najpopularniejszy)
- Tak naprawdę dwie cześci
- Pakiet do LaTeXa
- Narzędzie do przetwarzania bazy bibliografi w kod LaTeXa
- Tak naprawdę dwie cześci
- biblatex
- natbib
Dwa niżej potrafią używać baz generowanych przez konsolowe narzędzie bibtex, jak i baz generowanych przez biber (inne narzędzie, nowsze).
3.2. Struktura pliku bibtex
Wpisy postaci:
@InProceedings{KarwowskiMZGA19, author = {Jan Karwowski and Jacek Ma{\'n}dziuk and Adam {\.Z}ychowski and Filip Grajek and Bo An}, title = {A Memetic Approach for Sequential Security Games on a Plane with Moving Targets}, year = 2019, booktitle = {The Thirty-Third {AAAI} Conference on Artificial Intelligence, {AAAI} 2019, The Thirty-First Innovative Applications of Artificial Intelligence Conference, {IAAI} 2019, The Ninth {AAAI} Symposium on Educational Advances in Artificial Intelligence, {EAAI} 2019, Honolulu, Hawaii, USA, January 27 - February 1, 2019}, pages = {970-977}, doi = {10.1609/aaai.v33i01.3301970}, url = {https://doi.org/10.1609/aaai.v33i01.3301970}, }
Pierwsze słowo we wpisie definiuje klucz używany przy cytowaniu.
3.3. Wykorzystanie BibTeXa
W przykładowym dokumencie
4. Narzędzia pomocnicze
4.1. Sprawdzanie częstych błędów
- lacheck – czasami zdarza się zapomnieć zamknąć jakąś klamerkę, środowisko, itp. Interpreter LaTeXa jest mało domyślny i zwykle rzuca błąd na końcy dokumentu. lacheck ma heurystyki, które nieźle wskazują miejsce problemu.
- chktex – zestaw wielu testów, głównie związany z typografią i wyglądem.
4.2. Automatyzacja powtórzeń kompilacji
Na podstawie logów i dat modyfikacji można automatycznie stwierdzić
czy konieczna jest ponowna kompilacja lub przebudowanie BibTeXa. Są
narzędzia, które automatyzują cały przebieg, na przykład rubber
.