\sortedlist 环境中的文本对齐

\sortedlist 环境中的文本对齐

我正在使用以下命令:

\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}

我修复了输入中的几个错误(单位应该放在括号中,而不是方括号中,并且开头的引号应该这样输入

``

(两个反引号)不一样''

在此处输入图片描述

相关内容