
Eu gostaria de definir um ambiente como este:
\newenvironment{antiitemize}{\end{itemize}}{\begin{itemize}}
Eu chamo isso antiitemize
porque pretendo usá-lo dentro de um itemize
ambiente para sair da lista por um curto período, por exemplo, para escrever um comentário que não faz realmente parte da lista. Por exemplo, eu gostaria de escrever
\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}
No entanto, isso não funciona. O LaTeX parece não gostar que os ambientes estejam mal aninhados. Encontrei uma solução alternativa que envolve definir um par de comandos para iniciar e encerrar o antiitemize
ambiente manualmente, assim.
\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}
Isso é tolerável, mas eu realmente gostaria de saber por que não consigo definir meu antiitemize
ambiente usando \newenvironment
.
Editar.Em resposta a alguns dos comentários que minha pergunta recebeu, aqui estão algumas notas sobre minha motivação para fazer essa pergunta.
cgnieder aponta que isso
\end{itemize}...\begin{itemize}
teria o mesmo efeito que\begin{antiitemize}...\end{antiitemize}
. Isso é verdade, mas no meu caso de uso não é uma maneira muito 'semântica' de marcar o documento. As coisas no meuantiitemize
ambiente deveriam ser pensadas como “uma interrupção na lista” em vez de “terminar uma lista e começar outra”.Não deixei isso claro na minha pergunta original, mas acho que realmente gostaria de uma resposta:por quemeu
antiitemize
ambiente está quebrado?
Responder1
Você já pode fazer isso facilmente com o enumitem
pacote: ele possui uma resume*
opção que utiliza os parâmetros da lista anterior do mesmo tipo e nível, e, for enumerate
, inicia o contador onde a lista anterior o deixou. Demonstração:
\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}
Responder2
Você poderia usar \antiitemize
e \endantiitemize
no lugar de \begin{antiitemize}
e \end{antiitemize}
e manter a definição do ambiente.
\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}
Veja os resultadosaqui.