2011-08-01から1ヶ月間の記事一覧
これまで、「再帰」を中心として TeX における実行制御について色々と述べている。実行制御というのはプログラミング言語の知識の中で基礎を成すものであるが、TeX 言語においては、その使われ方の特殊性ゆえに、相当な TeX のコーディングの経験がある人で…
(前回の続き) ではどう修正すればよいだろうか。「参照渡し」になるのが悪いということで、「値渡し」にする、つまり変数(レジスタ)ではなく「その値を表すトークン列」を再帰呼出の引数に入れるという方法が考えられる。この場合、「値」は整数値だから…
「TeX で再帰する件」の続き。再帰は関数型プログラミングで常用される技術である。従って、Scheme、Haskell 等の関数型プログラミング言語を習得しているなら、その知識は TeX でのプログラミングでも役に立つことは確かである。ただ、TeX は「関数がない言…
「TeX は if 以外の実行制御を全てマクロ展開で行う」という前置きをおいて、再帰による繰り返し処理の話をしてきた。ところが、実は、TeX にも繰り返し処理用の「構文」らしきものがある。それは \loop...\if...\repeat というもので、丁度 C 言語(やその…
munepi さんのブログの記事「\NabeAzz を作ってみた」より。 つぎは、Postscript で NabeAzz を(おぃ ふむ。%!PS-Adobe-3.0 /norm-font /Palatino-Roman findfont 10 scalefont def /funny-font /ZapfChancery-MediumItalic findfont 20 scalefont def /lea…
前回において、「TeX マクロの再帰呼出が末尾再帰になる場合」の展開の様子について考察した。ここから、TeX での「末尾再帰」の定義を導くことができる―すなわち、TeX マクロの置換テキスト(展開した内容)の処理(プリミティブの実行や他のマクロの展開)…
末尾再帰というのは、文字通り「末尾で再帰呼出を行う」ことである。もう少しちゃんと言うと、関数の中で、最後に実行(評価)されるのが当該の関数自身の呼出(適用)であり、かつその呼出(適用)の戻り値(評価値)が元の関数実行の戻り値(評価値)にな…
という話が(会社で)持ち上がったことがある(いや、本当に)。 LL のイベントで TeX がネタになったことがあることは知っているが、TeX が LL であるという話は聞いたことがない。ちょっと考えてみる。 Wikipedia によると: LLという単語の推進者は、 事…
TeX 言語に関して日頃思っている最大の疑問。それは…… 「日本に TeX 言語が使える人はどれ位いるのか?」 これである。まるで想像がつかない。*1 もちろん、ここで「TeX 言語が使える」の定義が問題になるが、ここでは「プログラマ発見器」として有名な「Fiz…
昨日の続きのようなもの。 「TeX 言語について質問してはいけない」ということは全くない。ただ、Java 開発者の掲示板で「Java のプログラムを書きたいので教えてください!」という「質問」がありえないのと同様のことは TeX に関しても成り立つのは当然だ…
例えば、「enumerate 環境のマーカーを i)、ii)、…の形式にしたい」という場合、これは標準の LaTeX の機能で実現できるので、次のような「設定」をプレアンブルに書けばよい。\renewcommand{\theenumi}{\roman{enumi}} \renewcommand{\labelenumi}{\theenum…
フリーフォント版の「モトヤLマルベリ3等幅」を pLaTeX で使うという話。 といっても、このフォント自体はごく普通の TrueType フォントなので、一般的な「pTeX の和文フォントの設定を変更する」方法と全く変わらない。dvipdfmx だけ対応すればよいのであれ…
これまで段落冒頭での進入の挙動について思案していたが、よく考えると、段落末尾での挙動について全く考えていなかったことに気がついた。なので今考えている。 段落冒頭であることを判断するのは容易であり(出力を行う前に垂直モードであるかを判定する)…
(3) で示した例において、段落冒頭での前進入(<-)が働いていなかった。これは故意にそうしていたためで、その理由は、(段落途中の)行頭と同じで、「版面の外にはみ出るのを防止する」ためである。しかし、確かに、段落下げの直後であれば進入してもはみ…
更新した。 github:zr-tex8r/PXrubrica 「Downloads」リンクからアーカイブを取得できる。 今回の更新では次のオプションが追加されている。 e/E オプション=親文字列均等割り有効/無効: グループルビ(g)の時に、E オプションで親文字列の均等割りを抑…
(TeX Q & A 56090 より) ちなみにpict2eの最新版はdvipdfmxに対応しているようです。 2011/04/05 の改訂(v0.2y)で dvipdfmx に「正式に」対応していた。今まで気づかなかった…。 今まで dvipdfmx で pict2e を使おうとすると、dvipdfm ドライバ(x なし…