LaTeX/Listy
Wygodnym i łatwym do zbudowania jest sporą zaletą LaTeXa. Użytkownicy programów typu WYSIWYG mają często problemy w związku z tym, iż programy nie chcą wstawić list w sposób taki jak użytkownik. LaTeX dzięki użyciu znaczników ma lepszą kontrolę na tymi zachowaniami.
Struktura listy
[edytuj]Listy często pojawiają się w dokumentach, szczególnie akademickich, aby w łatwy przejrzysty sposób przekazać informacje. Występują trzy typy list: itemize, enumerate oraz description.
Podstawowe komendy podczas tworzenia listy:
\begin{typ_listy}
\item Pierwsza pozycja na liście
\item Druga pozycja na liście
\item Trzecia pozycja na liście
\end{typ_listy}
Każdy z typów list może posiadać wiele paragrafów.Aby to uzyskać należy odpowiednią ilość razy powtórzyć komendę \item
. Oczywiście wszystkie powtórzenia muszą znajdować się wewnątrz danego środowiska.
Itemize
[edytuj]Poniżej przedstawiono przykładowy kod typu itemize
wraz z wyglądem danej listy.
\begin{itemize}
\item The first item
\item The second item
\item The third etc \ldots
\end{itemize}
|
Enumerate
[edytuj]W przypadku tego typu listy każdy kolejny element numerowany jest kolejną liczbą arabską. Przykładowy kod wraz z wyglądem gotowej listy przedstawiono poniżej.
\begin{enumerate}
\item The first item
\item The second item
\item The third etc \ldots
\end{enumerate}
|
Description
[edytuj]Typ description pozwala cyfry arabskie zastąpić każdym innym znacznikiem lub słowem. Wystarczy po komendzie \item
w nawiasie kwadratowym wprowadzić słowa,którymi mają zaczynać się paragrafy. Typ ten jest idealny do wprowadzania serii definicji lub słownika.
\begin{description}
\item[First] The first item
\item[Second] The second item
\item[Third] The third etc \ldots
\end{description}
|
Jeśli chcemy, aby tekst znajdował się w osobnej linii należy użyćkomendy \hfill
, tak jak pokazano w przykładzie poniżej.
\begin{description}
\item[First] \hfill \\
The first item
\item[Second] \hfill \\
The second item
\item[Third] \hfill \\
The third etc \ldots
\end{description}
|
Listy zagnieżdżone
[edytuj]LaTeX umożliwia także tworzenie list zagnieżdżonych, czyli umieszczanie listy w liście. Maksymalnie można taka lista może posiadać cztery poziomy. Jeśli konieczne jest zagnieżdżenie większej liczby list, należy posłużyć się pakietem easylist. Aby stworzyć zagnieżdżone listy po prostu umieść jedno środowisko wewnątrz drugiego. LaTeX automatycznie posortuje listy i ponumeruje je za Ciebie.
\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}
|
Dostosowywanie list
[edytuj]Dostosowywaniem LaTeXa zajmują się raczej zaawansowani użytkownicy. Nie jest to trudne, ale nowi użytkownicy są zazwyczaj przytłoczeni ilością nowych komend, a nauka bardziej zaawansowanych może spowodować zdezorientowanie.
Miej na uwadze, że komenda \renewcommand
może być użyta tylko po \begin{document}
. Dotyczy to zarówno list enumerated oraz itemized.
Często powtarzanym błędem są spacje w nieodpowiednich miejscach. Miej to na uwadze!
Przerwy między akapitami
[edytuj]Jak być może zauważyłeś, standardowe klasy LaTeXa wprowadzają pionową przerwę między kolejnymi elementami listy. Czasami może to wyglądać dziwnie, jeśli opisy są za krótkie. Poniżej przedstawiono sposoby usunięcia tego zachowania.
Użycie pakietów
[edytuj]Jeśli chcesz aby Twoje listy były ciasno upakowane, należy użyć pakietu mdwlist
, w którym używa się rodzajów numeracji oznaczonych gwiazdką (np.itemize*, enumerate* i description*. Działają one w taki sam sposób jak opisane w części powyżej, jednak wygląd listy jest bardziej skondensowany. Inne pakiety zapewniający podobne wyniki to paralist
oraz enumitem
.
Alternatywnie można użyć kalsę dokumentu memoir
wraz z komendą \tightlists
.
Dostosowanie ręczne
[edytuj]Wewnątrz list można redefiniować niektóre długości/wymiary zmiennych. Dla przykładu:
\begin{itemize} \itemsep1pt \parskip0pt \parsep0pt
\item first item
\item second item
\end{itemize}
Alternatywnie, aby utworzyć jeden styl dla całego dokumentu, można zdefiniować na nowo całe środowisko enumerate:
\newenvironment{my_enumerate}{
\begin{enumerate}
\setlength{\itemsep}{1pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
}{
\end{enumerate}
}
Innym sposobem jest nowe zdefiniowanie komendy \item
.
\newlength{\wideitemsep}
\setlength{\wideitemsep}{.5\itemsep}
\addtolength{\wideitemsep}{-7pt}
\let\olditem\item
\renewcommand{\item}{\setlength{\itemsep}{\wideitemsep}\olditem}
Dostosowanie list numerowanych
[edytuj]Użycie pakietów
[edytuj]Najczęściej zmianom w listach podlegają liczniki. Szybkie zmiany liczników można osiągnąć przez użycie pakietu enumerate
lub enumitem
. Przy użyciu pierwszego z nich można zmienić styl numeracji w następujący sposób:
\begin{enumerate}[styl]
Opcje A, a, I, i oraz 1 definiują jednoznacznie sposób punktowania.
Dostosowanie ręczne
[edytuj]Aby mieć możliwość większej ingerencji w listy należy posiadac podstawową wiedzę na temat liczników w LaTeX. Więcej na ten temat przeczytasz w rozdziale Liczniki.
Są cztery podstawowe liczniki związane z listami. Każdy z nich reprezentuje cztery poziomy zagnieżdżenia, które nazywają się:
enumi
enumii
enumiii
enumiv
Licznik jest zwiększany przez komendę \item
zanim zostanie wydrukowana. Dla przykładu, w celu zmienienia numeru licznikaenumi
należy użyć:
\begin{enumerate}
\setcounter{enumi}{4}
\item Punkt piąty
\end{enumerate}
|
5. Punkt piąty |
Komendy odpowiadające za zmiany na różnych poziomach zagnieżdżenia:
\labelenumi
\labelenumii
\labelenumiii
\labelenumiv
Przykład:
\renewcommand{\labelenumi}{(\Roman{enumi})}
\renewcommand{\labelenumii}{\Roman{enumi}.~\alph{enumii}<!---->}
Powyższy przykłąd zmienia definicję wyglądu listy, jednak nie zadziała gdy chcesz wprowadzić odnośniki. One będą drukowane w domyślnym stylu. Aby ominąć ten problem, należy użyć następującą serię komend:
\renewcommand{\theenumi}{\Roman{enumi}<!---->}
\renewcommand{\labelenumi}{(\theenumi)}
\renewcommand{\theenumii}{\alph{enumii}<!---->}
\renewcommand{\labelenumii}{\theenumi.~\theenumii<!---->}
Dostosowanie list wypunktowanych
[edytuj]Wypunktowania nie są tak złożone jak listy numerowane. Jednak, aby je dostosować do własnych preferencji należy zmienić ich etykiety. Można to zrobić ręcznie dla każdego wpisu poprzez \item[nowy symbol]
(np. \item[$\star$]
.
Etykiety kolejnych poziomów wypunktowania są dostępne pod komendami \labelitemi
, \labelitemii
, \labelitemiii
oraz \labelitemiv
.
\renewcommand{\labelitemi}{\textgreater}
Powyższy przykład powinien zmienić etykiety pierwszego poziomu na większe. Oczywiście symbole dostępne w LaTeX nie są bardzo rozbudowane. Aby urozmaicić dokument można użyć symbole ZapfDingbat, opisane w rozdziale Znaki specjalne Można także zastosować jeden z symboli matematycznych:
\renewcommand{\labelitemi}{$\star$}
Aby zmniejszyć wolną przestrzeń między kolejnymi wypunktowaniami należy posłużyć się komendami opisanymi poniżej.
\begin{itemize}
\setlength{\itemsep}{0cm}%
\setlength{\parskip}{0cm}%
\item Item opening the list
\item Item tightly following
\end{itemize}
Listy jedno liniowe
[edytuj]Listy jedno liniowe są specjalnym przypadkiem list. Wymagają użycia pakietu paralist
, który zapewnia nowy typ listy - inparaenum
. Parametry podaje się w nawiasach kwadratowych,tak jak to pokazano w przykładzie poniżej.
Aby zmienić styl numerowania (duże czy małe litery; liczby rzymskie czy arabskie) należy podać dodatkowy argument określający styl. Przykład przedstawiono poniżej.
\begin{inparaenum}[(styl)]
Zamiast słowa styl należy wstawić odpowiednią komendę (z wymienionych w poniższej tabeli).
Kod | Efekt |
---|---|
\Alph | A, B, C |
\alph | a, b, c |
\Roman | I, II, III |
\roman | i, ii, iii |
\Arabic | 1, 2, 3 |
Inne pakiety pozwalające na wstawianie tego typu list to: \shortlst
oraz \enumitem
Pakiet easylist
[edytuj]Pakiet easylist
pozwala na tworzenie list przy użyciu wygodniejszej składni oraz umożliwia tworzenie nieskończenie wielu poziomów. Jest także łatwe w dostosowywaniu do własnych potrzeb.
Na początek należy załadować w preambule pakiet:
\usepackage[ampersand]{easylist}
Domyślny styl listy to numerowanie.
\begin{easylist}
& Punkt główny~:
&& Podpunkt.
&& Kolejny podpunkt.
\end{easylist}
Można także mienić styl na wypunktowanie:
\begin{easylist}[itemize]
% ...
\end{easylist}
Dostępne style:
- tractatus
- checklist
- booktoc
- articletoc
- enumerate
- itemize
Możesz dostosować swoją listę przy użyciu komendy \ListProperties(...)
.
\begin{easylist}[enumerate]
\ListProperties(Style2*=,Numbers=a,Numbers1=R,FinalMark={)})
& Main item~:
&& Sub item.
&& Another sub item.
\end{easylist}
Zauważ, że jako ostatni znak listy numerowane podany został nawias (wpisany pomiędzy nawiasy klamrowe). Aby uniknąć rozumienia przez LaTeX tego znaku jako zakończenia wpisywania ustawień można posłużyć się poniższym kodem.
\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 |
Możesz także zdefiniować własny styl używając marka:
\newcommand\myitemize{\ListProperties(Hide=100, Hang=true, Progressive=3ex, Style*=$\star$ )}
\newcommand\myenumerate{\ListProperties(Space=2\baselineskip)}
% ...
\begin{easylist} \myitemize
& Blah
\end{easylist}
Pakiet easylist
posiada także wady.
Podczas używania pakietu wewnątrz środowiska, które używa takie same sekwencje może spowodować błąd.
Aby uniknąć tego użyj poniższych komend:
\Activate
\begin{easylist}
& ...
\end{easylist}
\Deactivate
Poza tym, używanie pakietu wraz ze środowiskiem figure
może spowodować kłopoty z wyglądem strony. Standardowe listy LaTeXa nie mają takiego problemu.
Obecnie pakiet easylist
nie działą w klsie Beamer.