使用多行+短栈时单元格边界线问题

使用多行+短栈时单元格边界线问题

我正在尝试创建一个使用四个连续多行的表格(如果选择这种格式的原因很重要,我可以添加它)。我正在使用多行包以及 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}

在此处输入图片描述

相关内容