Dieser Artikel ist eine Fortsetzung meines alten Beitrags:Zeichnen einer vertikalen Linie innerhalb einer Tabelle oder innerhalb des parallelen Pakets (und wie man parallel erweitert, um mehr als 2 Spalten zu haben.
Dennoch scheint es unmöglich,
- zentrierter Text in der rechten Spalte
- mehrere Textzeilen innerhalb desselben "Eintrags" in der rechten Spalte
Die Probleme werden im folgenden Codeausschnitt ausgedrückt:
\documentclass{article}
\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}}
\begin{document}
\begin{partabular}
\begin{nextentry}
\centering{\textbf{$(A)$ some text i can center}} & {\centering{\textbf{$(B)$ some text i can't center}}} \\\hline
$(C)$ some text here and then enter \\ and have some more text below \\ which is possible & $(D)$ \textbf{some text here but then enter} \\ \textbf{and have some more text below} \\ \textbf{isn't possible + the vertical lines on the right get distorted ...} \\
\end{nextentry}
\begin{nextentry}
$(E)$ & $(F)$ \\\hline
\begin{tabular}[t]{@{}p{\splitcolwidth}|p{\splitcolwidth}@{}}
$(H)_1$ \filllines{6}& $(H)_2$
\end{tabular}
& \vspace{1cm} Thanks for any help in advance! :) \\
\end{nextentry}
\end{partabular}
\end{document}
Antwort1
Da Sie die Vertikale in einer Spalte manuell erweitern, bin ich mir nicht sicher, wie ich den Vorgang in der anderen automatisieren kann. Aber wenn Sie mit manuellen Eingriffen leben können, sollten Sie in der Lage sein, das gewünschte vertikale Layout zu erreichen, indem Sie \filllines{}
manuell Leerzeilen einfügen.
BEARBEITET, um eine horizontale Zentrierung in den Zellen B, D, F und der unteren rechten Zelle zu erreichen. Damit \centering
wirksam wird, \par
muss ein wirksam werden. Dies kann in den letzten beiden Fällen mit erfolgen {\centering...\par}
, aber da die Zellen „B“ und „F“ eine einzelne Zeile sind, musste ich es mit erreichen \hfil...\hfill
, damit nicht \par
eine unerwünschte leere Zeile erzeugt wird.
Um auf den Kommentar des OP zu antworten, wie ich Zelle „D“ vertikal zentriert habe: Der Schlüssel bestand darin, Zelle „C“ zu einer einzelnen Zelle zu machen, während das MWE des OP Zelle „C“ aus zwei einzelnen Zellen zusammensetzt.
\documentclass{article}
\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}}
\begin{document}
\begin{partabular}
\begin{nextentry}
\centering{\textbf{$(A)$ some text i can center}}
& \hfil\bfseries$(B)$ some text i can't center\hfill\\ \hline
$(C)$ some text here and then enter and have some more text below which is possible\bfseries\par\bigskip
and have some more text below
isn't possible + the vertical lines on the right get distorted ...
& \filllines{2.5}{\centering$(D)$ \bfseries text here but then enter\par}
\filllines{2} \\
\end{nextentry}
\begin{nextentry}
$(E)$ & \hfil$(F)$\hfill \\\hline
\begin{tabular}[t]{@{}p{\splitcolwidth}|p{\splitcolwidth}@{}}
$(H)_1$ \filllines{6}& $(H)_2$
\end{tabular}
& \filllines{2.5} {\centering Thanks for any help in advance! :)\par} \\
\end{nextentry}
\end{partabular}
\end{document}