TeX Alchemist Online

TeX を使って化学のお仕事をしています。

令和時代の TeX Live

令和元年あけましておめでとうございます。新元号「令和」を迎えるにあたり,文字コード界やTeX界でも昨今動きが慌ただしいです。

  • 「㍾」「㍽」「㍼」「㍻」のような組文字の「令和」を U+32FF に追加した Unicode 12.1.0 のリリース

  • 文字集合規格 Adobe-Japan1-6 に「令和」組文字グリフ(横組用 CID+23058・縦組用 CID+23059)の2文字を追加した新規格 Adobe-Japan1-7 の発表
  • UniJIS-UTF16-H などの CMap ファイルの Adobe-Japn1-7 仕様への更新
  • 日本語TeX開発コミュニティによる改良版 CMap ファイル(UnjiJISup-UTF16-H など)の Adobe-Japan1-7 への追従
  • otfパッケージが新元号に対応,\ajLig{令和} の増設。
  • 新元号発表当日に和田研フォントがいち早く「令和」組文字グリフを収録。
  • Adobe による「源ノ角ゴシック」フォントも「令和」の組文字グリフを収録
  • Adobe-Identity-0 なフォントである「源ノ角ゴシック」を,TeXから使いやすい Adobe-Japan1 準拠に組み直したフォントである,TrueRoadさんによる原ノ味ゴシックフォントも,本家源ノ角ゴシックの更新に追従して「令和」の組文字グリフを収録。
  • IPAex フォントも「令和」の組文字グリフを収録
  • jclasses / ujclasses の新元号対応
  • jsclasses の新元号対応
  • babel-japanese の新元号対応
  • BXwareki パッケージの新元号対応

(他にも挙げ忘れているものがあるかも。)

そして,時を同じくして,昨日 TeX Live 2019 のリリースを迎えました。各方面の開発コミュニティの皆様のご尽力のおかげで,令和時代も初日から大変スムーズに TeX Live を満喫できるようになっています。関係者の皆様に感謝申し上げます m(__)m

【目次】

TeX で令和

このように,TeX Live 2019 であれば,令和時代を迎えるための準備が整っていますので,令和時代も新元号を扱う上で特に障害は生じないでしょう。LuaTeX-ja や upTeX であれば,令和組文字グリフ「㋿」(U+32FF,ご覧のOSのフォントに収録され次第表示されるようになるはずです)を直接入力すれば,出力フォントがそのグリフを収録していればそのまま令和組文字グリフが出力されます。

ただし,現時点(令和初日)では,この「出力フォントがそのグリフを収録していれば」という条件がネックです。現時点では,上に挙げたように

  • 和田研フォント
  • 源ノ角ゴシック
  • 原ノ味ゴシック
  • IPAex フォント

程度となっています。よって,これらのフォントの最新版を用意し,TeXからそれを参照させる準備を整えなければなりません。

upLaTeX で令和

例えば,最新版 IPAex フォントを用意し,それを upLaTeX から呼び出す方法で,令和組文字グリフを直接入出力してみましょう。最新版 IPAex フォント(Ver.004.01以降)を TeX ソースと同ディレクトリに置いて,次のソースを upLaTeX + dvipdfmx でコンパイルしてみます*1

【入力】

%#!uplatex
\documentclass[uplatex,dvipdfmx]{jsarticle}
\usepackage[noalphabet]{pxchfon} % 欧文フォントは置換対象外とする

%%% 最新版 IPAex フォントを用意してそれを指定
\setminchofont{ipaexm.ttf}  % IPAex明朝
\setgothicfont{ipaexg.ttf}  % IPAexゴシック

\def\test{%
令和「㋿」% U+32FF を直接入力
}

\和暦

\begin{document}
今日は\today です。%% 最新の jsarticle は「令和元年」表記対応

%% 令和組文字テスト
\textmc{\test}\par
\textgt{\test}
\end{document}

【出力】

f:id:doraTeX:20190501191650p:plain

pLaTeX + otf パッケージ + 原ノ味フォントで令和

それに対し,pLaTeX で令和組文字グリフを出力するのは若干厄介です。令和組文字グリフ U+32FF は pTeX エンジンの守備範囲である JIS X 0208 外の文字だからです。そこで,最新の otf パッケージが \ajLig{令和} に対応していることに注目します。ただし,これは otf パッケージの ajmacros から呼び出すためには,Adobe-Japan1 準拠のフォントでなければなりません。そこで,TrueRoadさんが源ノ角ゴシックを Adobe-Japan1 準拠に組み直してくださった原ノ味ゴシックフォントを使うことを考えます。原ノ味フォントであれば,otfパッケージ経由で pLaTeX からでも全グリフを呼び出すことができます。

