LaTeX/Структура листи

Извор: Викикњиге
Иди на навигацију Иди на претрагу
LaTeX logo.svg

LaTeX

Почетак
  1. Увод100% завршен  Dec 13, 2015
  2. Инсталација100% завршен  Dec 13, 2015
  3. Инсталација додатних пакета 100% завршен  Dec 13, 2015
  4. Основе 100% завршен  Dec 13, 2015
  5. Како пронаћи помоћ 100% завршен  Dec 13, 2015

Заједнички елементи

  1. Структура документа 100% завршен  Dec 28, 2015
  2. Форматирање текста 100% завршен  Dec 27, 2015
  3. Форматирање параграфа 100% завршен  Јан 02, 2016
  4. Боје 100% завршен  Jan 10, 2016
  5. Слова100% завршен  Jan 10, 2016
  6. Структура листи 100% завршен  Jan 10, 2016
  7. Посебни знакови 100% завршен  Jan 10, 2016
  8. Интернационализација 100% завршен  Jan 10, 2016
  9. Ротација 100% завршен  Jan 10, 2016
  10. Табеле 100% завршен  Jan 10, 2016
  11. Стварање наслова 100% завршен  Jan 10, 2016
  12. Распоред стране 100% завршен  Jan 10, 2016
  13. Увоз графике 100% завршен  Jan 10, 2016
  14. Фигуре и натписи100% завршен  Jan 10, 2016
  15. Фусноте и Маргине100% завршен  Jan 10, 2016
  16. Хиперлинкови 100% завршен  Jan 10, 2016
  17. Ознаке и референцирање100% завршен  Jan 10, 2016

Механика

  1. Грешке и упозорења 75% завршен  Јан 02, 2016
  2. Дужине 100% завршен  Јан 02, 2016
  3. Бројачи 100% завршен  Јан 02, 2016
  4. Кутије 100% завршен  Јан 02, 2016
  5. Правила и носачи 100% завршен  Јан 02, 2016

Технички текстови

  1. Математика100% завршен  Jan 10, 2016
  2. Напреднија математика 75% завршен  Jan 10, 2016
  3. Теореме
  4. Хемијска графика 75% завршен  Јан 02, 2016
  5. Алгоритми 75% завршен  Јан 02, 2016
  6. Листирање изворног кода 100% завршен  Јан 02, 2016
  7. Лингвистика 75% завршен  Јан 02, 2016

Посебне стране

  1. Индексирање 75% завршен  Јан 02, 2016
  2. Речник 75% завршен  Јан 02, 2016
  3. Управљање библиографијом‎ 75% завршен  Jan 10, 2016
  4. Више библиографије

Посебни документи

  1. Писма 50% завршен  Јан 02, 2016
  2. Презентације 75% завршен  Јан 02, 2016
  3. Учитељски део 75% завршен  Jan 10, 2016
  4. Кратка биографија 50% завршен  Јан 02, 2016

Креирање графика

  1. Представљање процедуралних графика 100% завршен  Јан 02, 2016
  2. МетаПостови 0% завршен  Јан 02, 2016
  3. Слика 50% завршен  Јан 02, 2016
  4. PGF/TikZ 25% завршен  Јан 02, 2016
  5. PSTricks 50% завршен  Јан 02, 2016
  6. Xy-pic 25% завршен  Јан 02, 2016
  7. Прављење 3D графикa 75% завршен  Јан 02, 2016

Програмирање

  1. Макрои 100% завршен  Jan 10, 2016
  2. Обичан ТеХ‎ 100% завршен  Jan 10, 2016
  3. Креирање пакета 100% завршен  Jan 10, 2016
  4. Теме 75% завршен  Jan 10, 2016

Разно

  1. Модуларни Документи 100% завршен  Jan 10, 2016
  2. Заједничко писање LaTeX докумената 75% завршен  Jan 10, 2016
  3. Отпремање у друге формате 100% завршен  Jan 10, 2016

Помоћ и препоруке

  1. Најчешће постављана питања 100% завршен  Jan 10, 2016
  2. Савети и трикови 75% завршен  Jan 10, 2016

Додаци

  1. Аутори 0% завршен  Jan 10, 2016
  2. Линкови 0% завршен  Jan 10, 2016
  3. Ознаке пакета 0% завршен  Jan 10, 2016
  4. Примери LaTeX докумената 0% завршен  Jan 10, 2016
  5. Индекс 0% завршен  Jan 10, 2016
  6. Речник наредби 0% завршен  Jan 10, 2016

Погодно и предвидиво форматирање листа је једно од многих предности коришћења 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}

Itemize.svg

Окружење нумерисања[уреди]

Окружење нумерисања је за наручене листе. По нормали, свака ставка је редом нумерисана.

\begin{enumerate}
  \item The first item
  \item The second item
  \item The third etc \ldots
\end{enumerate}

Enum.svg

Описно окружење[уреди]

Описно окружење је мало другачије. Можете одредити ознаку ставке доношењем је као опциони агрумент (иако опциони, изгледало би чудно ако га неби укључили!). Идеално за серију дефиниција, као што је речник.

\begin{description}
  \item[First] The first item
  \item[Second] The second item
  \item[Third] The third etc \ldots
\end{description}

Example of description environment result using LaTeX.svg

Понекад желите опис где текст поћиње у новом реду. То не може лако да се уради са \\. Трик је у томе да користите \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 desc-newline.svg

Груписање листи[уреди]

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}

Nested.svg

Прилагођавање листи[уреди]

Прилагођавање 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. Грешка код цитирања: Лоша ознака <ref>; лоша имена, односно много њих.

Понекад можете пожелети да поставите неки кратак текст испред нумерисања, на пример: "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}
Enumeration with text

\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.
...

Latex example enumitem inline list.svg


Да би променили стил бројача, знакови 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.
...

Latex example enumitem inline list.svg

Пакет shortlst такође обезбеђује листе у реду.

Easylist пакет[уреди]

Еasylist пакет Грешка код цитирања: Лоша ознака <ref>; лоша имена, односно много њих. омогућава вам да креирате листу користећи погоднију синтаксу и са бесконачним нивоима угнежђења. Такође је веома прилагодљив.

Учитај пакет са контролним знаком као опционалним аргументом:

\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
  Blah
   Blah
    Blah
     – 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}

Напомене и референце[уреди]

  1. http://www.tex.ac.uk/cgi-bin/texfaq2html?label=noline
  2. [1]Пакет нумерисања, Дејвид Карлајл 1999
  3. [2]Пакет нумерисања ставки, Хавиер Безос 2011


Претходно: Слова Индекс Следеће: Посебни знакови