マクロツイーター

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

2011-01-01から1年間の記事一覧

updmap はなぜ動くのか (2)

(前回の続き) 設定ファイルとマップファイルの関係 updmap の動作原理を見る前に、各ソフトウェアについて、マップファイルがどのように読み込まれているかを調べる。ここでは例として dvipdfmx を用いる。 dvipdfmx が和文フォントの設定に「cid-x.map」…

updmap はなぜ動くのか (1)

BXattiritta パッケージについて、「普通に updmap を使えばよい」と書いた。恐らくは、これだけではほとんどの人は何をすればよいか解らないだろうし、設定手順を知っている人でも、そもそも updmap が何をするものなのかを理解している人はそう多くないだ…

例の(マルベリでない)フォントの話 (2)

(前回の続き) この字形定義らしきものが何もない「ソース」だけだと何のことか解らないと思うので、もう少し詳しく説明しておく。 「コンクリートなフォントとか」で述べた通り、Computer Modern は METAFONT を用いた文字通り「メタなフォント」として設…

例の(マルベリでない)フォントの話 (1)

「pLaTeX でマルベリする件」で、「丸ゴシックのフォントにあう欧文フォントが欲しい」という話をした後、次のような欧文フォントを紹介した。(和文は「マルベリ」です。) このフォントの「ソースファイル」を掲載する。 [attr-r-ot1.mf] % Attritta Regul…

LaTeX に新しいフォントを持ち込む話

前の記事であげた文書「欧文フォントのインストール」は TeX レベルにおけるフォントの取扱を専ら扱っている。実際に LaTeX 上で新しいフォントを使いたいという人にとっては、LaTeX レベルでの設定――すなわち、新しいフォントを LaTeX のフォント命令で扱え…

「欧文フォントのインストール」が素晴らしい件について

TeX+dvioutのフォントが表示されるからくりを実験しながら調べてみました。PDFにしたら60ページになりました。 感動した! こういう「TeXシステムでのフォントの扱い」の詳細は語られることが少ないのであるが、この文書を見ると、その理由が判ると思う。要…

TeX での末尾再帰 (6)

プログラミング言語において、関数(あるいはメソッド)に与える引数の数は(静的型付け言語の場合は型も)通常は関数ごとに固定されていてその関数の呼出において変わることはない。しかし例外的に、引数の個数(や型)が呼出毎に変わりうるような関数があ…

画期的なソートアルゴリズム: TeXsort

TeX

一昨日の記事で出題した問題のうち、一番難しいと思うのは最後のリストのソートである。ソート(整列)は実際の LaTeX パッケージの開発においても必要性のある処理だと思われる。*1しかし、バブルソート等の非常に単純なアルゴリズムでも、実行・展開の制御…

TeX での末尾再帰 (5)

これまで、「再帰」を中心として TeX における実行制御について色々と述べている。実行制御というのはプログラミング言語の知識の中で基礎を成すものであるが、TeX 言語においては、その使われ方の特殊性ゆえに、相当な TeX のコーディングの経験がある人で…

TeX での末尾再帰(4)

(前回の続き) ではどう修正すればよいだろうか。「参照渡し」になるのが悪いということで、「値渡し」にする、つまり変数(レジスタ)ではなく「その値を表すトークン列」を再帰呼出の引数に入れるという方法が考えられる。この場合、「値」は整数値だから…

TeX の末尾再帰(3)

「TeX で再帰する件」の続き。再帰は関数型プログラミングで常用される技術である。従って、Scheme、Haskell 等の関数型プログラミング言語を習得しているなら、その知識は TeX でのプログラミングでも役に立つことは確かである。ただ、TeX は「関数がない言…

TeX のループ構文

