前回の続き。今回はpdfTeXについて。
pdfTeX関連の注意事項
※一般の注意事項については初回の記事を参照。
- 整数・寸法・グルー値の情報を返すプリミティブは、他のエンジンでは「読取専用のパラメタ」として提供される(例えば
\lastkern)ことが多いが、pdfTeXでは「その値を表す\the-文字列に展開する展開可能プリミティブ」であることが多い。 - pdfTeXのマニュアルでは
\pdfincludecharsが展開可能プリミティブとして挙げられているが、実際には展開不能であるようだ。恐らくこれは単純な記述ミス……?
pdfTeXのやつ
pdfTeXの追加のif-トークン ☆:
\ifincsname\ifpdfabsdim‹整数比較›\ifpdfabsnum‹寸法比較›\ifpdfprimitive‹トークン›
\expanded{‹トークン列›}★:そのトークン列の完全展開の結果。- つまり“展開の加速”(一回展開で完全展開を引き起こす)ができる。
- 「pdfTeX拡張プリミティブ」という扱いなのであるが、事情があって、一番先にLuaTeXで実装された。pdfTeXで実装されたのはずっと後になってからである(参考)。
\leftmarginkern‹整数:ボックス番号›: ボックスの左側マージンカーンの幅(寸法)。\pdfcolorstackinit[page] [direct]{‹文字列:PDF命令列›}◇: 色スタックを新規作成した上で、その色スタック番号(整数)に展開される。\pdfcreationdate:処理開始日時をPDF日時形式で現した文字列。- 「PDF日時形式」は
D:20060102150405+07'00'のような形式。
- 「PDF日時形式」は
\pdfescapehex{‹文字列›}:その文字列の16進ダンプの文字列。- 「16進ダンプ」は各文字の符号値の16進表記(0埋め、大文字)を並べたもの。
\pdfescapename{‹文字列›}:その文字列に対して「PDF名前」用のエスケープを適用した結果の文字列。\pdfescapestring{‹文字列›}:その文字列に対して「PDF文字列」用のエスケープを適用した結果の文字列。- PDF文字列を現す外側の丸括弧
()は付かない。
- PDF文字列を現す外側の丸括弧
\pdffiledump[offset‹整数:開始位置›] [length‹整数:長さ›]{‹文字列:ファイル名›}:そのファイルの指定の位置の内容(バイト列)の16進ダンプの文字列。\pdffilemoddate{‹文字列:ファイル名›}:そのファイルの更新日時をPDF日時形式で現した文字列。\pdffilesize{‹文字列:ファイル名›}:そのファイルのサイズ(整数)。\pdffontname‹フォント›:そのフォントを一意に指定する番号(整数)。- PDF中で
F‹番号›という名前がそのフォントに対応する。
- PDF中で
\pdffontobjnum‹フォント›:そのフォントに対応するPDFのFontオブジェクトの番号(整数)。\pdffontsize‹フォント›:そのフォントのサイズ(寸法)。\pdfinsertht‹整数:insert番号›:そのinsertの現状での高さ(寸法)。\pdflastmatch‹整数›:最後に実行した正規表現検索(\pdfmatch)の指定番号のマッチの情報で、「‹位置›->‹文字列›」という形式の文字列。- 位置は0起点。指定番号のマッチが無効の時は「
-1->」となる。 - 一般の正規表現検索の慣習に従い、番号0は全体のマッチを表す。もし最後の検索が失敗だった場合は0も含めて全てのマッチが無効になる。
- 位置は0起点。指定番号のマッチが無効の時は「
\pdfmatch[icase] [subcount‹整数:グループ数上限›]{‹文字列:パターン›}{‹文字列:検索対象›}◇:正規表現検索を行った上で、結果を表す整数に展開される。\pdfmdfivesum[file]{‹文字列›}:その文字列のMD5ハッシュ値の16進ダンプの文字列。fileオプション付きの場合は、‹文字列›の名前のファイルのハッシュ値になる。
\pdfpageref‹整数:ページ番号›:そのページ番号に対するPDFのPageオブジェクトの番号(整数)。\pdfstrcmp{‹文字列1›}{‹文字列2›}:2つの文字列を比較した結果を表す整数。\pdftexbanner:エンジンのバナー文字列。- 「バナー文字列」とは起動時に端末に出力される「
This is pdfTeX, …」のような文字列。
- 「バナー文字列」とは起動時に端末に出力される「
\pdftexrevision:エンジンのリビジョン番号。- なお
\pdftexversionは読取専用整数パラメタである。 - 例えばバージョン番号が「1.40.21」の場合、
\pdftexrevisionは21に展開される(ドットは付かない)。\pdftexversionは140になる。
- なお
\pdfunescapehex{‹文字列:16進ダンプ›}:その16進ダンプが表す文字列。- 16進数字の英字は大文字でも小文字でもよい。16進数字以外の文字は無視される。
\pdfuniformdeviate‹整数:上限›:0以上‹上限›未満の一葉乱数(整数)。\pdfxformname‹整数›:その番号のFormオブジェクトを一意に指定するTeX内で使用される番号(整数)。- PDF中で
Fm‹番号›という名前が当該のFormオブジェクトに対応する。
- PDF中で
\pdfximagebbox‹整数:Image番号›‹整数:位置番号›:その番号のImageオブジェクトのバウンディングボックスの、位置番号に対応する座標値(寸法)。- 位置番号:1=左下隅x、2=左下隅y、3=右上隅x、4=右上隅y。
rightmarginkern‹整数:ボックス番号›: ボックスの右側マージンカーンの幅(寸法)。
そして最後に特殊なもの。
\pdfprimitiveは「直後の制御綴を、それが現在保持している値とは無関係に、同名のpdfTeXのプリミティブを保持するものと見なす」という、やや特殊な働きを持つ。\pdfprimitive\制御綴…が展開可能であるかは、「\制御綴と同名のプリミティブ」が展開可能であるかに依存する。