
저는 다음과 같은 환경을 정의하고 싶습니다.
\newenvironment{antiitemize}{\end{itemize}}{\begin{itemize}}
나는 그것을 환경 내에서 잠시 동안 목록에서 벗어나기 위해(예를 들어 실제로 목록의 일부가 아닌 주석을 작성하기 위해) antiitemize
사용하려고 하기 때문에 이것을 부릅니다 . itemize
예를 들어, 나는 글을 쓰고 싶습니다.
\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}
그러나 이것은 작동하지 않습니다. LaTeX는 환경이 잘못 중첩된 것을 좋아하지 않는 것 같습니다. antiitemize
환경을 수동으로 시작하고 종료하는 한 쌍의 명령을 정의하는 것과 관련된 해결 방법을 찾았습니다 .
\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}
이는 허용 가능하지만 antiitemize
왜 \newenvironment
.
편집하다.내 질문에 대한 일부 의견에 대한 응답으로 이 질문을 하게 된 동기에 대한 몇 가지 참고 사항이 있습니다.
cgnieder 는
\end{itemize}...\begin{itemize}
.\begin{antiitemize}...\end{antiitemize}
이는 사실이지만 내 사용 사례에서는 문서 마크업을 수행하는 '의미론적' 방식이 아닙니다. 내 환경에 있는 것들은antiitemize
'한 목록을 끝내고 다른 목록을 시작하는 것'이 아니라 '목록의 중단'으로 생각되어야 합니다.나는 원래 질문에서 이것을 명확하게 밝히지 않았지만 내가 정말로 대답하고 싶은 것은 다음과 같습니다.왜내
antiitemize
환경이 망가졌나요?
답변1
패키지를 사용하면 이미 이 작업을 매우 쉽게 수행할 수 있습니다 . 동일한 유형 및 수준의 이전 목록 매개변수를 사용하는 옵션이 enumitem
있으며 , 의 경우 이전 목록이 남아 있던 카운터를 시작합니다. 데모:resume*
enumerate
\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}
답변2
\antiitemize
및 \endantiitemize
대신 \begin{antiitemize}
및 를 사용 \end{antiitemize}
하고 환경 정의를 유지할 수 있습니다.
\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}
결과 보기여기.