使用m
表格中的列,我希望获得垂直居中的单元格:
\documentclass[a4paper, 12pt]{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\normalsize
\textbf{Some title}
\newline
\newline
\begin{tabular}{m{0.5 cm}>{}m{10 cm}|>{}m{4 cm}@{}m{0pt}@{}}
\hline
\textbf{1.} & $11 \times \text{?} = 9$ & & \tabularnewline [0.8cm] \hline
\textbf{2.} & $\text{?} \times \text{?} = 72$ & & \tabularnewline [0.8cm] \hline
\end{tabular}
\end{document}
但是使用 lualatex 1.07 (TeX Live 2018),我得到:
而 lualatex 1.0.4 (TeX Live 2017) 确实正确地将单元格垂直居中。
这是错误吗?我应该更正表格格式吗?或者 1.07 版本有解决方法吗?
(编辑:目标是让文本垂直居中,就像使用 lualatex 1.0.4 软件版本一样:对于失败的 TeX Live 2018 / lualatex 1.07:
lualatex 2018.7.28
LaTeX2e <2018-04-01> patch level 2
array.sty 2018/04/07 v2.4g
以前运行的 TeX Live 2017 / lualatex 1.0.4 有以下版本:
lualatex 2018.1.13
LaTeX2e <2017-04-15>
array.sty 2016/10/06 v2.4d
)
答案1
lualatex 在这里不相关,您可以从 pdflatex 或 xelatex 看到相同的输出。
您将看到对列进行错误修复的效果m
,正如您使用如下所示的旧版本代码所看到的那样 [=2016-10-06]
。
\documentclass[a4paper, 12pt]{article}
\usepackage{amsmath}
\usepackage{array}[=2016-10-06]
\begin{document}
\normalsize
\textbf{Some title}
\newline
\newline
\begin{tabular}{m{0.5 cm}>{}m{10 cm}|>{}m{4 cm}@{}m{0pt}@{}}
\hline
\textbf{1.} & $11 \times \text{?} = 9$ & & \tabularnewline [0.8cm] \hline
\textbf{2.} & $\text{?} \times \text{?} = 72$ & & \tabularnewline [0.8cm] \hline
\end{tabular}
\end{document}
答案2
您可以使用该cellspace
包,它允许您定义一个最小在带有以字母为前缀的说明符的列中,单元格顶部和底部的垂直间距S
((如果出于兼容性原因而C
加载):siunitx
\documentclass[a4paper, 12pt]{article}
\usepackage{amsmath}
\usepackage{array, cellspace}
\setlength{\cellspacetoplimit}{0.6cm}
\setlength{\cellspacebottomlimit}{0.6cm}
\begin{document}
\normalsize
\textbf{Some title}
\newline
\newline
\begin{tabular}{S{m{0.5 cm}}>{}S{m{10 cm}}|>{}m{4 cm}@{}m{0pt}@{}}
\hline
\textbf{1.}& $11 \times \text{?} = 9$ & & \\ \hline
\textbf{2.} & $\text{?} \times \text{?} = 72$ & & \\ \hline
\end{tabular}
\end{document}