&size(24){''作表''};
 表のカラムに斜め線を入れたりするなどの拡張機能についての説明です。

#contents
#br

*作表 [#i813f4e6]
 表を作成するには,
   tabular環境,array環境
 を使用します。
**array環境 [#uc38767e]
 カラムに数式が登場する場合は,array環境が便利でしょう。
 ただし,分数など高さが標準でないものが現れると上下の間隔が窮屈になります。
#ref(array01.png)


*行高の指定 [#k756de8a]
**\arraystretch [#hdeb37ae]
 表の行間を拡げるのに,LaTeX には \arraystretch が用意されています。
#ref(array02.png)
**支柱 [#ee9b820b]
 上の \arraystretch による方法では,
   上余白は空いたが(空きすぎ?)
   下余白は少ない
 と,アンバランスです。
 これが気になるというなら,\vrule (or \rule) で支柱を立てます。
#ref(vrule01.png)
-ここまでは,emath と無関係の話題でした。
**\bsityuu [#bsityuu]
 \vrule で支柱を立てるのは細かい指定ができてよいのですが,
 高さ・深さの分量を決めるのがやっかいです。
 emath では,分数が登場することは多いので,
 分数専用の支柱 \bsityuu を用意しています。
#ref(bsityuu01.png)
-\bsityuu は,分数「2分の1」の高さ・深さにそれぞれ 4pt, 3pt を付加した支柱で~
    emath.sty~
で定義されています。
-上の例では,表の2行目だけに支柱を入れていますが,~
すべての行に均一に支柱を入れるには~
   array の引数に支柱~
を配置するのが簡潔です。ただし,この手法は array.sty を前提にします。~
emath では,emathT.sty をロードしておきます。
#ref(bsityuu02.png)
#ref(bsityuu02p.tex,center,上のソースリスト)
*列幅の指定 [#h2faed64]
 tabular(array)環境では,列幅は当該列に収納される要素に従って自動的に伸縮します。
 それをあえて,指定した幅にするには,emathT.sty において
   l,c,r に代えて L{..},C{..},R{..}
 なる列指定子を用います。{..}の中に列幅を単位付きの数値で指定します。
#ref(LCR01.png)
#ref(LCR01p.tex,center,上のソースリスト)
-指定した列幅を超える要素を与えた場合は,左右のセルを侵略します。
#ref(LCR02.png)
-指定した列幅で折り返させるには,\parbox でくるみます。その際,列幅は\columnwd に保存されています。
#ref(LCR03.png)
-天地が窮屈になりますから,[[\EMvphantom*>EMvphantom]] で支柱を立てます。
#ref(LCR04.png)

*縦・横のサイズ指定 [#cellsize]
**正方形のセル [#m0f16749]
 セルを正方形にして,そのサイズを指定するには,tabular ( or array)に
   'cellsize=..'
 オプションをつけます。
 ただし,横幅を指定した値としたい列には,欄指定子として l/c/r に代えて
   L{-}, C{-}, R{-}
 を用います。
#ref(cellsize01.png)
#ref(cellsize01p.tex,center,上のソースリスト)
-このオプションは,perl との連携機能を必要とします。
-C{4em}とした場合,セル幅は指定した 4em の両側に \tabcolsep (array環境の場合は \arraycolsep) が付加されます。~
一方,cellsize=4em, C{-} とした場合は,セル幅は 4em となります。
**長方形のセル [#jef49c57]
 セルを長方形とするには,cellsize=.. の右辺値に
   横幅,縦幅
 をコンマ区切で並べます。
#ref(cellsize02.png)
-cellsize=.. の右辺値に , が含まれますから,右辺値全体を {...} で括っておかねばなりません。
**横幅のみ指定 [#i83785ec]
 セルの縦幅は指定せず,横幅のみを指定するには,縦幅指定を * とします。
#ref(cellsize05.png)
**例外の列 [#xaf603af]
 cellsize=.. による指定が有効な列は,欄指定子に
   L{-}, C{-}, R{-}
 のいずれかを用いた列で,それ以外の列は cellsize=.. の影響を受けません。
#ref(cellsize03.png)
**例外の行 [#o6dee82c]
 cellsize=.. を用いた表では,すべての行の縦幅が指定した幅になります。
 一部の行で,この指定を外すには
   'usecellstrut'
 オプションを付け,指定した縦幅にしたい行には,どこかの列に
   \cellstrut
 を配置します。
#ref(cellsize04.png)
**zahyou環境の併置 [#y78f0336]
 縦横の幅を一定に設定することにより,表全体に zahyou環境を併置することが出来ます。
 ただし,この機能は \emTsya コマンドの<...>オプションに,
   hyouzahyou環境
 を配置することにより実現しています。
#ref(hyouzahyou01.png)
-上の例では,1行1列(一番左上)のセルに \emTsya コマンドを置き,その <...> オプション内に hyouzahyou環境を配置しています。
-hyouzahyou環境の原点は,当該セルの左下隅(上図で黒丸を付けた点)
-横軸(x軸)の単位長はセルの横幅,縦軸(y軸)の単位長はセルの縦幅です。
-セルのサイズを均一化した効果により,罫線の交点の座標は整数で表され,
上の例では,表の右下隅の座標は (3,-2) となります。
-詳しくは[[\emTsya のページ>emTsya#hyouzahyou]]を参照願います。

*カラムに斜線 [#y137646d]
表のカラムに斜め線を引くには,\emTsyaコマンドを用います。~
詳しくは[[\emTsya のページ>emTsya]]を参照願います。
*表の罫線 [#n63966c6]
**罫線の太さ [#kc871bf1]
 罫線の太さを指定するパラメータは \arrayrulewidth で,デフォルトは 0.4pt です。
 これに別の値を代入すれば,罫線の太さを変えることができます。
#ref(rulewidth01.png)
-emathT.sty は,array.sty をロードしています。~
array.sty なし,すなわち素の LaTeX では,状況が異なります。
#ref(rulewidth02.png)
**外枠だけを太く [#n5745b4a]
 \arrayrulewidth の値を変えた場合,表の罫線全部の太さが一律に変わります。
 外枠だけ,など一部の罫線を太くするには
   横罫線:\hline, \cline に代えて \hlineb, \clineb
   縦罫線:列指定子を | に代えて I (アルファベット,大文字のアイ)
 を用います。
#ref(rulewidth11.png)
#ref(rulewidth11p.tex,center,上のソースリスト)
-太罫線の太さは,\arrayrulewidthb の値で決まります。~
デフォルトは \arrayrulewidthb=1pt となっています。
#ref(rulewidth12.png) 
**二重罫線 [#hdc6485c]
 一部の罫線を二重とするには
   横罫線:\hline\hline
   縦罫線:||
 とするのが LaTeX の仕様です。
#ref(doublerule01.png)
-ところが,横二重罫線の間では縦罫線が切れてしまいます。~
縦罫線が横二重罫線を突き抜けるようにするためには~
  hhline.sty で定義されている \hhline~
を用います。~
emath では,emathT.sty から hhline.sty が強制ロードされています。
#ref(doublerule02.png)
**破線 [#md568043]
罫線の一部を破線とするには,arydshln.sty を用います。~
ただし,arydshln.sty は hhline.sty とは相性が悪いので,~
emath では,~
  \usepackage[arydshln]{emathT}~
として用います。~
単独に~
  \usepackage{arydshln}~
  \usepackage{emathT}~
とすると,縦罫線と横罫線が離れるなどの不都合が生じます。
***\usepackage[arydshln]{emathT} [#b3e79ae6]
arydshln.sty は hhline.sty とは相性が悪いので,
emath では,~
  \usepackage[arydshln]{emathT}~
とした場合~
  arydshln.sty はロードするが~
  hhline.sty はロードしない~
ようにしています。
#ref(arydshln01.png)
#ref(arydshln01p.tex,center,上のソースリスト)
-emath パッケージでは,arydshln.sty のバージョンについて~
   Package: arydshln 2004/08/31 v1.71~
を想定しています。これより古いバージョンでは,~
  エラーが出たり,縦罫線が横罫線から離れたり~
といった不都合が出る場合があります。
***\usepackage[hhdshln]{emathT} [#b7523427]
罫線を二重にするのに hhline.sty を併用するときは,~
arydshln.sty に加えて~
  hhdshln.sty~
を用います。emath では~
  \usepackage[hhdshln]{emathT}
とします。
#ref(hhdshln01.png)
#ref(hhdshln01p.tex,center,上のソースリスト)
-hhdshln.sty は,[[作者(中島 浩 氏)のホームページ>http://www.para.media.kyoto-u.ac.jp]]にあります。
**丸枠 [#gd52a2f6]
外罫線の四隅を丸くするには,~
  外罫線をつけない tabular(array) を EMpsfbox or EMpIIefbox~
に食わせます。そのさい,hvsep=0pt オプションを付加します。
#ref(oval01.png)
#ref(oval01p.tex,center,上のソースリスト)
*表内でナンバリング [#q570317b]
表内で,~
  1,2,3,.....~
などのナンバリングを自動的に行うには,~
  [[\itemT コマンド>itemT]]~
を用います。
*横に長い表 [#p57121ec]
 tabular, array 環境は改行されません。
 横に長い表を作ると,ページの右にはみ出してしまいます。
 これを折り返させるため,emathパッケージでは
   orikaesitabular環境
 を用意しています。
*ページをまたぐ表 [#o8812182]
 tabular, array 環境はページをまたぐことが出来ません。
 ページをまたぐ表を作るためのスタイルファイルに
   longtable.sty
   supertab.sty
 がありますが,これらは当 emathWiki の守備範囲外とします。
*csv ファイルからの読み込み [#ufb1f61f]
 csv形式のファイルを読み込んで,それを表に仕立てるには,EMcsvtable.sty で定義されている
    \inputcsvtbl コマンド
 を用います。
CENTER:[[\inputcsvtbl のページ>inputcsvtbl]]

*色 [#colortbl]
 表に色をつける機能は,emath では用意していません。
 colortbl.sty を用いるのが一般的でしょう。
 その方法については,他をご覧ください。

 ここでは,簡単なものを書いておきます。
 この項は,一部を除いて
   emath とは無関係
 ですが,時折質問がありますので脱線です。
**罫線に色 [#arrayrulecolor]
 罫線に色をつけるには,colortbl.sty に用意されている \arrayrulecolor コマンドを用います。
#ref(arrayrulecolor01.png)
#ref(arrayrulecolor01p.tex,center,上のソースリスト)
***横罫線 [#o6e13558]
 一部の横罫線のみに色をつけるには,当該 \hline or \cline の直前に
   \arrayrulecolor コマンド
 を置きます。但し,次の行の直前に
   \arrayrulecolor コマンド
 を再発行して,もとの色を復元しておく必要があります。
#ref(arrayrulecolor02.png)
#ref(arrayrulecolor02p.tex,center,上のソースリスト)
***縦罫線 [#fd12c3c6]
 一部の縦罫線のみに色をつけるには
   \newcolumntype コマンド
 を利用するのが簡潔です。
#ref(arrayrulecolor11.png)
#ref(arrayrulecolor11p.tex,center,上のソースリスト)

**背景色 [#v8114d32]
 表全体に色をつけるには,\colorbox コマンドを用いれば済みます。
#ref(bgcolor01.png)
-表の外枠より外側に色がはみ出しているのはけしからん,というなら~
  \fboxsep~
を 0 にしておけばよいでしょう。
#ref(bgcolor02.png)
#ref(bgcolor02p.tex,center,上のソースリスト)
-上の例では,colortbl.sty は用いていません。~
color.sty のみで済みますが,array.sty を読み込んでおくか否かで罫線の接続状態が変わります。~
(色をつけるかどうかとは無関係の話ですが,色を使うと違いが目立つかもしれません。
***行 [#tdb3b20a]
 特定の行だけに色をつけるには colotbl.sty で定義されている
   \rowcolor
 を用います。
#ref(rowcolor01.png)
-\rowcolor は,色をつけたい行の先頭に配置します。~
その影響は当該行に限定されます。
***列 [#h470904d]
 特定の列だけに色をつけるには colortbl.sty で定義されている
   \columncolor
 を用いますが,このコマンドは tabular or array環境の「列の配置指定」引数内でのみ使用可能です。
#ref(columncolor01.png)
***カラム [#xcd8f771]
 特定のカラムのみ色をつけるには
     \multicolumn
 コマンドの引数内に \columncolor コマンドを配置します。
#ref(columncolor02.png)
-ちと面倒ですから,マクロを作って隠蔽化しよう,という話が~
  LaTeX グラフィックスコンパニオン~
にあります。
#ref(panel01.png)
***   カラム (\emTsya) [#cd913dd1]
 emathT.sty で定義されている \emTsya を用いることも出来ます。
#ref(emTsya01.png)
-\panel に倣って \EMpanel
#ref(emTsya02.png)
*関連事項 [#b774089d]
+[[増減表]]
+[[orikaesitabular環境]]
-[[増減表]]
-[[orikaesitabular環境]]
-[[\emTsya>emTsya]]
RIGHT:&counter;

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS