マクロツイーター

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

2011-02-01から1ヶ月間の記事一覧

きょうの 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 の状態を前提…

フォントにない文字を別のフォントで補う〜xeCJKの場合〜

以前に「フォントにない文字を別のフォントで補う」の機能を xeCJK パッケージ(または ZXjatype パッケージ)上で実現するパッケージを作ってみた。以前の記事で挙げた方法は xeCJK の処理とはかなり相性が悪いので、全く別の方法を使っている。でも、多少…

「文字間トークン自動挿入機能」の話

以前に述べた「フォントにない文字を別のフォントで補う」の処理のように、「LaTeX の命令(TeX の制御綴)を表に出さずに独自の処理を割り込ませる」目的のために XeTeX エンジンが用意しているのが「文字間トークン自動挿入機能」である。(この機能自体の…

フォントにない文字を別のフォントで補う

2011-01-26 の記事のコメントについて: たとえば,日本語の中にほんのすこし中国語が混在するような場合とか,手持ちのフォントがadobe1-4しかカバーしていない時,自動で補完すること(unicode によるフォント割付)はできないかとおもっています。「メイン…

般若心経 LuaTeX

「LuaLaTeX で fontspec する件」が無事に動作したので、集いの発表でもネタに使った「般若心経」を組版してみる。ソースはこんな感じである。なお、強制改行や改段落を多用して行分割や分綴の問題を避けていることに注意されたい。 \documentclass[a4paper]…

TeX Gyre フォントのキリル文字

TeX

以前の記事で、TeX Gyre Termes フォントでキリル文字を出力する例を載せたが、2009 年 9 月の改版で、ライセンス上の理由*1で、TeX Gyre コレクションの全てからキリル文字が削除されていたということに今になって気付いた。勿論、今ではキリル文字を含むフ…

LuaLaTeX で fontspec する件について

正確にいうとなかなか fontspec してくれない件。LuaLaTeX の前に XeLaTeX の話。奥底の解説では、XeLaTeX で「Unicode する」為に必要なパッケージを一度に読み込むには xltxtra パッケージを用いるとしていた。現在でもそれ自体は変わらないが、「本当に必…

あのエンジンもなくなった

TeX

以前に、W32TeX からついに LaTeX 2.09 が消え去ったことを述べたが、実はもう 1 つ消えたものがある。といってもこちらは大多数のユーザにとって無関係なものであるが……。昨年の年末近く(2010 年 12 月)の更新で W32TeX から Omega(Ω)のエンジン(実体…

指定のコードの和文トークンを得る方法

以前の記事で用いた「\lowercase トリック」は、「整数値をその符号値をもつ文字トークンに変換する」ための常套手段である。 {\lccode`?=〈整数n〉\lowercase{\gdef\token{?}}}単純に「符号値 n の文字を出力したい」のであれば \char〈n〉 で事足りる。し…

LuaLaTeX で Unicode する件について

奥底のページを書いた時には、まだ LuaLaTeX で「UTF-8 で入力して TrueType/OpenType の Unicode フォントで出力する」ための枠組が整っていなかった(あったのは TeX レベル、および ConTeXt 上のサポートだけ)ので、「入力は全部 ASCII、出力は 8 ビッ…

Lua に渡る「文字列」のエンコーディング

LuaTeX において、Unicode 文字列は UTF-8 にエンコードされた形で Lua に渡っている。それを確かめる実験。 {\lccode`Z="3042 \lowercase{\gdef\hiraA{Z}}} \directlua{ local str, pc = "\hiraA", string.char(37) for i = 1, str:len() do tex.write((pc.…