1について
pxchfonのマニュアルのalphabet
オプションの説明には
※技術的制約のため、半角等幅のフォントしかサポートされないことに注意してほしい。
と書いてあります。これの意味するところは
「半角等幅のフォントしか使えない(使ってはいけない)、もし使った場合の動作は未定義である(異常な出力になりえる)」
ということです。そのあとに「つまり、この設定を使うと欧文が全て等幅になってしまう。」とあるのは「等幅のフォントしか使えないので、当然出力は等幅になる」というぐらいの意味です。
pxchfonの目的は「ユーザが指定したフォントを使うこと」なので、「使えないフォント」が指定された場合はエラーや警告が出るのが望ましい動作なのですが、残念ながら、(“TeXは実体のフォントを扱わない”ため)TeXの側で「指定されたフォントが等幅であるか」は検査できません。このため、未定義(異常)の出力をしてしまうことが避けられないのです。
ところで、IPAexフォントには「欧文の字形を半角に切り替える」機能を持っています。実はpxchfonの仕様は「そういうフォントについては自動的に(可能な限り)字形を半角に切り替える」となっています。ただし、IPAexフォントのような“AJ1でないフォント”について「字形の切り替え」を有効にするには、unicode
オプションを指定する必要があります。
\usepackage[alphabet,ipaex,unicode]{pxchfon}
2について
「文字が重なってしまう」というのは要するに「使えないフォントを指定したので異常な出力になった」ということです。正常な出力を得たいのであれば、「等幅のフォントを指定する」あるいは「字形を等幅に切り替えられるようにde>unicodeを指定する」ことが必要です。
要するに
ipaex
プリセットを使うのであれば、unicode
を指定すれば正常になります。(ただし「等幅になってしまう」。)
\usepackage[alphabet,ipaex,unicode]{pxchfon}
「確かに位置は異常であるが現にプロポーショナルの字形が出力できているんだから、この結果を利用できないのか」という疑問はもっともです。しかし実はこの状態では「TeXの把握している文字位置が実態と乖離している」というヤヤコシイ事態になっています。TeXは「実態の幅」はそもそも知らないので自動で「位置を正しくする」ことは不可能ですが、たとえ\hspace
や\makebox
などを駆使して手動で調整しようとしても、「乖離」のせいで色々と(La)TeXの理屈に合わない動作が発生してしまうので、「異常な出力を利用する」というのは厄介です。