#### {% title "Nie za krótkie wprowadzenie do LaTeX-a" %} # Nie za krótkie wprowadzenie do LaTeX-a
{%= image_tag "/images/knuth.jpg", :alt => "[Donald E. Knuth]" %}System TeX powstał w 1980 roku. Jego autorem jest prof. D. Knuth. Od tego czasu system jest stale rozwijany i udoskonalany. Co to jest TeX? Krótko: TeX jest systemem do składu dokumentów. Długo: [Najkrótsze wprowadzenie do systemu TeX](http://www.gust.org.pl/doc/tex_whatisit/). Skompilować jakiś dokument z [arXiv] []. W systemie TeX znajdziemy około 300 różnych programów. Najważniejsze z nich to: latex, pdflatex, **xelatex**. Najważniejsze biblioteki do języka *TeX*: * **latex** * *plain* * *eplain* * *context* Biblioteka *LaTeX* (mówimy też format *LaTeX*) jest najczęściej używana. Autorem tej biblioteki jest Leslie Lamport. Kilka zdań o rozszerzeniach w nazwach plików: .tex, .sty, .pdf, .eps, .ps, .png, .jpg. Co będzie? * Dlaczego TeX? * Praca z programem *texworks* * Budowa typowego dokumentu latechowego * Rozszerzanie funkcjonalności latexa za pomocą dodatkowych bibliotek: * `\usepackage{hyperref}` * `\usepackage{graphics}` ## Dlaczego TeX a nie… ? * [TeX Users Group] [tug] (*TUG*) * [Polska Grupa Użytkowników Systemu TeX] [gust] (*GUST*) * [arXiv.org e-Print archive] [arxiv] (*arXiv*) ## Praca z programem *texworks* Cykl: edycja, kompilacja, podgląd. Kod z błędami. Korzystamy z szablonów. ~/.TeXworks/ ... |-- templates | |-- Basic XeLaTeX documents # miejsce na nasze szablony | | |-- article-hyperref.tex | | `-- article-bibliography.tex | |-- Basic LaTeX documents # standardowe szablony | | |-- article.tex | | `-- letter.tex | |-- Beamer presentations | | |-- conference-ornate-20min.en.tex | | |-- generic-ornate-15min-45min.en.tex | | `-- speaker_introduction-ornate-2min.en.tex | `-- XeLaTeX documents | `-- article-fontspec.tex ... Konfigurujemy *texworks*. Gotowe szablony do pobrania: * {%= link_to "article-hyperref.tex", "/doc/templates/article-hyperref.tex" %} * {%= link_to "article-bibliography.tex", "/doc/templates/article-bibliography.tex" %} Na koniec dwie uwagi: 1\. Na zajęciach będziemy korzystać z programu *xetex*. Program ten potrafi czytać pliki w kodowaniu UTF-8 (domyślne kodowanie na *Sigmie*). 2\. Program *xetex* potrafi użyć do składu każdy font zainstalowany w systemie. Nie potrafi tego program *tex*. Listę zainstalowanych fontów otrzymamy wykonując polecenie: fc-list Aby zainstalować lokalnie nowy font kopiujemy plik z fontem do katalogu *~/.fonts* i wykonujemy polecenie: fc-cache -v -f ~/.fontsComputers are good at following instructions, but not at reading your mind.
{%= image_tag "/images/jkew.jpg", :alt => "[Jonathan Kew]" %}## Budowa typowego dokumentu latechowego Szablon *article-hyperref.tex* pokazuje jak zmieniać wielkość fontu, jak ustawia się rozmiar strony, jak zmieniać font, jak wstawić spis treści (aby się złożył musimy dwukrotnie skompilować dokument). :::latex % !TEX TS-program = xelatex % !TEX encoding = UTF-8 % Szablon dokumentu: % XeLaTeX + klasa article + pakiet hyperref \documentclass[12pt]{article} % domyślne 10pt jest za małe \usepackage{fontspec} % dokumentacja „fontspec.pdf” \defaultfontfeatures{Mapping=tex-text} % konwencja: -- --- ,, '' \usepackage{xunicode} \usepackage{xltxtra} \setmainfont{DejaVu Serif} % zmień font na „DejaVu Serif” % font powinien byc zainstalowany w systemie? \usepackage{geometry} % dokumentacja „geometry.pdf” \geometry{a4paper} \usepackage{hyperref} % wstaw odsyłacze \usepackage{graphicx} % polecenie \includegraphics, dokumentacja „epslatex.pdf” \usepackage[polish]{polyglossia} % najważniejszy pakiet \title{Historia mojej rodziny} \author{Hieronim Brzęczyszczykiewicz} %\date{} % odkomentuj aby usunąć datę lub wstaw jakąś datę między {} % jeśli tego nie zrobisz będzie drukowana aktualna data \begin{document} \maketitle % drukuj tytuł \tableofcontents % drukuj spis treści \section{Pierwsza sekcja} Akapity oddzielamy pustym wierszem. \subsection{Pierwsza podsekcja} Więcej tekstu. \end{document} Wpisując swój tekst w powinniśmy zwrócić uwagę na to, że LaTeX rezerwuje te znaki do swoich celów: % $ # & \ { } ^ _ ~ Są to tzw. *znaki specjalne*. Jeśli chcemy wydrukować któryś z tych znaków, to wklepujemy odpowiednio: \% \$ \# \& Poniższe cztery znaki " | < > też są znakami specjalnymi. Jeśli je wpiszesz, to zostaną wydrukowane zupełnie inne rzeczy. ## Bibliografia albo Literatura Teraz przyjrzymy się bardziej skomplikowanemu dokumentowi. Pokazuje on jak przygotowywać bibliografię w systemie LaTeX. :::latex % !TEX TS-program = xelatex % !TEX encoding = UTF-8 Unicode \documentclass[12pt]{article} \usepackage{geometry} \geometry{a4paper} \usepackage{fontspec} \usepackage{hyperref} \usepackage{xunicode} \usepackage{xltxtra} \usepackage{url} % do przełamywania url \usepackage[polish]{polyglossia} \bibliographystyle{unsrt} \title{Bibliografia do przedmiotu\\,,Środowisko Programisty''} \author{Włodzimierz Bzyl} \date{20 października 2009} \begin{document} \maketitle \tableofcontents \section{Podstawy}\label{sec:basics} W fontach maszynowych, ang. \emph{monospaced fonts}, wszystkie znaki mają taką samą szerokość. Za pomocą takich fontów składane są listingi lub kod programów. \section{Poziom średnio zaawansowany}\label{sec:intermediate} W książce ,,\LaTeX\ Web Companion'' opisano format \LaTeX\ i podstawowe pakiety do niego. \section{Rzeczy zaawansowane}\label{sec:advanced} DocBookXsl jest ciekawym projektem. Więcej na ten temat można poczytać w~\cite{wiki.docbookxsl}. Do konwersji dokumentu z formatu latex na html najlepszym narzędziem jest~\cite[uwaga, system szuka nowego opiekuna]{Gurari.TeX4ht}. O fontach maszynowych już było na stronie~\pageref{sec:basics}. \bibliography{sp} \end{document} Powyższy kod, po zapisaniu w pliku kompilujemy w taki sposób: xelatex pracka bibtex pracka xelatex pracka xelatex pracka Potrzebne są 4 przebiegi. Dlaczego? Plik z bibliografią użyty powyżej, *sp.bib*: :::bibtex @Book{Goossens.lwc, author = "Michel Goossens and Sebastian Rahtz", title = "{\LaTeX} Web Companion", publisher = "Addison-Wesley", year = "2001" } @Booklet{Gurari.TeX4ht, title = {TeX4ht: {\LaTeX} and {\TeX} for Hypertext}, author = "Eitan Gurari", howpublished = "\url{http://www.cse.ohio-state.edu/~gurari/TeX4ht/}", year = 2004, } @Booklet{Veillard.libxslt, author = {Daniel Veillard}, title = {{LIBXSLT} --- The {XSLT C} library for {G}nome}, howpublished = {\url{http://xmlsoft.org/XSLT}}, year = 2003, } @Booklet{wiki.docbookxsl, author = "Wiki", title = "{DocBook} {XSL} {Stylesheets}", howpublished = {\url{http://wiki.docbook.org/topic/DocBookXslStylesheets}}, year = 2004, } @Booklet{jsMath.examples, title = {Examples of jsMath}, author = "Davide Cervone", howpublished = "\url{http://www.math.union.edu/~dpvc/jsMath/examples/welcome.html}", year = 2009, } Uwagi: * polecenie *\ref{marker}* drukuje liczbę generowaną przez polecenie *\label{marker}*; jest to zwykle numer rozdziału, obrazka, równania, lub tabelki * polecenie *\pageref{marker}* drukuje numer strony na której umieszczono *\label{marker}* * *\cite[note]{key}* wypisuje odpowiedni numer z bibliografii z opcjonalna notką. ## Korzystamy z pakietów: polecenie \usepackage Na koniec ,,groch z kapustą'', czyli wstawianie obrazków, tabelek, korzystanie z koloru, notacja do wpisywania matematyki... :::latex % !TEX TS-program = xelatex % !TEX encoding = UTF-8 Unicode \documentclass[12pt]{article} \usepackage{geometry} \geometry{a4paper} \usepackage{fontspec} \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} %\setmainfont{Lucida} \usepackage{xunicode} \usepackage{xltxtra} \usepackage{hyperref} \usepackage{color} \usepackage{url} \usepackage{graphicx} % polecenie \includegraphics \usepackage[polish]{polyglossia} \title{\color{red}{Grafika, tabelki...}} \author{Włodzimierz Bzyl} \date{\color{blue}{20 października 2009}} \begin{document} \maketitle \tableofcontents \listoffigures \listoftables \section{Podstawy}\label{sec:podstawy} Książka ,,Sekunda komputera'' przedstawia to, co komputer robi w~ciągu jednej sekundy -- taki jest \emph{bynajmniej} główny kierunek rozważań. \section{Otoczenie verbatim}\label{sec:verbatim} W otoczeniu \emph{verbatim} umieszczamy kod programu, wynik wykonania polecenia powloki itp. \begin{verbatim} $ fc-list | egrep "TeX Gyre Schola" TeX Gyre Schola:style=Bold TeX Gyre Schola:style=Italic TeX Gyre Schola:style=Bold Italic TeX Gyre Schola:style=Regular \end{verbatim} \section{Matematyka}\label{sec:wzory} Ten wzór wszyscy znają: \(2+2=4\), a~ten jest znany tylko niektórym: \[ e^{2\pi i}=-1 \] Oba wzory wpisujemy w prosty sposób z~klawiatury: \verb|\(2+2=4\)| oraz \begin{verbatim} \[ e^{2\pi i}=-1 \] \end{verbatim} \section{Więcej matematyki} Jeszcze kilka wzorów: \[ \int_0^1 f(x)\,dx = 1 \] \[ {n\choose k} \equiv {\lfloor n/p\rfloor \choose \lfloor k/p\rfloor} {{n\bmod p} \choose {k\bmod p}} \pmod p \] \[ A = \pmatrix{x-\lambda & 1 & 0\cr 0 & x-\lambda & 1\cr 0 & 0 & x-\lambda\cr} \qquad\qquad \left\lgroup\matrix{a&b&c\cr d&e&f}\right\rgroup \left\lgroup\matrix{u&x\cr v&y\cr w&z}\right\rgroup \] \section{Ilustracje}\label{sec:ilustracje} Fajna ilustracja: \begin{figure} \caption{Całkowita wariacja} \label{fig:wariacje} \begin{center} \includegraphics[width=.75\textwidth]{diagram} \end{center} \end{figure} \section{Tabelki}\label{sec:tabelki} Moje wydatki umiesciłem w~tabelce: \begin{table} \caption{Wydatki} \label{tab:wydatki} \begin{center} \begin{tabular}{clr} &Pozycja&Kwota\\ \hline 1.&Książki&2,000\\ &Oprogramowanie&500\\ 2.&Prąd&1,000\\ \cline{3-3} &Razem&3,500 \end{tabular} \end{center} \end{table} \end{document} Uwaga: brakujący obrazek *diagram* przygotować w trakcie wykładu: * korzystając z programu *inkscape* * wstawić jakąś grafikę pobraną z internetu ### Inkscape Z manuala: „Inkscape − an SVG (Scalable Vector Graphics) editing program.” Od siebie dodam, że program jest łatwy w obsłudze, a obejrzenie kilku tutoriali ze strony [Inkscape tutorials for the novice artist](http://screencasters.heathenx.org/) powinno przekonać do programu niedowiarków. #### Linki [gust]: http://www.gust.org.pl "GUST" [gust doc]: http://www.gust.org.pl/doc "Dokumentacje — GUST" [tug]: http://www.tug.org/ "TUG" [arxiv]: http://arxiv.org/ "arXiv.org"Jonathan Kew autor XeTeX-a