Podstawy LaTeX-a

Podstawy tworzenia dokumentów w LaTeX-u. Na podstawie przykładowego dokumentu dowiesz się jak stworzyć własny, nawet całkiem pokaźnych rozmiarów (np. referat czy praca magisterska).

Przykład LaTeX

Spis treści

  1. Dystrybucje LaTeX-a
  2. Przykładowy dokument
  3. Przydatne moduły
  4. Ustawienia ogólne i strona tytułowa
  5. Zawartość treściowa naszego dokumentu
  6. Rozdziały i sekcje
  7. Wstawianie obrazków
  8. Tabelki
  9. Równania matematyczne
  10. Bibliografia i spisy obrazków oraz tabel
  11. Inne rzeczy, które zapewne się przydadzą
  12. Pliki użyte do powyższych przykładów

Dystrybucje LaTeX-a

Aby móc korzystać z LaTeX-a, musisz mieć czym go kompilować, czyli z wersji którą piszesz w ulubionym edytorze, tworzyć plik PDF. Jeśli korzystasz z Linuksa, poszukaj pakietu o nazwie zawierającej latex lub tetex. Każda dystrybucja ma swoje pakiety, więc szukaj w zależności od tego, z której dystrybucji korzystasz. Pod Windowsa polecam pakiet MiKTeX.

Więcej o teorii kompilowania dokumentów LaTeX możesz przeczytać na wikibooks.org.

Przykładowy dokument

Jeśli masz już czym kompilować pliki LaTeX-a, pora na stworzenie PDF-a. Stwórz plik o nazwie dokument.tex w swoim ulubionym edytorze (mam nadzieję że nie jest to Notatnik Windowsowy, bo ten jest średni do edycji czegokolwiek) i wpisz taką zawartość:

\documentclass[12pt,oneside]{mwbk}

% ustawienia kodowania pliku i języka
\usepackage[T1]{polski}
\usepackage[utf8]{inputenc}

\usepackage{indentfirst}
\usepackage{graphicx}

% wymiary strony, marginesy
\usepackage[a4paper,left=3.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm,includefoot=false,includehead=false]{geometry}

% klikalne linki
\usepackage{hyperref} % klikalne linki

%\usepackage{amsmath} % rozszerzona funkcjonalność matematyczna, np. wielolinijkowe równania
%\numberwithin{figure}{section} % numerowanie obrazków, prefiksowane numerem sekcji
%\numberwithin{table}{section} % numerowanie tabel, prefiksowane numerem sekcji

% czcionka Times
\usepackage{times}
\usepackage{ifthen} % umożliwia bloki warunkowe
\usepackage{fancyhdr} % własne definicje nagłówków

% odstępy na 1.5 (pomimo, iż linespread jest na 1.3
\linespread{1.3}

% dzielenie wyrazów – większe odstępy, mniej dzielenia
\hyphenpenalty=5000
\tolerance=5000


% nagłówki i stopki
\pagestyle{fancy}
\fancyhf{} % usun biezace ustawienia pagin
\fancyhead[R]{\small\itshape\mymark}
\fancyfoot[R]{\small\bfseries\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\newcommand{\mymark}{\ifthenelse{\equal{\rightmark}{}}{\leftmark}{\rightmark}}
\addtolength{\headheight}{0.5pt} % pionowy odstep na kreske
\fancypagestyle{plain}{%
\fancyhead{} % usun p. górne na stronach pozbawionych numeracji (plain)
\renewcommand{\headrulewidth}{3pt} % pozioma kreska
}


% własna strona tytułowa
\renewcommand{\maketitle}{
\begin{titlepage}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.2]{rys/logo.jpg}
\end{figure}
\vspace*{1cm}
\begin{center}
\LARGE
\textbf {PRACA DYPLOMOWA}\\
\vspace*{5 cm}
\begin{table}[!htp]
\begin{tabular}{p{4cm}p{9cm}}
\textit{Imię i nazwisko:} &\textbf {Leniwy Leniwiec} \\
\\
\textit{Kierunek studiów:} &\textbf {Lenistwo stosowane} \\
\\
\textit{Temat pracy:} &\textbf{System wspomagający wydajne leniuchowanie,
niezależnie od położenia osoby leniuchującej się} \\
\\
\\
\textit{Promotor:} &\textbf {prof. dr inż. Leniuch Master} \\
\end{tabular}
\end{table}

\vspace{5 cm}
\center{\small Leniuchowo Dolne 2010}
\end{center}
\end{titlepage}
}

%%%%%%%%%%%%%
% tu się zaczna dokument właściwy
%%%%%%%%%%%%%
\begin{document}
\maketitle
\tableofcontents
\include{wstep}
\include{rozwiniecie}
\include{indeksy_i_spisy}
\end{document}

Tak wiem, trochę to długie, ale nie zniechęcaj się, to tylko tak strasznie wygląda, w rzeczywistości większość z tych rzeczy do kolejnych dokumentów będziesz kopiować – nie musisz wszystkiego od razu zapamiętać. Przejdźmy zatem do omówienia zawartości pliku

Przydatne moduły

Na początku dokumentu należy ustawić typ tworzonego dokumentu, a następnie wylistować moduły, z których potem będzie można korzystać. Linijka \documentclass[12pt,oneside]{mwbk} ustala, że tworzymy dokument typu mwbk (polski odpowiednik typu book, stworzony przez Marcina Wolińskiego), który będzie drukowany jednostronnie, z domyślną czcionką wielkości 12pt. Kolejne linie przedstawiają odpowiednie moduły:

  1. polski – zapewnia słownik do łamania wyrazów w liniach
  2. inputenc – ustawia kodowanie pliku źródłowego; tu: utf-8
  3. indentfirst – automatyczne dodawanie wcięć w nowych akapitach (można pominąć w konkretnym miejscu przy użyciu \noindent
  4. graphicx – do obsługi wstawiania plików graficznych
  5. geometry – ustawienie geometrii dokumentu PDF, zgodnie z naszymi zamierzeniami drukowania; tu ustawiamy marginesy
  6. hyperref – obsługa odnośników wewnątrztekstowych
  7. amsmath – do obsługi zaawansowanych równań matematycznych
  8. times – korzystamy z czcionki Times, zamiast standardowej
  9. ifthen – obsługa warunkowych wstawek (przydatne przy nagłówkach i stopkach)
  10. fancyhdr – własne, fajniejsze nagłówki i stopki

Nie w każdym dokumencie będziesz potrzebować wszystkich wymienionych powyżej pakietów, ale przynajmniej ogólnie już wiesz, do czego który z nich służy.

Ustawienia ogólne i strona tytułowa

Kolejną rzeczą jaką należy ustawić jest odstęp pomiędzy linijkami na 1.5, który ustawiamy przy pomocy \linespread{1.3} (nie, to nie jest pomyłka: wartość 1.3 ustawia odstępy na 1.5, a np. wartość 1.6 na podwójne). Jeśli chcesz bardziej zaawansowanie bawić się w odstępy, możesz skorzystać z pakietu setspace

Aby wyrazy nie były dzielone za często kosztem spacji o różnej szerokości, ustawiamy hyphenpenalty i tolerance. Można ustawić wartości niższe (np. 1000) lub wyższe (np. 9000).

Korzystając z pakietu fancyhdr, ustawiamy własne nagłówki i stopki (\pagestyle{fancy} i kilka kolejnych linijek).

Jako że domyślna strona tytułowa raczej wygląda średnio i nadaje się do niewielu rzeczy, przy pomocy \renewcommand{\maketitle} można przedefiniować jej wygląd. W tym przypadku jest pokazane, jak może wyglądać przykładowa strona tytułowa do pracy dyplomowej, wraz z logo uczelni (tu: rys/logo.jpg).

Zawartość treściowa naszego dokumentu

Treść właściwa dokumentu znajduje się pomiędzy otwartym i zamkniętym tagiem document. W powyższym przykładzie, jak widać, nie ma tego za wiele. Powód jest prosty: jeśli tworzysz większe dokumenty, warto podzielić je na kilka plików. Wynikowy dokument PDF będzie oczywiście jeden, natomiast do edycji wygodniej jest poruszać się po kilku mniejszych plikach niż jednym dużym. Podzielić można np. według rozdziałów, ale niekoniecznie.

W tym przypadku treść właściwa została podzielona na trzy osobne pliki. Plik o nazwie wstep.tex, który znajduje się w tym samym katalogu co plik główny, dołączamy przez \include{wstep}. W ten sam sposób są tu dołączone pliki rozwiniecie.tex oraz indeksy_i_spisy.tex

Przed poszczególnymi rozdziałami znajdują się jeszcze tagi \maketitle (tworzący stronę tytułową) oraz \tableofcontents (tworzący spis treści).

Rozdziały i sekcje

Dokument możemy podzielić na rozdziały, sekcje, podsekcje i podpodsekcje. Tak się to zwie w LaTeX-u, dlatego też tagi które je rozpoczynają, to kolejno \chapter{Nazwa}, \section{Nazwa}, \subsection{Nazwa} i \subsection{Nazwa}. Każdy rozdział będzie się automatycznie rozpoczynał od nowej strony, natomiast sekcje, podsekcje i podpodsekcje już nie.

Numeracja rozdziałów w spisie treści

Domyślnie, nazwy rozdziałów w spisie treści (i na stronie rozpoczynającej rozdział) są numerowane, czyli zostaną do nich dodane odpowiednie prefiksy, np. Rozdział 1. (zależy od ustawienia języka i typu dokumentu). Aby tego uniknąć (przydatne najczęściej żeby pominąć numerowanie Wstępu czy Zakończenia), należy użyć gwiazdki, np. \chapter*{Wstęp}.

Wstawianie obrazków

Aby wstawić obrazek, należy użyć taga figure. Przykład:

\begin{figure}
\centering
\includegraphics[width=\linewidth]{rys/logo.jpg}
\caption{Logo poraz pierwszy}\label{rys:logo:jeden}
\end{figure}

Spowoduje to wstawienie obrazka wycentrowanego, rozciągając go na całą szerokość strony. Podpis pod obrazkiem ustawia się przez tag caption, natomiast label pod którym będzie można tworzyć odwołania do tego obrazka, poprzez tag label. Warto prefiksować labele np. „rys:”, ponieważ tym samym tagiem tworzymy labele do innych typów obiektów, np. tabel. W ten sposób, po wstawieniu \ref{rys:logo:jeden} będzie od razu wiadomo, że chodzi o odwołanie do obrazka, a nie innego typu obiektu.

Obrazek, jeśli nie jest w żaden sposób przeskalowany (w powyższym przykładzie był przeskalowany do pełnej szerokości strony), jest wstawiany z uwzględnieniem rozdzielczości DPI zapisanej w pliku. Można taki obrazek przeskalować, np. zmniejszając go 5-krotnie, ustawiając w tagu includegraphics argument [scale=0.2].

Tabelki

Kolejnym, dość powszechnie wykorzystywanym w dokumentach obiektem, jest tabela. Przykład wstawionej tabeli:

\begin{table}
\centering
\begin{tabular}{|llll|l|}
\hline
\multicolumn{1}{|l|}{1} & \multicolumn{1}{l|}{} & \multicolumn{2}{c|}{razem} & \\
\hline
\multicolumn{1}{|l|}{} & \multicolumn{2}{c|}{razem2} & & z prawej \\
\hline
\end{tabular}
\caption{Podpis tabeli pierwszej}\label{tab:jeden}
\end{table}

Komórki tabeli można łączyć, a poszczególne komórki można obramować.

Podpis do tabeli i label ustawiamy tak samo jak w przypadku obrazków – przy pomocy caption oraz label.

Nie będę się rozwodził nad tym w jaki sposób uzyskać poszczególne rzeczy, bo wygodniej w przypadku tabel jest użyć jakiegoś edytora tabel WYSIWYM.

Równania matematyczne

Sposób osadzania

Równania w LaTeX-u można wstawiać na kila sposobów. Jeśli chcesz wstawić równanie inline w treści jakiegoś zdania, użyj znaków $ do rozpoczęcia i zakończenia, np. $x^2$. Alternatywnie możesz użyć \(x^2\) lub \begin{math}x^2\end{math}. Z powodu pierwszej z tych metod, jeśli chcesz użyć znaku $ w treści dokumentu, musisz go wyeskejpować – poprzedzić znakiem backslasha (ukośnik i wtyłciach moim zdaniem są pomylonymi tłumaczeniami), czyli \$.

Jeśli chcesz wstawić równanie w osobnej linii (blokowo), możesz użyć jednej z trzech opcji: \[x^2\], \begin{displaymath}x^2\end{displaymath} lub \begin{equation}x^2\end{equation}. Pierwsze dwie tworzą równanie w ten sam sposób, trzecie dodatkowo numeruje je i wstawia obok równania jego numer. Jeśli chcesz w treści tekstu odwołać się do danego równania, użyj ostatniej opcji, dodając pomiędzy tagami begin i end odpowiedni \label{equ:jakis_opis} – analogicznie jak w przypadku tabel czy rysunków.

Uzyskiwanie podstawowych symboli

Poniżej przedstawiam kilka symboli matematycznych.

Zamiast pojedynczych liczb czy znaków, można wstawiać ich grupy, przy pomocy nawiasów klamrowych, np. {a+b}. Kreski ułamkowe, całki, nawiasy, sumy itp. będą rozciągane na odpowiednią wysokość i szerokość.

Jeśli potrzebujesz podzielić (złamać) równanie na kilka linii (nie mieści się w jednej), użyj modułu amsmath i zamiast \begin{equation} i \end{equation} użyj \begin{multiline} i \end{multiline}. Równanie będziesz mógł podzielić na kilka linii przy pomocy standardowego łamania linii \\.

Bibliografia i spisy obrazków oraz tabel

Bibliografia

Aby wstawić listę wykorzystywanych utworów, należy użyć taga thebibliography:

\begin{thebibliography}{99}
\bibitem{b_tab_hist} Autor1, Autor2, \textit{Tytuł utworu} Wydawnictwo sp. z o.o., Miejscowość 1999.
\bibitem{b_cos_o_lenistwie} Jan Kowalski, \textit{Coś o lenistwie}, Wydawnictwo, Wydanie, 1990
\bibitem{b_leniwy} http://www.leniwy.eu, aktualna na 28 lipca 2010
\end{thebibliography}

Odwołania do poszczególnych utworów można dokonać wpisując np. \cite{b_leniwy}. W treści zostanie wstawiony numer utworu, będący (w przypadku korzystania z hyperref) jednocześnie linkiem do tego elementu w bibliografii.

Spis obrazków

Niekoniecznie jest wymagany. Warto wstawić wtedy gdy mamy dużo obrazków, lub jeśli obrazki w naszym dokumencie stanowią istotną treść. Wstawiamy, wpisując tag \listoffigures

Spis tabel

Podobnie jak w przypadku obrazków, należy wstawić spis tabel, gdy jest ich przynajmniej kilka. Aby to zrobić, wpisujemy \listoftables

Inne rzeczy, które zapewne się przydadzą

Kilka rzeczy które wcześniej czy później może Ci się przydać, to:

  1. \footnote{Jakaś treść przypisu dolnego} – wstawienie przypisu dolnego
  2. \newpage – wymuszenie podziału strony; nie należy przesadzać z używaniem
  3. \textit{Jakiś kawałek tekstu} – tekst pisany kursywą (italic)
  4. \textbf{Jakiś kawałek tekstu} – tekst pogrubiony
  5. \vspace{1cm} – odstęp; najlepiej nie używać poza stroną tytułową
  6. \\ – Nowa linia, bez rozpoczęcia akapitu
  7. pusta linia – rozpoczęcie nowego akapitu (jeden enter nic nie zmienia: jest traktowany jak spacja)
  8. ~ – twarda spacja; jeśli nie masz układu klawiatury zawierającego twardą spację, możesz użyć tyldy, np. 13~centymetrów
  9. ,, oraz '' – jeśli z klawiatury nie możesz wprowadzić cudzysłowu drukarskiego (czyli znaczków oraz ), możesz użyć dwóch przecinków i dwóch apostrofów. Wynikowy PDF będzie miał wstawiony poprawny cudzysłów drukarski otwierający lub zamykający.

Wiele poradników znajdziesz w dowolnej wyszukiwarce internetowej – wbrew pozorom, LaTeX nie jest tylko dla „profesjonalistów”. Jeśli poznasz podstawy, łatwo możesz się przekonać, że przy składaniu pracy magisterskiej w LaTeX-u zjesz dużo mniej nerwów, niż w OpenOffice czy innym edytorze tego typu. Ponadto, jako że źródła to zwykłe pliki tekstowe, dużo łatwiej będzie wersjonować dokument przy pomocy np. SVN. Kolejnym plusem jest fakt, że łatwo można dokument podzielić na kilka plików i kilka osób może je edytować niezależnie – nie wchodząc sobie w drogę.

Ostatnia rzecz która może się przydać, chociaż nie jest bezpośrednio związana z LaTeX-em, to program do przeglądania plików PDF. Polecam do tego program Foxit Reader.

Pliki użyte do powyższych przykładów

Jeśli masz już zainstalowany kompilator LaTeX-a i chcesz spróbować swoich sił, ściągnij spakowane pliki .tex, których zawartość została wyżej przedstawiona. Po skompilowaniu, powinien wyjść mniej więcej taki dokument PDF.