根据 X 定义新的列类型

根据 X 定义新的列类型

当我的表格中有少量段落单元格时,这些单元格不会垂直居中。为了解决这个问题,我有以下最小文档

\documentclass{article}
\usepackage[left=0.5cm,right=0.5cm]{geometry}
\usepackage{lipsum}
\usepackage{tabularx}
\newcommand{\mX}[1]{\parbox[c]{\hsize}{#1}}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{|c|X|c|X|}\hline
Test 1&
\mX{\lipsum[1]}
&Test 2&\mX{\lipsum[1-2]}
\\ \hline
\end{tabularx}
\end{document}

我想知道是否可以这样做,我可以定义一个新列,使得mX以下文档将产生与顶部文档完全相同的输出

\documentclass{article}
\usepackage[left=0.5cm,right=0.5cm]{geometry}
\usepackage{lipsum}
\usepackage{tabularx}
\newcolumntype{mX}{...}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{|c|mX|c|mX|}\hline
Test 1&
\lipsum[1]
&Test 2&\lipsum[1-2]
\\ \hline
\end{tabularx}
\end{document}

也就是说,我不想使用附加命令\mX,甚至不想使用诸如\mX或 之类的附加命令\multicolumn

答案1

您可以在本地重新定义X列类型。我借此机会向您的表添加了一些填充:

\documentclass{article}
\usepackage[hmargin=0.5cm]{geometry}
\usepackage{lipsum}
\usepackage{tabularx}

\begin{document}
\noindent
{\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
\setlength\extrarowheight{4pt}
\begin{tabularx}{\textwidth}{|c|X|c|X|}\hline
Test 1&
\lipsum[1]
&Test 2&\lipsum[1-2]
\\ \hline
\end{tabularx}}
\end{document} 

在此处输入图片描述

相关内容