マクロツイーター

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

LuaTeX の検索結果:

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

…は XeTeX や LuaTeX にも当てはまる。標準の article クラス等を用いて何のパッケージも読み込まない場合、確かに UTF-8 で Unicode 「入力」はできる(これは LaTeX に依存しない)のだが、フォントは 8 ビット(実質は 7 ビット)の Computer Modern のままだから、8 ビット LaTeX と同じ方法でしか「出力」ができない。「ちゃんと XeTeX や LuaTeX に対応した LaTeX」になるためには fontspec を…

大きな定数を定義する話

…CDEFXeTeX/LuaTeX ではどうなるか。これらのエンジンでは、符号空間は Unicode の定義通りの 0〜"10FFFF なので、\chardef で定義できるのはこの範囲である。Unicode の対応の \mathchardef(XeTeX では \XeTeXmathchardef、LuaTeX では \Umathchardef)は数式クラスとファミリと符号位置を別に指定する方式になっているので、定数の定義には不適である。((実際には、\Umathchardef…

展開限定文脈でエラーを出す

LuaTeX の \directlua は展開可能である。だから、TeX のコードでは「展開限定」の文脈では不可能なことであっても、Lua コードでは可能な場合がある。典型的な例がレジスタへの代入である。 \newcount\xx@count \xx@count=3 \edef\xx@test{\the\xx@count/% \edef の中は展開限定 \directlua{ tex.count["xx@count"] = 5 }% Lua 中で \xx@count=5 を実…

スパマーに読まれない〈@〉を書く(BXmirageat パッケージ)

TeX

…at パッケージは,LuaTeX 文書中のメールアドレスに spam 対策を施すためのパッケージです.ほう。確か最近の PDF 仕様にはこれを直接(フォント情報を介さずに)行う機能があったはず(PDF 仕様書検索中)……あった→「Replacement Text」。これを使えば他のエンジンでも実現できるはず、というか既に誰か作ってないかな(ファイル検索中((TeX Live の .sty ファイルの中で「ActualText」が含まれているのを探しました。)))……あった→「…

LuaTeX で本気で日本語したい件について

…作者)を中心として、LuaTeX で pTeX と同様の機能を実現するためのプロジェクトが立ち上がった。 LuaTeX-ja 「LuaTeX で日本語する」今までに試みられている実装と異なり、LaTeX を前提にせずに、TeX レベルで pTeX との互換性の高い処理を目指す。ただし、pTeX の完全なエミュレートはほぼ無理なのでそれは目的にはしない。今はまだ始まったばかりで TeX レベルでのインタフェースも確定していない段階だが、雰囲気としては、「pTeX 並みの品質の組…

般若心経 LuaTeX

「LuaLaTeX で fontspec する件」が無事に動作したので、集いの発表でもネタに使った「般若心経」を組版してみる。ソースはこんな感じである。なお、強制改行や改段落を多用して行分割や分綴の問題を避けていることに注意されたい。 \documentclass[a4paper]{article} \usepackage[scale=0.86]{geometry} \pagestyle{empty} \setlength{\parindent}{0pt} % フォント定義 …

LuaLaTeX で fontspec する件について

…するには、予め mkluatexfontdb というコマンドを実行して使用可能フォントのデータベースを作成する必要がある。(これは LuaTeX 側で用意された Lua スクリプトである。何でも自前で行うのが LuaTeX 流 ;-) )というわけで TeX Live 2010 で早速実行してみた。 C>mkluatexfontdbluaotfload | Updating the font names database: luaotfload | Font names da…

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

TeX

…)である。ところで、LuaTeX は pdfTeX とともに Aleph の機能を取り込んでいる。とすると、LuaTeX が完成した際には Aleph も廃止になると考える人がいるかも知れない。しかし恐らくはそうならないと思われる。元々、LuaTeX では Omega/Aleph の機能の一部が省かれていたが、0,63 版の更新で、非常に重要な機能である ΩTP(Ω Translation Process)が廃止になった。現在知られている Omega/Aleph 用のパッケー…

LuaLaTeX で Unicode する件について