1. 原ノ味フォントのダウンロード

まず,原ノ味フォント一式をダウンロードして展開します。それと同ディレクトリに LaTeX ソースを配置することにします。

2. otf パッケージのロード

LaTeX ソースのプリアンブルで

\usepackage[deluxe,jis2004]{otf}

のようにして otf パッケージをロードします。deluxe オプションを宣言することで,7書体が同時に使えるようになります。jis2004 オプションを宣言しておくと,JIS 2004 字形がデフォルト(「辻」が二点しんにょうで出るなど)になります。

3. フォントの“スロット”としての otf パッケージ

otf パッケージを deluxe オプション付きでを宣言することで,7書体が同時に使えるようになります。7書体は次のように呼び出せます。

  • \mcfamily\ltseries:明朝体・細
  • \mcfamily\mdseries:明朝体・中
  • \mcfamily\bfseries:明朝体・太
  • \gtfamily\mdseries:ゴシック体・中
  • \gtfamily\bfseries:ゴシック体・太
  • \gtfamily\ebseries:ゴシック体・極太
  • \mgfamily:丸ゴシック体

ただし,この「○○体・○」という説明は,「そのようなフォントを割り当てて使うことが想定されている」という意味であって,実際にそのようなフォントを割り当てることは必須ではありません。たとえば,「明朝体・細」想定のフォント(\mcfamily\ltseries)として,実際には行書体や教科書体など全く無関係なフォントを割り当てても一向に構いません。

つまり,上記の「○○体・○」という説明文は気にせず,7つのフォントスロットがあるので,好きな7種類のフォントを自由に割り当てられると割り切って考えてしまえばよいのです。

4. 使用フォントの選定

原ノ味フォントは,明朝体7ウェイト・ゴシック体7ウェイトの計14書体が用意されています。このうち好きな7種類を選んで,上記の7つの“スロット”に割り当てます。ここでは,

  • \mcfamily\ltseries → 原ノ味明朝-Light
  • \mcfamily\mdseries → 原ノ味明朝-Meidum
  • \mcfamily\bfseries → 原ノ味明朝-Bold
  • \gtfamily\mdseries → 原ノ味ゴシック-ExtraLight
  • \gtfamily\bfseries → 原ノ味ゴシック-Normal
  • \gtfamily\ebseries → 原ノ味ゴシック-Medium
  • \mgfamily → 原ノ味ゴシック-Heavy

と割り当てることにしましょう。割り当ては, pxchfon パッケージを使えば次のように簡単に指定できます。

% \mcfamily\ltseries
\setlightminchofont{HaranoAjiMincho-Light.otf}
% \mcfamily\mdseries
\setmediumminchofont{HaranoAjiMincho-Medium.otf}
% \mcfamily\bfseries
\setboldminchofont{HaranoAjiMincho-Bold.otf}
% \gtfamily\mdseries
\setmediumgothicfont{HaranoAjiGothic-ExtraLight.otf}
% \gtfamily\bfseries
\setboldgothicfont{HaranoAjiGothic-Normal.otf}   
% \gtfamily\ebseries
\setxboldgothicfont{HaranoAjiGothic-Medium.otf}
% \mgfamily
\setmarugothicfont{HaranoAjiGothic-Heavy.otf}

従属欧文文字の使用

Adobe-Japan1 フォントである原ノ味ゴシックを pxchfon パッケージで使用する際は,和文フォントに含まれる半角幅の従属欧文文字も使用できます。

\usepackage[relfont,usecmapforalphabet]{pxchfon}

としておいた上で,和文フォント使用中に \userelfont\selectfont と宣言することで,現在使用中の和文フォントの半角幅従属欧文文字を,欧文フォントとして利用することができます。この機能が不要な場合は [noalphabet] オプションを指定すればOKです。

5. pLaTeX でテスト

では,これで準備が整ったので,次の LaTeX ソースを pLaTeX でコンパイルしてみましょう(upLaTeX でも可)。

【入力】

%#!platex
\documentclass[autodetect-engine,dvipdfmx]{jsarticle}
\usepackage[deluxe,jis2004]{otf} % 7書体使用,JIS2004字形
\usepackage[relfont,usecmapforalphabet]{pxchfon} % \userelfont によって半角幅の従属欧文文字を使えるように

