Środowisko programisty/Składanie dokumentów - Latex: Różnice pomiędzy wersjami
Linia 279: | Linia 279: | ||
{| border="1" cellpadding="5" | {| border="1" cellpadding="5" | ||
| | | | ||
Cudzysłowy angielskie: `x', ``tekst w cudzysłowach | <pre> | ||
W języku polskim używamy ,,takich | Cudzysłowy angielskie: `x', ``tekst w cudzysłowach''. | ||
W języku polskim używamy ,,takich'' cudzysłowów. | |||
</pre> | |||
|| | || | ||
[[Grafika:SrodowiskoProgramisty-latex13.png|Cudzysłowy]] | [[Grafika:SrodowiskoProgramisty-latex13.png|Cudzysłowy]] |
Wersja z 10:39, 20 wrz 2006
Wprowadzenie
Co to jest Latex
Latex wywodzi się z Tex'a. Zarówno Tex jak i Latex mają analogiczne przeznaczenie, przy czym Latex jest znacznie wygodniejszy. A zatem czym jest Latex?
Latex służy do wytwarzania przejrzyście wyglądających dokumentów tekstowych takich jak książki, artykuły, czy nawet prezentacje. Docelowym formatem jest wydruk, czy też pliki w różnych formatach takich jak PDF, Postscript, czy też HTML. Szczególnie wygodne jest tworzenie dokumentów technicznych, matematycznych, ale z powodzenie może też być stosowany do pisania dokumentacji programów, czy też zbioru opowiadań.
Latex, podobnie jak języki programowania, ma swój własny język, w którym pisze się treść dokumentu oraz posiada narzędzia (można by powiedzieć "kompilatory"), które przetwarzają pliki źródłowe i generują pliki docelowe. W językach programowania zazwyczaj jedną z istotnych rzeczy jest zbiór bibliotek z gotowymi implementacjami różnych typowych czynności. Również w Latexu jest dużo gotowych pakietów pozwalających w szybki sposób tworzyć najróżniejsze elementy i rodzaje dokumentów.
Filozofia Latexa jest taka, aby skupiać się na tym co merytorycznie ma zawierać dany dokument, a jak najmniej poświęcać uwagi na to jak ma to wyglądać. Innymi słowy wprowadzamy tylko strukturę i zawartość dokumentu, a latex za nas robi resztę roboty, aby wyjściowy dokument wyglądał jak należy. Oczywiście mamy dużą możliwość ingerencji w wygląd, ale zazwyczaj jest to tylko dobieranie jakiegoś szablonu lub potrzeba uzyskania niestandardowego efektu. Jest to zupełnie inna filozofia niż w wielu innych edytorach tekstowych, szczególnie w różnych aplikacjach biurowych, gdzie prawie na każdym kroku musimy od razu decydować jaki ma być wygląd, czyli wielkość liter, czcionka, odstępy, sposób wyświetlania tytułów itp.
Dystrybucje
Podstawą możliwości cieszenia się twórczością w Latexu jest posiadanie wszystkich narzędzi, pakietów, czcionek, itp. Gotowe zbiory są dostępne w różnych dystrybucjach. Oprócz tych narzędzi, szczególnie początkujący użytkownicy mogą skorzystać z gotowych środowisk do obrabiania dokumentów Latexu.
Podstawową dystrybucją jest TeX Live. Jest ona dostępna pod wiele różnych platform, jest łatwą w instalacji kompletną paczką narzędzi, programów, czcionek.
Użytkownicy Linuxa w swoich dystrybucjach zazwyczaj mają dostępny pakiet TeTeX, którego instalacja udostępnie wszelkie niezbędne narzędzia. Pod Linuxem wygodnym środowiskiem graficznym jest Kile.
Dla użytkowników Windowsa jest też bogata dystrybucja ProTeXt oparta na innej dystrybucji MiKTex i ponadto zawierająca kilka wydonych narzędzi, jak na przykład środowisko graficzne TeXnicCenter.
Typowa sesja
Z poziomu linii komand, droga do utworzenia dokumentu wynikowego składa się z wykonania kilku poleceń .
Plikom latexowym nadajemy rozszerzenie tex
. Do kompilacji plik latexowego służy polecenie latex
:
$ latex dok.tex
Polecenie wyrzuca szereg skomplikowanych napisów, którymi nie należy się przejmować do momentu, gdy nie są to informacje o błędzie w dokumencie.
W wyniku kompilacji powstaje szereg plików. Są to pliki pomocnicze, pliki z logami i najważniejszy plik o roszerzeniu dvi
(ang. device independent). Plik ten można już oglądać w postaci graficznej za pomocą polecenia xdvi
:
$ xdvi dok.dvi
Ten format ma swoje ograniczenia, np. nie umożliwia dodawania obrazków, więc nie jest docelowym formatem. Aby utworzyć plik typu PostScript służy polecenie dvips
:
$ dvips -o dok.ps dok.dvi
Polecenie to na podstawie pliku dvi
tworzy plik ps
. Aby obejrzeć ten plik można użyć polecenie gv
:
$ gv dok.ps
Możemy też utworzyć plik pdf
. Najprostrzym sposobem jest kompilacja za pomocą polecenia pdflatex
zamiast latex
:
$ pdflatex dok.tex
W wyniku powstaje kilka plików, ale najważniejsze jest, że powstaje też plik pdf
. Aby tworzyć w ten sposób pliki o formacie pdf
są jednak pewne ograniczenia co do zawartości pliku latexowego. Warto mieć tą świadomość, gdy naszym celem jest plik pdf
.
Struktura dokumentu
Plik źródłowy jest plikiem tekstowym zawierającym polecenia latexa jak, właściwą treść i inne symbole kontrolujące zawartość dokumentu. Polecenie latexa jest ciągiem liter (małych i dużych) zaczynającym się od znaku \
. Polecenie może mieć argumenty. Argument umieszczany jest pomiędzy klamrami {
i }<\code> (ale nie jest to konieczne jak argument składa się z jednego znaku; klamry ogólnie służą do grupowania). Argumenty opcjonalne umieszczane są pomiędzy nawiasami kwadratowymi
[
i ]
.
Plik musi mieć odpowiednią strukturę. Składa się z dwóch części:
- preambuły i
- części głównej.
Preambuła powinna zaczynać się od polecenia \documentclass{...}
określającego rodzaj dokumentu. Najczęstszym rodzajem jest article
. Polecenie też przyjmuje argumenty opcjonalne. Najczęściej używane to
a4paper
- ustawia rozmiar papieru na A4,
10pt
, 11pt
, 12pt
- rozmiar tekstu.
Następnie mogą znaleźć się polecenia dotyczące stylu całego dokumentu i deklracje dodatkowych pakietów. Pakiet dołączamy za pomocą polecenia \usepackage{...}
.
Część główna ma postać:
\begin{document}
Treść dokumentu...
\end{document}
A oto przykładowy dokument, który zawiera deklaracje pakietów potrzebnych do obsługi języka polskiego:
% Preambuła
\documentclass[a4paper,11pt]{article}
\usepackage[polish]{babel}
\usepackage[OT4]{fontenc}
\usepackage[utf8]{inputenc}
% Część główna
\begin{document}
Treść.
\end{document}
Znak %
oznacza komentarz. Po wystąpieniu %
wszystkie znaki do końca linii są ignorowane przez kompilator.
Pakiet inputenc
mówi w jaki sposób są wprowadzone w pliku tekstowym znaki międzynarodowe. Współcześnie co raz częściej używa się kodowania UTF-8, które jest użyte w tym przykładzie. Jest ono wspierane już przez wiele większość edytorów. Możemy podać też inne sposoby kodowania. Innym często spotykanym jest standard ISO-8859-2 (Latin-2). Aby go użyć należy podać latin2
jako argument opcjonalny (zamiast utf8
).
Podstawy
Paragrafy
Podstawowym rodzajem treści dokumentu jest tekst, czyli wyrazy, zdania i całe paragrafy.
To jest pierwszy paragraf.
Nie ma znaczenia liczba odstępów między wyrazami.
Dobrym nawykiem jest umieszczanie zdań w osobnych liniach.
Aby zacząć następny (drugi już) paragraf wystarczy dodać co
najmniej jedną pustą linię.
Sekcje
Dla zwiększenia czytelności powinno dzielić się dokument na części. Podstawowym podziałem są sekcje.
Początkowe zdanie.
\section{Wstęp}
Treść wstępu.
\section{Sekcja główna}
Treść sekcji głównej i mniejsze sekcje wchodzące w jej skład.
\subsection{Podpunkt pierwszy}
Treść pierwszego podpunktu.
\subsubsection{Podpodpunkt}
Treść podpodpunktu.
\subsection{Podpunkt drugi}
Treść drugiego podpunktu.
Tytuł
Każdy szanujący się dokument powinien zaczynać się od tytułu, autora i ewentualnie daty powstania. Dlatego na początku części głównej można umieścić następujący kod.
\title{Wprowadzenie do \LaTeX-a}
\author{Jan Kowalski}
\date{\today}
\maketitle
Jak widzimy w tym przykładzie w argumentach poleceń można też używać inne polecenia.
Czcionki
Możemy też zmieniać krój czcionki oraz jego rozmiar.
To \emph{słowo} jest wyróżnione
(tak właśnie \LaTeX{} rozumie wyróżnianie słów).
\texttt{To zdanie jest napisane czcionką maszynową.}
Z kolei to {\sf słowo} i to \textsf{słowo} jest napisane
czcionką bezszeryfową.
{\Large Ten akapit jest trochę większy.
Możemy nadal stosować inne czcionki, np. {\bf pogrubioną}
i będą one również powiększone.}
W tym akapicie {\small niektóre słowa} są mniejsze.
Do tego {\small mogą być napisane {\sc kapitalikami
lub być pisane {\it kursywą}}}.
Widzimy, że rozmiar i krój mogą być zagnieżdżane. Nie można zagnieżdżać krojów. Istotny jest zawsze ostatnio wybrany krój. Pełną listę krojów i rozmiarów można znaleźć w dokumentacji latexa.
W powyższym przykładzie używaliśmy symbolów grupowania {
i }
. Wszystko co występuje pomiędzy tymi symbolami nazywamy grupą. Grupy służą do składania w jeden element większej ilości elementów (np. przy tworzeniu argumentów) albo do ograniczenia zasięgu użytych komend. W tym przykładzie grupy służy nam do ograniczenia zasięgu użytego kroju, czy też rozmiaru.
Innym przykładem jest użycie pustej grupy po komendzie \LaTeX
. Jest to zrobione po to, aby wymusić odstęp przed następnym słowem rozumie
.
Układ
Przenoszenie wyrazów
Weźmy pod uwagę plik źródłowy przykład.tex
:
\documentclass[a4paper,12pt]{article}
\usepackage[polish]{babel}
\usepackage[OT4]{fontenc}
\usepackage[utf8]{inputenc}
\pagestyle{empty}
\begin{document}
W tym akapicie występuje problem związany z przenoszeniem słowa dzwonnica.
To słowo trudo jest złamać tak, aby odstępy w linii nie były za duże lub za małe.
W związku z tym przy kompilacji generowane jest ostrzeżenie.
\end{document}
W wyniku kompilacji
$ latex przykład.tex
dostaniemy ostrzeżenie
Overfull \hbox (6.78139pt too wide) in paragraph at lines 7--12
W wyniku otrzymujemy taki akapit:
Aby temu zaradzić możemy na przykład zaproponwać łamanie lini między słowami słowa
i dzwonnica
. Służy do tego komenda \linebreak
. Modyfikujemy siódmą linię pliku źródłowego na
W tym akapicie występuje problem związany z przenoszeniem słowa\linebreak dzwonnica.
Kompilacja odbywa się już bez problemów, a wynikowy akapit wygląda teraz tak:
Teraz w pierwszej linii odstępy są trochę większe, co pogarsza wygląd estetyczny. Lepiej by było pewnie przeformułować jakoś to zdanie, żeby latex nie miał problemów z dzieleniem wyrazów.
Ogólnie jeśli nie zależy nam aż tak bardzo na jakości, możemy pozwolić na użycie większych odstępów między wyrazami dodając w preambule polecenie \sloppy
.
Czasami dzielenie wyrazów w niektórych słowach (np. w skrótach) nie jest porządane.
Pisanie w \LaTeX-u znacznie się różni od tego co mamy
w edytorach WYSIWYG.
W takim wypadku można zablokować łamanie wyrazu poprzez użycie polecenie \mbox{...}
.
Pisanie w \LaTeX-u znacznie się różni od tego co mamy
w edytorach \mbox{WYSIWYG}.
Łamanie linii i strony
Do łamania linii służy polecenie \\
. Powoduje ona przejście do nowej linii. Do złamania strony służy polecenie \newpage
. Żeby zacząć akapit bez wcięcia używamy \noindent
.
W języku polskim nie zostawia się jednoliterowych spójników na końcu wiersza. Jednak latex może zdecydować, że linia zostanie złamana właśnie zaraz po spójniku. Aby temu zapobiec można użyć niełamliwych spacji, które wprowadza się za pomocą znaku tyldy ~
.
\noindent
Pierwsza linia.\\
Druga linia.
Tutaj z kolei użyjemy niełamliwego odstępu, który często
występuje w~języku polskim. Poniżej jeszcze raz to zdanie,
ale bez niełamliwej spacji.
Tutaj z kolei użyjemy niełamliwego odstępu, który często
występuje w języku polskim.
Odstępy
Latex posiada sporo poleceń umożliwiających zmieniać domyślny układ graficzny. Tutaj pokażemy proste polecenia służące do wstawiania odstępu.
Do wstawienia odstępu poziomego służy polecenie \hspace{...}
. Argumentem powinna być liczba zakończona przyrostkiem oznaczającym jednostki. Przykładowe jednostki to cm
- centymetr, in
- cal. Możemy też jako argument użyć polecenia \stretch{...}
. Powoduje ono wstawienia takiego odstępu, aby aktualna linia została rozciągnięta na całą dostępną szerokość. Jeśli użyjemy więcej takich odstępów, to są one skalowane proporcjonalnie do wartości argumentów polecenia \stretch
.
Analogiczne polecenie, które służy do wstawiania odstępów pionowych jest \vspace{...}
.
\noindent
Centymetr: $|$\hspace{1cm}$|$. Cal: $|$\hspace{1in}$|$.\\
0\hspace{\stretch{1}}1\hspace{\stretch{3}}4\\
\vspace{3cm}
Większe odstępy między liniami mogą być przydatne.
W przykładzie tym użyliśmy znaków $
. Znak ten rozpoczyna i zakańcza tryb matematyczny, dzięki czemu możemy wstawiać różne ciekawe znaki. Zobatrz także cześć poświęconą matematyce.
Znaki specjalne
Symbole specjalne
Niektóre znaki są interpretowane przez kompilator w specjalny sposób, więc nie można wstawić ich bezpośrednio, aby je uzyskać w tekście. Są to $ & % # _ { } ~ ^ \
. Większość można otrzymać poprzedzając je znakiem \
. Do trzech trzeba użyć trybu matematycznego. Polecenie \
(spacja poprzedzona \
) oznacza pełnowymiarową spację.
\$ \& \% \# \_ \{ \} $\tilde{\ }$ $\hat{\ }$ $\backslash$
Cudzysłowy
W latexu cudzysłów "
może mieć specjalne znaczenie (np. w trybie języka polskiego). Do tworzenia różnych cudzysłowów należy używać znaków , ' `
. Jeżeli chcemy mieć podwójny cudzysłów, to wystarczy, że wprowadzimy dany znak dwa razy pod rząd.
Cudzysłowy angielskie: `x', ``tekst w cudzysłowach''.
W języku polskim używamy ,,takich'' cudzysłowów.
Myślniki
Są trzy rodzaje myślników: -
, --
, ---
. Pierwszy jest najkrótrzy i jest stosowany jako łącznik lub do przenoszenia wyrazów. Drugi jest trochę dłuższy i używamy go np. do zakresów liczbowych. Trzeci jest najdłuższy i jest czasami stosowany jako zwykły myślnik.
Łącznik: np. 52-ego. Pauza: np. 12--17.
Myślnik --- na przykład taki.
Akcenty
Złożone elementy
Matematyka
Makra
Wstawianie grafiki