> Reveni al la listo de helpolibroj.

LaTeXo Malgranda Helpolibro

Dato: lasta kontrolado 2015

1 Enkonduko

LaTeXo (prononcata lateko) estas sistemo de teksta kompostado kaj makroaro por la programlingvo TeX. LaTeXaj fontoj estas skribitaj per tekstoredaktilo, kaj la fontoj tradukiĝas por fari dokumenton (ekzemple pdf). Ekzemploj de tekstoredaktiloj estas Vim aŭ Emacs.

LaTeXo estas publikata laŭ la libera permesilo LPPL (LaTeX Project Public License).

Tiu programo diferenciĝas de sistemoj WYSIWYG (What You See Is What You Get, esperante ''vidate-vidote''), ĉar oni skribas la ideojn kaj oni ne zorgas pri la aranĝo.

La sistemo ne estas malsimpla, se oni lernas bone la kialon de ĉio, kion oni faras.

1.1 Kion mi povas skribi?

LaTeXo estas tre utila por sciencistaj verkoj, sed ankaŭ por beletristoj, verkistoj, ktp. Jen estas kelkaj ebloj: poezio, prezentoj, ĥemio, matematiko, muziko, ĉiuj eblaj artoj. Vi povas fari tabelojn, grafikaĵojn, geometriajn figurojn kaj enigi bildojn, kaj tiel plu. Oni ŝargas la bonajn pakaĵojn kaj skribas la bonajn komandojn, kaj LaTeXo zorgas aranĝi ĉion.

Ŝanĝante nenion en la prezento, la skribaĵo estas simpla kaj legpova. Se vi volas ŝanĝi ion poste, vi povos trovi pli da helpo per la reto.

2 Lernante LaTeXon

2.1 Kion mi devas skribi por programtraduki tekston?

Jen ekzemplo de antaŭdokumento:

% la signoelcento estas la signo por komenti en LaTeXo.
% en via tekstoredaktilo, skribu:

\documentclass[11pt,a4paper]{book}

% ni elektas la dokumentoklason (ĉi tie, ni elektis book), skribita inter
% du kunigaj krampoj kaj ni povas ankaŭ aldoni opciojn inter rektaj
% krampoj.

\usepackage[utf8]{inputenc} %% por la strukturo de la dokumento,
                            % "utf8" por la Unikodo
\usepackage[T1]{fontenc} %% por la kodoprezenta tiparo,
                         % la T1-opcio permesas skribi diakritajn
                         % signojn
\usepackage[esperanto]{babel} %% por la lingvo

Oni do skribis la antaŭdokumenton kun klaso kaj kun kelkaj pakaĵoj. Se oni volas enigi bildojn, ekzemple, oni devas aldoni:

\usepackage{graphicx}

Kion mi povas fari por skribi esperantajn signojn en utf8? Jen kion vi devas skribi en antaŭdokumento:

\DeclareUnicodeCharacter{0108}{\^{C}}  %% Esperanta litero Ĉ
\DeclareUnicodeCharacter{0109}{\^{c}}  %% Esperanta litero ĉ
\DeclareUnicodeCharacter{011C}{\^{G}}  %% Esperanta litero Ĝ
\DeclareUnicodeCharacter{011D}{\^{g}}  %% Esperanta litero ĝ
\DeclareUnicodeCharacter{0124}{\^{H}}  %% Esperanta litero Ĥ
\DeclareUnicodeCharacter{0125}{\^{h}}  %% Esperanta litero ĥ
\DeclareUnicodeCharacter{0134}{\^{J}}  %% Esperanta litero Ĵ
\DeclareUnicodeCharacter{0135}{\^{\j}} %% Esperanta litero ĵ
\DeclareUnicodeCharacter{015C}{\^{S}}  %% Esperanta litero Ŝ
\DeclareUnicodeCharacter{015D}{\^{s}}  %% Esperanta litero ŝ
\DeclareUnicodeCharacter{016C}{\u{U}}  %% Esperanta litero Ŭ
\DeclareUnicodeCharacter{016D}{\u{u}}  %% Esperanta litero ŭ

