pLaTeX から upLaTeX に変更

[注(2020年12月19日追記)] このページはLaTeXに精通していない人間が書いていることもあり、不正確なので、uplatexの利用方法を知りたい人は他のページ、例えば以下のページをご覧ください。

[改訂新版]upLaTeXを使おう - Qiita



「応用一般均衡(CGE)分析の解説文書」にある文書を書くのに LaTeX を使っています。今までずっと pLaTeX を使っていましたが、upLaTeX に変えました。

比較的最近の TeX のシステムを利用しているので、 upLaTeX 自体はインストールされています。ですので、TeX ファイルのソースを少し変更するだけですみました。まず、documentclass の部分を

\documentclass[10pt,a4j]{jarticle}  % platex 用

から

\documentclass[10pt,a4j]{ujarticle} % uplatex 用

に変更しました。

また、プリアンプルで

\usepackage[utf8]{inputenc}
\usepackage{atbegshi}
\AtBeginShipoutFirst{\special{pdf:tounicode  UTF8-UCS2}}

を追加しました。この命令の意味はよくわかりませんが、下の二行を入れないと dvipdfmx で PDF に変換したときにブックマーク(しおり)の日本語が文字化けしてしまいます。

最後に \begin{document} の後に

\kcatcode`ç=15% not cjk character

を加えています。これも意味はよくわかりませんが、upLaTeX 用の TeX ファイルのソースではこの命令が普通追加されているので同じようにしました。

TeX ファイルのソースの変更はこれだけで、後はコンパイルに利用するコマンドを platex から uplatex に変更するだけです。

pLaTeX ではユニコード文字は扱えません。具体的には

  • 「草彅剛」の「彅」や「宮﨑あおい」の「﨑」のようにJISの第二水準を越える文字
  • 「ò」、「ö」、「ç」、「è」、「é」、「ê」のような非アスキーの欧文の文字

のような文字をそのままファイルに記入することができません。pLaTeX でこのような文字を利用したいときには、前者であれば OTF パッケージ を使い、後者であれば \`{o}\"{o} のような命令を使って書くことが普通だと思います。

一方、upLaTeX ではこれらのユニコード文字をそのまま使う(そのままファイルに書く)ことができます。私自身はユニコード文字を使う機会があまりないのですが、今どきユニコード文字が使えないという制限があるシステムを使うのはなんだかすごく時代遅れな感じがしたので、変えてみました。