名前: しっぽ愛好家 日時: 2002-12-10 12:58:15 IPアドレス: 210.230.19.*
>>13791 文字 @ を含むような名称のコントロール・シークェンス(コマンド)を, プリアンブルなど(のユーザが直接記述する箇所)に記述する場合には, \makeatletter と \makeatother で囲んだ範囲に記述しなければなりません. ただし,今回の場合, \ifnum\@ptsize=2 \mag 1200 \setlength\paperwidth{0.833333\paperwidth}% \setlength\paperheight{0.833333\paperheight}% \fi という設定をプリアンブルで記述すると収拾がつかなくなります. %%% クラスファイル内で行われている \paperwidth/\paperheight の変更を %%% プリアンブルで再び行ってしまいます. %%% %%% それ以前に,(今回の場合は)クラスファイル内で(おそらく %%% %%% true つきの寸法の計算の際に)\mag の値が固定されてしまうので, %%% %%% プリアンブルで \mag の値を *変更* することはできません. \mag をいじるのでしたら,次のようにしてみてください. (1) まず,クラスファイル jsbook.cls の(ファイル名を変えた)コピーを用意し, それを用いるように \documentclass の記述を変更します. %%% 例えば,jsbook.cls のコピーを somebook.cls という名称にした場合, %%% \documentclass[...]{somebook} とします. %%% (オプション部分はそのまま用います.) (2) (1) で用意したコピーの中の \ProvidesClass{jsbook} [2002/11/15 okumura] という部分を書き換えます.具体的には文字列 jsbook をクラスファイル名 (から拡張子を除いたもの)に変更し,[, ] の中を 作成日(今日なら 2002/12/10)とコメント(*)に書き換えます. (作成日の後には空白文字を入れてください.) %%% (*) コメント部分は,バージョン番号 + 空白文字 + その他のコメント %%% の形式にするとよいでしょう.(省略しても構いません.) %%% %%% この作業は,本題からは外れますが *作法* です. (3) (1) で用意したコピーの中の \ifnum\@ptsize=2 \mag 1200 \setlength\paperwidth{0.833333\paperwidth}% \setlength\paperheight{0.833333\paperheight}% \fi の 1200 という数値を変更します. (大きくすれば,文字が全体的に拡大されます.) そして,0.833333 のところを ``1000 / ((\mag に指定した値))'' に 変更します(具体的に計算した小数値を用います). %%% オリジナルの記述について説明すると, %%% \mag 1200 というのは,``組版結果全体を 1200/1000 倍に拡大する'' という %%% 意味です.そこで,紙面のサイズを 1000/1200 (= 0.833333) 倍にして, %%% \mag による拡大をキャンセルし,紙面サイズを本来の寸法のままに %%% 保っているのです.``拡大率'' を変更したとしても同じことを考えれば %%% よいので,行うべき操作は上記のようになります. %%% %%% なお,\ifnum\@ptsize=2 ... \fi の部分はクラスオプションの 12pt に %%% %%% 対応する処理であることにも注意してください. %%% %%% 実際,jsbook.cls を読んでみれば,その他の(文字サイズ) %%% %%% オプションに対応する処理が同様に行われていることがわかります. (4) プリアンブルに追加している \expandafter\let\csname JY1/mc/m/n/10\endcsname\relax および \DeclareFontShape の記述,さらに(ご質問の際に 追加しようとした)\ifnum\@ptsize=2 ... \fi の記述を 削除します. ((3) の設定を行うのであれば,これらはもはや不要です.) %%% 以上の設定の下で,和文フォントと欧文フォントのサイズの比が %%% 気になる場合には (1) で作成したコピーの中の %%% \DeclareFontShape{JY1}{mc}{m}{n}{<-> s * [.961] jis}{} %%% などの記述の [, ] の中の数値を調整します.
この書き込みへの返事: