マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

表組みの段落セルの改行のアレ

アレのことだけど。

\tabularnewline のことも覚えておいてあげてください。

\documentclass[a4paper]{article}
\usepackage{array}
\begin{document}

\newcolumntype{C}{>{\centering}p{4em}}
\begin{center}\begin{tabular}{c|CCC}
\hline
A & 1 & 2 \\ (foo) & 3 \tabularnewline
B & 4 & 5 & 6 \\ %これはセル内改行
  (bar) \tabularnewline % 表の改行
C & 7 \\ (gee) & 8 & 9 \\ (whiz) \tabularnewline
\hline
\end{tabular}\end{center}

\end{document}

上の例のように、「(\centering 等を指定した)段落セル内部の改行(\\ はこれを表す)」を実際に利用する場合には、表の改行を全て \tabularnewline(これは状況に依らずにいつも表の改行を表す((なお、\tabularnewlineLaTeX 標準の命令である。(array パッケージの命令ではない。))))で行うと混乱が避けられて好都合だろう。

そもそも、LaTeX の仕様で「表の改行」と「段落内の強制改行」を両方 \\ で表そうとしたのが混乱の原因になっていると私は思う。さらにややこしいことに、もし段落セルで \centering 等の水平位置揃えを用いなかった場合はまた挙動が異なる。この場合、\\ は「表の改行」のままで、「セル内の改行」は \newline で行うのが正しい。ところが、水平位置揃えを用いた場合は、今度は \newline は正しく機能しない。ああややこしい。