LaTeX/Struktura listi
Pogodno i predvidivo formatiranje lista je jedno od mnogih prednosti korišćenja LaTeX-a. Korisnici WYSIWYG procesora reči mogu ponekad biti frustrirani od strane softverskih pokušaja da odredi kada oni nameravaju da liste počnu a kada da se završe. Kao jezik označavanja, LaTeX daje veću kontrolu nad strukturom i sadržajem listi.
Strukture listi
[uredi]Liste se često pojavljuju u dokumentima, posebno akademskim, kako je njihova svrha često da predstave informaciju na jasan i koncizan način. Strukture listi u LaTeX-u su jednostavno okruženja koja u suštini dolaze u tri vrste: itemize, enumerate i description.
Sve liste prate osnovni format:
\begin{list_type}
\item Прва ставка
\item Друка ствака
\item Трећа ставка итд \ldots
\end{list_type}
|
Sva tri od ovoh tipova listi mogu imati više paragrafa po stavci: samo ukucajte dodatne paragrafe na uobičajeni način, sa praznom linijom između svakog. Dokle god su još uvek zadržani unutar priloženog okruženja, oni će biti automatski uvučeni da prate ispod stavke.
Okruženje navođenja
[uredi]Ovo okruženje je za vaše standardne liste navođenja stavki.
\begin{itemize}
\item The first item
\item The second item
\item The third etc \ldots
\end{itemize}
|
Okruženje numerisanja
[uredi]Okruženje numerisanja je za naručene liste. Po normali, svaka stavka je redom numerisana.
\begin{enumerate}
\item The first item
\item The second item
\item The third etc \ldots
\end{enumerate}
|
Opisno okruženje
[uredi]Opisno okruženje je malo drugačije. Možete odrediti oznaku stavke donošenjem je kao opcioni agrument (iako opcioni, izgledalo bi čudno ako ga nebi uključili!). Idealno za seriju definicija, kao što je rečnik.
\begin{description}
\item[First] The first item
\item[Second] The second item
\item[Third] The third etc \ldots
\end{description}
|
Ponekad želite opis gde tekst poćinje u novom redu. To ne može lako da se uradi sa \\
. Trik je u tome da koristite \hfill
[1].
\begin{description}
\item[First] \hfill \\
The first item
\item[Second] \hfill \\
The second item
\item[Third] \hfill \\
The third etc \ldots
\end{description}
|
Grupisanje listi
[uredi]LaTeX će vam srećno dozvoliti da unesete okruženje listi u već postojeće okruženje (do dubine od četiri—ako vam je potrebno više od četiri, koristite easylist paket). Jednostavno pokrenite odgovarajuće okruženje na željenom mestu unutar trenutne liste. Latex će srediti raspored i bilo kakvo numerisanje za vas.
\begin{enumerate}
\item The first item
\begin{enumerate}
\item Nested item 1
\item Nested item 2
\end{enumerate}
\item The second item
\item The third etc \ldots
\end{enumerate}
|
Prilagođavanje listi
[uredi]Prilagođavanje LaTeX-a je izvan domena za početnike. Iako nije nužno teško samo po sebi, zato što su početnici već preplavljeni sa nizom komandi i okruženja, prelazak na naprednije teme rizikuje nastanak zabune.
Međutim, pošto tutorijal cilja da bude potpun, mi ćemo ipak uključiti kratak vodič o prilagođavanju listi. Slobodno preskočite!
Primetite da u sledećem kada \renewcommand
se koristi mora da se pojavi posle \begin{document}
instrukcije tako da su promene napravljene uzete u obzir. Ovo je potrebno i za numerisane i za navedene liste.
Takođe, pazite na razmake u definicijama oznaka. To je česta greška!
Prored
[uredi]Kao što ste možda primetili, u standardnim LaTeX dokumentnim klasama, vertikalni razmak između stavki, i razmak ispod i iznad listi u celini, je veći nego između paragrafa: možda će izgledati čudno ako su opisi suviše kratki.
Korišćenje paketa
[uredi]Ako želite dobro upakovane liste, koristite mdwlist paket (uključen u mdwtools grupi), koja obezbeđuje kompaktne, "glavne" verzije prethodnih okruženja, t,j, itemize*
, enumerate*
i description*
. One rade upravo na isti način, ali je izlaz kompaktniji. Drugi paketi koji pružaju kompaktne liste su paralist i enumitem.
Alternativno, koristite memoir klasu sa \tightlists
.
Ručno prilagođavanje
[uredi]Unutar listi možete redefinisati neke dužinske/dimenzijske varijable LaTeX-a, na primer koristeći:
\begin{itemize} \itemsep1pt \parskip0pt \parsep0pt
\item прва ставка
\item друга ставка
\end{itemize}
|
Alternativno, da stvorite jedinstven izgled u vašem dokumentu možete redefinnisati okruženje numerisanja:
\let\oldenumerate\enumerate
\renewcommand{\enumerate}{
\oldenumerate
\setlength{\itemsep}{1pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
}
|
Drugi pristup je redefinisati \item
komandu globalno.
\newlength{\wideitemsep}
\setlength{\wideitemsep}{.5\itemsep}
\addtolength{\wideitemsep}{-7pt}
\let\olditem\item
\renewcommand{\item}{\setlength{\itemsep}{\wideitemsep}\olditem}
|
Prilagođavanje numerisanih listi
[uredi]Koristeći pakete
[uredi]Stvar koju ljudi najčešće žele da promene sa numerisanim listama su brojači. Brzo rešenje za ovaj problem je obezbeđeno od strane enumerate paketa Dejvida Karlajla[2], ili sofisticiraniji paket enumitem od strane Haviera Bezosa[3]. Kada koristite enumerate, moguće je da odredite stil numeracije: \begin{enumerate}[style]
.
Opcije A, a, I, i i 1 definišu stil i same sebe objašnjavaju, sve ostalo se tretira kao tekst. Da biste koristili bilo koji od simbola stilova kao tekst oni se mogu zatvoriti u zagrade, npr. {A}
će dati bukvalno A. Greška kod citiranja: Nevažeća oznaka <ref>
; nevaljana imena, npr. ima ih previše.
Ponekad možete poželeti da postavite neki kratak tekst ispred numerisanja, na primer: "Exercise 1, Exercise 2, Exercise 3, ...". Ovo je moguće sa enumitem paketom:
\begin{enumerate}[label=\bfseries Exercise \arabic*:]
\item 5 + 7 = 12
\item 9 + 1 = 10
\item 2 * 2 = 4
\end{enumerate}
|
\bfseries čini tekst podebljan, Exercise je tekst i \arabic* ubacuje brojač za kojim ide colon (:) koji je opet tretiran kao tekst.
Ručno
[uredi]Da biste otišli dalje i uradili ovo sami, kratak uvod u LaTeX brojače je potreban. Trebalo bi da proverite posvećeno poglavlje jer nećemo ulaziti u detelje za sada.
Postoje četiri pojedinačna brojača koja su povezana sa listama navođenja. Svaki reprezentuje četiri moguća nivoa ugnežđenja, koji se nazivaju:
enumi
enumii
enumiii
enumiv
|
Brojač se povećava od strane \item
pre nego što je štampan. Na primer za resetovanje enumi
koristite:
\begin{enumerate}
\setcounter{enumi}{4}
\item пети елемент
\end{enumerate}
|
5. peti element |
Komanda odgovorna za formatireanje različitih nivoa gnežđenja je
\labelenumi
\labelenumii
\labelenumiii
\labelenumiv
|
Primer:
\renewcommand{\labelenumi}{(\Roman{enumi})}
\renewcommand{\labelenumii}{\Roman{enumi}.~\alph{enumii}}
|
Ovo jednostavno redefiniše izgled oznake, što je u redu, pod uslovom da ne nameravate da upućujete na specifičnu stavku unutar liste, u tom slučaju će referenca biti štampana u originalnom formatu. Ovaj problem se ne pijavljuje ako redefinišete štampač brojača:
\renewcommand{\theenumi}{\Roman{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
\renewcommand{\theenumii}{\alph{enumii}}
\renewcommand{\labelenumii}{\theenumi.~\theenumii}
|
Prilagođavanje navedenih listi
[uredi]Liste navođenja nisu tako složene kako one nemoraju da se numerišu. Zato, za prilagođavanje, jednostavno promenite oznake. to se može uraditi ručno za svaki unos sa \item[new symbol]
, na primer \item[$\star$]
.
Navedenim oznakama se može pristupiti preko \labelitemi
, \labelitemii
, \labelitemiii
, \labelitemiv
, za četiri odgovarajuća nivoa.
\renewcommand{\labelitemi}{\textgreater}
|
Primer iznad bi podesio oznake za prvi nivo na veće od (>) simbola. Naravno, tekstualni simboli dostupni u Latex-u nisu veoma uzbudljivi. Zašto se koristiti neki od ZapfDingbat simbola, opisanih u Simboli delu. Ili iskoristite matematički simbol:
\renewcommand{\labelitemi}{$\star$}
|
Lista navođenja sa uskim kompletima stavki, to jest bez vertikalnog prostora između dve uzastopne stavke, može biti napravljena na sledeći način.
\begin{itemize}
\setlength{\itemsep}{0cm}%
\setlength{\parskip}{0cm}%
\item Ставка која отвара листу
\item Ставка која уско прати
\end{itemize}
|
Liste u redu
[uredi]Liste u redu mogu biti izvedene na sledeći način.
Sa paketom paralist
[uredi]paralist paket pruža inparaenum
okruženje (sa opcionim specifikacijam formatiranja u uglastim zagradama):
\usepackage{paralist}
% ...
\begin{document}
Inline lists, which are
sequential in nature, just like enumerated
lists, but are
\begin{enumerate*}[label=\itshape\alph*\upshape)]
\item formatted within their paragraph;
\item usually labelled with letters; and
\item usually have the final item prefixed with
`and' or `or',
\end{enumerate*} like this example.
...
|
Da bi promenili stil brojača, znakovi A, a, I, i, i 1 se mogu koristiti u opcionom argumentu da proizvedu brojač sa jednim od ovih stilova \Alph
, \alph
, \Roman
, \roman
i \arabic
. Na primer:
\begin{inparaenum}[(i)]
proizvodi oznake (i), (ii), (iii) ...
Sa paketom enumitem
[uredi]
\usepackage[inline]{enumitem}
% ...
\begin{document}
Inline lists, which are
sequential in nature, just like enumerated
lists, but are
\begin{enumerate*}[label=\itshape\alph*\upshape)]
\item formatted within their paragraph;
\item usually labelled with letters; and
\item usually have the final item prefixed with
`and' or `or',
\end{enumerate*} like this example.
...
|
Paket shortlst takođe obezbeđuje liste u redu.
Easylist paket
[uredi]Easylist paket Greška kod citiranja: Nevažeća oznaka <ref>
; nevaljana imena, npr. ima ih previše. omogućava vam da kreirate listu koristeći pogodniju sintaksu i sa beskonačnim nivoima ugnežđenja.
Takođe je veoma prilagodljiv.
Učitaj paket sa kontrolnim znakom kao opcionalnim argumentom:
\usepackage[ampersand]{easylist}
|
easylist okruženje će biti podrazumevano za numerisanja.
\begin{easylist}
& Главна ставка~:
&& Под ставка.
&& Друга под ставка.
\end{easylist}
|
Poseduje unapred definisane stilove koje možete podesiti kao opcionalne argumente.
\begin{easylist}[itemize]
% ...
\end{easylist}
|
Dostupni stilovi:
- tractatus
- checklist - Sve stavke imaju prazna polja pored sebe
- booktoc - Približno format korišćen od strane sadržaja klase knjiga
- articletoc - Približno format korišćen od strane sadržaja klase članka
- enumerate - Standardni
- itemize
Možete prilagoditi liste sa \ListProperties(...)
komandom i vratite prilagođavanje natrag sa \newlist{}
. Da, to su zagrade za \ListProperties
parametre.
Style parametar podešava stil brojača i teksta, Style* parametar podešava stil brojača, i Style** parametar podešava stil teksta. parametar Numbers određuje način na koji se brojevi prikazuju i moguće vrednosti su r ili R (za velike i male rimskih brojeva), l ili L (za veliak i mala slova), a (za arapske brojeve, standardno), i z (za Zapf's Dingbats).
FinalMark parametar podešava interpukciju finalnog brojača (Npr: FinalMark3={)}
) dok FinalSpace podešava veličinu razmaka između stavki i teksta u stvaki. Margin parametar podešava distancu od leve margine (Npr: FinalSpace2=1cm
). Progressive parametar podešava distancu od leve margine od svih stavki u proporciji sa njihovim nivom.
{{{1}}} parametar sprečava prve n brojače od pojavljivanja na svim nivoima. Ako postoji broj posle parametra (Npr: Style3*) onda taj broj pokazuje nivo na koji će on da utiče (Npr: Style3=\color{red}
).
Primer prilagođenog numerisanja:
\begin{easylist}[enumerate]
\ListProperties(Style2*=,Numbers=a,Numbers1=R,FinalMark={)})
& Главна ставка~:
&& Под ставка.
&& Још једна под ставка.
\end{easylist}
|
Primetite da smo stavili FinalMark argument između {}
da bi izbegli da ga LaTeX razume kao kraj liste svojstava.
Sada smo promenili podrazumevana svojstva da odštampamo prilagođeno okruženje nabrajanja:
\usepackage{amssymb}
\ListProperties(Hide=100, Hang=true, Progressive=3ex, Style*=-- ,
Style2*=$\bullet$ ,Style3*=$\circ$ ,Style4*=\tiny$\blacksquare$ )
% ...
\begin{easylist}
& Blah
& Blah
&& Blah
&&& Blah
&&&& Blah
&&&&& Blah
\end{easylist}
|
– Blah |
Razmaci u Style parametrima su bitni. Style* parametar deluje kao podrazumevana vrednost i easylist će koristiti srednju crticu za nivo 1, 5 i nadalje.
Takođe možete da definišete prilagođene stilove koristeći LaTeX makroe:
\newcommand\myitemize{\ListProperties(Hide=100, Hang=true, Progressive=3ex, Style*=$\star$ )}
\newcommand\myenumerate{\ListProperties(Space=2\baselineskip)}
% ...
\begin{easylist} \myitemize
& Blah
\end{easylist}
|
Važna napomena: easylist ima neke nedostatke. Prvo ako vam je potrebno da stavite easylist unutar okruženja koristeći isti kontrolni simbol kao i onaj određen za easylist-u, možete dobiti grešku. Da biste ovo zaobišli, koristite sledeće komande obezbeđene od strane easylist:
\Activate
\begin{easylist}
& ...
\end{easylist}
\Deactivate
|
Pored toga korišćenje easylist zajedno sa ciframa može da dovede do nekih problema u rasporedu i uvlačenju. LaTeX liste imaju ovaj problem.
Da bi koristili easylist sa Beamer-om, svaki frejm koji kororisti easylist mora biti označen kao krh:
\begin{frame}[fragile]
...
\begin{easylist}[itemize]
...
\end{easylist}
...
\end{frame}
|
Napomene i reference
[uredi]