\emTsya
\sya
tabular(or array)環境で作られる表のセルに斜め線を引きます。
定義されているスタイルファイル †
emathT.sty
ただし,\rotatebox を使用しますから,graphicx.sty が必要です。
dvipdfmx を用いて pdf を作る場合は,graphicx.sty にロードオプション
[dvipdfmx]
をお忘れなく。
書式 †
\emTsya(#1)[#2]<#3>
\sya(#1)[#2]<#3>
- #1: key=val
- #2: 斜線の方向 (n/r/x)
- n
- セル左下と右上を結ぶ斜線(デフォルト)
- r
- セル左上と右下を結ぶ斜線
- x
- 上の両方
- o
- 斜線を引かない
- #3: セルに併設した picture環境内に記述するもの
(斜線の左右に付与する見出しなど)
#1 における有効な key は
- D
- 斜線の深さを指定します。右辺値は単位を伴う長さです(計算式も可)。
- H
- 斜線の高さを指定します。右辺値は単位を伴う長さです(計算式も可)。
- v
- 斜線の縦幅を指定します。右辺値は文字列で,その高さ・深さで斜線を引きます。
- W
- 斜線の横幅を指定します。右辺値は単位を伴う長さです(計算式も可)。
- w
- 斜線の横幅を指定します。右辺値は文字列で,その横幅で斜線を引きます。
- S
- セルに文字列を配置します。
- linethickness?
- 斜線の太さ
- iro?
- 斜線に色
基本例 †
tabular(or array)環境で作られる表のセルに斜線を引きます。
横幅指定 †
(w=...)オプション †
上の例では,斜線がセルいっぱいに広がっていません。
セルのコーナーとコーナーを結ぶ斜線を引くには,\emTsya コマンドにオプションをつけます。その一つが
(w=...)
で,右辺値は,当該列における最長セルの要素です。
(W=...)オプション †
もう一つのオプションは
(W=...)
で,右辺値は単位を伴う長さです。
この方法は,tabular (or array) の列指定子を
l/c/r ではなく,L/C/R
で幅を指定する流儀に対して有効でしょう。
- 列指定子で C(1zw) として,\emTsya(W=1zw) とするのは,二重ですね。
実は,C(1zw)などと列指定子で列幅を指定した場合,\emTsya では (W=1zw) などのオプションは不要です。
縦幅指定 †
(v=...)オプション †
表の要素に高さ・深さが大きいものが登場すると,斜線の縦幅が不足します。
下の表では,第2行に分数が登場します。従って2行目の斜線が上下の罫線と離れてしまいます。
これを修正するには,
(v=...)
オプションを付加します。
右辺値は,当該行における高さが最大であるセルの要素です。
- この例では,分数 1/2 が上下の罫線とくっついてしまいますから,
v=... の右辺には分数に対応した支柱 \bsityuu を指定するのがよいでしょう。
(H=...,D=...)オプション †
斜線の高さ・深さを単位付きの数値で指定するオプションです。
下の例では,2行ぶち抜きの斜線を引いています。
斜線を2行目に配置する場合,その
高さは,2行目の高さ,
深さは,2行目の深さ+3行目の高さ+3行目の深さ
となります。この表では,行は標準の高さ・深さですから,
高さは \ht\strutbox
深さは \dp\strutbox
で得られます。
- 高さを指定するオプション H=\ht\strutbox をつけてもよいですが,
これは標準ですから省略してあります。
- H=..,D=.. の右辺値は,計算式が許容されます。(calc.sty の仕様に基づく)
- 斜線部は2行文の高さ・深さを持ちますから,\smash をかぶせています。
表の行高均一 †
表のすべての行に均一の支柱を立てるには
\begin{tabular{|>{\bsityuu}c|c|}
などとしますが,この手法では \emTsya に高さが伝わりません。
- \emTsya に高さを伝えるには,tabular( or array) に
'gyoudaka=....'
オプションをつけます。右辺値は \bsityuu などの支柱です。
- 'gyoudaka=...' オプションを付与した場合は
行の高さ,深さ,その和
がそれぞれ
\rowheight, \rowdepth, \rowtotalheight
に保存されていますから,複数行ぶち抜きの斜線を引くのに役立ちます。
斜線の方向 †
デフォルト †
斜線の方向は,デフォルトでは
セルの左下と右上
を結びます。
逆方向 †
逆に
セルの左上と右下
を結ぶには,[r] オプションを付与します。
クロス †
両方の斜線,斜線をクロスさせるには,[x]オプションを付与します。
斜線なし †
斜線を引かないオプションが [o] です。
併設の zahyou*環境を使用するのが目的です。
セルに文字列 †
\emTsya を配置するセルは,空欄であるのがデフォルトです。
斜線の右上・左下に見出しを配置する方法については,「表見出し」の項をご覧ください。
\emTsya を配置したセルにも,文字列を出力するには \emTsya に (S=...) オプションを付加します。
- 列指定子に LCR を用いた場合は,揃えは指定通りになりますが,
lcr を用いた場合は,中央揃えになります。
- 左(右)そろえとするには,(S=...) の右辺,末尾(先頭)に \hfill を補います。
併設 zahyou*環境 †
座標軸の位置 †
\emTsya コマンドを発行したセルには,zahyou*環境が設定されています。
x軸は,当該行のベースライン
原点は,ベースライン上セル両端の中点です。
この設定は,列指定子が L, C, R のいずれであっても同じです。
このzahyou*環境における描画コマンドを,\emTsya の <#3> オプションに記述します。
一例として,\drawXYaxis で座標軸を描画してみましょう。
セルの網掛け †
表のセルに網掛けをするには,colortbl.sty を用いるのが標準でしょう。
ここでは,併設zahyou環境を利用する一例として,斜線を引いたセルに網掛けをしてみます。
- 細かいことですが,当該セルの上辺と左辺が細く見えます。
tabular(array)の描画手順として,当該セル(2行3列)を描画する前の段階として
1行目と2行目の間の罫線
2列目と3列目の間の罫線
はすでに引かれています。そこに \Nuritubusi コマンドが被さりますから,
上・左罫線が痩せることとなります。それに対して,
2行目と3行目の間の罫線
3列目の右罫線
は当該セルを描画した後に引かれますから,塗りの上に罫線が引かれ
下・右罫線は痩せない
ということでセルの4辺の太さがアンバランスになるのです。
回避するには,\Nuritubusi に <border> オプションを付加します。
- 記述が込み入ってきましたが,
\emTsya, \Nuritubusi
の両コマンドに <...> オプションがついています。
中の \Nuribusi<...> の終端を \emTsya が己の <...> オプションの終端と見誤らないよう
\Nuritubusi に関する部分を {....} とグルーピングしておく必要があります。
- 塗りつぶしたセルの斜線が不要というなら,当該セルの \emTsya に [o]オプションを付加します。
表見出し †
一番左上のセルに斜線を引き
左下コーナー \LB を基準点として \Put\LB(3pt,1pt)[lb]{X}
右上コーナー \RT を基準点として \Put\RT(-3pt,-1pt)[rt]{Y}
として表見出しを出力する,というのはよく使いそうですから,コマンド
\hyoumidasi{X}{Y}
を用意しました。
- \hyoumidasi の引数は,tabular環境ではテキストモードで出力されますが,
array環境では数式モードで出力されます。
hyouzahyou環境 †
tabular (array)環境に'cellsize=..'オプションを付してセルサイズを均一にしている場合は
hyouzahyou環境
が便利です。この座標系では
原点はセル左下隅
横軸単位長はセルの横幅
縦軸単位長はセルの縦幅
となります。
hyoupszahyou環境 †
PostScript で描画する hyoupszahyou環境もあります。
カルノー図 (Karnaugh map) †
カルノー図を描画するのに,併設 hyoupszahyou環境を利用した例です。
サラスの方法 †
3次の行列式を計算するサラスの方法を図示したものです。
階差数列 †
階差数列を表現するのに,併設 hyoupszahyou環境を利用した例です。
入試問題から †
注意事項 †
- emathT.sty における定義名は \emTsya です。
他のマクロとぶつからない限り,\sya も同義で使用できます。
- dvipdfmx を用いて pdf を作る場合は,graphicx.sty にロードオプション
[dvipdfmx]
をお忘れなく。
関連事項 †