如何对齐公式?

如何对齐公式?
\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}

相关内容