两个 \longtable 单元格中插入的文本和方程式之间的垂直对齐问题

两个 \longtable 单元格中插入的文本和方程式之间的垂直对齐问题

我有一个水平表格,用 制作\longtable,有两个单元格:左侧单元格中有文本,右侧单元格包含我用 命令实现的等式\alignat。如果我使用附加的代码,左侧单元格文本和右侧单元格等式的顶部会出现错位:

\documentclass[11pt, a4paper, twoside, openright, titlepage]{book}
\usepackage[english]{babel}
\usepackage{amsmath,amssymb}
\usepackage{ltxtable}

\begin{document}

\newsavebox\try
\begin{lrbox}{\try}
    \begin{minipage}{0.5\textwidth}
        \begin{alignat}{3}
            \rightarrow ~~~   & \qquad  {y_i}^0 ~ =          & f \tiny ~ ( \tiny ~ {\mathbf{x}_1}^0 \tiny ~ ) \\
            ~                 & \qquad {\mathbf{y}_i}^0 ~ =   & \mathbf{f} \tiny ~ ( \tiny ~ {\mathbf{x}_1}^0 \tiny ~ ) \\
            ~                 & \qquad {s_i}^0 ~ =            & ~~ F \tiny ~ ( \tiny ~     {y_i}^0, \mathbf{y}^0 \tiny ~ )
        \end{alignat}
    \end{minipage}
\end{lrbox}
\begin{longtable}{p{0.5\textwidth}p{0.5\textwidth}}
    Objective - fitness evaluation for the first population: objective values and fitness indices, $ {y_i}^0 $ and $ {s_i}^0 $, for the first generation; & \usebox{\try}
\end{longtable}

\end{document}

在此处输入图片描述

我希望表格看起来像第二张图片(显然我可以用 LaTeX 制作它,我只是用 PhotoShop 编辑了第一个屏幕截图):

在此处输入图片描述

不必关心 box 和 minipage 对象的用法,它只是允许将 用到\alignat长表中:我已经发现问题并不取决于这些项目。我尝试使用环境将方程式直接插入表中,\aligned情况完全相同。我还尝试了\strut和等调整大小命令\setlength,但仍然没有任何结果。

我需要使用\longtable命令,因为该表格将成为更长的表格的一部分,我必须将其分成两页。

您有什么办法可以解决这个问题吗?我真的不知道该如何应对。

答案1

\tiny~除了发出几次警告外,我不确定应该做什么。

您想使用该[t]选项minipage,但更正插入的垂直空格

\documentclass[11pt, a4paper, twoside, openright, titlepage]{book}
\usepackage[english]{babel}
\usepackage{amsmath,amssymb}
\usepackage{calc}
\usepackage{ltxtable}

\newsavebox{\try}

\begin{document}

\begin{lrbox}{\try}
\begin{minipage}[t]{0.5\textwidth-\tabcolsep}
\vspace{-\baselineskip}
\vspace{-\abovedisplayskip}
\begin{alignat}{2}
\rightarrow && \qquad {y_i}^0          &= f({\mathbf{x}_1}^0) \\
            && \qquad {\mathbf{y}_i}^0 &= \mathbf{f}({\mathbf{x}_1}^0) \\
            && \qquad {s_i}^0          &= F({y_i}^0, \mathbf{y}^0)
\end{alignat}
\end{minipage}
\end{lrbox}
\begin{longtable}{
  @{}
  p{0.5\textwidth-\tabcolsep}
  p{0.5\textwidth-\tabcolsep}
  @{}
}
Objective - fitness evaluation for the first population: 
objective values and fitness indices, ${y_i}^0$ and ${s_i}^0$, 
for the first generation; & \usebox\try
\end{longtable}

\end{document}

请注意,必须减小列宽以适应列间空间。对齐是通过使用适当的标记来实现的:aligned和“对齐

在此处输入图片描述

答案2

由于 OP 表示我的评论解决了问题,我将其重新发布为答案。在这里,我手动将 应用于\raisebox\usebox{try}以便将基线与顶行对齐。

\documentclass[11pt, a4paper, twoside, openright, titlepage]{book}
\usepackage[english]{babel}
\usepackage{amsmath,amssymb}
\usepackage{ltxtable}
\begin{document}
\newsavebox\try
\begin{lrbox}{\try}
    \begin{minipage}{0.5\textwidth}
        \begin{alignat}{3}
            \rightarrow ~~~   & \qquad  {y_i}^0 ~ =          & 
            f \tiny ~ ( \tiny ~ {\mathbf{x}_1}^0 \tiny ~ ) \\
            ~                 & \qquad {\mathbf{y}_i}^0 ~ =   & 
            \mathbf{f} \tiny ~ ( \tiny ~ {\mathbf{x}_1}^0 \tiny ~ ) \\
            ~                 & \qquad {s_i}^0 ~ =            & 
            ~~ F \tiny ~ ( \tiny ~     {y_i}^0, \mathbf{y}^0 \tiny ~ )
        \end{alignat}
    \end{minipage}
\end{lrbox}
\begin{longtable}{p{0.5\textwidth}p{0.5\textwidth}}
    Objective - fitness evaluation for the first population: objective values 
    and fitness indices, $ {y_i}^0 $ and $ {s_i}^0 $, for the first generation; & 
    \raisebox{-.73\baselineskip}{\usebox{\try}}
\end{longtable}
\end{document}

在此处输入图片描述

相关内容