我正在使用以下命令:
\documentclass[10pt]{report}
\usepackage{datatool}
\usepackage{enumerate}
\newcommand{\sortitem}[2]{%
\DTLnewrow{list}%
\DTLnewdbentry{list}{label}{#1}%
\DTLnewdbentry{list}{description}{#2}%
}
\newenvironment{sortedlist}{%
\DTLifdbexists{list}{\DTLcleardb{list}}{\DTLnewdb{list}}%
}{%
\DTLsort{label}{list}%
\begin{description}%
\DTLforeach*{list}{\theLabel=label,\theDesc=description}{%
\item[\theLabel] \theDesc}%
\end{description}%
}
我用来编写的命令
\begin{document}
\begin{sortedlist}
\sortitem{$\underline{M}$}{Matrice des masses généralisées $[\mathrm{kg}]$}
\sortitem{$\underline{TEST}$}{Text here bigger than '' Matrice des masses généralisées''}
\end{sortedlist}
\end{document}
这给了我:
现在我想修改 sortedlist (在 \begin{document} 之前)命令,以使文本与页面边缘保持一定距离,这样应该可以得到:
谢谢你的建议
答案1
您可以测量标签以找到最宽的标签和使用enumitem
功能。
\documentclass[10pt]{report}
\usepackage{datatool}
\usepackage{enumitem}
\newcommand{\sortitem}[2]{%
\DTLnewrow{list}%
\DTLnewdbentry{list}{label}{#1}%
\DTLnewdbentry{list}{description}{#2}%
}
\newlength{\sortedlistwd}
\newlength{\sortedlistwdtemp}
\newenvironment{sortedlist}{%
\DTLifdbexists{list}{\DTLcleardb{list}}{\DTLnewdb{list}}%
}{%
\DTLsort{label}{list}%
\setlength{\sortedlistwd}{0pt}%
\DTLforeach*{list}{\theLabel=label}{%
\settowidth{\sortedlistwdtemp}{\theLabel}%
\ifdim\sortedlistwdtemp>\sortedlistwd
\setlength{\sortedlistwd}{\sortedlistwdtemp}%
\fi
}%
\begin{description}[labelwidth=\sortedlistwd]
\DTLforeach*{list}{\theLabel=label,\theDesc=description}{%
\item[\theLabel] \theDesc}
\end{description}%
}
\begin{document}
\begin{sortedlist}
\sortitem{$\underline{M}$}{Matrice des masses généralisées $(\mathrm{kg})$}
\sortitem{$\underline{TEST}$}{Text here bigger than ``Matrice des masses généralisées''}
\end{sortedlist}
\end{document}
我修复了输入中的几个错误(单位应该放在括号中,而不是方括号中,并且开头的引号应该这样输入
``
(两个反引号)不一样''
。