在标签后添加符号

在标签后添加符号

我该如何:在描述列表的标签后添加?在这种情况下,这意味着使用Foo:而不是Foo(对于“Bar”也是一样)。

PS:另外,列表要怎样设置itemize才能变成description列表呢?

\documentclass{article}
\usepackage[showframe=true]{geometry}
\usepackage{enumitem}
\newlist{mylist}{description}{1}
\setlist[mylist]
{align=left,
  leftmargin=0pt%,
%afterlabel={:}
}
\usepackage{lipsum}

\begin{document}

\begin{mylist}
\item[Foo] \lipsum[1]
\item[Bar] \lipsum[2]
\end{mylist}

\end{document}

在此处输入图片描述

答案1

在 中添加一个特定的宏来设置标签的“字体” mylist。也就是说,使用font=<commands>,因为enumitem 文档提及

最后一个命令<commands>可以带有项目标签的参数。

这个“字体”宏接受 1 个参数 - 由提供的可选参数\item- 它允许您围绕它协商附加内容:

在此处输入图片描述

\documentclass{article}

\newcommand{\mylistlabelfont}[1]{{\bfseries #1:}}
\usepackage{enumitem}
\newlist{mylist}{description}{1}
\setlist[mylist]{%
  align=left,
  leftmargin=0pt,
  font=\mylistlabelfont
}
\usepackage{lipsum}

\begin{document}

\begin{mylist}
  \item[Foo] \lipsum[1]
  \item[Bar] \lipsum[2]
  \item[Foo bar] \lipsum[3]
\end{mylist}
    
\end{document}

答案2

仅修改环境的解决方案mylist

\documentclass{article}
\usepackage[showframe=true]{geometry}
\usepackage{enumitem}
\newlist{mylist}{description}{1}
\setlist[mylist]
{align=left,
  leftmargin=0pt}

\AtBeginEnvironment{mylist}{\renewcommand{\descriptionlabel}[1]{%
  \hspace\labelsep
  \normalfont\bfseries#1:}}
\usepackage{lipsum}

\begin{document}

\begin{mylist}
\item[Foo] \lipsum[1]
\item[Bar] \lipsum[2]
\end{mylist}

\end{document} 

在此处输入图片描述

答案3

通过重新定义可能的解决方案descriptionlabel

在此处输入图片描述

\documentclass{article}
\usepackage[showframe=true]{geometry}
\usepackage{enumitem}
\newlist{mylist}{description}{1}
\setlist[mylist]
{align=left,
  leftmargin=0pt
}
\usepackage{lipsum}

\renewcommand{\descriptionlabel}[1]{%
  \hspace\labelsep \upshape\bfseries #1:%
}

\begin{document}
\begin{mylist}
\item[Foo] \lipsum[1]
\item[Bar] \lipsum[2]
\end{mylist}  
\end{document}

相关内容