Comment créer automatiquement une liste d'éléments utilisés dans un document LaTeX?
-
08-07-2019 - |
Question
Je veux ajouter des éléments dans un document LaTeX. Imaginons par exemple que je veuille ajouter des indices au document. Je crée une commande pour pouvoir appeler quelque chose de similaire à ceci:
\hint{foocareful}{Be careful with foo!}{foo is a very precious item and can easily be broken. Be careful, especially don't throw foo.}
Ceci sera formaté de manière spéciale, afin que le lecteur puisse le reconnaître facilement comme un indice. Il obtient une étiquette, qui peut être référencée dans l'exemple avec 'foocareful'.
Dans l'annexe, je souhaite ajouter une liste de toutes les astuces avec des références. Quelque chose comme:
\begin{enumerate}
...
\item Be careful with foo! (\pageref{foocareful})
...
\end{enumerate}
Mais naturellement, je ne veux pas tenir cette liste à la main. Comment créer automatiquement une telle liste?
La solution
Une solution consiste à utiliser le package float
. Je pense au moins que le paquetage floatrow
peut également faire ce que vous voulez, et peut aussi être plus flexible. Vous voyez partir, cependant.
Voici un exemple de ce que vous essayez d'utiliser avec float
:
\documentclass{article}
\usepackage{float}
\floatstyle{boxed}
\newfloat{hintbox}{H}{hnt}
\floatname{hintbox}{Hint}
\newcommand\hint[2]{%
\begin{hintbox}
#2
\caption{#1}
\end{hintbox}}
\begin{document}
\section{Hello}
\hint{Be careful with foo!\label{foocareful}}{%
foo is a very precious item and can easily be broken.
Be careful, especially don't throw foo.}
\hint{Don't worry about bar!\label{foocareful}}{%
Unlike foo, bar is pretty easily to get along with.}
\section{End}
\listof{hintbox}{List of Hints}
\end{document}
Autres conseils
Je n'ai pas fait cela depuis des années, mais je regarderais le code source LaTeX pour \ tableofcontents et \ listoffigures. Je pense que le mécanisme est générique et que vous pouvez l’étendre pour inclure vos propres listes.