
Ich habe Probleme beim Setzen komplexerer Layouts, die aus mehreren Spalten mit unterschiedlicher Breite und vertikal gedrehtem Text bestehen.
Ich habe mehrere Pakete ausprobiert, \multicol \minipage \tabular
aber keines davon schien für die Lösung geeignet.
Die Frage
Ist diese Art des Layouts in LaTex tatsächlich möglich? Wenn ja, welchen Ansatz sollte ich verwenden?
Antwort1
Ja, das ist möglich. Mit genügend Aufwand kann praktisch jede Ausgabe in LaTeX erstellt werden. Ich bin kein tabular
Experte, habe aber unten einen Versuch als Beispiel aufgeführt. Wie bereits erwähnt, handelt es sich um eine weit gefasste Frage, und ein MWE wäre sehr hilfreich, um genau zu demonstrieren, was Sie erreichen möchten und unter welchen Spezifikationen.
\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}
Antwort2
Ich würde mich dafür bewerben . Es ist möglich, es nur mit s oder es tikz
abzuschließen, bietet aber etwas mehr Kontrolle über Positionierung und Ausrichtung.minipage
\parbox
tikz
Wenn Sie den Abstand zwischen Textzeilen anpassen möchten, verwenden Sie setspace
. Fügen Sie dann entweder eine der optionalen Einstellungen hinzu: [doublespacing]
, [onehaldspacing]
, fügen Sie ein Switch-Makro ein, sa \onehalfspacing
oder \doublespacing
. Wenn Sie eine Feinabstimmung benötigen, verwenden Sie \setstretch{<factor>}
mit 1.0
als Standardabstand. Oder fügen Sie einfach \vspace{}
für einen einmaligen zusätzlichen vertikalen Abstand an.
Ich weiß nicht, ob es irgendwelche Abmessungen für dieses Ticket gibt. Daher werden im folgenden Beispiel einige beliebige Werte für Breite und Höhe verwendet.
\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}