LaTeX:用字符而不是线分隔表中的列

LaTeX:用字符而不是线分隔表中的列

实际上是否可以使用字符而不是垂直线来分隔表格的列?

具体考虑一个两列表格,其中有 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 的回答:用分隔符明确定义节点的矩阵与节点矩阵的不同行为

相关内容