LaTeX/Структура листи
Погодно и предвидиво форматирање листа је једно од многих предности коришћења LaTeX-а. Корисници WYSIWYG процесора речи могу понекад бити фрустрирани од стране софтверских покушаја да одреди када они намеравају да листе почну а када да се заврше. Као језик означавања, LaTeX даје већу контролу над структуром и садржајем листи.
Структуре листи
уредиЛисте се често појављују у документима, посебно академским, како је њихова сврха често да представе информацију на јасан и концизан начин. Структуре листи у LaTeX-у су једноставно окружења која у суштини долазе у три врсте: itemize, enumerate и description.
Све листе прате основни формат:
\begin{list_type}
\item Прва ставка
\item Друка ствака
\item Трећа ставка итд \ldots
\end{list_type}
|
Сва три од овох типова листи могу имати више параграфа по ставци: само укуцајте додатне параграфе на уобичајени начин, са празном линијом између сваког. Докле год су још увек задржани унутар приложеног окружења, они ће бити аутоматски увучени да прате испод ставке.
Окружење навођења
уредиОво окружење је за ваше стандардне листе навођења ставки.
\begin{itemize}
\item The first item
\item The second item
\item The third etc \ldots
\end{itemize}
|
Окружење нумерисања
уредиОкружење нумерисања је за наручене листе. По нормали, свака ставка је редом нумерисана.
\begin{enumerate}
\item The first item
\item The second item
\item The third etc \ldots
\end{enumerate}
|
Описно окружење
уредиОписно окружење је мало другачије. Можете одредити ознаку ставке доношењем је као опциони агрумент (иако опциони, изгледало би чудно ако га неби укључили!). Идеално за серију дефиниција, као што је речник.
\begin{description}
\item[First] The first item
\item[Second] The second item
\item[Third] The third etc \ldots
\end{description}
|
Понекад желите опис где текст поћиње у новом реду. То не може лако да се уради са \\
. Трик је у томе да користите \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}
|
Груписање листи
уредиLaTeX ће вам срећно дозволити да унесете окружење листи у већ постојеће окружење (до дубине од четири—ако вам је потребно више од четири, користите easylist пакет). Једноставно покрените одговарајуће окружење на жељеном месту унутар тренутне листе. Latex ће средити распоред и било какво нумерисање за вас.
\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}
|
Прилагођавање листи
уредиПрилагођавање LaTeX-а је изван домена за почетнике. Иако није нужно тешко само по себи, зато што су почетници већ преплављени са низом команди и окружења, прелазак на напредније теме ризикује настанак забуне.
Међутим, пошто туторијал циља да буде потпун, ми ћемо ипак укључити кратак водич о прилагођавању листи. Слободно прескочите!
Приметите да у следећем када \renewcommand
се користи мора да се појави после \begin{document}
инструкције тако да су промене направљене узете у обзир. Ово је потребно и за нумерисане и за наведене листе.
Такође, пазите на размаке у дефиницијама ознака. То је честа грешка!
Проред
уредиКао што сте можда приметили, у стандардним LaTeX документним класама, вертикални размак између ставки, и размак испод и изнад листи у целини, је већи него између параграфа: можда ће изгледати чудно ако су описи сувише кратки.
Коришћење пакета
уредиАко желите добро упаковане листе, користите mdwlist пакет (укључен у mdwtools групи), која обезбеђује компактне, "главне" верзије претходних окружења, т,ј, itemize*
, enumerate*
и description*
. Оне раде управо на исти начин, али је излаз компактнији. Други пакети који пружају компактне листе су paralist и enumitem.
Алтернативно, користите memoir класу са \tightlists
.
Ручно прилагођавање
уредиУнутар листи можете редефинисати неке дужинске/димензијске варијабле LaTeX-а, на пример користећи:
\begin{itemize} \itemsep1pt \parskip0pt \parsep0pt
\item прва ставка
\item друга ставка
\end{itemize}
|
Алтернативно, да створите јединствен изглед у вашем документу можете редефиннисати окружење нумерисања:
\let\oldenumerate\enumerate
\renewcommand{\enumerate}{
\oldenumerate
\setlength{\itemsep}{1pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
}
|
Други приступ је редефинисати \item
команду глобално.
\newlength{\wideitemsep}
\setlength{\wideitemsep}{.5\itemsep}
\addtolength{\wideitemsep}{-7pt}
\let\olditem\item
\renewcommand{\item}{\setlength{\itemsep}{\wideitemsep}\olditem}
|
Прилагођавање нумерисаних листи
уредиКористећи пакете
уредиСтвар коју људи најчешће желе да промене са нумерисаним листама су бројачи. Брзо решење за овај проблем је обезбеђено од стране enumerate пакета Дејвида Карлајла[2], или софистициранији пакет enumitem од стране Хавиера Безоса[3]. Када користите enumerate, могуће је да одредите стил нумерације: \begin{enumerate}[style]
.
Опције A, a, I, i и 1 дефинишу стил и саме себе објашњавају, све остало се третира као текст. Да бисте користили било који од симбола стилова као текст они се могу затворити у заграде, нпр. {A}
ће дати буквално A. Грешка код цитирања: Неважећи параметар у ознаци <references>
Понекад можете пожелети да поставите неки кратак текст испред нумерисања, на пример: "Exercise 1, Exercise 2, Exercise 3, ...". Ово је могуће са enumitem пакетом:
\begin{enumerate}[label=\bfseries Exercise \arabic*:]
\item 5 + 7 = 12
\item 9 + 1 = 10
\item 2 * 2 = 4
\end{enumerate}
|
\bfseries чини текст подебљан, Exercise је текст и \arabic* убацује бројач за којим иде colon (:) који је опет третиран као текст.
Ручно
уредиДа бисте отишли даље и урадили ово сами, кратак увод у LaTeX бројаче је потребан. Требало би да проверите посвећено поглавље јер нећемо улазити у детеље за сада.
Постоје четири појединачна бројача која су повезана са листама навођења. Сваки репрезентује четири могућа нивоа угнежђења, који се називају:
enumi
enumii
enumiii
enumiv
|
Бројач се повећава од стране \item
пре него што је штампан. На пример за ресетовање enumi
користите:
\begin{enumerate}
\setcounter{enumi}{4}
\item пети елемент
\end{enumerate}
|
5. пети елемент |
Команда одговорна за форматиреање различитих нивоа гнежђења је
\labelenumi
\labelenumii
\labelenumiii
\labelenumiv
|
Пример:
\renewcommand{\labelenumi}{(\Roman{enumi})}
\renewcommand{\labelenumii}{\Roman{enumi}.~\alph{enumii}}
|
Ово једноставно редефинише изглед ознаке, што је у реду, под условом да не намеравате да упућујете на специфичну ставку унутар листе, у том случају ће референца бити штампана у оригиналном формату. Овај проблем се не пијављује ако редефинишете штампач бројача:
\renewcommand{\theenumi}{\Roman{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
\renewcommand{\theenumii}{\alph{enumii}}
\renewcommand{\labelenumii}{\theenumi.~\theenumii}
|
Прилагођавање наведених листи
уредиЛисте навођења нису тако сложене како оне неморају да се нумеришу. Зато, за прилагођавање, једноставно промените ознаке. то се може урадити ручно за сваки унос са \item[new symbol]
, на пример \item[$\star$]
.
Наведеним ознакама се може приступити преко \labelitemi
, \labelitemii
, \labelitemiii
, \labelitemiv
, за четири одговарајућа нивоа.
\renewcommand{\labelitemi}{\textgreater}
|
Пример изнад би подесио ознаке за први ниво на веће од (>) симбола. Наравно, текстуални симболи доступни у Latex-у нису веома узбудљиви. Зашто се користити неки од ZapfDingbat симбола, описаних у Симболи делу. Или искористите математички симбол:
\renewcommand{\labelitemi}{$\star$}
|
Листа навођења са уским комплетима ставки, то јест без вертикалног простора између две узастопне ставке, може бити направљена на следећи начин.
\begin{itemize}
\setlength{\itemsep}{0cm}%
\setlength{\parskip}{0cm}%
\item Ставка која отвара листу
\item Ставка која уско прати
\end{itemize}
|
Листе у реду
уредиЛисте у реду могу бити изведене на следећи начин.
Са пакетом paralist
уредиparalist пакет пружа inparaenum
окружење (са опционим спецификацијам форматирања у угластим заградама):
\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.
...
|
Да би променили стил бројача, знакови A, a, I, i, и 1 се могу користити у опционом аргументу да произведу бројач са једним од ових стилова \Alph
, \alph
, \Roman
, \roman
и \arabic
. На пример:
\begin{inparaenum}[(i)]
производи ознаке (i), (ii), (iii) ...
Са пакетом enumitem
уреди
\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.
...
|
Пакет shortlst такође обезбеђује листе у реду.
Easylist пакет
уредиЕasylist пакет Грешка код цитирања: Неважећи параметар у ознаци <references>
омогућава вам да креирате листу користећи погоднију синтаксу и са бесконачним нивоима угнежђења.
Такође је веома прилагодљив.
Учитај пакет са контролним знаком као опционалним аргументом:
\usepackage[ampersand]{easylist}
|
easylist окружење ће бити подразумевано за нумерисања.
\begin{easylist}
& Главна ставка~:
&& Под ставка.
&& Друга под ставка.
\end{easylist}
|
Поседује унапред дефинисане стилове које можете подесити као опционалне аргументе.
\begin{easylist}[itemize]
% ...
\end{easylist}
|
Доступни стилови:
- tractatus
- checklist - Све ставке имају празна поља поред себе
- booktoc - Приближно формат коришћен од стране садржаја класе књига
- articletoc - Приближно формат коришћен од стране садржаја класе чланка
- enumerate - Стандардни
- itemize
Можете прилагодити листе са \ListProperties(...)
командом и вратите прилагођавање натраг са \newlist{}
. Да, то су заграде за \ListProperties
параметре.
Style параметар подешава стил бројача и текста, Style* параметар подешава стил бројача, и Style** параметар подешава стил текста. параметар Numbers одређује начин на који се бројеви приказују и могуће вредности су r или R (за велике и мале римских бројева), l или L (за велиак и мала слова), a (за арапске бројеве, стандардно), и z (за Zapf's Dingbats).
FinalMark параметар подешава интерпукцију финалног бројача (Нпр: FinalMark3={)}
) док FinalSpace подешава величину размака између ставки и текста у стваки. Margin параметар подешава дистанцу од леве маргине (Нпр: FinalSpace2=1cm
). Progressive параметар подешава дистанцу од леве маргине од свих ставки у пропорцији са њиховим нивом.
{{{1}}} параметар спречава прве n бројаче од појављивања на свим нивоима. Ако постоји број после параметра (Нпр: Style3*) онда тај број показује ниво на који ће он да утиче (Нпр: Style3=\color{red}
).
Пример прилагођеног нумерисања:
\begin{easylist}[enumerate]
\ListProperties(Style2*=,Numbers=a,Numbers1=R,FinalMark={)})
& Главна ставка~:
&& Под ставка.
&& Још једна под ставка.
\end{easylist}
|
Приметите да смо ставили FinalMark аргумент између {}
да би избегли да га LaTeX разуме као крај листе својстава.
Сада смо променили подразумевана својства да одштампамо прилагођено окружење набрајања:
\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 |
Размаци у Style параметрима су битни. Style* параметар делује као подразумевана вредност и easylist ће користити средњу цртицу за ниво 1, 5 и надаље.
Такође можете да дефинишете прилагођене стилове користећи LaTeX макрое:
\newcommand\myitemize{\ListProperties(Hide=100, Hang=true, Progressive=3ex, Style*=$\star$ )}
\newcommand\myenumerate{\ListProperties(Space=2\baselineskip)}
% ...
\begin{easylist} \myitemize
& Blah
\end{easylist}
|
Важна напомена: easylist има неке недостатке. Прво ако вам је потребно да ставите easylist унутар окружења користећи исти контролни симбол као и онај одређен за easylist-у, можете добити грешку. Да бисте ово заобишли, користите следеће команде обезбеђене од стране easylist:
\Activate
\begin{easylist}
& ...
\end{easylist}
\Deactivate
|
Поред тога коришћење easylist заједно са цифрама може да доведе до неких проблема у распореду и увлачењу. LaTeX листе имају овај проблем.
Да би користили easylist са Beamer-ом, сваки фрејм који корористи easylist мора бити означен као крх:
\begin{frame}[fragile]
...
\begin{easylist}[itemize]
...
\end{easylist}
...
\end{frame}
|
Напомене и референце
уреди