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.

LaTeX

Početak
  1. Uvod100% završen  Dec 13, 2015
  2. Instalacija100% završen  Dec 13, 2015
  3. Instalacija dodatnih paketa 100% završen  Dec 13, 2015
  4. Osnove 100% završen  Dec 13, 2015
  5. Kako pronaći pomoć 100% završen  Dec 13, 2015

Zajednički elementi

  1. Struktura dokumenta 100% završen  Dec 28, 2015
  2. Formatiranje teksta 100% završen  Dec 27, 2015
  3. Formatiranje paragrafa 100% završen  Jan 02, 2016
  4. Boje 100% završen  Jan 10, 2016
  5. Slova100% završen  Jan 10, 2016
  6. Struktura listi 100% završen  Jan 10, 2016
  7. Posebni znakovi 100% završen  Jan 10, 2016
  8. Internacionalizacija 100% završen  Jan 10, 2016
  9. Rotacija 100% završen  Jan 10, 2016
  10. Tabele 100% završen  Jan 10, 2016
  11. Stvaranje naslova 100% završen  Jan 10, 2016
  12. Raspored strane 100% završen  Jan 10, 2016
  13. Uvoz grafike 100% završen  Jan 10, 2016
  14. Figure i natpisi100% završen  Jan 10, 2016
  15. Fusnote i Margine100% završen  Jan 10, 2016
  16. Hiperlinkovi 100% završen  Jan 10, 2016
  17. Oznake i referenciranje100% završen  Jan 10, 2016

Mehanika

  1. Greške i upozorenja 75% završen  Jan 02, 2016
  2. Dužine 100% završen  Jan 02, 2016
  3. Brojači 100% završen  Jan 02, 2016
  4. Kutije 100% završen  Jan 02, 2016
  5. Pravila i nosači 100% završen  Jan 02, 2016

Tehnički tekstovi

  1. Matematika100% završen  Jan 10, 2016
  2. Naprednija matematika 75% završen  Jan 10, 2016
  3. Teoreme
  4. Hemijska grafika 75% završen  Jan 02, 2016
  5. Algoritmi 75% završen  Jan 02, 2016
  6. Listiranje izvornog koda 100% završen  Jan 02, 2016
  7. Lingvistika 75% završen  Jan 02, 2016

Posebne strane

  1. Indeksiranje 75% završen  Jan 02, 2016
  2. Rečnik 75% završen  Jan 02, 2016
  3. Upravljanje bibliografijom‎ 75% završen  Jan 10, 2016
  4. Više bibliografije

Posebni dokumenti

  1. Pisma 50% završen  Jan 02, 2016
  2. Prezentacije 75% završen  Jan 02, 2016
  3. Učiteljski deo 75% završen  Jan 10, 2016
  4. Kratka biografija 50% završen  Jan 02, 2016

Kreiranje grafika

  1. Predstavljanje proceduralnih grafika 100% završen  Jan 02, 2016
  2. MetaPostovi 0% završen  Jan 02, 2016
  3. Slika 50% završen  Jan 02, 2016
  4. PGF/TikZ 25% završen  Jan 02, 2016
  5. PSTricks 50% završen  Jan 02, 2016
  6. Xy-pic 25% završen  Jan 02, 2016
  7. Pravljenje 3D grafika 75% završen  Jan 02, 2016

Programiranje

  1. Makroi 100% završen  Jan 10, 2016
  2. Običan TeH‎ 100% završen  Jan 10, 2016
  3. Kreiranje paketa 100% završen  Jan 10, 2016
  4. Teme 75% završen  Jan 10, 2016

Razno

  1. Modularni Dokumenti 100% završen  Jan 10, 2016
  2. Zajedničko pisanje LaTeX dokumenata 75% završen  Jan 10, 2016
  3. Otpremanje u druge formate 100% završen  Jan 10, 2016

Pomoć i preporuke

  1. Najčešće postavljana pitanja 100% završen  Jan 10, 2016
  2. Saveti i trikovi 75% završen  Jan 10, 2016

Dodaci

  1. Autori 0% završen  Jan 10, 2016
  2. Linkovi 0% završen  Jan 10, 2016
  3. Oznake paketa 0% završen  Jan 10, 2016
  4. Primeri LaTeX dokumenata 0% završen  Jan 10, 2016
  5. Indeks 0% završen  Jan 10, 2016
  6. Rečnik naredbi 0% završen  Jan 10, 2016

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}
 
Enumeration with text

\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
    Blah
     Blah
      Blah
     – 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
  1. http://www.tex.ac.uk/cgi-bin/texfaq2html?label=noline
  2. [1]Paket numerisanja, Dejvid Karlajl 1999
  3. [2]Paket numerisanja stavki, Havier Bezos 2011


Prethodno: Slova Indeks Sledeće: Posebni znakovi