• 検索結果がありません。

lltjext

ドキュメント内 LuaTeX-jaパッケージ (ページ 55-58)

pLaTEXでは縦組用の拡張として plextパッケージが用意されていたが,それをLuaTEX-ja用に書き

なおしたものが本追加パッケージlltjextである.

従来のplextパッケージとの違いは,

組方向オプション<y>(横組)<t>(縦組),<z>の他に<d>dtou方向),<u>utod方向)を 追加した.<z> <u> の違いは,<z>が(plextパッケージと同様に)周囲の組方向が縦組のと きにしか意味を持たないのに対し,<u>にはそのような制限がないことである.

• plextパッケージでは,表組(tabular環境,align環境等)やminipage環境,\parbox命令 において,垂直位置指定[t],[b]の挙動が非読み込み時と微妙に変わることがあった.

lltjext パッケージでは,垂直位置指定がLaTEX 2𝜀と同様の挙動(以下に示す)になるように修正

した.

– [t] オプション指定時は,ボックスのベースラインが中身の1行目のベースライン(1行目の 上に罫線などが来た時は,ボックスの上端)に一致するように配置する.

– [b]オプション指定時は,ボックスのベースラインが中身の最終行のベースライン(中身の最 後が罫線などの時は,ボックスの下端)に一致するように配置する.

– それ以外のときは,ボックスの中央が「数式の軸」に一致するように配置する.

連数字用命令\rensujiにおける位置合わせオプション[l],[c],[r]の挙動を若干変更した.

念の為,本lltjextパッケージで追加・変更している命令の一覧を載せておく.

tabular,array,minipage環境 これらの環境は,

\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}

\begin{array}<dir>[pos]{table spec} ... \end{array}

\begin{minipage}<dir>[pos]{width} ... \end{minipage}

のように,組方向オプション<dir>が拡張されている.既に述べたように,組方向オプションに 指定できる値は以下の5つであり,それ以外を指定した時や無指定時は周囲の組方向と同じ組方 向になる.

y 横組(\yoko) t 縦組(\tate)

z 周囲が縦組の時はutod方向,それ以外はそのまま d dtou方向

u utod方向

\parbox<⟨dir⟩>[⟨pos⟩]{⟨width⟩}{⟨contents⟩}

\parbox命令も同様に,組方向の指定ができるように拡張されている.

\pbox<⟨dir⟩>[⟨width⟩][⟨pos⟩]{⟨contents⟩}

組方向 ⟨dir⟩ ⟨contents⟩ の中身を LRモードで組む命令である.⟨width⟩ が正の値であるとき は,ボックス全体の幅がその値となる.その際,中身は ⟨pos⟩ の値に従い,左寄せ (l),右揃え (r),中央揃え(それ以外)される.

picture環境

図表作成に用いるpicture環境も,

と組方向が指定できるように拡張されている.𝑥 成分の増加方向は字送り方向,𝑦 成分の増 加方向は行送り方向の反対方向となる.plext パッケージと同様に内部ではベースライン補正

(yalbaselineshiftパラメータなど)の影響を受けないように,\put, \line, \vector, \dashbox,

\oval,\circleもベースライン補正を受けないように再定義されている.

\rensuji[⟨pos⟩]{⟨contents⟩},\rensujiskip

\Kanji{⟨counter name⟩}

\kasen{⟨contents⟩},\bou{⟨contents⟩},\boutenchar

参照番号

第 III

実装

12 パラメータの保持

12.1 LuaTEX-ja で用いられるレジスタと whatsit ノード

以下は LuaTEX-ja で用いられる寸法レジスタ (dimension),属性レジスタ (attribute) のリストで

ある.

\jQ (dimension) \jQは写植で用いられた1Q= 0.25mm(「級」とも書かれる)に等しい.したがっ

て,この寸法レジスタの値を変更してはならない.

\jH (dimension) 同じく写植で用いられていた単位として「歯」があり,これも 0.25mmと等しい.

この\jH\jQと同じ寸法レジスタを指す.

\ltj@zw (dimension) 現在の和文フォントの「全角幅」を保持する一時レジスタ.\zw命令は,この レジスタを適切な値に設定した後,「このレジスタ自体を返す」.

\ltj@zh (dimension) 現在の和文フォントの「全角高さ」(通常,高さと深さの和)を保持する一時 レジスタ.\zh命令は,このレジスタを適切な値に設定した後,「このレジスタ自体を返す」.

\jfam (attribute) 数式用の和文フォントファミリの現在の番号.

\ltj@curjfnt (attribute) 現在の横組用和文フォントのフォント番号.

\ltj@curtfnt (attribute) 現在の縦組用和文フォントのフォント番号.

\ltj@charclass (attribute) JAchar の文字クラス.JAchar が格納された glyph node でのみ使わ れる.

\ltj@yablshift (attribute) スケールド・ポイント (2−16pt) を単位とした欧文フォントのベースラ インの移動量.

\ltj@ykblshift (attribute) スケールド・ポイント (2−16pt) を単位とした和文フォントのベースラ インの移動量.

\ltj@tablshift (attribute)

\ltj@tkblshift (attribute)

\ltj@autospc (attribute) そのノードでkanjiskipの自動挿入が許されるかどうか.

\ltj@autoxspc (attribute) そのノードでxkanjiskipの自動挿入が許されるかどうか.

\ltj@icflag (attribute) ノードの「種類」を区別するための属性.以下のうちのひとつが値として

割り当てられる:

italic(1) イタリック補正(\/)によるカーン,またはluaotfload によって挿入されたフォント のカーニング情報由来のカーン.これらのカーンは通常の\kernとは異なり,JAglueの挿 入処理においては透過する.

packed(2)

kinsoku(3) 禁則処理のために挿入されたペナルティ.

(from jfm− 2)–(from jfm+ 2)(4–8) JFM由来のグルー/カーン.

kanji skip(9),kanji skip jfm(10) 和文間空白kanjiskipを表すグルー.

xkanji skip(11),xkanji skip jfm(12) 和欧文間空白xkanjiskipを表すグルー.

processed(13) LuaTEX-jaの内部処理によって既に処理されたノード.

ic processed(14) イタリック補正に由来するグルーであって,既にJAglue挿入処理にかかっ たもの.

boxbdd(15) hboxか段落の最初か最後に挿入されたグルー/カーン.

ま た, 挿 入 処 理 の 結 果 で あ る リ ス ト の 最 初 の ノ ー ド で は,\ltj@icflag の 値 に pro-cessed begin flag (128) が追加される.これによって,\unhbox が連続した場合でも「ボック スの境界」が識別できるようになっている.

\ltj@kcat𝑖 (attribute) 𝑖7より小さい自然数.これら7つの属性レジスタは,どの文字ブロック

がJAcharのブロックとして扱われるかを示すビットベクトルを格納する.

\ltj@dir (attribute) directionwhatsit(後述)において組方向を示すために,あるいはdir boxの組 方向を用いる.directionwhatsitにおいては値は

dir dtou(1),dir tate(3),dir yoko(4),dir utod(11)

のいずれかであり,dir boxではこれらに次を加えた値をとる(21章参照).

dir node auto(128) 異なる組方向に配置するために自動的に作られたボックス.

dir node manual(256) \ltjsetwdによって「ボックスの本来の組方向とは異なる組方向で の寸法」を設定したときに,それを記録するためのボックス.

TEX側から見える値,つまり\the\ltj@dirの値は常に0である.

\ltjlineendcomment (counter) LuaTEX-jaJAcharで入力行が終了した場合,その直後にコメン ト文字をおくことで余計な空白が挿入されることを防いでいる.\ltjlineendcomment はそ の際のコメント文字のUnicodeにおける符号位置を指定する(詳細は13.2節を参照).

LuaTEX-jaにおける既定値は"FFFFF = 1048575であり,ユーザは内部動作を熟知していない

限りこのカウンタの値を変更してはならない.\ltjlineendcommentの値が Unicode の範囲 外(負や,"10FFFF= 1114111を超えた場合)にくることは想定されていない.

さらに,LuaTEX-jaはいくつかのuser-defined whatsit nodeを内部処理に用いる.directionwhatsit はノードリストを格納するが,それ以外のwhatsitノードの type 100であり,ノードは自然数を 格納している.user-defined whatsitを識別するためのuser idluatexbase.newuserwhatsitid により確保されており,下の見出しは単なる識別用でしかない.

inhibitglue \inhibitglueが指定されたことを示すノード.これらのノードのvalue フィールド は意味を持たない.

stack marker LuaTEX-ja のスタックシステム(次の節を参照)のためのノード.これらのノードの

valueフィールドは現在のグループネストレベルを表す.

char by cid luaotfloadのコールバックによる処理が適用されないJAcharのためのノードで,value フィールドに文字コードが格納されている.この種類のノードはそれぞれがluaotfloadのコール

replace vs 上のchar by cidと同様に,これらのノードはluaotfloadのコールバックによる処理が適 用されないALcharのためものである.

begin par 「段落の開始」を意味するノード.list環境,itemize環境などにおいて,\itemで始まる 各項目は……

direction

これらのwhatsitノードはJAglueの挿入処理の間に取り除かれる.

ドキュメント内 LuaTeX-jaパッケージ (ページ 55-58)

関連したドキュメント