Varias columnas con diferentes anchos: diseño complejo

Varias columnas con diferentes anchos: diseño complejo

Tengo problemas para componer un diseño más complejo que consta de varias columnas con diferentes anchos y texto girado verticalmente.

Imagen de diseño ingrese la descripción de la imagen aquí

Probé varios paquetes como \multicol \minipage \tabularpero ninguno parecía adecuado para la solución.

La pregunta

¿Es realmente factible este tipo de diseño en LaTex? En caso afirmativo, ¿debería utilizar el enfoque?

Respuesta1

Sí, se puede hacer. Con suficiente esfuerzo, se puede crear prácticamente cualquier resultado en LaTeX. No soy tabularun experto, pero he incluido un intento a continuación, como ejemplo. Como ya se señaló, esta es una pregunta amplia y una MWE sería muy útil para demostrar con precisión qué se desea lograr y bajo qué especificaciones.

\documentclass{article}
\usepackage[margin=2cm]{geometry} % prevent overfull hbox from wide table
\usepackage{graphicx} % for \rotatebox
\usepackage{colortbl} % for \cellcolor

\begin{document}

\begin{tabular}{|p{3cm}p{3cm}p{1cm}p{2cm}p{1cm}p{0.3cm}p{0.3cm}p{0.3cm}p{0.3cm}|}
\hline\multicolumn{9}{|l|}{}\\
\multicolumn{2}{|l}{\LARGE Longer longer heading line 1} & & \cellcolor[gray]{0.8}{} & & \multicolumn{4}{r|}{123-456-7}\\
\multicolumn{2}{|l}{\LARGE Longer longer heading line 2} & & \multicolumn{1}{c}{\cellcolor[gray]{0.8}{QR}} & & & & &\\[0.5cm]
28.2.2024 & Some venue & & & & & & &\\
20:00 & 100 USD & & & & & & &\\[1cm]
\multicolumn{5}{|l}{Basic ticket} & & & &\\[0.5cm]
\multicolumn{5}{|l}{Seat 24} & & & &\\
\multicolumn{5}{|l}{\tiny very tiny longer sentence. very tiny longer sentence.} & \rotatebox{90}{28.2.2024} & \rotatebox{90}{20:00} & \rotatebox{90}{Basic ticket} & \rotatebox{90}{Seat 24}\\[0.5cm]
\hline
\end{tabular}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Solicitaría tikzesto. Es posible completarlo usando solo minipages o \parboxes perotikz agrega un poco más de control sobre el posicionamiento y la alineación.

Si desea ajustar el espacio entre líneas de texto, utilice setspace. Luego, agregue una de las configuraciones opcionales: [doublespacing], [onehaldspacing], inserte una macro de cambio, sa \onehalfspacingo \doublespacing. Si necesita un ajuste fino, utilícelo \setstretch{<factor>}con 1.0el espaciado estándar. O simplemente agregue \vspace{}para obtener un espacio vertical adicional por única vez.

No sé si hay alguna dimensión de ese billete. Por lo tanto, el siguiente ejemplo utiliza algunos valores arbitrarios para el ancho y el alto.

\documentclass[margin=1cm]{standalone}
\usepackage[doublespacing]{setspace}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{positioning}

\newlength\ticketheight
\setlength\ticketheight{6cm}


\begin{document}
\begin{tikzpicture}[
        node distance = 1cm,
        every node/.style = {
            inner sep=0pt,
            outer sep=0pt,
        },
    ]
    \node (A) {%
        \parbox[t][\ticketheight][s]{7cm}{
            {\LARGE\setstretch{1}%
                Longer longer heading line 1
         
                Longer longer heading line 2
            \par}

            \vspace{\fill}%
            \begin{tabular}{@{}p{4cm} l@{}}
                28.2.2024 & Some venue \\
                20:00     & 100 USD
            \end{tabular}
         
            \vspace{\fill}%
            Basic ticket
         
            Seat 24
         
            \vspace{\fill}%
            {\tiny\setstretch{1}%
               Much much longer sentence. Much much longer sentence.
               
               Description at the bottom.
            \par}}
    };
    \node [right=of A] (B) {
        \parbox[t][\ticketheight]{3cm}{%
            \includegraphics[width=\linewidth]{example-image}}
    };
    \node [right=of B] (C) {
        \parbox[t][\ticketheight][s]{2cm}{
            {\centering
                123-456-7
            \par}

            \vspace{\fill}%
            \raggedleft\onehalfspacing\small
            \rotatebox{90}{%
                \begin{tabular}[b]{@{}l@{}}
                    28.2.2024 \\
                    20:00 \\
                    Basic ticket \\
                    Seat 24
                \end{tabular}}}
    };
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada