Pàgines

dimarts, 30 de juliol del 2013

Llistes amb ordinals

No fa massa, a la llista Usuarios hispanohablantes de TeX es va plantejar el tema de com aconseguir que en una llista numerada apareguessin els ordinals (primer, segon, etc) en lloc del números (1, 2,...).

La solució que es va trobar és la que s’exposa en aquest article on, a més, catalanitzem i ampliarem a altres casos la proposta original publicada pel Sr. Francisco Callejo Giménez.

La solució, per entendre-la millor, es pot dividir en tres fases:

1. Definir un nou comandament, \ordinal, que és el que escriurà el literal de l’ordinal en la llista. En el nostre cas només hem escrit fins a deu ordinals, però es podria continuar fins que calgués simplement afegint-los a la definició:
\newcommand{\ordinal}[1]{\ifcase\value{#1}\or
PRIMER\or SEGON\or TERCER\or QUART\or CINQUÈ\or
SISÈ\or SETÈ\or VUITÈ\or NOVÈ\or DESÈ\fi}
2. Definir un nou comptador: aquí anomenat ordenum:
\newcounter{ordenum}
3. Definir un nou entorn, anomenat ordenum, basat en l’entorn list de LaTeX:
\newenvironment{ordenum}
{\begin{list}{\stepcounter{ordenum}\ordinal{ordenum}.- }{}}
{\end{list}}
Aleshores al nostre document, quan vulguéssim una llista amb aquests ordinals simplement haurem d’escriure:
\begin{ordenum}
\item text
...
\end{ordenum}
El resultat es pot veure al fitxer PDF adjunt, però podem avançar que és semblant a això:
PRIMER text.
SEGON text.
TERCER text
etc.

Seguint la mateixa lògica podem ampliar a altres casos aquesta solució. Per exemple, en el cas d’una Acta de reunió pot ser interessant que aparegui l’ordinal: Primer punt, Segon punt,... O bé en un text legal el literal Article primer, Article segon,...

Per aconseguir-ho seguiríem les mateixes tres fases i podríem obtenir un codi semblant a aquest:
\newcommand{\puntord}[1]{\ifcase\value{#1}\or
\textbf{Primer punt}\or \textbf{Segon punt}\or \textbf{Tercer punt}\or \textbf{Quart punt}\or \textbf{Cinquè punt}\or \textbf{Sisè punt}\or \textbf{Setè punt}\or \textbf{Vuitè punt}\or \textbf{Novè punt}\or \textbf{Desè punt}\fi}
\newcounter{puntnum}
\newenvironment{puntnum}
{\begin{list}{\stepcounter{puntnum}\puntord{puntnum}:}{}}
{\end{list}}
Com és habitual trobareu adjunts a aquest article el document tex font i el PDF que en resulta de processar-lo.

Publicat per primer cop el diumenge 7 de desembre de 2008.

Cap comentari:

Publica un comentari a l'entrada