表格内出现奇怪的空格或表格内文本居中

表格内出现奇怪的空格或表格内文本居中

问题图片我遇到了一个问题,我的(横向)表格中的文本在单元格中产生了大片空白。在文本后的中间一列和文本前的最后一列,以及左列中方程的位置。

\documentclass{article}
\usepackage{makecell}
\usepackage{pdflscape}
\usepackage{lipsum}
\begin{document}
    
\newpage
\begin{landscape}
\begin{table}[]
\caption{Foo bar}
\label{tab:Foobar}
\begin{tabular}{|p{70mm}|p{60mm}|p{110mm}|}
\hline
\textbf{Equation} & \textbf{Conditions} & \textbf{Notes} \\ \hline
\begin{equation}
    \overline{\text{A}} = 3
\end{equation}          & \makecell{Foo bar \\ Foo bar \\ Foo bar \\ Foo bar \\ Foo bar} & Foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar \\ \hline
\begin{equation}
    \overline{\text{B}} = 4
\end{equation}          & \makecell{Foo bar \\ Foo bar \\ Foo bar \\ Foo bar} & \lipsum[1-1] \\ \hline
\end{tabular}
\end{table}
\end{landscape}
    
\end{document}

答案1

  • 您的代码示例不可编译,您忘记加载包amsmath

  • 表格列的大小选择不当。表格突出到横向页面的右侧边框……

  • 从软件包文档中可以看出,\makecell表格单元格中内容的默认位置是垂直和水平居中。您可以通过添加选项tb修剪makecell内容基线(移到顶部或底部)以及lr水平位置和内容对齐来本地更改此设置makecell

\documentclass{article}
\usepackage{amsmath}
\usepackage{makecell}
\usepackage{pdflscape}
\usepackage{lipsum}

\begin{document}
\begin{landscape}
    \begin{table}
\caption{Foo bar}
\label{tab:Foobar}

\begin{tabular}{|p{60mm}|p{60mm}|p{60mm}|}
    \hline
\textbf{Equation}   & \textbf{Conditions} & \textbf{Notes} \\ \hline
\begin{equation}
    \overline{\text{A}} = 3
\end{equation}      & \makecell{Foo bar \\ Longer foo bar \\ Very long foo bar \\ Foo bar} 
                        & Foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar 
                            \\ 
    \hline
\end{tabular}
    \end{table}
    
    \begin{table}
\caption{Foo bar with baseline at top}
\label{tab:Foobar}

\begin{tabular}{|p{60mm}|p{60mm}|p{60mm}|}
    \hline
\textbf{Equation}   & \textbf{Conditions} & \textbf{Notes} \\ \hline
\begin{equation}
    \overline{\text{A}} = 3
\end{equation}      & \makecell[t]{Foo bar \\ Longer foo bar \\ Very long foo bar \\ Foo bar} 
                        & Foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar 
                            \\ 
    \hline
\end{tabular}
    \end{table}
        
    \begin{table}
\caption{Foo bar with baseline at bottom and left aligned}
\label{tab:Foobar}

\begin{tabular}{|p{60mm}|p{60mm}|p{60mm}|}
    \hline
\textbf{Equation}   & \textbf{Conditions} & \textbf{Notes} \\ \hline
\begin{equation}
    \overline{\text{A}} = 3
\end{equation}      & \makecell[bl]{Foo bar \\ Longer foo bar \\ Very long foo bar \\ Foo bar} 
                        & Foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar 
                            \\ 
    \hline
\end{tabular}
    \end{table}
    
\end{landscape}
\end{document}

在此处输入图片描述

您可以通过以下方式全局声明此设置:

    \renewcommand\cellalign{<desired options>}

但是(不管您用这个表的目的是什么)使用该tabularray包您可以获得更简单的代码和更好的结果:

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}

\usepackage{pdflscape}
\usepackage{lipsum}

\begin{document}
\begin{landscape}
    \begin{table}
\caption{Foo bar}
\label{tab:tblr}


\begin{tblr}{hlines, vlines,
             colspec = {Q[c, wd=60mm] X[c] X[j]},
             row{1}  = {l, font=\bfseries}
             }
\textbf{Equation}   & \textbf{Conditions} & \textbf{Notes} \\
\begin{equation}
    \overline{\text{A}} = 3
\end{equation}      &   {Foo bar \\ Longer foo bar \\ Very long foo bar \\ Foo bar} 
                        & \lipsum[1][1-1]   \\ 
\begin{equation}
    \overline{\text{B}} = 4
\end{equation}      &   {Foo bar \\ Foo bar \\ Foo bar \\ Foo bar} 
                        & \lipsum[1][2-5]   \\ 
\end{tblr}
    \end{table}  
\end{landscape}
\end{document}

在此处输入图片描述

答案2

最终是 的问题\makecell{},将其更改为 即可\makecell[t]{}解决问题。至于具体方法,我不确定。

相关内容