我的自定义环境在开头和结尾都有一个符号,对于没有枚举的文本来说,效果很好。当包含枚举时,符号不在需要的位置。是否可以将第一个符号直接放在“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}