「TeX は if 以外の実行制御を全てマクロ展開で行う」という前置きをおいて、再帰による繰り返し処理の話をしてきた。ところが、実は、TeX にも繰り返し処理用の「構文」らしきものがある。それは \loop...\if...\repeat というもので、丁度 C 言語(やその…

TeX 以外(例えば Postscript)でナベアツする件について

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 での末尾再帰(2)

前回において、「TeX マクロの再帰呼出が末尾再帰になる場合」の展開の様子について考察した。ここから、TeX での「末尾再帰」の定義を導くことができる―すなわち、TeX マクロの置換テキスト(展開した内容)の処理(プリミティブの実行や他のマクロの展開)…

TeX での末尾再帰 (1)

末尾再帰というのは、文字通り「末尾で再帰呼出を行う」ことである。もう少しちゃんと言うと、関数の中で、最後に実行(評価)されるのが当該の関数自身の呼出(適用)であり、かつその呼出(適用)の戻り値(評価値)が元の関数実行の戻り値(評価値)にな…

TeX は軽量プログラミング言語(LL)か?

という話が(会社で)持ち上がったことがある(いや、本当に)。 LL のイベントで TeX がネタになったことがあることは知っているが、TeX が LL であるという話は聞いたことがない。ちょっと考えてみる。 Wikipedia によると: LLという単語の推進者は、 事…

日本で TeX できる人の数→(?)

TeX 言語に関して日頃思っている最大の疑問。それは…… 「日本に TeX 言語が使える人はどれ位いるのか?」 これである。まるで想像がつかない。*1 もちろん、ここで「TeX 言語が使える」の定義が問題になるが、ここでは「プログラマ発見器」として有名な「Fiz…

TeX について質問する方法を教えてください。の話

TeX

昨日の続きのようなもの。 「TeX 言語について質問してはいけない」ということは全くない。ただ、Java 開発者の掲示板で「Java のプログラムを書きたいので教えてください!」という「質問」がありえないのと同様のことは TeX に関しても成り立つのは当然だ…

「設定」と「プログラム開発」との違い

例えば、「enumerate 環境のマーカーを i)、ii)、…の形式にしたい」という場合、これは標準の LaTeX の機能で実現できるので、次のような「設定」をプレアンブルに書けばよい。\renewcommand{\theenumi}{\roman{enumi}} \renewcommand{\labelenumi}{\theenum…

pLaTeX でマルベリする件について

フリーフォント版の「モトヤLマルベリ3等幅」を pLaTeX で使うという話。 といっても、このフォント自体はごく普通の TrueType フォントなので、一般的な「pTeX の和文フォントの設定を変更する」方法と全く変わらない。dvipdfmx だけ対応すればよいのであれ…

ルビはじめました(7) ― 段落末尾での挙動

TeX

これまで段落冒頭での進入の挙動について思案していたが、よく考えると、段落末尾での挙動について全く考えていなかったことに気がついた。なので今考えている。 段落冒頭であることを判断するのは容易であり(出力を行う前に垂直モードであるかを判定する)…

ルビはじめました(PXrubrica パッケージ)(6)

TeX

(3) で示した例において、段落冒頭での前進入(<-)が働いていなかった。これは故意にそうしていたためで、その理由は、(段落途中の)行頭と同じで、「版面の外にはみ出るのを防止する」ためである。しかし、確かに、段落下げの直後であれば進入してもはみ…

ルビはじめました(PXrubrica パッケージ)(5)

TeX

更新した。 github:zr-tex8r/PXrubrica 「Downloads」リンクからアーカイブを取得できる。 今回の更新では次のオプションが追加されている。 e/E オプション=親文字列均等割り有効/無効: グループルビ(g)の時に、E オプションで親文字列の均等割りを抑…

dvipdfmx で pict2e する件について

TeX

(TeX Q & A 56090 より) ちなみにpict2eの最新版はdvipdfmxに対応しているようです。 2011/04/05 の改訂(v0.2y)で dvipdfmx に「正式に」対応していた。今まで気づかなかった…。 今まで dvipdfmx で pict2e を使おうとすると、dvipdfm ドライバ(x なし…

肩付き指定で長いルビを付す場合

TeX

縦組でルビを肩付きにしている場合、「休憩中」「視聴中」のルビはどうなるか。 『要件』に従うと、理想的なのは付属書 F の方式に従った (1) であろう。JIS X 4051 だとグループルビ扱いになって (2) の様になる。pxrubrica では「付属書 F の方式」はサポ…

ルビはじめました(PXrubrica パッケージ)(4)

TeX

ルビ用にフォントを切り替えられるようにした。\rubyfontsetup{<命令> で、ルビを出力する部分に対して(フォントサイズ設定の後に)<命令> が実行される。次の例は、ルビを常に明朝体で出力するもので、ゴシック体の見出しにおいてフォントの違いが判る。つ…

ルビはじめました(PXrubrica パッケージ) (3)

TeX

藤田眞作氏の『入門・縦横文書術』の 10〜11 章に掲載している出力例を出してみた。 (10 章) (11 章) むむむ……、段落初めの < 設定が効いてないな…。 最後の 2 つで空きが本来の量から外れているのは字間調整が働いているため。 ソースは以下の通り。\do…

ルビはじめました(PXrubrica パッケージ)(2)

TeX

前回の続き。 『日本語組版処理の要件』の 3.3 節の残りの部分の例を再現する。 ルビ文字を隣接する地の文の領域に進入させる場合、文字種(平仮名、片仮名、漢字、約物、等)によって進入の可否を変える必要があるが、その判断を自動で行うのは難しい(不確…

ルビはじめました(PXrubrica パッケージ)(1)

TeX

日本語組版的なルビを出力するパッケージを作ってみた。 github:zr-tex8r/PXrubrica 「Downloads」リンクからアーカイブを取得できる。 『日本語組版処理の要件(日本語版)』に示されているルビ出力例を再現したものを挙げる。 (縦組の例) (横組の例) …

ドイツ語用の新しい分綴パターン

ドイツ語用の分綴パターンについては、従来のものの欠点に対する改善を行った(試験的な)新しいパターン(新・旧正書法の各々に対するもの)が作られていて、dehyph-exptl というパッケージ名で配布されている。数年前から W32TeX/TeX Live の欧文 TeX の…