私は使用していますタブラックスドキュメントの余白で列の内容を分割します (cf.文書の余白にある表のセルの改行\multicolumn
)。しかし、このような表で使用すると、その列のテキストを分割する指示は無視されます。これを強制するにはどうすればよいでしょうか?
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\newlength{\mylength}
\setlength{\mylength}{\linewidth}
\addtolength{\mylength}{-\parindent}
\hrule
\begin{tabularx}{\mylength}{lX}
Lorem ipsum dolor sit amet, consectetuer & adipiscing elit. Ut purus elit, vestibulum ut, placerat ac\\
\multicolumn{2}{l}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac}\\
\end{tabularx}
\hrule
\end{document}
Mico さんの質問に答えて:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\newlength{\mylength}
\setlength{\mylength}{\linewidth}
\addtolength{\mylength}{-\parindent}
\hrule
\begin{tabularx}{\mylength}{llX}
Lorem ipsum dolor & sit amet, consectetuer & adipiscing elit. Ut purus elit\\
\end{tabularx}
\hrule
\begin{tabularx}{\mylength}{llX}
Lorem ipsum dolor & sit amet, consectetuer & adipiscing elit. Ut purus elit\\
Lorem ipsum dolor sit & \multicolumn{2}{p{\mylength}}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit}\\
\end{tabularx}
\hrule
\end{document}
答え1
以下は、2 番目の MWE のバージョンです。tabularx
環境全体の幅は で指定されるため\mylength
、2 列目と 3 列目の合計幅にそのパラメータを使用してはならないことに注意してください。正しい幅を計算するために、2 つの追加の長さ変数 と を使用します\xlength
。\ylength
は\xlength
最初の列の幅 (+ 4\tabcolsep
) に設定され、 は\ylength
として計算されます\mylength-\xlength
。
\documentclass{article}
\usepackage{tabularx}
\hyphenation{ad-ip-is-cing} % no idea if this is correct...
\newlength\xlength
\settowidth\xlength{Lorem ipsum dolor sit}
\addtolength\xlength{4\tabcolsep}
\newlength\mylength
\setlength\mylength{\linewidth}
\addtolength\mylength{-\parindent}
\newlength\ylength
\setlength\ylength\mylength
\addtolength\ylength{-\xlength}
\begin{document}
\hrule
\begin{tabularx}{\mylength}{llX}
Lorem ipsum dolor & sit amet, consectetuer &
adipiscing elit. Ut purus elit\\
Lorem ipsum dolor sit &
\multicolumn{2}{p{\ylength}}{Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Ut purus elit}\\
\end{tabularx}
\hrule
\end{document}
補遺OP のフォローアップの質問に対する回答をいくつか示します。
\xlength
上記のコードで示されている計算は次のようになります。必要最初の列のタイプは でありl
、幅は事前に指定されていないためです。列のタイプを に変更する場合はp
、その列の幅を直接使用して、複数列の幅を計算できます。たとえば、最初の列の幅が
\xlength
(値の選択はあなた次第です...) で指定されている場合、tabularx
次のように環境を開始できます。\begin{tabularx}{\mylength}{p{\xlength}lX}
\xlength
ここで、 は純粋に最初の列の幅であり、 という項は含まれないことに注意してください4\tabcolsep
。その後、この
tabularx
環境では、2 列の幅(前の例のように、\multicolumn
型) を次のように指定できます。p
\multicolumn{2}{p{\dimexpr\mylength-\xlength-4\tabcolsep}}{<stuff>}
この項
4\tabcolsep
は、1\tabcolsep
テーブルの左端に2\tabcolsep
1列目と2列目の間の空白の量、および1\tabcolsep
テーブルの右端にあります。