我看过这解决方案,虽然它适用于没有标签的物品,但在我的情况下,我有环境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}