
Me gustaría definir un entorno como este:
\newenvironment{antiitemize}{\end{itemize}}{\begin{itemize}}
Lo llamo antiitemize
porque tengo la intención de usarlo dentro de un itemize
entorno para salir de la lista por un momento, por ejemplo, para escribir un comentario que en realidad no forma parte de la lista. Por ejemplo, me gustaría escribir
\documentclass{article}
\newenvironment{antiitemize}{\end{itemize}}{\begin{itemize}}
\parindent=0pt
\begin{document}
Donec aliquam quam sed enim bibendum, quis ultrices felis porttitor.
\begin{itemize}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item Quisque ac porttitor lectus.
\begin{antiitemize}
Mauris a libero laoreet, iaculis arcu et, tincidunt quam.
\end{antiitemize}
\item Suspendisse auctor leo ut felis lobortis commodo vel quis diam.
\end{itemize}
Morbi nec rhoncus ante.
\end{document}
Sin embargo, esto no funciona. A LaTeX parece no gustarle que los entornos estén mal anidados. Encontré una solución que implica definir un par de comandos para iniciar y finalizar el antiitemize
entorno manualmente, así.
\documentclass{article}
\def\antiitemize{\end{itemize}}
\def\endantiitemize{\begin{itemize}}
\parindent=0pt
\begin{document}
Donec aliquam quam sed enim bibendum, quis ultrices felis porttitor.
\begin{itemize}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item Quisque ac porttitor lectus.
\antiitemize
Mauris a libero laoreet, iaculis arcu et, tincidunt quam.
\endantiitemize
\item Suspendisse auctor leo ut felis lobortis commodo vel quis diam.
\end{itemize}
Morbi nec rhoncus ante.
\end{document}
Esto es tolerable, pero realmente me gustaría saber por qué no puedo definir mi antiitemize
entorno usando \newenvironment
.
Editar.En respuesta a algunos de los comentarios que recibió mi pregunta, aquí hay un par de notas sobre mi motivación para hacer esta pregunta.
cgnieder señala que eso
\end{itemize}...\begin{itemize}
tendría el mismo efecto que\begin{antiitemize}...\end{antiitemize}
. Esto es cierto, pero en mi caso de uso no es una forma muy "semántica" de marcar el documento. Las cosas en miantiitemize
entorno deberían considerarse como "una interrupción en la lista" en lugar de "terminar una lista y comenzar otra".No dejé esto claro en mi pregunta original, pero supongo que lo que realmente me gustaría una respuesta es:por qué¿Mi
antiitemize
entorno está roto?
Respuesta1
Ya puedes hacerlo bastante fácilmente con el enumitem
paquete: tiene una resume*
opción que usa los parámetros de la lista anterior del mismo tipo y nivel, y, para enumerate
, inicia el contador donde lo había dejado la lista anterior. Manifestación:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage[svgnames]{xcolor}
\usepackage{enumitem}
\parindent=0pt
\begin{document}
Donec aliquam quam sed enim bibendum, quis ultrices felis porttitor.
\begin{itemize}[label =\color{VioletRed}$ \lozenge $]
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item Quisque ac porttitor lectus.
\end{itemize}
Mauris a libero laoreet, iaculis arcu et, tincidunt quam.
\begin{itemize}[resume*]
\item Suspendisse auctor leo ut felis lobortis commodo vel quis diam.
\end{itemize}
Morbi nec rhoncus ante.
\begin{itemize}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item Quisque ac porttitor lectus.
\end{itemize}
\end{document}
Respuesta2
Podría usar \antiitemize
and \endantiitemize
en lugar de \begin{antiitemize}
and \end{antiitemize}
y mantener la definición del entorno.
\documentclass{article}
\newenvironment{antiitemize}{\end{itemize}}{\begin{itemize}}
\parindent=0pt
\begin{document}
Donec aliquam quam sed enim bibendum, quis ultrices felis porttitor.
\begin{itemize}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\item Quisque ac porttitor lectus.
\antiitemize
Mauris a libero laoreet, iaculis arcu et, tincidunt quam.
\endantiitemize
\item Suspendisse auctor leo ut felis lobortis commodo vel quis diam.
\end{itemize}
Morbi nec rhoncus ante.
\end{document}
Ver los resultadosaquí.