upTeX-1.23

upTeX-1.23

- t tk の投稿
返信数: 0
upTeXの新版1.23を今週末リリース予定です。
従来とデフォルト動作を変更する項目があるため前もってお知らせします。
以下、主な内容を3個示します。

1. U+0080以上のラテン文字のデフォルトを欧文扱いに変更
従来、U+0080以上の文字のデフォルトはすべてCJK扱い(漢字、仮名、その他記号、ハングルのうちのいずれか)としていました。
今回の版では、(非英語)欧文との親和性向上のため、デフォルトでラテン文字をなるべく欧文扱いするよう変更します。

Ref. [upTeX] Latin-1 ブロックの分割@github

例えば、下記のような例でkcatcodeの設定が不要になります。
\documentclass{ujarticle}
%\kcatcode"C0=15 %% 従来は必要だった
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
Pokémon

``?`But aren't Kafka's Schloß and Æsop's Œuvres
often naïve vis-à-vis the dæmonic phœnix's official rôle
in fluffy soufflés?''
\end{document}

実装内容としては、以下になります。
(a) "Latin-1 Supplement"ブロックの分割
kcatcodeを設定するブロックは原則的にUnicodeのBlockと同じであるものの、
"Latin-1 Supplement" (U+80..FF)については
ラテン文字(U+AA, U+BA, U+C0..D6, U+D8..F6, U+F8..FF)を
"Latin-1 Letters"として別のブロックに分離。
(b) ラテン文字のkcatcodeのデフォルト値を欧文扱いに変更
"Latin-1 Letters"と"Latin Extended-A"(U+100..17F)のkcatcodeの
デフォルト値を15(not_cjk)に変更。

今回の変更でも記号類(£,§,¶など)やスペイン語の¡,¿などについては
kcatcodeのデフォルト値は従来通り18(other_kchar)のままです。
欧文記号を含め欧文優先にしたい場合には、従来通りkcatcodeの設定が必要です。

\kcatcode`£=15
または
\kcatcode"A3=15

副作用として、
従来UTF-8で直接U+AA, U+BA, U+C0..D6, U+D8..F6, U+F8..FF, U+100..17Fの文字を記述していた場合
デフォルトでCJKの文字として印字されることがなくなる他、エラーになる場合があります。
例えばkcatcodeの設定のために次のように記述した場合エラーになります。

%% NG (À: U+C0)
\kcatcode`À=18

代わりに次のように書く必要があります。

%% OK
\kcatcode"C0=18

副作用に該当する場合は、
お手数ですが記述の変更をお願いいたします。


2. Unicode-10.0.0 対応
Unicode-10.0.0 で変体仮名が追加されたのに伴い
該当ブロック("Kana Extended-A")のkcatcodeを仮名に設定するなど
Unicode-10.0.0 対応を行いました。


3. デフォルトのフォント(VF)にBMP超えの文字を追加
upTeXの基本のフォントはuptex-fontsとしてupTeX本体とは別のパッケージとしてリリースすることになり
uptex-fonts (2018-02-11) として既にリリース済みのものです。
aminophenさんの投稿にも触れられていました。
upTeXのデフォルトフォント(upjis系)のVFは、従来BMPの範囲に制限していましたが、
今回BMP超え(UTF16ではサロゲートペア)の文字も含めるようにしました。
追加した文字は、Adobe-Japan1-6 のうちUnicodeとの対応がある文字です。