自定义环境枚举

自定义环境枚举

我的自定义环境在开头和结尾都有一个符号,对于没有枚举的文本来说,效果很好。当包含枚举时,符号不在需要的位置。是否可以将第一个符号直接放在“1”前面。即在同一行中,而结束符号与枚举的最后一行在同一行中?使用\ignorespacesafterend和,\unskip我没有成功。

\documentclass{article}
\usepackage{amssymb}
\newenvironment{myenv}{$\blacktriangleright$}{\hfill$\blacktriangleleft$}

\begin{document}
There is a text.

\begin{myenv}
And an example
\end{myenv}

Here is another text.

\begin{myenv}
\begin{enumerate}
\item A
\item B
\end{enumerate}
\end{myenv}

\end{document}

在此处输入图片描述

答案1

您不必将enumerate环境嵌套在myenv环境中,而是可以用 定义一个新的列表环境enumitem,其中黑色三角形将自动放置在开头和结尾。

\documentclass{article}
\usepackage{amssymb}
\newenvironment{myenv}{$\blacktriangleright$}{\hfill$\blacktriangleleft$}
\usepackage{enumitem}
\newlist{myenumerate}{enumerate}{1}
\newcommand*{\placebtr}{%
    \item[]
        \hspace*{-\labelsep}%
        \hspace*{-\labelwidth}%
        $\blacktriangleright$%
    \vspace*{-\baselineskip}%
    \vspace*{-\itemsep}%
    \vspace*{-\parsep}%
}
\setlist[myenumerate]{
    label=\arabic*.,
    first=\placebtr,
    after=\hfill$\blacktriangleleft$
}
\setlength{\parindent}{0pt}

\begin{document}
There is a text.

\begin{myenv}
And an example
\end{myenv}

Here is another text.

\begin{myenumerate}
\item A
\item B
\end{myenumerate}

\end{document}

相关内容