下面的代码实现了我想要的功能,除了V
像p
选项一样的行为,但我想要的是m
选项。
\documentclass[12pt]{memoir}
\usepackage{varwidth}
\begin{document}
\begin{tabular}{lV{2in}}\hline
Cat & Animal\newline Cute\newline Very furry\newline Spotted\\
\end{tabular}
\end{document}
如果我使用,m
我必须手动找出第二列中最长项目的长度,但是“Cat”这个词却像我想要的那样垂直居中。
\documentclass[12pt]{memoir}
\usepackage{varwidth}
\begin{document}
\begin{tabular}{lm{2in}}\hline
Cat & Animal\newline Cute\newline Very furry\newline Spotted\\
\end{tabular}
\end{document}
它们看起来是这样的:
我只找到了V
通过互联网搜索;该varwidth
手册的内容令人惊讶地稀少。
我如何获得一个结合了 和 的 的表选项array
?m
(varwidth
如果这很重要,V
我实际上正在使用memoir
的实现。array
答案1
环境{NiceTabular}
( nicematrix
2021-10-18 ≥ 6.3) 支持V
列varwidth
带有可选参数,在方括号之间m
,p
或b
表示垂直位置。因此,您直接获得了预期的输出。
\documentclass[12pt]{memoir}
\usepackage{varwidth}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{lV[m]{2in}}\hline
Cat & Animal\newline Cute\newline Very furry\newline Spotted\\
\end{NiceTabular}
\end{document}
评论:该字母V
还支持键r
,l
并c
用于水平对齐。
答案2
我不知道这varwidth
定义了V
列类型。现在我知道了!;-)
。
它的定义是
\newcolumntype{V}[1]{%
>{\begin{varwidth}[t]{#1}\narrowragged\let\\\tabularnewline}%
l%
<{\@finalstrut\@arstrutbox\end{varwidth}}}
所以你应该得到你想要的
\documentclass[12pt]{memoir}
\usepackage{varwidth}
\makeatletter
\newcolumntype{M}[1]{%
>{\begin{varwidth}{#1}\narrowragged\let\\\tabularnewline\strut}%
l%
<{\@finalstrut\@arstrutbox\end{varwidth}}}
\makeatother
\begin{document}
\begin{tabular}{lM{2in}}\hline
Cat & Animal\newline Cute\newline Very furry\newline Spotted\\
\end{tabular}
\end{document}
请注意,memoir
加载array
(实际上它有这样的代码);对于其他类,需要添加
\usepackage{array}
答案3
我不确定我是否完全理解了您的问题,但是这个答案是否给出了您想要的输出?如果是这样,我想问题就是语法是否适合您。
\documentclass[12pt]{memoir}
\usepackage{stackengine}
\setstackEOL{\newline}
\setstackgap{L}{13pt}
\begin{document}
\begin{tabular}{ll}\hline
Cat & \Centerstack[l]{Animal\newline Cute\newline Very furry\newline Spotted}\\
\end{tabular}
\end{document}