Dibujar una línea vertical dentro de una tabla o dentro del paquete paralelo (y cómo expandirlo en paralelo para tener más de 2 columnas)

Dibujar una línea vertical dentro de una tabla o dentro del paquete paralelo (y cómo expandirlo en paralelo para tener más de 2 columnas)

Me gustaría agradecerles a todos por cualquier ayuda de antemano.

¿Puedo hacer la siguiente pregunta? Estoy creando un documento de traducción con 2 columnas (como puedes ver en el código).

Usé el parallelpaquete. No porque sepa algo sobre el mejor paquete para esto, sino simplemente porque encontré un código que funciona en la red. Si tiene algún consejo sobre un paquete mejor para usar o una mejor forma de codificar estas columnas, hágamelo saber. Sobre todo porque quiero tener columnas "anidadas". Ver código: (prueba de tabla). Estoy usando tabulars ahora para hacer esto. ¿Alguien conoce alguna forma mejor, por ejemplo, usando opciones en el paquete paralelo? En el futuro, si es posible, también necesitaré una tabla anidada de 3 columnas.

Acerca de esto tengo mi pregunta real, a saber: Me gustaría una línea vertical entre la columna anidada. En este momento dibujé la línea con tikzuna imagen, también solo porque esa es la única forma que conozco de obtener una línea vertical continua. Pero mi código no da el resultado correcto: la línea está dentro de un "párrafo" de paquete paralelo y, por lo tanto, el siguiente párrafo se desplaza mucho hacia abajo verticalmente. Su uso \vspace{-...cm}no es muy práctico, ya que es necesario realizar ajustes cada vez que cambia la traducción... Gracias por cualquier ayuda de optimización. Por ejemplo, intenté usar tres columnas dentro de la tabla (la del medio vacía), pero no tengo ni idea de cómo dibujar una línea vertical continua en la columna vacía del medio (segunda). Gracias por cualquier ayuda nuevamente.

Estoy usando el siguiente código:

\documentclass{article}

\usepackage{tikz} % to draw a vertical line

\usepackage[margin=0.5in]{geometry}
\usepackage{parallel}
\usepackage{framed}
\setlength{\FrameSep}{0.1cm} % to create parallel translator columns

\usepackage{calc}\setlength\textwidth{8.3in}\setlength\textheight{10.9in}\setlength\oddsidemargin{(\paperwidth-\textwidth)/2 - 1in}\setlength\topmargin{(\paperheight-\textheight-\headheight-\headsep-\footskip)/2 - 1in} % to adjust page boundaries

\newcommand\Par[2]{\begin{Parallel}[v]{10.2cm}{10.2cm}
\ParallelLText{#1}\ParallelRText{#2}\ParallelPar\end{Parallel}}\setlength{\columnseprule}{.4pt} % to create parallel translator columns

\begin{document}

\begin{framed}

\Par % new paragraph
{ % left <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> left
{ % right <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> left
{ % right <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> right

\raggedright
\rule{\textwidth}{0.4pt} % new page

\Par % new paragraph
{ % left <<<
\centering
\scalebox{0.55}[0.55]{page x} % page numbering
} % >>> left
{ % right <<<
\centering
\scalebox{0.55}[0.55]{page x} % page numbering
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> left
{ % right <<<
\raggedright
\quad \quad Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test Test test test.
} % >>> right

\raggedright
\rule{\textwidth}{0.4pt} % new page

\begin{tikzpicture}
\hspace{5cm}
\draw (1,0) -- (1,5);
\end{tikzpicture}

\Par % new paragraph
{ % left <<<
\centering
TABLE TEST \\
\line(1,0){40} \\
} % >>> left
{ % right <<<
\centering
TABLE TEST \\
\line(1,0){40} \\
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element one}}} & \scalebox{0.8}[0.8]{{\sc{Element b-one}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element two}}} & \scalebox{0.8}[0.8]{{\sc{Element b-two}}}
\end{tabular}
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element one}}} & \scalebox{0.8}[0.8]{{\sc{Element b-one}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element two}}} & \scalebox{0.8}[0.8]{{\sc{Element b-two}}}
\end{tabular}
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element three}}} & \scalebox{0.8}[0.8]{{\sc{Element b-three}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element three}}} & \scalebox{0.8}[0.8]{{\sc{Element b-three}}}
\end{tabular}
} % >>> right

\Par % new paragraph
{ % left <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element ...}}} & \scalebox{0.8}[0.8]{{\sc{Element b-...}}}
\end{tabular} \\
} % >>> left
{ % right <<<
\raggedright
\begin{tabular}{p{0.5cm}p{5cm}p{1cm}}
& \scalebox{0.8}[0.8]{{\sc{Element ...}}} & \scalebox{0.8}[0.8]{{\sc{Element b-...}}}
\end{tabular}
} % >>> right

