Tengo problemas para componer un diseño más complejo que consta de varias columnas con diferentes anchos y texto girado verticalmente.
Probé varios paquetes como \multicol \minipage \tabular
pero 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 tabular
un 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}
Respuesta2
Solicitaría tikz
esto. Es posible completarlo usando solo minipage
s o \parbox
es 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 \onehalfspacing
o \doublespacing
. Si necesita un ajuste fino, utilícelo \setstretch{<factor>}
con 1.0
el 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}