\setlightminchofont{HaranoAjiMincho-Light.otf}       % \mcfamily\ltseries
\setmediumminchofont{HaranoAjiMincho-Medium.otf}     % \mcfamily\mdseries
\setboldminchofont{HaranoAjiMincho-Bold.otf}         % \mcfamily\bfseries
\setmediumgothicfont{HaranoAjiGothic-ExtraLight.otf} % \gtfamily\mdseries
\setboldgothicfont{HaranoAjiGothic-Normal.otf}       % \gtfamily\bfseries
\setxboldgothicfont{HaranoAjiGothic-Medium.otf}      % \gtfamily\ebseries
\setmarugothicfont{HaranoAjiGothic-Heavy.otf}        % \mgfamily

\def\test{祝・令和元年!
%%%% JIS X 0208 外
\ajSnowman%% \CID経由
\UTF{2603}%% \UTF経由
%%% JIS90/2004 で字形が変わるもの
「辻葛祇樽」,
%%% 人名外字的なやつ\ajHashigoTaka\ajTsuchiYoshi\ajTatsuSaki\ajMayuHama%%%% 囲み英数字など
\ajMaru{1}\ajKakko{2}\ajRoman{3}\ajroman{4}\ajKakkoAlph{5}\ajKakkoalph{6}\ajMaruAlph{7}\ajMarualph{8}\ajKuroMaruAlph{9}%
%%%% 従属欧文
2019/REIWA01%
%%%% 元号組文字
\ajLig{明治}\ajLig{大正}\ajLig{昭和}\ajLig{平成}\ajLig{令和}%\par}

\def\testAll{%
  {\mcfamily\ltseries\userelfont\selectfont\test}%
  {\mcfamily\mdseries\userelfont\selectfont\test}%
  {\mcfamily\bfseries\userelfont\selectfont\test}%
  {\gtfamily\mdseries\userelfont\selectfont\test}%
  {\gtfamily\bfseries\userelfont\selectfont\test}%
  {\gtfamily\ebseries\userelfont\selectfont\test}%
  {\mgfamily\mdseries\userelfont\selectfont\test}%
}

\begin{document}

\testAll

\vspace{1cm}

\mbox{\tate\adjustbaseline\parbox{45zw}{\testAll}}

\end{document}

【出力】

f:id:doraTeX:20190501194012p:plain

原ノ味明朝で令和組文字グリフが欠けているのは,原ノ味明朝のもとになっている源ノ明朝フォントがまだ令和組文字グリフを収録していないためで,現時点では仕方ありません。それに対し,源ノ角ゴシックをもとにした原ノ味ゴシックでは,見事に令和組文字グリフが出力されています。また,縦組時には横組用の CID+23058 ではなく縦組用の CID+23059 が正しく呼び出されている点も完璧です。

このように,TeX Live 2019 ならば,令和時代も安心ですね!*2 存分に TeX Live で令和しましょう!

追記:令和時代の dvipdfmx + AJ1フォント

TeX Live 2019 は令和組文字グリフに対応するため,最新の Adobe-Japan1-7 版の CMap ファイル(UniJIS-UTF16-H など)を搭載しています。upLaTeX で AJ1 フォントを使うためにこれらの CMap ファイルを呼び出す場合,実フォントが令和組文字グリフ搭載の AJ1-7 対応フォント(今のところ実質「原ノ味ゴシック」くらいしかないと思います)でないと,dvipdfmx が実行中に次のような警告を出します。

[1
dvipdfmx:warning: CMap have higher supplement number.
dvipdfmx:warning: Some characters may not be displayed or printed.
]

つまり,「AJ1-7 の CMap ファイルを使っているけど実際に呼び出されているフォントは AJ1-7 未満ですよ」と警告を出しています。要するに,「もしこのフォントで令和組文字グリフ『㋿』を出力しようとすると対応グリフがなくて文字が欠けますよ」ということです。ヒラギノフォントにせよ小塚フォントにせよ凸版文久フォントにせよ,これらの AJ1 フォントは現時点では令和組文字グリフ「㋿」を搭載していない以上,それが出力できないのは当然です。令和組文字グリフ「㋿」を出力しようとしているのでない限りこの警告は関係ありませんので,無視して大丈夫です。

*1:デフォルトでは pxchfon パッケージは欧文フォントとして和文フォントの従属欧文を半角幅で使おうとしますが,IPAexフォントの従属欧文は半角幅の設計ではないため,[noalphabet] オプションを明示指定して欧文フォントを置換対象外としなくてはいけません。

*2:個人的には,平成時代に組文字「㍻」グリフを使ったことはほとんど全くありませんでした。令和時代になってから,平成時代の65536倍くらい組文字「㋿」を使った気がします。新しいおもちゃを与えられたようで楽しいですね!