Poste, oni enigas la tekston, sed inter medio, kiu limigos ĝin:

\begin{document} %% ĉi tie komencas la medio de tute la tekstodokumento

bonan tagon %% ĉi tie mi skribas mian tekston

\end{document} %% ĉi tie malkomencas la medio de la tekstodokumento

Nun, oni povas diri, jes, sed, kiel mi faros por prezenti mian dokumenton? Certe, ankoraŭ estas multaj aĵoj kiujn ni ne vidis, sed vi scias nun kiel funkcias LaTeXodokumento: oni havas antaŭdokumenton, kie ĉiam ĉeestas dokumentoklaso, kaj poste oni havas tekston inter la document-medio.

2.2 Komandoj kaj medioj

La sintakso de LaTeXo havas du konceptojn por limigi la tekston: la komandojn kaj la mediojn.

2.3 Komando

Oni jam vidis komandon:

\documentclass{klasonomo}

Komando estas difinita per malsuprenstreko sekvata de vorto, kaj la teksto, kion vi volas ŝanĝi, devas esti inter kunigaj krampoj. Ekzemple:

Bonan tagon, Gerda, ĉu vi legis \emph{Haĉjo kaj Grenjo} de la Fratoj Grimm?

Se mi programtradukas nun, Haĉjo kaj Grenjo aperos enfaze.

Sed emph ne signifas, ke la vortoj inter la kunigaj krampoj estas titolo, ĉar vi povas uzi ĝin por emfazi ĉiujn tipojn de ideoj.

El tio sekvas, ke la plej bona maniero por skribi LaTeXodokumentojn estas difini komandojn laŭ ideoj. Jen ekzemplo:

% antaŭdokumento
\newcommand{\titolo}{\emph}
\newcommand{\loko}{\emph}

\begin{document}

Majtak eniris en la tavernon tiel nomata \loko{La Trikapa Drako}, kaj
renkontis sian amikinon Gerda.

---Bonan tagon, Gerda, ĉu vi legis \titolo{Haĉjo kaj Grenjo} de la
Fratoj Grimm?

% rimarku, ke la du linioj estas dislimigataj per malplena linio por fari
% paragrafon

\end{document}

La programtradukaĵo estas kiel la antaŭa, sed nun vi povas ŝanĝi, se vi volas, la komandon loko per ŝanĝo de la antaŭdokumento:

\newcommand{\loko}{\textbf} %% skribu \textbf pro \emph

Tiel, la enhavita teksto de ĉiu loko -komando en la dokumento estas programtradukita kiel grasa teksto.

Ankaŭ oni povas fari pli malfacilajn aĵojn kaj aldoni argumentojn al la nova komando.

