はじめまして。TeX Live 2014を使っています。
日本語と韓国語での文書作成が主ですが、ここ数年で一気に便利になり、
感激しております。開発に携わっていらっしゃる方々に感謝いたします。
ところで、表題の件についてご質問(ご報告?)です。
以下のようなTeXソースをupLaTeX+dvipdfmxで処理したところ、
次のような問題が発生しています。
・\textgtなど書体変更コマンドが効かない
・疑問符や感嘆符のあとのグルーが入らない
・クオーテーション・マークをノノカギに変換、JIS2004字体など、
OTFパッケージの機能が働かない
\documentclass[a4j]{utarticle}
%\documentclass[a4j]{tarticle}
\usepackage[bxutf8]{inputenc}
\usepackage[uplatex,expert,jis2004]{otf}
%\usepackage[uplatex,noreplace]{otf}
%\usepackage[multi,jis2004]{otf}
%\input{otf-hangul.dfu}
\usepackage[english]{babel}
\usepackage[main=japanese]{pxbabel}
\usepackage{furikana}
\begin{document}
\kana{寒}{さむ}さ\kana{来}{き}たり\kana{暑}{あつ}さ\kana{往}{ゆ}き、\textgt{\kana{秋}{あき}\kana{収}{をさ}めて\kana{冬}{ふゆ}\kana{蔵}{ざう}す。}
\Kana{閏,余}{じゅん,よ}もて\kana{歳}{とし}を\kana{成}{な}し、\textgt{\Kana{律,呂}{りつ,りょ}は\kana{陽}{やう}を\kana{調}{ととの}ふ}
\selectlanguage{korean}
찰 寒 올 來 더울 暑 갈 往 \textgt{가을 秋 거둘 收 겨울 冬 감출 藏}
윤달 閏 남을 餘 이룰 成 해 歲 \textgt{가락 律 음률 呂 고를 調 별 陽}
\selectlanguage{schinese}
寒来暑往 \textgt{秋收冬藏}
闰馀成岁 \textgt{律吕调阳}
\selectlanguage{tchinese}
寒來暑往 \textgt{秋收冬藏}
閏餘成歲 \textgt{律呂調陽}
\selectlanguage{japanese}
“疑問?感嘆!平叙。”辻芦飴煎鄭
\end{document}
なお、自分なりに次のことは少し試してみたので、お知らせいたします。
・OTFパッケージのオプションを[uplatex,noreplace]にすると、
\textgtは作動するが、疑問符などの後ろのグルーは入らない
・uplatexではなくplatexで処理するようにすると、中韓の漢字書体以外は
狙った通りの組版結果になる(BXfltsrcは、ややハードルが高そうでテストしておりません……)
・また、pxbabelを読み込まず、中間の部分をコメントアウトしてuplatexで処理すると、
"mktextfm uprubygothrn-v"というのが2行並んだmissfont.logが生成され、コンパイル不可能
以上です。utf82texを使うなど(以前は使っていました)、迂回策はあるのでしょうが、
ぜひともOTFパッケージとPXBabelを併用したいと思っております。
こうした動作が仕様なのかどうか、改善策があるかどうか、
ご教示願えれば幸いです。よろしくお願いいたします。
話を伺った範囲で思いつく点を述べます。
裏はとれておりませんが、調査のとっかかりになれば、と思います。
私がよく理解できない機能や関心の低い機能は、載せきれていない、というのは事実です。
裏はとれておりませんが、調査のとっかかりになれば、と思います。
・\textgtなど書体変更コマンドが効かないよく分かりません。OTFパッケージのuplatex拡張は、書体の種類については、齋藤さんオリジナルのotfbetaと同等にしてあったと思います。
・疑問符や感嘆符のあとのグルーが入らないkcatcodeの設定でどうにかならないでしょうか?
・クオーテーション・マークをノノカギに変換、JIS2004字体など、これは、OTFパッケージのうちの一部の機能について、私の作ったuplatex拡張部分が追い付いていない、ということのような気がします。
OTFパッケージの機能が働かない
私がよく理解できない機能や関心の低い機能は、載せきれていない、というのは事実です。
例をそのままテストしたものでは,otf のフォントは使用されて
いなくて,uptex の標準フォントだけのようです。(updvitype による)。
そこで,いっそのこと
\usepackage[uplatex,expert,jis2004]{otf}
を消すと,望んでおられるものに近づくような気がします。
> また、pxbabelを読み込まず、中間の部分をコメントアウトして
一点だけ。全く理解していませんが,
(up)rubygothbn-h, (up)rubygothbn-v, (up)rubygothrn-h, (up)rubygothrn-v
は用意してないようなので,以下ではないでしょうか
--- otf.sty.save Fri Feb 06 23:18:58 2015
+++ otf.sty Fri Feb 06 23:21:24 2015
@@ -345,13 +345,13 @@
\if@bold
\DeclareFontShape{\otf@JYn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothb\nlck@sfx@-h}{}
\DeclareFontShape{\otf@JTn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothb\nlck@sfx@-v}{}
- \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb\nlck@sfx@-h}{}
- \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb\nlck@sfx@-v}{}
+ \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb-h}{}
+ \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb-v}{}
\else
\DeclareFontShape{\otf@JYn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothr\nlck@sfx@-h}{}
\DeclareFontShape{\otf@JTn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothr\nlck@sfx@-v}{}
- \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr\nlck@sfx@-h}{}
- \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr\nlck@sfx@-v}{}
+ \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr-h}{}
+ \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr-v}{}
\fi
\else
\if@bold
いなくて,uptex の標準フォントだけのようです。(updvitype による)。
そこで,いっそのこと
\usepackage[uplatex,expert,jis2004]{otf}
を消すと,望んでおられるものに近づくような気がします。
> また、pxbabelを読み込まず、中間の部分をコメントアウトして
一点だけ。全く理解していませんが,
(up)rubygothbn-h, (up)rubygothbn-v, (up)rubygothrn-h, (up)rubygothrn-v
は用意してないようなので,以下ではないでしょうか
--- otf.sty.save Fri Feb 06 23:18:58 2015
+++ otf.sty Fri Feb 06 23:21:24 2015
@@ -345,13 +345,13 @@
\if@bold
\DeclareFontShape{\otf@JYn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothb\nlck@sfx@-h}{}
\DeclareFontShape{\otf@JTn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothb\nlck@sfx@-v}{}
- \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb\nlck@sfx@-h}{}
- \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb\nlck@sfx@-v}{}
+ \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb-h}{}
+ \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothb-v}{}
\else
\DeclareFontShape{\otf@JYn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothr\nlck@sfx@-h}{}
\DeclareFontShape{\otf@JTn}{hgt}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgothr\nlck@sfx@-v}{}
- \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr\nlck@sfx@-h}{}
- \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr\nlck@sfx@-v}{}
+ \DeclareFontShape{\otf@JYn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr-h}{}
+ \DeclareFontShape{\otf@JTn}{ruby}{bx}{n}{<-> s * [\utf@sc@le] \otf@pfx@ rubygothr-v}{}
\fi
\else
\if@bold
> (up)rubygothbn-h, (up)rubygothbn-v,
> (up)rubygothrn-h, (up)rubygothrn-v
> は用意してないようなので,以下ではないでしょうか
参考:
%
% A MWE:
% platex test.tex
%
\documentclass{jsarticle}
\usepackage[expert,jis2004]{otf}
\usepackage{furikana}
\begin{document}
\textbf{\kana{漢字}{かんじ}}
\end{document}
! Font JT1/ruby/bx/n/10=rubygothrn-v at 9.24683pt not loadable: Metric (TFM) fi
le not found.
<to be read again>
relax
l.5 \textbf{\kana{漢字}{かんじ}}
?
> (up)rubygothrn-h, (up)rubygothrn-v
> は用意してないようなので,以下ではないでしょうか
参考:
%
% A MWE:
% platex test.tex
%
\documentclass{jsarticle}
\usepackage[expert,jis2004]{otf}
\usepackage{furikana}
\begin{document}
\textbf{\kana{漢字}{かんじ}}
\end{document}
! Font JT1/ruby/bx/n/10=rubygothrn-v at 9.24683pt not loadable: Metric (TFM) fi
le not found.
<to be read again>
relax
l.5 \textbf{\kana{漢字}{かんじ}}
?
・また、pxbabelを読み込まず、中間の部分をコメントアウトしてuplatexで処理すると、"mktextfm uprubygothrn-v"というのが2行並んだmissfont.logが生成され、コンパイル不可能
これについては Kakuto さんの投稿にある通りで、otf.sty の改変が必要です。
(他のルビ用フォントの設定の記述と対照する限りでは、これはバグであるように思えます。)
それ以外の件については、要するに、「upLaTeX では pxbabel と otf パッケージの設定が衝突している」ということです。(恐らく、pxbabel を作った頃には、まだ otf パッケージが upLaTeX に対応していなかったのでしょう。)
取りあえず、応急処置を行うパッケージを用意してみました。
これを otf と pxbabel より後に読み込めば、「日本語は otf パッケージでの設定通りになり、中国語・韓国語は(pxbabel 単体の設定の通り)upLaTeX の標準のフォントが使われる」状態になるはずです。
皆様、素早いレスポンスをどうもありがとうございました。
私だけでは手に負えない部分について調査してくださり、感謝いたします。
Z. R. さんの作ってくださったpxbabel-up-otf.styを使用してみたところ、
望み通りの組版結果が得られました。
OTFパッケージでゴシック体ルビのフォントが定義されていない問題(こうした理解で合っているでしょうか)についても、
githubで同梱してくださったサンプルを見て対処できました。
需要が少なく、かつわがままな要望に応えていただき、重ね重ねありがたく思います。
少しでも開発のお役に立てていれば、と思います。
また何かありましたら、よろしくお願いいたします。
私だけでは手に負えない部分について調査してくださり、感謝いたします。
Z. R. さんの作ってくださったpxbabel-up-otf.styを使用してみたところ、
望み通りの組版結果が得られました。
OTFパッケージでゴシック体ルビのフォントが定義されていない問題(こうした理解で合っているでしょうか)についても、
githubで同梱してくださったサンプルを見て対処できました。
需要が少なく、かつわがままな要望に応えていただき、重ね重ねありがたく思います。
少しでも開発のお役に立てていれば、と思います。
また何かありましたら、よろしくお願いいたします。