我正在尝试创建一个使用四个连续多行的表格(如果选择这种格式的原因很重要,我可以添加它)。我正在使用多行包以及 shortstack 命令在每行中执行换行。表格中的文本显示正常,但单元格边界的行为就像表格是一组单行行一样。
我使用的代码如下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|c|}
\hline
\multirow{3}{*}{Name} & \multirow{3}{*}{Website} & \multirow{3}{*}{\shortstack[c]{e-mail \\ phone}} & \multirow{3}{*}{\shortstack{line 1 \\ line 2 \\ line 3}} \\
\hline
\end{tabular}
\end{document}
结果很悲哀:
由于输入简单,我有点不知所措。如果有人能告诉我为什么会发生这种情况,或者推荐一种更顺利的方法来实现我的目标,我将不胜感激。
谢谢!
答案1
从“文本按应有方式显示”我认为您正在寻找makecell
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{makecell}
\begin{document}
\begin{tabular}{|c|c|c|c|}
\hline
Name & Website &
\makecell{e-mail \\ phone} &
\makecell{line 1 \\ line 2 \\ line 3} \\
\hline
\end{tabular}
\end{document}
当然,你能对多行执行相同操作假如你确实有多行。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|c|}
\hline
\multirow{3}{*}{Name} & \multirow{3}{*}{Website} & \multirow{3}{*}{\shortstack[c]{e-mail \\ phone}} & line 1 \\
& & & line 2 \\
& & & line 3 \\
\hline
\end{tabular}
\end{document}
可能存在的问题\shortstack
将在egreg 的回答很好。
答案2
下面的例子说明了为什么\shortstack
不应该使用并提出了解决您问题的方法。
\documentclass{article}
\newcommand{\notshortstack}[2][l]{%
\begin{tabular}{@{}#1@{}}#2\end{tabular}%
}
\begin{document}
% why \shortstak should not be used
\fbox{\shortstack{line 1 \\ aaa \\ line 3}}
\fbox{\shortstack{ling 1 \\ aaa \\ line 3}}
\bigskip
\begin{tabular}{|c|c|c|c|}
\hline
Name & Website & \notshortstack[c]{e-mail \\ phone} &
\notshortstack{line 1 \\ line 2 \\ line 3} \\
\hline
\end{tabular}
\end{document}