latex 表のカラム幅指定(longtable)とセル内改行の調整

投稿者: | 2023-12-30

カラム幅指定の方法

図1はマクロ\linestackを使わない場合、図2は同じ箇所をマクロ\linestackを使った場合にどうなるか、図3は\longtableを使った場合のページの切れ目の例。

図1 マクロ \linestack を使わない例 指定したカラム幅で自動的に改行してくれるが行間が間延びし、他のカラムは上側に表示される

図2 マクロ \linestack を使った例 改行位置に「\\」を挿入しないといけないが、行間がほぼ適正になり、さらに他のカラムは行の中央に表示される。

図3 \longtableを使った場合のページ切れ目の表示例

\usepackage{tabularx}  % 表用&カラムサイズ指定
%% カラムサイズの指定用 %%
% https://haruka0000.hatenablog.com/entry/2019/02/04/203637 参照
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\usepackage{longtable} % longtableを使う際に必要
% セル内改行の行間を短くする。ただし、横幅を自動的に改行しないので「\\」を入れる必要あり。
% いろいろ試したがこの方法が改行間隔がしっくりする
% 次のマクロは https://penzant.hatenadiary.com/entry/2016/09/27/000000 参考
\newcommand{\linestack}[1]{\def\arraystretch{0.8}\begin{tabular}[c]{@{}l@{}} #1 \end{tabular}}

\begin{longtable}{|R{3.0cm}|L{3.0cm}|L{11cm}|}
\hline
\khebac{וַיִּקְצֹ֣ף} & \khtr{wayyiqṣōp̄} & \khimi{And-he-got-angry} \\ \hline
\khebac{סָרִיסָ֑יו} & \khtr{sārîsāyw} & \linestack{\khimi{courtiers of him} Lambdinのような表記すると \khtr{sārîsâw} と \\ なる。こちらの方がSyllableの原則(子音+母音か子音+母\\ 音+子音)に合致していると思われる。} \\ \hline


 

カテゴリー: TeX