实际上是否可以使用字符而不是垂直线来分隔表格的列?
具体考虑一个两列表格,其中有 col1 和 col2。只要 col1 是一行,就没有问题。当 col1 很长并且单词换行成多行(当然仍然是一行)时,就会出现问题。字符((
右括号,)
在本例中)在第一行显示时按应有的方式出现在列之间,但在后续行中则不会出现。
我需要它出现在所有显示的行上。
我怀疑正常的垂直线是以图形方式绘制的,而不是重复的字符,所以答案是否定的,长线必须手动分成多行,但如果有一种合理的方法(当然不需要重写系统)让 LaTeX 自动执行此操作,那肯定会很有用。
\documentclass{book}
\usepackage{array}
\begin{document}
\begin{tabular}{!{(}p{1cm}!{)}!{(}p{1cm}!{)}}
col1 & col2 \\
long text 1 & long text 2 \\
\end{tabular}
\end{document}
答案1
我对纯乳胶溶液有些怀疑。但使用 lualatex 你可以这样做:
%needs lualatex
\documentclass{book}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\localleftbox{%
\llap{\makebox[2\tabcolsep]{(}}%
\rlap{\hspace{1cm}\makebox[1\tabcolsep]{)}}}}p{1cm}
>{\localleftbox{%
\llap{\makebox[2\tabcolsep]{(}}%
\rlap{\hspace{1cm}\makebox[1\tabcolsep]{)}}}}p{1cm}
}
col1 & col2 \\
long text 1 & long text 2 \\
\end{tabular}
\end{document}
答案2
这是我能做的最好的事情:
\documentclass{article}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{
mynode/.style={
left delimiter=(,
right delimiter=),
text width=1cm,
text height=1ex
}
}
\begin{document}
\begin{tikzpicture}
\matrix{
\node[mynode] {col 1};&
\node[mynode] {col 2};\\
\node[mynode] {long text 1};&
\node[mynode] {long text 2};\\
};
\end{tikzpicture}
\end{document}
但有一个更好的解决方案,请参阅 Kpym 的回答:用分隔符明确定义节点的矩阵与节点矩阵的不同行为。