幅の異なる複数の列 - 複雑なレイアウト

幅の異なる複数の列 - 複雑なレイアウト

幅の異なる複数の列と垂直に回転したテキストで構成される、より複雑なレイアウトの組版に問題があります。

レイアウトイメージ ここに画像の説明を入力してください

など複数のパッケージを試してみましたが\multicol \minipage \tabular、どれも解決策に適しているようには思えませんでした。

質問

このタイプのレイアウトは実際に LaTex で実行できますか? 実行できる場合、どのようなアプローチを使用すればよいですか?

答え1

はい、可能です。十分な努力をすれば、事実上どんな出力でも LaTeX で作成できます。私はtabular専門家ではありませんが、例として以下にその試みを記載しました。すでに述べたように、これは幅広い質問であり、MWE は、何を達成したいのか、どのような仕様なのかを正確に示すのに非常に役立ちます。

\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}

ここに画像の説明を入力してください

答え2

私はこれに応募します。sまたはestikzのみを使用して完了することは可能ですが、配置と配置をもう少し制御できるようになります。minipage\parboxtikz

テキストの行間の間隔を調整する場合は、 を使用しますsetspace。次に、オプションの設定のいずれかを追加します: [doublespacing][onehaldspacing]、スイッチマクロ、 sa\onehalfspacingまたはを挿入します\doublespacing。微調整が必​​要な場合は、 を標準の間隔にして\setstretch{<factor>}を使用します。または、 を単に追加して、1 回限りの追加の垂直間隔を設定します。1.0\vspace{}

そのチケットに寸法があるかどうかはわかりません。そのため、以下の例では幅と高さに任意の値を使用しています。

\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}

ここに画像の説明を入力してください

関連情報