实现列表的最佳方式是什么,其中项目无缝对齐,左对齐、居中对齐或右对齐。我对左对齐的项目更感兴趣(例如一系列或(系统)方程式)。我有一个方程式“埃“并希望创建一个左对齐列表,描述变量代表什么或等于什么,如下例所示。
答案1
我将使用逐项列表来执行此操作:
如果您希望术语左对齐,则可以使用以下[align=left, leftmargin=<length>, labelwidth=\widthof{<widest_term>}]
选项:
笔记:
- 我使用了
geometry
包装并进行了调整,paperwidth=
以便更容易看到线条的包裹。
代码:
\documentclass{article}
\usepackage[paperwidth=8.0cm,showframe]{geometry}
\usepackage{amsmath}
\usepackage{calc}
\usepackage{enumitem}
\begin{document}
\noindent
The final equation is:
\[ x= (m*n)+P+Q \]
where\par
\begin{itemize}
\item [$x$] is some really long explanation of this value
\item [$n$] is the value of
\item [$m$] is the value of
\item [$P$] is the value of
\item [$Q$] is the value of
\end{itemize}
\noindent
The final equation is:
\[ x= (m*n)+P+Q \]
where\par
\begin{itemize}[align=left,leftmargin=1.5cm,labelwidth=\widthof{$P+Q$}]
\item [$x$] is some really long explanation of this value
\item [$m*n$] is the their product
\item [$P+Q$] is the their sum
\end{itemize}
\end{document}
答案2
可能有点过了,但我在论文中这样做过,那是很久以前,当时我还是一个真正的 LaTeX 新手,我甚至不知道memoir
\documentclass[a5paper]{article}
\newenvironment{descr}[1]{\list{}{%
\setlength{\topsep}{0pt}
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\itemindent}{0pt}
\settowidth{\labelwidth}{#1}
\setlength{\labelsep}{2ex}
\setlength{\leftmargin}{\parindent}
\addtolength{\leftmargin}{\labelwidth}
\addtolength{\leftmargin}{\labelsep}
}}
{\endlist}
\newcommand{\itemdesc}[1]{\item[#1\hspace*{\fill}]}
\begin{document}
\begin{descr}{$\vec{f}_{i\alpha j\beta}$}
\itemdesc{$\vec{R}_i$} es la posición del centro de masas de la molécula $i$, $\vec{R}_i=\frac{1}{M_i}\sum_\alpha m_{i\alpha}\vec{r}_{i\alpha}$.
\itemdesc{$M_i$} es la masa total de la molécula $i$, $M_i=\sum_\alpha m_{i\alpha}$.
\itemdesc{$\vec{F}_i$} es la fuerza total en el centro de masas de la molécula $i$, $\vec{F}_i=\sum_{\alpha j\beta}\vec{f}_{i\alpha j\beta}$.
\itemdesc{$\vec{f}_{i\alpha j\beta}$} es la fuerza existente entre el átomo $\alpha$ de la molécula $i$ y el átomo $\beta$ de la molécula $j$.
\itemdesc{$\vec{J}_i$} es el tensor momento de inercia de la molécula $i$, $\vec{J}_i=\sum_\alpha m_{i\alpha}(s_{i\alpha}^2\vec{I}-\vec{s}_{i\alpha}\,\vec{s}_{i\alpha}^T)$.
\itemdesc{$\vec{s}_{i\alpha}$} es el vector posición del átomo $\alpha$ respecto al centro de masas de la molécula $i$, $\vec{s}_{i\alpha}=\vec{r}_{i\alpha}-\vec{R}_i$.
\itemdesc{$\vec{\omega}_i$} es la velocidad angular de la molécula $i$.
\itemdesc{$\vec{N}_i$} es el momento de la fuerza total sobre la molécula $i$, $\vec{N}_i=\sum_\alpha\vec{s}_{i\alpha}\times\vec{f}_{i\alpha}$.
\end{descr}
\end{document}
(忽略缺失的重音)
相比之下,简单的itemize
环境(如 Peter Grill 的回答)为您提供了这种对齐:
(请注意,我也在自定义环境中更改了垂直间距。)
答案3
如果您的定义非常统一,您可以将它们放在align
Vafa 建议的环境中:
\begin{align}
x &:= (m*n)+P+Q\\
n &:= ...
\end{align}
但是如果定义的左侧差异太大,它可能看起来就不再好了。也可能右侧需要多行。在这种情况下,您需要将其拆分,这是一个明智的话题,比较https://stackoverflow.com/questions/1578127/how-do-i-break-a-long-equation-over-lines. 对于无编号的方程式,你可以这样做
\begin{align*}
x &:= (m*n)+P+Q+R+S+...\\
&\quad +Y+Z+\pi\\
n &:= ...
\end{align*}
此外,通过添加描述性文本来赋予您定义的变量一些含义始终是明智的。使用对齐方程有两种可能性:
\begin{align}
x &:= (m*n)+P+Q+R+S+... && \text{number of birds in the cage}\\
\intertext{where $n$ is the usual number:}
n &:= ...
\end{align}
答案4
KOMA 类提供labeling
环境,其标签是左对齐的。
\documentclass{scrartcl}
\begin{document}
\begin{labeling}{MM}
\item[$\vec{R}_i$] Position des Massenmittelpunktes
$\vec{R}_i=\frac{1}{M_i}\sum_\alpha m_{i\alpha}\vec{r}_{i\alpha}$
\item[$\vec{f}_{i\alpha j\beta}$] es la fuerza existente entre el tomo
$\alpha$ de la molcula $j$
\end{labeling}
\end{document}
如果您不想使用 KOMA 类,您可以查看scrartcl.cls
并将其定义复制labeling
到您的序言中。