…LaTeX の現状については、ほぼ全て、以下の文書に纏められている。 A guide to LuaLaTeX CTAN:info/luatex/lualatex-doc/lualatex-doc.pdf (TeX Live 2010 では「texdoc lualatex-doc」でこの文書が開かれる。)「全て」を含む関係上、TeXnical な記述も多くあるが、きちんと「一般ユーザ向け」の節が用意されていて、そこの記述は「普通の LaTeX ユーザ」なら十分に理解可能である。

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.."02X"):format(str:byte(i))) end } \by…

\pdfstrcmp のお話 (3/3)

…strcmp 等の LuaTeX で削除された pdfTeX の機能を LuaLaTeX で使うためのパッケージ((LaTeX 以外のフォーマットでも \input で読み込めば使用できる。))が pdftexcmds パッケージ(Heiko Oberdiek 氏制作)である。これを読み込むと \pdf@strcmp という名前で \pdfstrcmp の機能が提供される。 \documentclass[a4paper]{article} \usepackage{pdftex…

\pdfstrcmp のお話 (2/3)

…ンジン(XeTeX/LuaTeX)の場合はに予想される結果は「各文字の Unicode の符号値により比較される」であろう。ところが、実際の XeTeX はそうならない。 % 文字コードは UTF-8; 文書の一部 \strcmp{$}{𡈽} %〈$〉= U+FF04;〈𡈽〉= U+2123Dこれの出力は「1」(U+FF04 の方が U+2123D より大)となる。この理由は XeTeX の「内部文字コード」が UTF-16 であるから((Jonathan Kew が著した文…

\pdfstrcmp プリミティブのお話 (1/3)

…注意を要する。では LuaTeX ではどうなっているか。LuaTeX は pdfTeX の後継であるので、\pdfstrcmp という名前で存在する……のではなく、実は LuaTeX にはこのプリミティブは存在しない。LuaTeX では pdfTeX 拡張機能のうち「Lua コード呼出を用いれば容易に実現できる」ものを意図的に省いていて、\pdfstrcmp もそれに該当するのである((他には、\pdfmdfivesum(MD5 ハッシュ値を計算する)、\pdfmatch(正…

LaTeX3 と expl3 パッケージ

…ケージ(XeTeX/LuaTeX で拡張されたフォント選択機能を LaTeX で使用するためのパッケージ)がある。どうも、XeTeX 等の「未来の TeX エンジン」上の開発者はこういう「未来の仕様の採用」に積極的であるようで、確か polyglossia パッケージ(Babel の XeTeX 版)にも expl3 採用の話があったことを記憶している。LaTeX3 が e-TeX 拡張をを必須とすることは「集い」の発表の中でも触れたが、当然の帰結として、expl3 も e-…

紙面サイズの指定 (2/2)

TeX

…ntclaas[a5paper]{jarticle} % jarticle のレイアウトのままで、用紙サイズがDVIに記録される \usepackage[dvipdfm,pass]{geometry}dvipdfmx を使う場合はドライバ指定 dvipdfm(x なし)を含める。XeTeX や pdfTeX(LuaTeX)ではドライバ指定は不要(自動判定される)。 ※ ん? bxbase パッケージの \recordpapersize 命令? なるほど、それもありますね :)

紙面サイズの指定 (1/2)

…eX(pdfTeX/LuaTeX の PDF モード)、XeTeX を取り上げる。紙面の大きさを指定する方法は次のようなものがある。 papersize special。(例:\special{papersize=10cm,12cm})[pdfTeX 以外] pdf:pagesize special。(例:\special{pdf:pagesize width 10cm height 12cm})[dvipdfmx、XeTeX] landscape special。(\spe…

LuaTeX で日本語する件について

取り組んでいる方を見つけたので紹介する。 jafontspec パッケージ —LuaLaTeX でとりあえず日本語組版— 同ページの「参考にさせていただいたもの」以下に、これまでの「LuaTeXで日本語」関連のサイトが挙げられている。[2011-06-02 追記] 「LuaTeX で日本語する件(あるいは Unicode する件)」についての現状の解説を奥底に掲載した。