在整个文档的描述环境中的列表项后添加破折号

在整个文档的描述环境中的列表项后添加破折号

如何---在文档中每个描述环境中的每个项目标签后添加一个破折号 ( )?是否有一种全局方法可以覆盖每个项目的布局?

这产生了预期效果,但我手动在每个项目后插入破折号:

\documentclass{book}
\begin{document}
    \begin{description}
        \item[A] --- description        
        \item[B] --- description    
    \end{description}
\end{document}

是否可以只使用\item[label] description整个文档,并只在序言中快速覆盖来实现?我在书籍目录

\newenvironment{description}
               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
                        \let\makelabel\descriptionlabel}}
               {\endlist}

因此,我认为我需要重新定义\makelabel,但我不确定如何从这里继续。我只想更改环境description,而不是其他列表。

答案1

您需要改变 的定义\descriptionlabel

% descriptionprob.tex  SE 572848
\documentclass{book}

\begin{document}
Regular descriptions:
\begin{description}
  \item[A] an item
  \item[B] another item
\end{description}

Revised description labels.
\renewcommand{\descriptionlabel}[1]{%
  \hspace\labelsep
  \normalfont{\bfseries #1} ---}

\begin{description}
  \item[A] an item
  \item[B] another item
\end{description}

\end{document}

在此处输入图片描述

答案2

您可以使用 enumitem:

\documentclass{book}
\usepackage{enumitem}
\newcommand\mydesclabel[1]{#1\quad{\normalfont ---}}
\setlist[description,1]{format=\mydesclabel}
\begin{document}
    \begin{description}
        \item[A]  description
        \item[B]  description
    \end{description}
\end{document}

相关内容