주변 환경을 떠나는 환경 정의

주변 환경을 떠나는 환경 정의

저는 다음과 같은 환경을 정의하고 싶습니다.

\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}

여기에 이미지 설명을 입력하세요

결과 보기여기.

관련 정보