-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jsreport クラスと otf パッケージ #63
Comments
jsarticle/jsbookとそれ以外の場合のotfパッケージの挙動の差は「和文スケール値の違い」です。ところがそもそもBXJSクラスでは和文スケール値自体が可変( \documentclass[platex,dvipdfmx,ja=Standard,
scale=1.5,a4paper]{bxjsarticle}
\usepackage{otf}
\begin{document}
{\TeX}はsuperアレ、{\ajSnowman}はnonアレ。
\end{document} |
自分の持ってる希望としては、 既に、オレオレ規約として次のようなものが成立しています。
|
規約化に賛成です. |
賛成です.しかも,すでにその条件を満たす「オレオレ規約」があって,他にそのような事例がないのであれば,そのまま踏襲するのがラクでしょうね. OTF パッケージは,私のところで勝手に unofficial mirror を立てていました(pLaTeX / upLaTeX 本体のテストに使うつもりで).ここで作業もするのであれば,齋藤さん(原作)・ttk さん(uptex 版)・Norbert さん(CTAN アップロード者)に了承を取りましょうか? pull request していただければ私は受け付けます. |
ちなみに,ごく最近「platex / uplatex の sync 効率化など (texjporg/platex#56)」を実行している途中で発見したのですが,japanese-otf-uptex には「upLaTeX のデフォルトは従属書体が T1 なのに,otf.sty (japanese-otf-uptex) を読むと OT1 に戻る」という issue もあります。 %#!ptex2pdf -u -l
\documentclass[uplatex]{jsarticle}
\usepackage[uplatex]{otf}% これをなくすと T1
\begin{document}
\userelfont\selectfont
漢\AA あ\makeatletter\f@encoding\makeatother
\end{document} |
platex / uplatex / jsclasses のリポジトリにそれぞれ cjascale ブランチを作り,
で \Cjascale を定義してみました。やり方は合っているでしょうか? |
一旦 platex / uplatex の 「ユーザが作った(\Cjascale 未定義の)独自クラス + otf パッケージ」 の場合に,後方互換性が失われそうですね(特に,独自クラスが「従来の jsclasses の改変版」だった場合もこれに該当する)。従って,
と |
texjporg/platex@d7ac4d1 と texjporg/uplatex@0d8d1c0 でやってみました(cjascale-cls ブランチ) |
platexの方で、 ※japanese-otfのフォントのJFMスケールは全て1なので、japanese-otfの側で指定するNFSSスケールの値は、エンジンに関わらず、 |
確認していませんでした… ご指摘ありがとうございます。あとで直します。 |
「upLaTeX のデフォルトは従属書体が T1 なのに,otf.sty (japanese-otf-uptex) を読むと OT1 に戻る」 |
発見以来コードは見ていなかったので,今見ました。まだ十分試せていませんが,JY1/JY2 →
みたいにすれば動くかもしれません。 |
OTFパッケージのscaleの部分を以下のように修正しようと考えています.
\Cjascaleのところは,これでいいのか試せていないのですが,如何でしょうか? |
よくわからなくっているのですが, |
@psitau さん,ありがとうございます。まだクラスファイル側で \Cjascale を正しく設定していないので,「\Cjascaleのところは,これでいいのか試せていないのですが,如何でしょうか?」の問いには自信を持って答えられないです。すみません。
の @yuw さんの指摘はメンテナンス性などの面からの指摘なのだと推察しますが,今回のケースだと「特定のクラスファイルを指す方式」は除去できない,と思っています。というのも,「OTF パッケージが jsclasses / pLaTeX / upLaTeX より先に更新された場合」に従来の組版が変化してしまうからです。\Cjascale という規約がなかった時代(現在もまだその時代に該当します)にはそうするほかはなかったのでしょうがないと思います。jsclasses のメンテナと OTF のメンテナの双方が「OTF は jsclasses の特定のクラス名を指している」ことを認識している限り問題は起きないと思います。 |
|
(蛇足) ちなみに、(特に自分パッケージを設計する上で) ※特にそれだけが原因で、「何かの機能の実現を諦める」という判断はしないと思います。 |
@yuw さん,jsarticleとjsbookの部分は既存なので,後方互換性のために残させてください. @zr-tex8r さん,ご指摘ありがとうございます.ipamjmから誤ってコピペしておりました. 先ほどのコードではextra elseなどと怒られてしまうので,次のように修正します.
|
texjporg/japanese-otf-mirror@1969510 のように変更すると動作しました。 |
で pLaTeX / upLaTeX は正しく設定しました,のつもりです。 plfonts.dtx % p\LaTeX{}では従属書体にOT1エンコーディングを指定しています。
% また、要求サイズ(指定されたフォントサイズ)が10ptのとき、
% 全角幅の実寸が9.62216ptとなるようにしますので、
% 和文スケール値($1\,\mathrm{zw} \div \textmc{要求サイズ}$)は
% $9.62216\,\mathrm{pt}/10\,\mathrm{pt}=0.962216$です。
% min10系のメトリックは全角幅が9.62216ptでデザインされているので、
% これを1倍で読込みます。
% \changes{v1.6l}{2018/02/04}{和文スケール値を明文化} jclasses.dtx % \begin{macro}{\Cjascale}
% このクラスファイルが意図する和文スケール値
% ($1\,\mathrm{zw} \div \textmc{要求サイズ}$)を
% 表す実数値マクロ|\Cjascale|を定義します。
% このp\LaTeXe{}の標準クラスでは、フォーマット作成時に読み込まれた
% フォント定義ファイル(\file{jy1mc.fd} / \file{jy1gt.fd} /
% \file{jt1mc.fd} / \file{jt1gt.fd})での和文スケール値がそのまま
% 有効ですので、これは0.962216です。
% \changes{v1.7h}{2018/02/04}{和文スケール値\cs{Cjascale}を定義}
% \begin{macrocode}
%<*article|report|book>
\def\Cjascale{0.962216}
%</article|report|book>
% \end{macrocode}
% \end{macro} uplfonts.dtx % p\LaTeX{}では従属書体にOT1エンコーディングを指定していましたが、
% up\LaTeX{}ではT1エンコーディングを用いるように変更しました。
% また、要求サイズ(指定されたフォントサイズ)が10ptのとき、
% 全角幅の実寸が9.62216ptとなるようにしますので、
% 和文スケール値($1\,\mathrm{zw} \div \textmc{要求サイズ}$)は
% $9.62216\,\mathrm{pt}/10\,\mathrm{pt}=0.962216$です。
% upjis系のメトリックは全角幅が10ptでデザインされているので、
% これを0.962216倍で読込みます。
% \changes{v1.6l}{2018/02/04}{和文スケール値を明文化} ujclasses.dtx % \begin{macro}{\Cjascale}
% このクラスファイルが意図する和文スケール値
% ($1\,\mathrm{zw} \div \textmc{要求サイズ}$)を
% 表す実数値マクロ|\Cjascale|を定義します。
% このup\LaTeXe{}の標準クラスでは、フォーマット作成時に読み込まれた
% フォント定義ファイル(\file{jy2mc.fd} / \file{jy2gt.fd} /
% \file{jt2mc.fd} / \file{jt2gt.fd})での和文スケール値がそのまま
% 有効ですので、これは0.962216です。
% \changes{v1.7h}{2018/02/04}{和文スケール値\cs{Cjascale}を定義}
% \begin{macrocode}
%<*article|report|book>
\def\Cjascale{0.962216}
%</article|report|book>
% \end{macrocode}
% \end{macro} こんな感じです。 |
こちらも jsclasses と minijs の \Cjascale を設定し直しました,のつもりです。 おっと,winjis オプションのところに仕込んだメッセージがいろいろ酷いですね。直します |
jsclasses の \Cjascale (cjascale-test branch) を master にマージしました。 |
今年,念願(?)の jsreport.cls を追加しました。これの扱いに関する issue です。
\documentclass[report]{jsook} と \documentclass{jsreport} の相違点は
だけのつもりで,その他はほぼ完全に互換としていると思います。ところが,otf パッケージを使うと全体にスケーリングが非互換になります。
原因は otf パッケージが「jsclasses 読込済みかどうか」をクラス名そのもので
\@ifclassloaded{jsarticle}
や\@ifclassloaded{jsbook}
として判定しているためのようです。これはどちらかというと otf パッケージの issue なのだと思いますが,「otf パッケージをどう直すのが良いか」が明確ではありません。The text was updated successfully, but these errors were encountered: