マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

e-TeX

非 e-TeX で hyperref を使うと……

hyperref が非 e-TeX では動かないという話があるらしい。やってみた。 % test.tex \documentclass[a4paper]{article} \usepackage[bookmarks=true]{hyperref} \begin{document} \section{Test} \end{document} これを W32TeX の lplatex でコンパイルすると…

レジスタを大量に確保する話

LaTeX 上で大量のレジスタを確保するパッケージを作ったとする。例えば、以下の「パッケージ」はただ単に 1000 個の整数レジスタを無駄遣いしている。[spendthrift.sty] \@tempcnta=0 \@whilenum\@tempcnta \newcount\xx@trash \advance\@tempcnta1 }これを …

整数を読み飛ばす、続き(3)

2011-04-04 の記事の続き。いよいよ e-TeX での解決法を述べる。基本的なアイデアは以下の通りである。 任意の整数の引数を読み取って空に展開されるプリミティブはないらしい。 でも寸法ならば「読み取って空に展開される」ようなマクロが作れる。 従って、…

きょうの e-TeX (6) : \middle

\middle〈デリミタ〉 :[一般命令] \left〈デリミタ1〉...\right〈デリミタ2〉 の ... の中で用いる(複数回用いることも可能)。〈デリミタ〉を両端の〈デリミタ1〉、〈デリミタ2〉と同じ高さで出力する。 e-TeX の数式組版に関する拡張はこれ一つしかな…

きょうの e-TeX (5): \fontcharwd、\fontcharht 等

今日はこの 4 つ。((「寸法パラメタ(読専)」というのは参照できるが代入できない寸法値(dimen)のパラメタ(\lastkern と同じ)。正式な用語では「内部寸法(internal dimen)」と呼ぶようであるが、敢えてこの用語を用いる。)) \fontcharwd〈フォント〉…

きょうの e-TeX (4): \iffontchar

\iffontchar〈フォント〉〈符号位置〉 :[if-トークン] 指定のフォントに指定の符号位置の文字が存在するかを判定する。 ここで、〈フォント〉は次の何れかである: \font : 現在のテキストフォントを表す。 fontdef トークン : \font〈トークン〉=... …

きょうの e-TeX (3): \unexpanded

\unexpanded{...} :[展開可能] \edef 中で用いた場合、中身の ... に展開され、しかもそれ以上展開されない。 \edef 中で「この部分だけは展開されて欲しくない」ということはよくある。この場合、\noexpand を使うと、直後のトークンの展開を抑止するこ…

きょうの e-TeX (2): \unless

\unless :[一般命令] 直後に真偽判定の(= \ifcase 以外の)if-トークンを伴い、その if-トークンの真偽判定を反転させる。 勿論、\unless 付の if-トークンは、原理的にはその後の「真の時の処理」と「偽の時の処理」を逆にしたものに等価であるはずであ…

きょうの e-TeX (1):\ifdefined、\ifcsname

なんとなく、e-TeX の拡張機能の解説をするシリーズを始めていた。例によって、いつまで続くかは不明。初回はこの 2 つ。((なお、冒頭の紹介文での説明は LaTeX と非依存の形で行うが、その後の解説文の中では一般的に LaTeX の \makeatletter の状態を前提…