我遇到了一个问题,我的(横向)表格中的文本在单元格中产生了大片空白。在文本后的中间一列和文本前的最后一列,以及左列中方程的位置。
\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
表格单元格中内容的默认位置是垂直和水平居中。您可以通过添加选项t
或b
修剪makecell
内容基线(移到顶部或底部)以及l
或r
水平位置和内容对齐来本地更改此设置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]{}
解决问题。至于具体方法,我不确定。