2列(またはそれ以上)の翻訳表内で中央揃えまたは(右の列に)「入力」することはできません

2列(またはそれ以上)の翻訳表内で中央揃えまたは(右の列に)「入力」することはできません

この記事は私の以前の投稿の続編です:表形式または並列パッケージ内に垂直線を描く(および並列を2列以上に拡張する方法)

それでも、それは不可能に思える

  • 右列の中央揃えのテキスト
  • 右の列の同じ「エントリ」内の複数のテキスト行

問題は次のコードで表現されます。

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

答え1

1 つの列で垂直方向を手動で拡張しているため、他の列でプロセスを自動化する方法はわかりません。ただし、手動介入に耐えられる場合は、を使用して\filllines{}手動で空白行を挿入することで、必要な垂直レイアウトを実現できるはずです。

セル B、D、F、および右下のセルで水平方向の中央揃えを実現するように編集しました。\centeringを有効にするには、 を\par有効にする必要があります。 これは最後の 2 つのケースでは を使用して実行できますが、セル「B」と「F」は 1 行であるため、 によって不要な空白行が生成されないように、{\centering...\par}を使用して実行する必要がありました。\hfil...\hfill\par

セル「D」を垂直方向に中央揃えする方法に関する OP のコメントに答えると、重要なのはセル「C」を単一のセルにすることですが、OP の MWE はセル「C」を 2 つの固有のセルとして構成します。

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

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

関連情報