Как я могу рисовать вертикальные линии между столбцами в латексе? - PullRequest
0 голосов
/ 14 октября 2019

Как я могу нарисовать вертикальные линии между столбцами 3 и 4, а также между столбцами 2 и 3? Я использовал длинную таблицу и \ multirow, и я обернул текст, чтобы стать внутри таблицы, но я не знаю, как я могу рисовать линии между столбцами? неправильный результат кода здесь: https://ibb.co/cQfVs1w

    \begin{longtable}[H] {|p{2cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|}
% table caption is above the table
\caption{xxx}
\label{tab:2}       % Give a unique label
% For LaTeX tables use
%\begin{tabular}{|p{2cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|}
\\
\hline\noalign{\smallskip}
Reference & Description & Advantages & Limitations  \\
\noalign{\smallskip}\hline\noalign{\smallskip}

xx & xx & {\multirow{3}{*}{\parbox{2.8cm} {1.xxx\\
            2.  xxxx\\
            3.  xxx \\
            4.  xxx \\
            5.  xxx\\
            6.  xxxx\\ 
            7.  xxxx\\
}}}
& {\multirow{3}{*}{\parbox{2.8cm}{ 1.   xxx\\
            2.  xxx\\
            3.  xxx\\
            4.  xxx\\
}}}\\
xx [18] & xxx  &  & \\
xx [6] & xxx  &  & \\
\\
\\
\\
\\
\noalign{\smallskip}\hline
%\end{tabular}
    \end{longtable}

1 Ответ

1 голос
/ 14 октября 2019

Ваш стол бесполезно сложен. Вы можете описать этот вид таблицы намного проще и удобочитаемее, и вам не понадобится многострочная. Использование нескольких строк полезно в очень специфических ситуациях, когда, например, у вас есть изображение или описание строки, которое должно занимать несколько строк.

Вот возможное решение.

\documentclass{article}

\usepackage{longtable}
%\usepackage{multirow}
\usepackage{booktabs}

\begin{document}
\begin{longtable}[H] {|p{2cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|}
% table caption is above the table
\caption{xxx}
\label{tab:2}       % Give a unique label
% For LaTeX tables use
%\begin{tabular}{|p{2cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|}
\\\hline            %%%% \noalign{\smallskip}
Reference & Description & Advantages & Limitations  \\
%%%%%%%% \noalign{\smallskip}\hline\noalign{\smallskip}
\hline
xx      & xx   & 1.  xxx     & 1. xxx\\
xx[18]  & xxx  & 2.  xxxx    & 2. xxx\\
xx [6]  & xxx  & 3.  xxx     & 3. xxx\\
        &      & 4.  xxx     & 4. xxx\\
        &      & 5.  xxx     &       \\
        &      & 6.  xxxx    &       \\ 
        &      & 7.  xxxx    &       \\
\hline
%\end{tabular}
\end{longtable}
\end{document}

enter image description here Я подавил \ noalign, который создает промежутки между вертикальным рядом и горизонтальными правилами. Возможно, они были предназначены для исправления неправильного расстояния в LaTeX между правилом и текстом, но я бы посоветовал вам использовать вместо этого пакет booktabs. Он исправляет этот интервал и предоставляет способы создания таблиц без вертикальных столбцов, которые намного лучше и удобочитаемее.

\begin{longtable}[H] {p{2cm}p{2.8cm}p{2.8cm}p{2.8cm}}
% table caption is above the table
\caption{xxx}
\label{tab:2}       % Give a unique label
\\\toprule
Reference & Description & Advantages & Limitations  \\
\midrule
xx      & xx   & 1.xxx       & 1. xxx\\
xx[18]  & xxx  & 2.  xxxx    & 2. xxx\\
xx [6]  & xxx  & 3.  xxx     & 3. xxx\\
        &      & 4.  xxx     & 4. xxx\\
        &      & 5.  xxx     &       \\
        &      & 6.  xxxx    &       \\ 
        &      & 7.  xxxx    &       \\
\bottomrule
\end{longtable}

enter image description here

...