为什么在 longtable 中使用“breaklines=true”会对相邻单元格产生副作用?

为什么在 longtable 中使用“breaklines=true”会对相邻单元格产生副作用?

我注意到在表格中的一个单元格中使用breaklines=true选项lstlisting会导致同一表格行中的下一个单元格中的文本稍微向下移动,即使下一个单元格lstlisting根本没有使用。

这是两个表格的示例。第一个breaklines=true表格在一个单元格中使用,而第二个表格没有。请注意第一个表格中的第三个单元格文本不是从顶部开始的。出于某种原因,似乎那里自动添加了一个新行。

在此处输入图片描述

这是代码。使用lualatex大约 3 周前更新的 textlive 2021 编译。

\documentclass[12pt]{article} 

\usepackage{longtable}
\usepackage{lstautogobble}
\usepackage{amsmath}
\usepackage{breqn}

\begin{document}   

First table. Using breaklines

\begin{longtable}[c]{|p{0.4in}|p{2in}|p{2in}|p{0.8in}|}\hline 
A& {\footnotesize \begin{dmath*}x^{2} \left(2 x^{2}+x +1\right) y^{\prime \prime}+x \left(7 x^{2}+6 x +3\right) y^{\prime}+\left(-3 x^{2}+6 x +1\right) y = 0\end{dmath*}}&
\begin{minipage}{2in}%
\begin{lstlisting}[basicstyle=\footnotesize,breaklines=true]
2nd order, with linear sym
\end{lstlisting}
\end{minipage}
&A\\\hline
\end{longtable}    

Second table. not using breaklines

\begin{longtable}[c]{|p{0.4in}|p{2in}|p{2in}|p{0.8in}|}\hline 
A& {\footnotesize \begin{dmath*}x^{2} \left(2 x^{2}+x +1\right) y^{\prime \prime}+x \left(7 x^{2}+6 x +3\right) y^{\prime}+\left(-3 x^{2}+6 x +1\right) y = 0\end{dmath*}}&
\begin{minipage}{2in}%
\begin{lstlisting}[basicstyle=\footnotesize]
2nd order, with linear sym
\end{lstlisting}
\end{minipage}
&A\\\hline
\end{longtable}    
    
\end{document}

答案1

它实际上与列表无关,只是您使用了minipage具有默认[c]垂直对齐的 a。因此,表格行的基线穿过小页面的垂直中心和 A 的基线。如果您使用,\begin{minipage}[t]则参考点将位于顶线上,A 的基线将与之对齐。

您会看到更常见的标记,即使用mp而不是嵌套的minipage

相关内容