Dato: lasta kontrolado 2015
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.
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.
Vidu la oficialan retejon de LaTeXo
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.
La sintakso de LaTeXo havas du konceptojn por limigi la tekston: la komandojn kaj la mediojn.
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.
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).
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:
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.
Por fari dokumentojn pli longajn ol la
article -klaso.
Por fari librojn
Por fari leterojn
Por fari prezentaĵojn
Por fari lumbildojn
Iru al la angla wikibooks por vidi pli da klasoj.
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}
Jen kelkaj literoj, kiujn oni devas skribi aldonante ĝustantaŭe malsuprenstrekon, se oni nur volas vidi ilin en tekstoformo:
# $ % ^ & _ { } ~ \
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}
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}
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.
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.
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}
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}
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 }
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}
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
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}
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*}
Vidu, en nia retpaĝo, la enkondukon al LaTeXo en hispana lingvo (ena ligilo).
LaTeX en Wikibooks (angla)
Kaoseto. Helpolibro skribita per frundis.