% en antaŭdokumento
\newcommand{\ekstrakto}[2]{ %% per [2] mi diras, ke mi uzos du argumentojn
\begin{flushright} %% medio por ĝisrandigi dekstren (ni vidos tion poste)
(linio~#1, %% la signo ~ estas malrompa spaceto
paĝo~#2)
\end{flushright}}

% en dokumento
\ekstrakto{14}{236}

Post linio estas #1, tio estas la unua argumento. La dokumento programtradukita montros tekston ĝisrandigitan dekstren inter rondaj krampoj dirante: «(linio 14, paĝo 236)».

Fine, komando estas makro, kiu difinas la paĝaranĝon de la teksto, kaj se ni elektas la komandonomon laŭ la aspekto kaj ne laŭ la ideo, la dokumento ne estos ergonomia.

La samo okazas pri la medio.

2.4 Medio

Medion oni skribas ĉiam tiamaniere:

\begin{medio}

ĉi tie estas mia teksto

\end{medio}

Oni vidis jam document-medion. Medion oni uzas ordinare, kiam la teksto estas longa. Ekzemple:

\begin{center}
    Tio estas centrigita teksto.
\end{center}

Same, oni povas krei novajn mediojn. Ni kreu nun versocitaĵan medion:

% en antaŭdokumento
\newenvironment{citajxo}{ %% citajxo pro citaĵo kaŭze de signo ĵ.
    \begin{quote}\begin{verse}
    \slshape\small
    }{
    \end{verse}\end{quote}}

\begin{document}

Tio estas citaĵo:
    \begin{citajxo}
    Finita estas la fabelo, \\ 
                % mi uzas \\ por fari novan linion en verse-medio
    jen muso kuras en bela felo; \\ 
    kaptu ĝin en sakon \\ 
    kaj el la felo faru jakon. \\ 
    \end{citajxo}
    % tio estas citaĵo el la elektitaj fabeloj de la fratoj Grimm
\end{document}

Vi povas uzi komandojn en medio aŭ mediojn en komando, sed ankaŭ komandojn en komando kaj mediojn en medio. Tio ŝajnas intermiksa, sed oni kutimiĝas bone. Vi tamen ne povas fari:

% Tio jena ne estos akceptita:
\begin{itshape}

Mia poraĉeta listo enhavas:
    \begin{itemize}
       \item tri pomojn verdajn
\end{itshape}
       \item du citronojn.
    \end{itemize} %% oni devus enigi tiujn du lastajn liniojn
                  % antaŭe `itshape`-medio (kursiva medio).

2.5 Dokumentoklasoj

Ekzistas multaj dokumentoklasoj. Memoru, ke la dokumentoklaso enigas antaŭdifinitan paĝaranĝon. La klaso havas nomon kaj eblajn opciojn:

\documentclass[opcioj]{klasonomo}

Jen kelke da klasoj tre uzataj kaj kelkaj opcioj, kiujn vi povas bezoni:

article
Por fari mallongajn dokumentojn. Ĉi tie ne ekzistas, ekzemple, komando 'chapter'. Ekzemple, por la article -klaso, la opcio a4paper zorgas pri la formato de la paĝo kaj la opcio 11pt temas pri la dimensio de la tiparo.
report
Por fari dokumentojn pli longajn ol la article -klaso.
book
Por fari librojn
letter
Por fari leterojn
beamer
Por fari prezentaĵojn
slides
Por fari lumbildojn

Iru al la angla wikibooks por vidi pli da klasoj.

2.6 beamer-dokumentoklaso

Ni diru kelkajn komentojn pri la beamer-dokumentoklaso. Jen ekzemplo por uzi tion:

\documentclass[utf8,11pt]{beamer}
% kaj la aliaj elementoj de la antaŭdokumento

\begin{document}

\part{Unua parto}

\frame{\partpage}

\section{Unua sekcio}

\begin{frame}
    \frametitle{ }
    \framesubtitle{ }

    enhavotexto

\end{frame}

\end{document}

2.7 Malpermesitaj literoj

Jen kelkaj literoj, kiujn oni devas skribi aldonante ĝustantaŭe malsuprenstrekon, se oni nur volas vidi ilin en tekstoformo:

# $ % ^ & _ { } ~ 

2.8 Dislimigiloj

Por dislimigi la dokumenton oni povas uzi diversajn komandojn:

\part{ } %% la parto
\chapter{ } %% la ĉapitro, tio ne funkcias en article-klaso.
\section{ } %% la sekcio
\subsection{ } %% la subsekcio en sekcio
\subsubsection{ } %% la subsubsekcio
\paragraph{ } %% la paragrafo
\subparagraph{ } %% la subparagrafo

Vi rimarkos, kiel la komandoj numeriĝas sole. Se vi ne volas numeri ekzemple la enkondukon, vi devas skribi steleton kiel ĉi tie:

\chapter*{Enkonduko}

2.9 Krei la enhavotabelon

Poste, se oni volas krei enhavotabelon, oni nur devas skribi en la document-medio:

\tableofcontents

Post programtraduki la dokumenton, vi vidos aperi dosieron toc, kiu enhavas la informojn pri la enhavotabelo, sed vi ne havas ankoraŭ la enhavotabelon printata en la programtradukita dokumento (.pdf, .dvi, ktp.). Programtraduku la dokumenton denove: vi vidos, ke la enhavotabelo aperos. Oni devas do programtraduki la dokumenton du fojojn por havi la enhavotabelon. Okazas la samo pri la krucreferencoj.

Rimarku, ke la komando kun steleto ne aperas en la enhavotabelo. Se vi volas enigi ion, skribu:

\addcontentsline{toc}{nivelo}{nomo}

        % 'nivelo' estas por part, section, chapter, ktp.
        % 'nomo' estas la nomo, kiun vi volas aperigi en la enhavotabelo.

Ekzemple, se vi volas enigi la enkondukon sen konsideri ĝin kiel ĉapitron, skribu do:

\chapter*{Enkonduko}
\addcontentsline{toc}{chapter}{Enkonduko}

2.10 Titolo de la dokumento

Por skribi la titolon de la dokumento, oni skribas en la antaŭdokumento:

\title{titolo}
\author{aŭtoro}
\date{ }%% se vi lasas tion ĉi malplena, la dato ne aperos.
        % se vi ne skribas la daton, tio estas la samo, kiel skribi
        % \date{\today}, kiu donas la dato de la traduktago.

Post la komenco de la document-medio, oni devas aldoni:

\maketitle

La titolo aperas malsame laŭ la elekta dokumentoklaso.

Gratulegon! Vi povas nun skribi vian LaTeXodokumenton. Vi povas tamen ankoraŭ lerni multajn aliajn aĵojn. Konsoliĝu ĉar post lerni la bazojn, la novaj komandoj kaj la novaj medioj estas facilaj. Oni povas vidi kelkajn interesajn aĵojn, kiujn vi povos bezoni.

3 Lernante pri aliaj pakaĵoj

3.1 Ligiloj per pakaĵo hyperref

En la dokumento vi povas enigi internajn referencojn aŭ hipertekstajn referencojn per la komandoj:

\section{mia sekcio}

ĉi tie estas mia teksto\label{mia_teksto}

% kaj en alia loko de la dokumento, skribu ekzemple:

Vidu sekcion \ref{mia_teksto} %% por la numero de la sekcio
Vidu paĝon \pageref{mia_teksto} %% por la numero de la paĝo, kie estas
                                  % la etikedo \label

Oni povas uzi la pakaĵon hyperref:

\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
    % ĉi tie, la opcioj estas por kolori la ligilojn.

Tiamaniere, la enhavo interligiĝas, kaj vi povas uzi tion por moviĝi pli rapide en la dokumento kaj por serĉi la informojn pli facile.

3.2 Koloro per pakaĵo color

La pakaĵo color utilas por uzi pli da koloroj. Oni povas aldoni opciojn por pliigi la eblajn kolorojn.

\usepackage[usenames,dvipsnames]{color}

Poste, en la dokumento, ni vidu kelkajn komandojn:

\textcolor{koloro}{teksto} %% kolori la tekston
\pagecolor{koloro}         %% kolori la tutan paĝon
\colorbox{koloro}{teksto}  %% kolori la tekstujon

Vi povas ankaŭ difini viajn proprajn kolorojn:

\definecolor{grizo}{rgb}{175,175,175} %% en RGB
\definecolor{grizo}{HTML}{AFAFAF}     %% en HTML

Kaj vi povas uzi vian propran koloron:

\textcolor{grizo}{Oni skribas ĉi tie grizan tekston}

3.3 Tabelo per tabular

Vi ne bezonas ŝargi pakaĵon por fari simplan tabelon. Jen ekzemplo de tabeloj:

% ---- Baza tabelo

\begin{tabular}{ccc}
        % c por centrigi tekston en la kolumno,
        % tri c por tri kolumnoj
    \hline                           %% por printi linion
    & Gerda & Majtak \\              %% unua linio
    legis la rakontojn de la fratoj Grimm & ne & jes \\ %% dua linio
    \hline
\end{tabular}

% ---- pli komplika tabelo

\begin{tabular}{r|c|c|}
    \cline{2-3}
            % cline por fari linion de la dua ĝis la tria kolumno.
    & \multicolumn{2}{|c|}{\textbf{Manĝaĵo}} \\  
            % unua linio: la unua kolumno estas malplena, la dua kaj la
            % tria estas kunigitaj, kaj la vorto Manĝaĵo aperas meze de la
            % dua kaj la tria kolumno.
    \cline{2-3}
    & \textsl{Vendejo} & \textsl{Domo} \\ %% dua linio
    \cline{1-3}
    \multicolumn{1}{|c|}{\textsl{pano}} & unu & tri \\ 
            % por ke la linio maldekstre aperos
            % (oni ne povas skribi \begin{tabular}{|r|c|c|}, ĉar la
            % maldekstra linio aperus do en la tuta kolumno)
    \multicolumn{1}{|c|}{\textsl{pomo}} & kvar & du \\ 
    \cline{1-3} %% ĉi tie estas la sama ol \hline ĉar la linio estas en
                % la tri kolumnoj
\end{tabular}

Poste, oni faras tabelon kun larĝa kolumno, kaj se vi provas la lrc (left, right, center) kun longa teksto vi vidos, ke la linio ne rompiĝas. Jen solvo:

\begin{tabular}{|p{2cm}||p{2cm}|}
            % p estas por ĝisrandigi supren
    ĉelo 1 & ĉelo 2 pli longa kiu okupas multe \\ 
    ĉelo 3 & ĉelo 4 pli longa kiu okupas multe \\ 
\end{tabular}

Se oni faras tabelon, kiu okupas pli ol unu paĝon, faru ekzemple:

% en antaŭdokumento
\usepackage{supertabular}

% en dokumento

\begin{center}
    \tablefirsthead{
            \hline
            \textbf{Rolulo} & \textbf{Karaktero} \\ 
            \hline\hline
                   }
        % por ke aperu la unua linio de la tabelo
    \tablehead{
        \hline
        \multicolumn{2}{|l|}{
                \small\texttt{Roluloj kaj iliaj karakteroj}
                            } \\ 
                \hline\hline Rolulo & Karaktero \\ \hline
              }
                % por ke aperu la unua linio de
                % la tabelo en ĉiu paĝo krom la unua
    \tabletail{
        \hline\hline
        \multicolumn{2}{r}{\small\sl iri al la sekva paĝo} \\ 
              }
                % vortoj en ĉiu paĝo malsupre
    \tablelasttail{\hline}
                % aldoni pli da aĵoj malsupre, ekzemple linion.

    \begin{supertabular}{|p{0.2\textwidth}|p{0.6\textwidth}|}
    Gerda & ne ŝatas legi \\ 
    Majtak & eniri en La Trikapan Drakon \\ 
    ktp. ĝis la fino de la tabelo, trairante paĝojn & ktp. \\ 
    \end{supertabular}
\end{center}

3.4 Tiparo

Oni povas uzi malsimilajn tiparojn: kursiva (it), grasa (bf) teksto, ktp. Jen la skribokielo:

% ---- Komando
\textbf{ } aŭ {\bfseries teksto}
\textit{ } aŭ {\itshape teksto}
\textup{ } aŭ {\upshape teksto}

% ---- Medio per \begin{medio} teksto \end{medio}

bfseries %% ekzemple: \begin{bfseries} teksto \end{bfseries}
itshape
upshape

Jen pli da komandoj:

\textnormal{ } aŭ {\normalfont }
\textsl{ } aŭ {\slshape } %% por fari "medio" oni uzas \begin{slshape} \end{slshape}
\textsc{ } aŭ {\scshape }
\texttt{ } aŭ {\ttfamily }
\textrm{ } aŭ {\rmfamily }

3.5 Reprezento de tabelo kun la table-medio

Oni uzas la table-medion por meti la tekston, kie oni volas:

\begin{table}[b]
    Tio estas mia teksto lokita malsupre en la paĝo kaŭze de la [b]
    opcio.
\end{table}

Oni uzas la t, b, h inter rektaj krampoj por meti la enhavitan tekston en la paĝosupro (t: top), en la paĝomalsupro (b: bottom), en la loko, kie la teksto en la fontoj estas skribita (h: here).

Oni povas uzi la table-medion por limigi la tabular-medion kaj aldoni al ĝi nomon per la caption -komando.

\begin{table}
    \begin{tabular}
    a & b \\ 
    1 & 2 \\ 
    \end{tabular}
    \caption{La nomo}
        % Oni povas ankaŭ aldoni krucreferencon per:
    \label{la_nomo}
\end{table}

3.6 Figuroj

Vi povas ankaŭ uzi la figure-medion per:

\begin{figure}[poziciopcio] %% poziciopcio estas b, t, p, h.
    mia teksto, tabelo, ktp.

    \caption{nomo de la figuro} %% aperas ankaŭ la numero de la figuro.
    \label{etikedo}
\end{figure}

Kaj vi povas krei la figurotabelon skribante en la document-medio:

    \listoffigures

3.7 Poezio

Nun ni vidos, kiel verki poezion. Tio estas tre facila. Jen la medio:

\begin{verse}
    mia unua verso \\ 
    kaj mia dua verso \\ 
    mia unua strofo.

    Mia kvar verso venis \\ 
    kaj la kvina alvenis \\ 
    adiaŭ poemeto.
\end{verse}

Rimarku, ke en la lasta verso de la strofoj oni ne skribas du malsuprenstrekojn. Vi devas ankaŭ lasi malplenan linion inter ambaŭ strofoj.

Oni povas uzi la pakaĵon verse, tre utilan por la poeto. Ni donu ekzemplon per mia sekvanta poemo:

\documentclass{article}
\usepackage{verse}

\newcommand{\largxo}{\setlength{\settowidth}{\versewidth}}
    % por ke la poemo estu centrita en la paĝo laŭ la longo de la
    % versoj.

\begin{document}

\poemtitle{La letero de la tero}%%4/09/2011
\largxo{Tra la montojn, tra la tempojn,}
\begin{verse}[\versewidth]
        Tra la montoj, tra la tempoj, \\*
                % mi skribas «\\» por fini la verson kaj «\\*»
                % por ne paĝosalti inter la ĉi-tiea verso
                % kaj la sekva.
        poeto paŝis sole sen vortilo, \\ 
        tra la herbejo, tra la tuta mondo, \\*
        sen plumo, sen papero, sen inkujo.

        Tamen li kontentis, jes, \\*
        ĉar li estis sen zorgego. \\ 
        Li paŝis, rigardis ĉiujn, \\ 
        kaj trapasis poezion \\*
        kun nur li kaj siaj pensoj.

        Kiam li venis ĉagrena, \\*
        diris ĉiam la spirito: \\ 
        «Ho! Poeto! Ho! Ĉi tie! \\ 
        Rigardu, kara verkisto, \\ 
        estas tago, kiu venas, \\*
        siajn sagojn jam ŝutanta!»

        Ekfeliĉis la poeto, \\*
        rigardis, kie la voĉo \\ 
        diris al vi... ho, mondeto! \\ 
        pensis tiam la poeto, \\ 
        pensanta, ke li jam pensas, \\*
        kiel pensas la pensulo.

        La suno kreskis kaj kreskis, \\*
        ĝis ruĝis la verda herbo, \\ 
        kaj kiam estis jam blua \\ 
        la gigantega ĉielo, \\ 
        falis pluvo, kaj la pluvo \\*
        ekpentris teren leterojn.
\end{verse}

\end{document}

3.8 Matematiko

Por skribi matematikodokumentojn, vi povas vidi la pakaĵojn de ams:

% Ekzemple:
\usepackage{amsmath,amsfonts,amssymb,amsthm,amsxtra}

% Kaj en la dokumento oni povas skribi nun:

\begin{equation}
    sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
\end{equation}

\begin{align*}
    (a+b)^2 &= (a+b) \times (a+b) \\ 
    &= a^2 + ab + ba + b^2
\end{align*}

4 Ligiloj


5 Aŭtoro

Kaoseto. Helpolibro skribita per frundis.