强制在项目后换行(带标签)

强制在项目后换行(带标签)

我看过解决方案,虽然它适用于没有标签的物品,但在我的情况下,我有环境labeling(更具体地说\begin{labeling}{alligator} ... \end{labelling}:),显然没有标签的标签列表没有多大意义。

目前它看起来像这样(右侧部分被切断,因为它与问题无关):

在此处输入图片描述

最初(在我添加Python 3.4项目)看起来还不错,但后来我注意到,由于一些标签的长度,它们看起来并不像具有相同的对齐方式,特别是因为我的标签也是大胆的这使得问题更加明显。

我想要输入一个换行符并得到以下结果:

在此处输入图片描述

我刚刚开始学习定义自定义命令(或重新定义现有命令),但我不知道该如何定义命令\item[...]。在每一项后面添加命令\mbox{}\\会有很多不必要的工作,即使我不需要这样做(这是我的问题的另一个解决方案),我仍然想知道如何处理此类命令。

我努力了

\let\OldItem\item
\renewcommand{\item}[1]{\OldItem[#1]\mbox{}\\}

但它导致了一个可怕的混乱(而且它根本没有解决我的问题):

在此处输入图片描述

有什么想法可以做到这一点吗?

答案1

您提出的解决方案几乎可行,您只需将 的参数\item视为方括号中的可选参数即可。最好不要\item全局重新定义,而只在需要时进行重新定义。

在此处输入图片描述

\documentclass{article}
\let\OldItem\item
\newcommand\NewItem[1][]{\OldItem[#1]\mbox{}\\}
\newenvironment{mydescription}%
  {\begin{description}\let\item\NewItem}%
  {\end{description}}
\begin{document}
\begin{mydescription}
\item[C] for evaluation of bla bla bla
\item[C++] the main language for ble ble ble
\item[Pyton 3.4] for data evaluation of blu blu blu
\end{mydescription}
\end{document}

答案2

以下是使用该enumitem包执行此操作的另一种方法:

\documentclass{article}
\usepackage{enumitem}
\newcommand\lipsum{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.}
\begin{document}
\lipsum
\begin{description}[style=nextline,leftmargin=*,labelsep=2em]
\item[C]\lipsum
\item[C++]\lipsum
\item[Python 3.4]\lipsum
\end{description}
\end{document}

代码输出

相关内容