\end{framed}

\end{document}

Respuesta1

Esta respuesta no es bonita, pero puede llevarte a donde necesitas estar. Es una solución pura tabular(y tabular*), aunque envuelvo las cosas en los entornos partabulary nextentry. El entorno partabularestablece algunos parámetros y debe delimitar toda la tabla.

nextentrySe puede llamar sucesivamente al entorno para construir su tabla. Debido a que se compone de un tabular*, una "entrada" puede (pero no es necesario) tener varias líneas; sin embargo, los saltos de página sólo pueden ocurrir entre invocaciones de nextentry. No agregue an \hlinea la última fila de a nextentry, porque el entorno lo hace automáticamente.

Muestro cómo se puede construir un tabulardentro de una celda que efectivamente la subdivida verticalmente. La desventaja es que, si la columna dividida no es la más larga de su fila, debe usar la macro \filllines{}para extender la barra vertical hasta la parte inferior de la celda que contiene general.

Otra peculiaridad: la longitud delfixes el espacio vertical que normalmente aparecería entre tabular*bloques contiguos. La definición \delfixpermite restar esa longitud, de modo que la línea superior del segundo tabular*se superponga a la línea inferior del primero. Activarlo \raggedbottomen el preámbulo debería evitar que el pegamento interfiera con esta medición.

El MWE está configurado para dos columnas. Para ampliar a 3, las longitudes \colwidthy \splitcolwidthnecesitarán redefinirse.

\documentclass{article}
\usepackage{lipsum}
\def\lipsA{%
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.}
\def\lipsB{%
Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra
metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus
eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium
quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. }
\def\lipsC{%
Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Cur-
abitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue
eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim
rutrum.}
\newlength\svparskip
\newlength\delfix
\delfix1.3pt
\newlength\colwidth
\setlength\colwidth{\dimexpr.5\textwidth-2\tabcolsep}
\newlength\splitcolwidth
\setlength\splitcolwidth{\dimexpr.25\textwidth-2\tabcolsep}
\newenvironment{partabular}
  {\par\svparskip=\parskip\relax\vspace{\delfix}}
  {\vspace{\delfix}\parskip=\svparskip\relax}
\newenvironment{nextentry}
  {\parskip-\delfix\par\noindent\begin{tabular*}{\textwidth}[t]
  {|p{\colwidth}|p{\colwidth}|}\hline}{\hline\end{tabular*}\par}
\def\filllines#1{\vspace{\dimexpr#1\ht\strutbox+#1\dp\strutbox}}
\raggedbottom
\begin{document}
\lipsum[1]
\begin{partabular}
\begin{nextentry}
a & b\\\hline
c & d\\\hline
\lipsA & \lipsB\\
\end{nextentry}
\begin{nextentry}
F & G\\\hline
  \begin{tabular}[t]{@{}p{\splitcolwidth}|p{\splitcolwidth}@{}}
  This is a test of a split column \filllines{6}& X 
  \end{tabular} 
& \lipsC\\
\end{nextentry}
\begin{nextentry}
\lipsA & \lipsC\\
\end{nextentry}
\begin{nextentry}
F & G\\\hline
\lipsB & \lipsC\\\hline
\lipsA & \lipsC\\
\end{nextentry}
\begin{nextentry}
F & G\\\hline
\lipsB & \lipsC\\
\end{nextentry}
\begin{nextentry}
\lipsA & \lipsC\\
\end{nextentry}
\end{partabular}
\end{document}

ingrese la descripción de la imagen aquí

Si no está satisfecho con la parte de la solución en la que se superponen dos líneas horizontales mediante el uso del \delfixparámetro, entonces una definición alternativa sería

\newenvironment{nextentry}[1][\relax]
  {\parskip-\delfix\par\noindent\begin{tabular*}{\textwidth}[t]
    {|p{\colwidth}|p{\colwidth}|}\ifx\relax#1\relax\else\hline\fi}
  {\hline\end{tabular*}\par}

Esto imprimirá un \hlineal principio de una tabla solo si se proporciona un argumento opcional que no esté en blanco nextentryde la manera

\begin{nextentry}[x]
a & b\\\hline
c & d\\\hline
\lipsA & \lipsB\\
\end{nextentry}

La desventaja de este enfoque alternativo es que debe agregar manualmente un argumento opcional al primer nextentrybloque en cada página de salida. En este caso, la repaginación incontrolada le haría muy infeliz.

información relacionada