Re: 表:multicolumn内の改行

名前: トノ
日時: 2002-08-16 08:49:45
IPアドレス: 210.131.39.*

>>10225 》 array環境において、各カラムの幅を指定しました。このカラムの中に入るテキストの 》 水平位置は左寄せがデフォルトと考えてよろしいでしょうか? ※ array 環境、tabular 環境等でのカラム指定子の l、c、r のことは既にご 存じのことと仮定してお答えしますが・・・ LaTeX 標準の p 指定子にしろ、array パッケージで提供される m、b 指定子に しろ、左寄せと言うよりは両端揃えです。カラムの幅を指定するためというより は、「カラムの中身を、通常の文章中におけると同様に行分割させるための指定 子で、行分割する際の行長を添えるのだ」と考えた方がわかりやすいのではない でしょうか。 ※ array 環境中で p/m/b を使うと、そのカラムは数式モードになりません。 》 はセンタリング、次のmulticolumnは左寄せ、という具合に、カラムごとにテキストの水 》 平位置を変えることは可能でしょうか?いろいろな本を調べてみましたが、答えはあり カラムの中身の先頭で \centering や \raggedright、\raggedleft を指定すれ ば、両端の揃え方を変更できます。array パッケージを読込んでいる場合、 > 指定子を使えば、各行で指定する手間が省けます。 ※ \centering、\raggedright、\raggedleft は、plain TeX のコマンドなので、 LaTeX では、これらに代えて center 環境、flushleft 環境、flushright 環境を使うのが本来ですが、これらの環境は前後に垂直方向のスペースを挿 入するので、表や行列の中で使うと、体裁がよくありません。 》 やはり素人がへたにカラムを何cmなどと指定して、汚いレイアウトを作るよりは、最初 》 から、きちんと計算されたTeXのレイアウト調節に頼って作表した方がよい、という教訓 》 なのでしょうか。 行分割させなければならないようなカラムについては、結局、カラム幅を指定せ ざるを得ませんね。 \documentclass[a4j,landscape]{jarticle}\relax \usepackage{array,longtable}\relax \newlength{\testA} \newlength{\testB} \begin{document} \setlength{\arrayrulewidth}{1zw} % 見た目にわかりやすいように、大きな値を設定 \setlength{\testA}{4.5cm} \addtolength{\testA}{2\tabcolsep} \addtolength{\testA}{\arrayrulewidth} % array.sty を読込んでいなければ不要 \setlength{\testB}{5.5cm} \addtolength{\testB}{4\tabcolsep} \addtolength{\testB}{2\arrayrulewidth} % array.sty を読込んでいなければ不要 \begin{longtable}{% |>{\centering}m{2cm}|% 第1カラムにセンタリングを指定 m{2.5cm}|% m{2cm}|% >{\centering}m{2cm}|% 第4カラムもセンタリング m{1.5cm}|% m{5.5cm}|% } 最初のカラムです & 2番目のカラムがここにあります & 3番目のカラムがここにあります & 4番目 & 5番目のカラムがここにあります & 6番目のカラムがここにあります\\ \hline \multicolumn{2}{|>{\centering}m{\testA}|}{% \multicolumn に \centering を併用 1番目と2番目のカラムをあわせた幅を持っています。\newline \texttt{\symbol{`\\}newline}コマンドで強制的に改行できます。 } & \multicolumn{3}{>{\raggedright}m{\testB}|}{% 右端を不揃いに Though this column fits to the columns~3--5 in the preceding row, the right edge of each line is not justified because of \texttt{\symbol{`\\}raggedright} command. } & 6番目のカラムがここにあります。 カラムの指定が「m」なので、同じ行の各カラムは、 垂直方向に中央揃えされるはず。\\ \end{longtable} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)