linea verticale tra due file

Sep 27 2020

Sto cercando di costruire una tabella in cui \multirowsi toccano più istanze di dimensioni diverse. E ho problemi a creare una linea verticale che corrisponda alla dimensione dei due \multirow.

Ecco un piccolo esempio:

\begin{tabular}{|c|cc|}
\hline
A & \multicolumn{1}{c|}{\multirow{2}{*}{A+B}} & \multirow{4}{*}{A+B+C+D} \\
B & & \\
\cline{1-2}
C & & \\
D & & \\
\hline
\end{tabular}

Il risultato è questo, dove la linea verticale tra i due \multirowsi estende solo verso il basso di una riga:

Ho trovato numerosi esempi di una soluzione a questo problema in cui una delle due celle che si toccano è alta solo una riga e non richiede \multirow. C'è qualcosa che posso fare qui?

Risposte

SimonDispa Sep 27 2020 at 19:00

Prova questo codice.

Ho pubblicato una spiegazione in qualche modo più lunga del necessario per il tuo caso semplice per illustrare uno strumento potente, molto utile per procedere in casi più complessi (del mondo reale).

\documentclass{article} 
\usepackage{multirow}   
\usepackage{bigstrut}   

\begin{document}

% Table generated by Excel2LaTeX from sheet 'Sheet1'
\begin{table}[htbp]
    \centering
    \caption{Add caption}
    \begin{tabular}{|c|rc|}
        \hline
        A     & \multicolumn{1}{c|}{\multirow{2}[4]{*}{A+B}} & \multirow{4}[8]{*}{A+B+C+B} \bigstrut\\
        \cline{1-1}    B     & \multicolumn{1}{c|}{} &  \bigstrut\\
        \cline{1-2}    C     &       &  \bigstrut\\
        \cline{1-1}    D     &       &  \bigstrut\\
        \hline
    \end{tabular}%
    \label{tab:addlabel}%
\end{table}%


\end{document}

Il codice è stato generato con l'eccellente add-in Excel2LaTeX https://www.ctan.org/tex-archive/support/excel2latex

Ho creato la tabella in Excel e l'ho esportata in LaTeX con una copia negli appunti e l'ho incollata in un semplice documento LaTeX con alcuni pacchetti aggiunti.

Per ripetere, assicurati di aver deselezionato l'opzione per il pacchetto dei segnalibri.

Come esercizio cerca di eliminare le righe tra "A" e "B" e tra "C" e "D", come accade nel tuo esempio, senza modificare direttamente il codice LaTeX.

Vedi la mia risposta in Mantenere il rientro e l'allineamento a sinistra coerenti

affrontare un caso più complicato utilizzando lo stesso strumento, allo stesso modo.