マクロツイーター

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

新しい PXchfon についての何か (3)

(前回の続き)
relfont オプション(和文書体を欧文にも適用する)

基本的に、pxchfon パッケージは和文のフォントを置き換えるためのものであるが、オプション指定により欧文のフォントを置換対象に含めることが可能である。((ipa 等のプリセット指定を用いている場合は noalphabet が、それ以外の場合は alphabet が既定の設定となることに注意。また、「TFM を変えずにフォントのマッピングだけを変える」という動作原理のため、等幅での使用に限られる。))

\documentclass[a4paper]{jsarticle}
\usepackage[ipa,noalphabet]{pxchfon}
%\usepackage[ipa,alphabet]{pxchfon}
\begin{document}
Loremのipsumは頗るdolorだった。
\end{document}
noalphabet 指定の場合](欧文は CM Roman のまま)
alphabet 指定の場合](欧文も IPA 明朝に変わる)

0.7 版では、これらに加えて relfont という設定が使用できる。これは、「欧文を和文のフォントに合わせる」ことを部分的に行うことを目的とした設定で、具体的には、pLaTeX の従属欧文フォント設定において、和文フォントの英数字部分からなる欧文フォント(欧文 TFM、alphabet 設定で用いられるもの)を結び付けている。従属欧文フォント設定機能を知らない人*1のために補足すると、「\userelfont\selectfont」という命令列を実行すると、欧文が和文と同じフォントに切り替わる。((ただし、和文フォントを切り替えた場合に欧文が自動的に追随する訳ではない。その都度 \userelfont\selectfont を実行する必要がある。))説明のための単純な使用例を以下に挙げておく。

\documentclass[a4paper]{jsarticle}
\usepackage[ipa,relfont]{pxchfon} % relfont を指定した
\begin{document}
% 欧文は「ipsum」だけ IPA 明朝となる
Loremの{\userelfont\selectfont ipsumは}頗るdolorだった。
\end{document}

この機能の有効な用法というのはあまり思いつかないのだが、例えば、縦書きで連数字を縦中横にする際に敢えて和文書体の半角数字を使いたい*2、ということが考えられる。

\documentclass[a4paper]{jsarticle}
\usepackage{plext}
\usepackage[ipa,relfont]{pxchfon}
  % 全角文字の配置に合わせた縦中横
\newcommand*{\TCY}[1]{{\setlength{\rensujiskip}{0pt}%
  \rensuji{\raisebox{0pt}[0.88zw][0.12zw]%
  {\userelfont\selectfont#1}}}}
\begin{document}
% "7"は全角数字、2桁を縦中横で
\parbox<t>{4zw}{平成\TCY{25}年7月\TCY{15}}\qquad
% 通常の欧文数字(CM Roman)
\parbox<y>{4.5zw}{平成25年7月15日}\qquad
\end{document}

あと、表組み等で「16 進数を等幅で(でもソースコード書体にせずに)組みたい」という場合に使う手もあるだろう。

\documentclass[a5paper,papersize]{jsarticle}
\usepackage[ipa,relfont]{pxchfon}
\usepackage{array}
\setlength{\extrarowheight}{2pt}
\setlength{\doublerulesep}{0pt}
\newcolumntype{C}{>{\codefont}c}
\newcommand*{\codefont}{\userelfont\selectfont}
\begin{document}
{\pTeX}の内部ではJIS符号系が使われるので、
入力漢字コードがUTF-8である場合はコード変換が行われる。
JIS~X~0221が定めるものとCP932が定めるものの両方の変換をサポート
するため、一部の文字については多対一の対応になっている。
\begin{center}\begin{tabular}{CCCCCc}\hline\hline
\sffamily UCS(1) &\sffamily UCS(2) &
\sffamily JIS &\sffamily SJIS &\sffamily EUC &
\sffamily 文字\\\hline
 U+301C & U+FF5E & 0x2141 & 0x8160 & 0xA1C1 &\\\hline
 U+2016 & U+2225 & 0x2142 & 0x8161 & 0xA1C2 &\\\hline
 U+2212 & U+FF0D & 0x215D & 0x817C & 0xA1DD &\\\hline
 U+00A2 & U+FFE0 & 0x2171 & 0x8191 & 0xA1F1 & ¢\\\hline
 U+00A3 & U+FFE1 & 0x2172 & 0x8192 & 0xA1F2 & £\\\hline
 U+00AC & U+FFE2 & 0x224C & 0x81CA & 0xA2CC & ¬\\\hline
\hline
\end{tabular}\end{center}
\end{document}

*1:一応 pLaTeX の標準機能であるが、使われることがほとんどないため知らない人も多いと思う。

*2:全角文字で入力した正立の英数字と書体を合わせるため。もっとも、本来は横転のものを含めて全ての欧文書体を合わせるべきだと思うが。