TeX でパーセント (%) のフォントを修正する方法

独り言

後輩から TeX のパーセントのフォントが気持ち悪いと相談を受け、
それを解決するのに思ったよりも苦労したので、今後のためにメモ書き。

まず、TeX は ‘\%’ と打つことで、以下のようにパーセントを表示させることができます。
(TeXで ‘%’ はコメントを意味するので、’%’ を出力するためには ‘\’ が必要。)

per1

しかしこのパーセント、左上の 0 と斜めの線が曲線で繋がっています。
これをオシャレと思う人もいるかもしれませんが、気持ち悪いと思う人もいるかもしれません。

とりあえず1番簡単そうな対策は、次のように renewcommand で ‘%’ のフォントを変更することです。

\renewcommand{\%}{\textsf{\char`\%}}

すると、パーセントは以下のようになります。
(ここではセリフ体にしています。)

per2

謎の線が消えて多少よくなったのかもしれませんが、なんだかカッコ悪い気がします。
次に、パッケージを使ってパーセントのフォントを変えてみます。
「mathpazo.sty」や「pxfonts.sty」をロードすることで、フォントが変わるようです。

\usepackage{mathpazo}
per3

\usepackage{pxfonts}

per5

スタイルファイルの中を見ると、
「mathpazo.sty」では「OT1」エンコーディングの「pplx(or ppl)」
「pxfonts.sty」では「OT1」エンコーディングの「pxr」
というフォントが使われており、これがパーセント(%)に影響を与えていました。

このフォントは無難というか、なんか格好いい気がします。
しかしこのパッケージを読み込ませると、数式全体や section などあらゆる場所に影響を与えてしまいます。

簡単な解決策としては、パッケージは読み込まずに以下のコードだけ書くと良さそうです。

\DeclareSymbolFont{operators}{OT1}{pxr}{m}{n}
\SetSymbolFont{operators}{bold}{OT1}{pxr}{bx}{n}
\def\operator@font{\mathgroup\symoperators}

そうすれば、数式内のフォントが pxr になってくれます。
それでも良ければいいのですが、数式全体のフォントは変えずに、パーセントだけ変えたいケースもあると思うので、更にメモを残します。
renewcommand で pxr などのフォントを指定する方法が解らずかなり悪戦苦闘しましたが、以下のコードで実現させることができました。

\let\%\relax 
\DeclareFontFamily{OT1}{pxr}{}
\DeclareFontShape{OT1}{pxr}{m}{n}{<->pxr}{}
\DeclareSymbolFont{letA}{OT1}{pxr}{m}{n}
\DeclareMathSymbol{\%}{0}{letA}{`\%}

letA にフォントの情報(フォント = OT1/pxr, スタイル = medium, normal(立体))を入れて、DeclareMathSymbol にて ‘\%’ を再定義しています。
(”\let\%\relax” を入れて定義を消去しないと、”Command `\%’ already defined.” というエラーが出ます。)
少し行数が長くなってしまいましたが、これで目的の動作を実現することができました。

以下、参考にさせて頂いたサイト様一覧
========================================================
Declaring math symbols
DeclareMathSymbolでローマン体の表示がおかしくなる
Better looking Percent Symbol
TeX Wiki LaTeX のエラーメッセージ
TeX Wiki 和文の仕組み
========================================================

タイトルとURLをコピーしました