我想 :
- 将内容垂直居中
- 改变行高
以下是一次尝试:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1] {m{#1}}
\begin{document}
\renewcommand{\arraystretch}{4}
\begin{tabularx}{\linewidth}{|*{2}{Y|}}
\hline
test & test \\ \hline
\end{tabularx}
\end{document}
但它不起作用。
以简单且高度可定制的方式处理表格的最佳方法是什么?如何解决当前的问题?
谢谢
编辑:Zarko 的解决方案不起作用,如该 MWE 所示:文本不是垂直输入的。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{makecell,tabularx}
\setcellgapes{12pt}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
{
\makegapedcells
\begin{tabularx}{\linewidth}{|*{2}{Y|}}
\hline
This is a longer line, this is a longer line, this is a longer line & test \\
\hline
\end{tabularx}
}
\end{document}
答案1
- 您的表格上下文未知,因此我只能猜测您希望在单元格内容的上方和下方拥有更多的垂直空间,例如 12pt。这可以借助
makecell
包来完成(如果该表没有彩色的行或列):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{makecell,tabularx}
\setcellgapes{12pt}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
{
\makegapedcells
\begin{tabularx}{\linewidth}{|*{2}{Y|}}
\hline
test & test \\
\hline
\end{tabularx}
}
\end{document}
编辑:
- 替代解决方案是使用
cellspace
包并在具有多行内容的单元格中使用\parbox{\linewidth}{...}
(不幸的是,makecell
它不适用于m
列类型,并且cellspace
对多行内容也有问题)。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{cellspace, tabularx}
\setlength\cellspacetoplimit{12pt}
\setlength\cellspacebottomlimit{12pt}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
%------------- show page layout. don't use this in real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}
\begin{document}
\noindent
\begin{tabular}{|*{2}{S{C{\dimexpr0.5\linewidth-2\tabcolsep-\arrayrulewidth}}|}
}
\hline
test & \parbox{\linewidth}{\centering\lipsum[11]} \\
\hline
\end{tabular}
\end{document}