%20para%20usarlo%20en%20una%20lista%3F.png)
Pretexto: conozco paquetes como todonotes
, todo
y fixme
, pero esta es más una tarea para aprender a programar en LaTeX. Por lo tanto, se desaconseja el uso de paquetes adicionales descargados de CTAN. También me gustaría evitar el uso de archivos *.sty adicionales.
¿Cómo se crea un comando en el *.tex principal para que un elemento contado se muestre más tarde en un listado?Por ejemplo:
Text before\todo[optional caption]{my text here}.
Some other text in the document\todo{another todo but without caption}.
La nota de tarea tendrá color, prefijo o marcará de otro modo en el texto en línea. Luego, la llamada \listoftodos
creará una lista de los \todo
mensajes de correo electrónico en el documento y generará una lista (hipervínculo) similar pero separada de \tableofcontents
, donde el contenido de {}
será reemplazado por el de []
si y solo si está presente, con el número de página a la derecha. Esta lista solo necesitará un único nivel de profundidad.
Estaba revisando el código fuente del todonotes
paquete, pero no pude encontrarle mucho sentido. Por lo que puedo decir, esta tarea requerirá definir dos nuevos comandos, almacenar los textos en una lista de todos, manejar argumentos opcionales y, finalmente, hacer una lista referenciada de todos usando hyperref
en una (otra) tabla de contenido. La lista se escribirá en el archivo *.aux.
Prima:
Seguridad para usarse dentro de una ecuación o encabezado de sección, seguridad para tener formato o una ecuación dentro de la nota
¿Cómo se pueden agregar opciones?
\listoftodos
Sería bueno tener una opción simple de mostrar u ocultar el texto en línea (sin dejar de mostrarse en el archivo ).¿Se puede extender este método a otros artículos?
\myitem
,\listofmyitems
,\otheritems
,\listofotheritems
?
Anexo: ¿Existe alguna guía avanzada en línea para programar (La)TeX? Esto será útil para cualquier empresa futura.
Respuesta1
Una versión preliminar, sin claves de opciones.
\documentclass{article}
\usepackage[x11names]{xcolor}
\usepackage{etoolbox}%
\usepackage{blindtext}% Just as text filler
\usepackage{hyperref}
\makeatletter
\def\todolist{}
\newcounter{todolistcounter}
\newcommand{\ToDo}{%
\@ifnextchar[{\todoopt}{\todonoopt}%
}%
\newcommand{\todonoopt}[1]{%
\refstepcounter{todolistcounter}
% \addcontentsline{todo}{section}{\thetodolistcounter~#1} % No contents line
\listgadd{\todolist}{#1}%
#1%
% \colorbox{green}{\thetodolistcounter~#1}
}
\newcommand{\todoopt}[2][]{%
\refstepcounter{todolistcounter}
\addcontentsline{todo}{section}{\thetodolistcounter~#1}
\listgadd{\todolist}{#2}%
#2%
% \colorbox{green}{\thetodolistcounter~#2}
}%
\newcommand{\listoftodos}{%
\section{List of Todos}
\@starttoc{todo}
\clearpage
}%
% inline display (as a enumerate) list
\newcommand{\InTextListOfToDos}{%
\begin{enumerate}%
\renewcommand*{\do}[1]{%
\item ##1%
}
\dolistloop{\todolist}%
\end{enumerate}%
}
\makeatother
\begin{document}
\listoftodos
\ToDo{first} \ToDo{We}
\blindtext[5] \ToDo[should not]{should} \blindtext[10]\ToDo{start from scratch}
\ToDo{\begin{equation}
E = mc^2%
\end{equation}%
}
\blindtext
\section{The ToDos}
\section{A heading with a ToDo \protect\ToDo{Something}}
\InTextListOfToDos
\end{document}