土村さんの新しいptexliveを試していてわかったのですが,次のようなものがエラーになるようです:
\documentclass[disablejfam]{jsarticle} % jarticleでも同じ
\usepackage{otf}
\begin{document}
ほげ
\end{document}
とりあえず。
出ますね.otf.sty(開発版だと128行目の)
\DeclareMathAlphabet{\mathgt}{\otf@JYn}{hgt}{m}{n}
と,jarticle.cls等でdisablejfamのとき使われる
\DeclareRobustCommand{\mathgt}{%
\@latex@error{Command \noexpand\mathgt invalid with\space
`disablejfam' class option.}\@eha
がバッティングしています.本質的な回避策は考えていませんが,
\documentclass[disablejfam]{jsarticle} % jarticleでも同じ
\let\mathgt=\undefined %\mathgt を消去
\usepackage{otf}
\begin{document}
ほげ $日本語$ %和文数式も入れてみた
\end{document}
とでもして,\mathgt を殺してやればエラーは出なくなります.
あと,\reDeclareMathAlphabet{\mathbf}... も古い形で使われているので,
txfonts.sty等との併用の不具合(エラーにはならない)も出ますね.
山本和義
\DeclareMathAlphabet{\mathgt}{\otf@JYn}{hgt}{m}{n}
と,jarticle.cls等でdisablejfamのとき使われる
\DeclareRobustCommand{\mathgt}{%
\@latex@error{Command \noexpand\mathgt invalid with\space
`disablejfam' class option.}\@eha
がバッティングしています.本質的な回避策は考えていませんが,
\documentclass[disablejfam]{jsarticle} % jarticleでも同じ
\let\mathgt=\undefined %\mathgt を消去
\usepackage{otf}
\begin{document}
ほげ $日本語$ %和文数式も入れてみた
\end{document}
とでもして,\mathgt を殺してやればエラーは出なくなります.
あと,\reDeclareMathAlphabet{\mathbf}... も古い形で使われているので,
txfonts.sty等との併用の不具合(エラーにはならない)も出ますね.
山本和義
jsarticle.cls で対応するなら,398行あたりの
\else
\DeclareRobustCommand{\mathmc}{%
\@latex@error{Command \noexpand\mathmc invalid with\space
`disablejfam' class option.}\@eha
}
\DeclareRobustCommand{\mathgt}{%
\@latex@error{Command \noexpand\mathgt invalid with\space
`disablejfam' class option.}\@eha
}
をばっさり削ってしまうぐらいしかないでしょうか(私個人としては削って
しまっても問題は出ないと思いますが).それよりも,OTFパッケージ側で
disablejfam に対応していただけると嬉しいような気もします.
いや,すみません.OTF パッケージは使っていなかったもので,
はじめてコードを見たのですが,otf.sty (開発版だと125行目あたり)で
%definitions of alt-normal font family
\if@replace
...
\DeclareRelationFont{\otf@JTn}{hgt}{bx}{}{OT1}{cmr}{bx}{}
\fi
%%%% ここから
%% この部分は関係ないのでここに持ってくる
\@ifpackageloaded{jisx0213}{\relax}{\def\mcdefault{hmc}\def\gtdefault{hgt}}
%% \symmincho が定義されていたら,j(s)article の形式で和文数式がすでに使える
%% 設定であるとみなして,必要な部分だけ再定義する.
\@ifundefined{symmincho}{}{%
\DeclareSymbolFont{mincho}{\otf@JYn}{hmc}{m}{n}
\SetSymbolFont{mincho}{bold}{\otf@JYn}{hmc}{bx}{n}
\DeclareSymbolFontAlphabet{\mathmc}{mincho}
\DeclareMathAlphabet{\mathgt}{\otf@JYn}{hgt}{m}{n}
\SetMathAlphabet{\mathgt}{bold}{\otf@JYn}{hgt}{bx}{n}
}
%% \if@enablejfam が定義されていなかったら,j(s)article とは全く異なる
%% class file が使われているとみなし,和文数式は完全に自前で定義して
%% 使えるようにしておく.この場合は disablejfam 的なことは考えない.
\@ifundefined{if@enablejfam}{%
\DeclareSymbolFont{mincho}{\otf@JYn}{hmc}{m}{n}
\SetSymbolFont{mincho}{bold}{\otf@JYn}{hmc}{bx}{n}
\DeclareSymbolFontAlphabet{\mathmc}{mincho}
\DeclareMathAlphabet{\mathgt}{\otf@JYn}{hgt}{m}{n}
\SetMathAlphabet{\mathgt}{bold}{\otf@JYn}{hgt}{bx}{n}
\AtBeginDocument{%
\reDeclareMathAlphabet{\mathrm}{\@mathrm}{\@mathmc}
\reDeclareMathAlphabet{\mathbf}{\@mathbf}{\@mathgt}
}%
\jfam\symmincho}{}
%%%% ここまで
\fi
\if@kana
...
とすると目的通りに動いていると思います(コードが冗長なのは失礼).後半部分が
必要かどうかはコンセプトによるのと,jarticleクラス の mathrmmc オプション
とのからみです.
山本和義
\else
\DeclareRobustCommand{\mathmc}{%
\@latex@error{Command \noexpand\mathmc invalid with\space
`disablejfam' class option.}\@eha
}
\DeclareRobustCommand{\mathgt}{%
\@latex@error{Command \noexpand\mathgt invalid with\space
`disablejfam' class option.}\@eha
}
をばっさり削ってしまうぐらいしかないでしょうか(私個人としては削って
しまっても問題は出ないと思いますが).それよりも,OTFパッケージ側で
disablejfam に対応していただけると嬉しいような気もします.
いや,すみません.OTF パッケージは使っていなかったもので,
はじめてコードを見たのですが,otf.sty (開発版だと125行目あたり)で
%definitions of alt-normal font family
\if@replace
...
\DeclareRelationFont{\otf@JTn}{hgt}{bx}{}{OT1}{cmr}{bx}{}
\fi
%%%% ここから
%% この部分は関係ないのでここに持ってくる
\@ifpackageloaded{jisx0213}{\relax}{\def\mcdefault{hmc}\def\gtdefault{hgt}}
%% \symmincho が定義されていたら,j(s)article の形式で和文数式がすでに使える
%% 設定であるとみなして,必要な部分だけ再定義する.
\@ifundefined{symmincho}{}{%
\DeclareSymbolFont{mincho}{\otf@JYn}{hmc}{m}{n}
\SetSymbolFont{mincho}{bold}{\otf@JYn}{hmc}{bx}{n}
\DeclareSymbolFontAlphabet{\mathmc}{mincho}
\DeclareMathAlphabet{\mathgt}{\otf@JYn}{hgt}{m}{n}
\SetMathAlphabet{\mathgt}{bold}{\otf@JYn}{hgt}{bx}{n}
}
%% \if@enablejfam が定義されていなかったら,j(s)article とは全く異なる
%% class file が使われているとみなし,和文数式は完全に自前で定義して
%% 使えるようにしておく.この場合は disablejfam 的なことは考えない.
\@ifundefined{if@enablejfam}{%
\DeclareSymbolFont{mincho}{\otf@JYn}{hmc}{m}{n}
\SetSymbolFont{mincho}{bold}{\otf@JYn}{hmc}{bx}{n}
\DeclareSymbolFontAlphabet{\mathmc}{mincho}
\DeclareMathAlphabet{\mathgt}{\otf@JYn}{hgt}{m}{n}
\SetMathAlphabet{\mathgt}{bold}{\otf@JYn}{hgt}{bx}{n}
\AtBeginDocument{%
\reDeclareMathAlphabet{\mathrm}{\@mathrm}{\@mathmc}
\reDeclareMathAlphabet{\mathbf}{\@mathbf}{\@mathgt}
}%
\jfam\symmincho}{}
%%%% ここまで
\fi
\if@kana
...
とすると目的通りに動いていると思います(コードが冗長なのは失礼).後半部分が
必要かどうかはコンセプトによるのと,jarticleクラス の mathrmmc オプション
とのからみです.
山本和義