\documentclass{article}
\usepackage{amsmath}
\newtheorem{definition}{Definition}[section]
\begin{document}
\section{How to vertically align \ref{first} and \ref{second}?}
\begin{definition}
\mbox{}
\begin{enumerate}
\item\label{first} First line: \hspace{40pt} $ A\leftrightarrow B\wedge C$
\item\label{second} Second and longer line: \hspace{8pt} $\forall x\forall y\forall z(x<z
\to (x<y\vee y<z))$
\end{enumerate}
\end{definition}
\end{document}
答案1
您可以使用eqparbox
。 的第一个可选参数\eqmakebox
并不是真正可选的,因为它是一个任意字符串,用于标识应均衡的框;第二个可选参数是框内的对齐方式。
\documentclass{article}
\usepackage{amsmath,amsthm}
\usepackage{eqparbox}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\begin{document}
\section{How to vertically align \ref{first} and \ref{second}?}
\begin{definition}\mbox{}
\begin{enumerate}
\item\label{first}
\eqmakebox[A][l]{First line:} $ A\leftrightarrow B\wedge C$
\item\label{second}
\eqmakebox[A][l]{Second and longer line:}
$\forall x\forall y\forall z(x<z \to (x<y\vee y<z))$
\end{enumerate}
\end{definition}
\end{document}
当您添加一组均衡的框(或更改其文本)时,需要运行两次才能使排版稳定。
答案2
我建议您使用\makebox
指令将字符串“第一行:”放在一个透明的“框”内,该框的宽度与字符串“第二行和更长的行:”的长度一样。
\documentclass{article}
\usepackage{amsmath}
\usepackage{calc} % for '\widthof' macro
\newtheorem{definition}{Definition}[section]
\begin{document}
\section{How to vertically align \ref{first} and \ref{second}?}
\begin{definition}
\mbox{}
\begin{enumerate}
\item\label{first}
\makebox[\widthof{Second and longer line:}][l]{First line:}\quad
$A\leftrightarrow B\wedge C$
\item\label{second}
Second and longer line:\quad
$\forall x\forall y\forall z\ (x<z\to (x<y\vee y<z))$
\end{enumerate}
\end{definition}
\end{document}