kuroky さん、こんにちは。ZRです。
解説記事、大変興味をもって読ませて頂きました。 LaTeX(p-、up-、Xe-、Lua- を問わず)のもつ能力を一般の LaTeX ユーザが解る形で解説するのはとても大事なことだと感じています。
読んでいて気になった点を挙げておきます。
- (「TeX ソースファイルの骨格」小節)
\usepackage[utf8]{inputenc}% または \usepackage[utf8x]{inputenc}
utf8 と utf8x の間には互換性は全くないようです。utf8x の
\DeclareUnicodeCharacter{<code>}{<text>}
の構文は一見 utf8 のそれと似ているのですが、code は 10 進での指定です。 - (その少し後)
韓国語の組版においては,ハングル-ASCII文字間に,pTeX における漢字仮名-ASCII文字間の
\xkanjiskip
のような小さな空白を空けることはしません.韓国語でも空きを入れるようですよ。
参照→Re: ptex を使ったハングル組版 - (verb(atim) 中での問題点)
私も bxutf8 入力エンコーディング(UTF-8 直接入力を\UTF
に渡すことができます)の開発の際に同じ問題に遭遇しました。で、私は TeX コードをガリガリ書いて強行突破しております。;-)
参照→Safe caret 機能
〈^
〉をアクティブにしておいて^^ab
形式を自力で解析を試み、成功したら変換結果に置き換え、失敗したら通常文字(catcode 12)の〈^
〉に置き換える、という処理をしています。ただ、これでも解決できないケースがあるんですね(→Re: utf82texの変換;OldSlav 自身が UTF-8 の解析を行う部分があるため)。なお、同じページに CJK 言語を混在させた例を幾つか扱っています。
kuroky さんの解説文書にある例を bxutf8 + pxbabel で実現する例を掲載します。
% このファイルの文字コードは UTF=8; platex -kanji=utf8 で組版 \documentclass[papersize]{jsarticle} \usepackage[bxutf8]{inputenc} \usepackage[expert,multi]{otf} \usepackage[english]{babel} \usepackage[main=japanese]{pxbabel} \usepackage{palatino} \pagestyle{empty} \begin{document} \fbox{\vbox{\hsize=21zw {\TeX}はスタンフォード大学のクヌース教授によって開発された組版システムであり、 組版の美しさと強力なマクロ機能を特徴としている。\par \bigskip \begin{otherlanguage*}{korean}\noautoxspacing {\TeX}은 스탠포드 大學의 크누스 敎授에 의해 開發된 組版 시스템으로, 組版의 美와 强力한 매크로 機能이 特徵이다.\par \end{otherlanguage*} }} \end{document}