X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fltjsclasses.dtx;h=5f906b08b524e069c98723856a271857288bad7f;hb=bcad7c00a3a7fe765a1a84b06030aa8464efeba1;hp=53b2f0524b5cecb591ee5ad768614a29643ab4ad;hpb=3d5cee68961b97a658514c0cbebed41df1c50ff7;p=luatex-ja%2Fluatexja.git diff --git a/src/ltjsclasses.dtx b/src/ltjsclasses.dtx index 53b2f05..5f906b0 100644 --- a/src/ltjsclasses.dtx +++ b/src/ltjsclasses.dtx @@ -22,7 +22,7 @@ % ----------------------------------------- % % \fi -% \CheckSum{5210} +% \CheckSum{5209} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -50,13 +50,15 @@ %<*driver> \ProvidesFile{ltjsclasses.dtx} % - [2014/12/24 ] + [2016/04/04 ltjsclasses ] %<*driver> +\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} \documentclass{ltjsarticle} \usepackage{doc} -\usepackage[kozuka-pr6n]{luatexja-preset} -\usepackage{unicode-math} -\setmathfont{Latin Modern Math} +\usepackage{fontspec} +\usepackage[ipaex,nfssonly]{luatexja-preset} +%%%%\usepackage{unicode-math} +%%%%\setmathfont{Latin Modern Math} \usepackage[unicode]{hyperref} \addtolength{\textwidth}{-1in} \addtolength{\evensidemargin}{1in} @@ -99,21 +101,11 @@ % % |ltjclasses| と違うのは以下の点です。 % -% \paragraph{サイズオプションの扱いが違う} -% -% |ltjclasses| では本文のポイント数を指定するオプションがあり -% ましたが,ポイント数は10,11,12しかなく,それぞれ別のクラスオプション -% ファイルを読み込むようになっていました。しかも,標準の10ポイント以外で -% は多少フォントのバランスが崩れることがあり,あまり便利ではありませんで -% した。ここでは文字サイズを増すとページを小さくし,\TeX の |\mag| プリ -% ミティブで全体的に拡大するという手を使って,9ポイントや21,25,30,36, -% 43ポイント,12Q,14Qの指定を可能にしています。 -% % \subsection{\texttt{jsclasses.dtx}からの主な変更点} % 全ての変更点を知りたい場合は,|jsclasses.dtx| と |ltjsclasses.dtx| で |diff| を % とって下さい。zw, zh は全て |\zw|, |\zh| に置き換えられています。 % \begin{itemize} -% \item フォントメトリック関係のオプション |winjis |は単に無視されます。 +% \item フォントメトリック関係のオプション |winjis| は単に無視されます。 % \item 標準では |jfm-ujis.lua|(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。 % \item |uplatex| オプションを削除してあります。 % \item |disablejfam| オプションが無効になっています。もし @@ -128,11 +120,32 @@ % 削除しました。 % \item 「\texttt{amsmath}との衝突の回避」のコードは,上流で既に対処されているうえ, % これがあると |grfext.sty| を読み込んだ際にエラーを引き起こすので削除しました。 +% \item 本家|jsclasses.dtx|では|\mag|を用いて「10pt時の組版結果を本文フォントサイズに合わせ拡大縮小」 +% という方針でしたが,本|ltjsclasses.dtx|ではそのような方法を取っていません。 +% \begin{itemize} +% \item |real|オプション指定時には,単にレイアウトに用いる各種長さの値をスケールさせるだけです。 +% そのため,例えば本文の文字サイズが17ptのときにはcmr10でなくcmr17を用いることになり,組版結果の印象が +% 異なる恐れがあります。 +% \item |xreal|オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに +% cmr10を拡大縮小する,など)ため,\LaTeX のフォント選択システムNFSSへパッチを当てます。 +% こうすることで前項に書いた不具合はなくなりますが,かえって別の不具合が起きる可能性はあります。 +% \end{itemize} +% 標準では|xreal|オプションが有効になっています。オプション名は|bxjscls|パッケージの|magstyle|指定に倣いました。 % \end{itemize} % -% [2014-02-07 LTJ] jsclasses 2014-02-07 ベースにしました. +% [2014-02-07 LTJ] jsclasses 2014-02-07 ベースにしました。 +% +% [2014-07-26 LTJ] 縦組用和文フォントの設定を加えました。 +% +% [2014-12-24 LTJ] |\@setfontsize| 中の和欧文間空白の設定で if 文が抜けていたのを直しました。 % -% [2014-12-24 LTJ] |\@setfontsize| 中の和欧文間空白の設定で if 文が抜けていたのを直しました. +% [2016-01-30 LTJ] |\rmfamily| 他で和文フォントファミリも変更するコードを +% Lua\TeX-ja カーネル内に移しました。 +% +% [2016-03-21 LTJ] Lua\TeX~beta-0.87.0 ではPDF出力時に|\mag|が使用できなくなったので, +% ZRさんの|bxjscls|を参考に使わないように書き換えました。 +% +% [2016-03-31 LTJ] |xreal|オプションを標準で有効にしました. % % \StopEventually{} % @@ -306,29 +319,45 @@ % [2003-04-18] 12Qオプションを追加しました。 % % \begin{macrocode} -\newcommand{\@ptsize}{0} -\DeclareOption{slide}{\@slidetrue\renewcommand{\@ptsize}{26}\@landscapetrue\@titlepagetrue} -\DeclareOption{8pt}{\renewcommand{\@ptsize}{-2}} -\DeclareOption{9pt}{\renewcommand{\@ptsize}{-1}} -\DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} -\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} -\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} -\DeclareOption{14pt}{\renewcommand{\@ptsize}{4}} -\DeclareOption{17pt}{\renewcommand{\@ptsize}{7}} -\DeclareOption{20pt}{\renewcommand{\@ptsize}{10}} -\DeclareOption{21pt}{\renewcommand{\@ptsize}{11}} -\DeclareOption{25pt}{\renewcommand{\@ptsize}{15}} -\DeclareOption{30pt}{\renewcommand{\@ptsize}{20}} -\DeclareOption{36pt}{\renewcommand{\@ptsize}{26}} -\DeclareOption{43pt}{\renewcommand{\@ptsize}{33}} -\DeclareOption{12Q}{\renewcommand{\@ptsize}{1200}} -\DeclareOption{14Q}{\renewcommand{\@ptsize}{1400}} -\DeclareOption{10ptj}{\renewcommand{\@ptsize}{1001}} -\DeclareOption{10.5ptj}{\renewcommand{\@ptsize}{1051}} -\DeclareOption{11ptj}{\renewcommand{\@ptsize}{1101}} -\DeclareOption{12ptj}{\renewcommand{\@ptsize}{1201}} +\def\ltjs@magscale{1} +\DeclareOption{slide}{\@slidetrue\def\ltjs@magscale{3.583}\@landscapetrue\@titlepagetrue} +\DeclareOption{8pt} {\def\ltjs@magscale{0.83}}% 1.2^(-1) +\DeclareOption{9pt} {\def\ltjs@magscale{0.913}}% 1.2^(-0.5} +\DeclareOption{10pt}{\def\ltjs@magscale{1}} +\DeclareOption{11pt}{\def\ltjs@magscale{1.095}}% 1.2^0.5 +\DeclareOption{12pt}{\def\ltjs@magscale{1.200}} +\DeclareOption{14pt}{\def\ltjs@magscale{1.440}} +\DeclareOption{17pt}{\def\ltjs@magscale{1.728}} +\DeclareOption{20pt}{\def\ltjs@magscale{2}} +\DeclareOption{21pt}{\def\ltjs@magscale{2.074}} +\DeclareOption{25pt}{\def\ltjs@magscale{2.488}} +\DeclareOption{30pt}{\def\ltjs@magscale{2.986}} +\DeclareOption{36pt}{\def\ltjs@magscale{3.583}} +\DeclareOption{43pt}{\def\ltjs@magscale{4.300}} +\DeclareOption{12Q} {\def\ltjs@magscale{0.923}}% 1pt*12Q/13Q +\DeclareOption{14Q} {\def\ltjs@magscale{1.077}}% 1pt*14Q/13Q +\DeclareOption{10ptj}{\def\ltjs@magscale{1.085}}% 1pt*10bp/13Q +\DeclareOption{10.5ptj}{\def\ltjs@magscale{1.139}} +\DeclareOption{11ptj}{\def\ltjs@magscale{1.194}} +\DeclareOption{12ptj}{\def\ltjs@magscale{1.302}} +% \end{macrocode} +% +% \paragraph{オプティカルサイズの補正} +% [2016-03-26 LTJ] |xreal|オプション指定時には,本文のフォントサイズが10pt以外の場合に +% オプティカルサイズの補正を行うためにNFSSにパッチを当てます。 +% 現在の|ltjsclasses|ではこのパッチ当ては標準では行いませんが, +% 将来どうなるかわからないので|real|, |noxreal|で無効化することができるようにしました。 +% +% [2016-03-31 LTJ] |xreal|オプションを標準にしました. +% \begin{macrocode} +\newif\if@ltjs@mag@xreal +\@ltjs@mag@xrealtrue +\DeclareOption{xreal}{\@ltjs@mag@xrealtrue} +\DeclareOption{noxreal}{\@ltjs@mag@xrealfalse} +\DeclareOption{real}{\@ltjs@mag@xrealfalse} % \end{macrocode} % +% % \paragraph{トンボオプション} % % トンボ(crop marks)を出力します。 @@ -537,13 +566,7 @@ % \paragraph{papersizeスペシャルの利用} % % |ltjsclasses| では |papersize| オプションの有無に関わらず, -% PDFのページサイズは適切に設定されます。 -% -% \begin{macrocode} -\newif\ifpapersize -\papersizefalse -\DeclareOption{papersize}{\papersizetrue} -% \end{macrocode} +% PDFのページサイズは適切に設定されるので,削除しました。 % % \paragraph{英語化} % @@ -621,96 +644,98 @@ % \item |geometry| 側でオプション |mag| は使えません。 % \end{itemize} % +% [2016-03-21 LTJ] |\mag| を使わないように全面的に書き換えました。 +% |\ltjs@mpt| に「拡大率だけ大きくしたpt」の値が格納されます。 +% |bxjscls| と同様に,|\@ptsize| は |10pt|,~|11pt|,~|12pt| オプションが指定された時だけ +% 従来通り0,~1,~2と設定し,それ以外の場合は$-20$とすることにしました。 +% |\inv@mag| はもはや定義していません。 +% +% [2016-03-26 LTJ] |\ltjs@magscale| に拡大率を格納した後,それを用いて |ltjs@mpt| を +% 設定するようにしました。 % \begin{macrocode} -\def\inv@mag{1} -\ifnum\@ptsize=-2 - \mag 833 - \def\inv@mag{1.20048} - \def\n@baseline{15}% -\fi -\ifnum\@ptsize=-1 - \mag 913 % formerly 900 - \def\inv@mag{1.09529} - \def\n@baseline{15}% -\fi -\ifnum\@ptsize=1 - \mag 1095 % formerly 1100 - \def\inv@mag{0.913242} -\fi -\ifnum\@ptsize=2 - \mag 1200 - \def\inv@mag{0.833333} -\fi -\ifnum\@ptsize=4 - \mag 1440 - \def\inv@mag{0.694444} -\fi -\ifnum\@ptsize=7 - \mag 1728 - \def\inv@mag{0.578704} -\fi -\ifnum\@ptsize=10 - \mag 2000 - \def\inv@mag{0.5} -\fi -\ifnum\@ptsize=11 - \mag 2074 - \def\inv@mag{0.48216} -\fi -\ifnum\@ptsize=15 - \mag 2488 - \def\inv@mag{0.401929} -\fi -\ifnum\@ptsize=20 - \mag 2986 - \def\inv@mag{0.334896} -\fi -\ifnum\@ptsize=26 - \mag 3583 - \def\inv@mag{0.279096} -\fi -\ifnum\@ptsize=33 - \mag 4300 - \def\inv@mag{0.232558} -\fi -\ifnum\@ptsize=1200 - \mag 923 - \def\inv@mag{1.0834236} -\fi -\ifnum\@ptsize=1400 - \mag 1077 - \def\inv@mag{0.928505} -\fi -\ifnum\@ptsize=1001 - \mag 1085 - \def\inv@mag{0.921659} -\fi -\ifnum\@ptsize=1051 - \mag 1139 - \def\inv@mag{0.877963} -\fi -\ifnum\@ptsize=1101 - \mag 1194 - \def\inv@mag{0.837521} -\fi -\ifnum\@ptsize=1201 - \mag 1302 - \def\inv@mag{0.768049} -\fi %<*kiyou> -\mag 977 -\def\inv@mag{1.02354} +\def\ltjs@magscale{0.977} % -\setlength\paperwidth{\inv@mag\paperwidth}% -\setlength\paperheight{\inv@mag\paperheight}% +\newdimen\ltjs@mpt +\ltjs@mpt=\ltjs@magscale\p@ +\ifdim\ltjs@mpt<.92\p@ % 8pt, 9pt 指定時 + \def\n@baseline{15}% +\fi +\newcommand{\@ptsize}{0} +\ifdim\ltjs@mpt=1.0954\p@ \renewcommand{\@ptsize}{1}\else +\ifdim\ltjs@mpt=1.2\p@ \renewcommand{\@ptsize}{2}\else +\renewcommand{\@ptsize}{-20}\fi\fi +% \end{macrocode} +% +% \paragraph{オプティカルサイズの補正} +% \leavevmode\par +% [2016-03-26 LTJ] |xreal|オプションの指定時には,|bxjscls|の|magstyle=xreal| +% オプションのように,オプティカルの補正を行うためにNFSSにパッチを当てます。 +% パッチは,概ねmiscさんによる「js*.cls 同様の文字サイズ設定を +% |\mag|によらずに行う方法:試案」 +% (\texttt{http://oku.edu.mie-u.ac.jp/\textasciitilde okumura/texfaq/qa/28416.html})の +% 方法に沿っていますが,拡大/縮小するところの計算にはLuaを用いています。 +% +% なお,\TeX 内部で長さはsp単位の整数倍で表現されているので,数spの誤差は仕方がないです。 +% そのため,事前に|type1cm|パッケージを読みこんでおきます。 +% +% [2016-03-28 LTJ] |\luafunction|を使うようにし,また本文のフォントサイズが10ptのときには +% (不要なので)パッチを当てないことにしました。 +% +% [2016-04-04 LTJ] NFSSへのパッチを修正. +% \begin{macrocode} +\if@ltjs@mag@xreal\RequirePackage{type1cm} +\ifdim\ltjs@mpt=\p@\else + \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax + \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax + \newluafunction\ltjs@@magnify@font@calc + \begingroup\catcode`\%=12\relax + \directlua{ + local getdimen, mpt=tex.getdimen, tex.getdimen('ltjs@mpt')/65536 + local t = lua.get_functions_table() + t[\the\ltjs@@magnify@font@calc] = function() + tex.sprint(math.floor(0.5+mpt*getdimen('dimen@'))) + end + function luatexja.ltjs_unmagnify_fsize(a) + local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536)) + tex.sprint( (s:match('%.0$')) and s:sub(1,-3) or s ) + end + } + \endgroup + \def\ltjs@magnify@external@font#1 at#2 at#3\@nil{% + \def\@tempa{#1}\def\@tempb{#2}% + \ifx\@tempb\@empty + \edef\@tempb{ scaled\directlua{% + tex.sprint(math.floor(0.5+\ltjs@magscale*1000)) + }}% + \else + \dimen@\@tempb\relax + \edef\@tempb{ at\luafunction\ltjs@@magnify@font@calc sp}% + \fi + \edef\@tempa{\def\noexpand\external@font{\@tempa\@tempb}}% + } + \let\ltjs@orig@get@external@font=\get@external@font + \def\get@external@font{% + \edef\f@size{\directlua{luatexja.ltjs_unmagnify_fsize(\f@size)}}% + \ltjs@orig@get@external@font + \begingroup + \edef\@tempa{\external@font\space at\space at}% + \expandafter\ltjs@magnify@external@font\@tempa\@nil + \expandafter\endgroup\@tempa + } +\fi\fi % \end{macrocode} % +% % \paragraph{PDFの用紙サイズの設定} % % \begin{macro}{\pdfpagewidth} % \begin{macro}{\pdfpageheight} % 出力のPDFの用紙サイズをここで設定しておきます。 % |tombow| が真のときは2インチ足しておきます。 +% +% [2015-10-18 LTJ] Lua\TeX\ 0.81.0ではプリミティブの名称変更がされたので, +% それに合わせておきます。 % \begin{macrocode} \setlength{\@tempdima}{\paperwidth} \setlength{\@tempdimb}{\paperheight} @@ -718,8 +743,13 @@ \advance \@tempdima 2in \advance \@tempdimb 2in \fi -\setlength{\pdfpagewidth}{\@tempdima} -\setlength{\pdfpageheight}{\@tempdimb} +\ifdefined\pdfpagewidth + \setlength{\pdfpagewidth}{\@tempdima} + \setlength{\pdfpageheight}{\@tempdimb} +\else + \setlength{\pagewidth}{\@tempdima} + \setlength{\pageheight}{\@tempdimb} +\fi % \end{macrocode} % \end{macro} % \end{macro} @@ -743,7 +773,7 @@ % % この |ltjsclasses| でも,派生元の |jsclasses| と同じように, % この公称10ポイントのフォントをここでは13級に縮小して -% 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924872$倍 +% 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924715$倍 % すればいいことになります。 % % |\ltj@stdmcfont|,~|\ltj@stdgtfont| による、デフォルトで使われ明朝・ゴシックのフォントの @@ -751,25 +781,30 @@ % 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ |luatexja.cfg| によって % セットされるものです。 % +% [2014-07-26 LTJ] なお,現状のところ,縦組用JFMは |jfm-ujisv.lua| しか準備していません。 +% +% [2016-03-21 LTJ] 拡大率の計算で1~ptを$1/72.27$インチでなく0.3514~mmと間違えて扱っていたのを修正. % \begin{macrocode} %<*!jspf> \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax \ifmingoth - \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=min}{} - \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=min}{} + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=min}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=min}{} \else \ifptexjis - \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=jis}{} - \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=jis}{} + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=jis}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=jis}{} \else - \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=ujis}{} - \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujis}{} + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=ujis}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=ujis}{} \fi \fi +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=ujisv}{} % % \end{macrocode} % -% これにより,公称10ポイントの和文フォントを0.924872倍したことにより, +% これにより,公称10ポイントの和文フォントを0.924715倍したことにより, % 約9.25ポイント, % DTPで使う単位(1/72インチ)では9.21ポイントということになり, % 公称10ポイントといっても実は9ポイント強になります。 @@ -793,6 +828,8 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujis}{} \fi \fi +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujisv}{} % % \end{macrocode} % @@ -800,8 +837,8 @@ % タイプライタ体の代わりにゴシック体を使うことにします。 % % [2014-03-25 LTJ] タイプライタ体に合わせるファミリを |\jttdefault| とし, -% 通常のゴシック体と別にできるようにしました.|\jttdefault| は,標準で -% |\gtdefault| と定義しています. +% 通常のゴシック体と別にできるようにしました。|\jttdefault| は,標準で +% |\gtdefault| と定義しています。 % % [2003-03-16] イタリック体,斜体について,和文でゴシックを当てていましたが, % 数学の定理環境などで多量のイタリック体を使うことがあり,ゴシックに @@ -814,6 +851,9 @@ % % [2004-11-03] |\rmfamily| も和文対応にしました。 % +% [2016-01-30 LTJ] |\rmfamily|, |\sffamily|, |\ttfamily| の再定義をLua\TeX-ja +% カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\ +% を有効にさせるだけでよいです。 % \begin{macrocode} \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{} @@ -833,16 +873,7 @@ %% \DeclareFontShape{JT3}{gt}{m}{sl}{<->ssub*gt/m/n}{} %% \DeclareFontShape{JT3}{mc}{bx}{it}{<->ssub*gt/m/n}{} %% \DeclareFontShape{JT3}{mc}{bx}{sl}{<->ssub*gt/m/n}{} -\renewcommand\jttdefault{\gtdefault} -\DeclareRobustCommand\rmfamily - {\not@math@alphabet\rmfamily\mathrm - \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont} -\DeclareRobustCommand\sffamily - {\not@math@alphabet\sffamily\mathsf - \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont} -\DeclareRobustCommand\ttfamily - {\not@math@alphabet\ttfamily\mathtt - \romanfamily\ttdefault\kanjifamily\jttdefault\selectfont} +\renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue % \end{macrocode} %% % Lua\TeX-jaでは和文組版に伴うグルーはノードベースで挿入するようになり,また @@ -960,11 +991,11 @@ % % [2014-05-14 LTJ] |\ltjsetparameter|の実行は時間がかかるので, % |\ltjsetkanjiskip| と |\ltjsetxkanjiskip|(両者とも, -% 実行前には |\ltj@setpar@global| の実行が必要)にしました. +% 実行前には |\ltj@setpar@global| の実行が必要)にしました。 % % [2014-12-24 LTJ] |jsclasses| では,|\@setfontsize| 中で |xkanjiskip| を -% 設定するのは現在の和欧文間空白の自然長が正の場合だけでした. -% |ltjsclasses| では最初からこの判定が抜けてしまっていたので,復活させます. +% 設定するのは現在の和欧文間空白の自然長が正の場合だけでした。 +% |ltjsclasses| では最初からこの判定が抜けてしまっていたので,復活させます。 % % \begin{macrocode} \def\@setfontsize#1#2#3{% @@ -981,18 +1012,27 @@ \fi \fi \ltj@setpar@global - \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw} + \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw \@tempskipa=\ltjgetparameter{xkanjiskip} \ifdim\@tempskipa>\z@ \if@slide - \ltjsetxkanjiskip{0.1em} + \ltjsetxkanjiskip .1em \else - \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em} + \ltjsetxkanjiskip .25em plus .15em minus .06em \fi \fi} % \end{macrocode} % \end{macro} % +% \begin{macro}{\ltjs@setfontsize} +% クラスファイルの内部では,拡大率も考慮した |ltjs@setfontsize| を +% |\@setfontsize| の変わりに用いることにします。 +% \begin{macrocode} +\def\ltjs@setfontsize#1#2#3{% + \@setfontsize#1{#2\ltjs@mpt}{#3\ltjs@mpt}} +% \end{macrocode} +% \end{macro} +% % これらのグルーをもってしても行分割ができない場合は, % |\emergencystretch| に訴えます。 % @@ -1015,6 +1055,9 @@ % % TODO: Hasumiさん [qa:54539] のご指摘は考慮中です。 % +% [2015-01-07 LTJ] 遅くなりましたが, +% \url{http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1005} にあったZRさんのパッチを取り込みました。 +% % \begin{macrocode} \newif\ifnarrowbaselines \if@english @@ -1032,6 +1075,11 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} +\def\ltj@@ifnarrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} % \end{macrocode} % \end{macro} % \end{macro} @@ -1056,11 +1104,9 @@ % % \begin{macrocode} \renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% - \fi + \ltj@@ifnarrowbaselines + {\ltjs@setfontsize\normalsize\@xpt\@xiipt}% + {\ltjs@setfontsize\normalsize\@xpt{\n@baseline}}% % \end{macrocode} % % 数式の上のアキ(|\abovedisplayskip|), @@ -1073,9 +1119,9 @@ % いましたが,結局,微調節してみることにしました。 % % \begin{macrocode} - \abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayskip 9\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayskip 11\ltjs@mpt \@plus3\ltjs@mpt \@minus4\ltjs@mpt + \abovedisplayshortskip \z@ \@plus3\ltjs@mpt + \belowdisplayskip 9\ltjs@mpt \@plus3\ltjs@mpt \@minus4\ltjs@mpt \belowdisplayshortskip \belowdisplayskip % \end{macrocode} % @@ -1089,7 +1135,7 @@ % ここで実際に標準フォントサイズで初期化します。 % % \begin{macrocode} -\normalsize +\mcfamily\selectfont\normalsize % \end{macrocode} % % \end{macro} @@ -1131,15 +1177,13 @@ % % \begin{macrocode} \newcommand{\small}{% - \ifnarrowbaselines -% \@setfontsize\small\@ixpt{11}% -% \@setfontsize\small{8.8888}{11}% - \else -% \@setfontsize\small\@ixpt{13}% -% \@setfontsize\small{8.8888}{13.2418}% - \fi - \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ + \ltj@@ifnarrowbaselines +% {\ltjs@setfontsize\small\@ixpt{11}}% +% {\ltjs@setfontsize\small{8.8888}{11}}% +% {\ltjs@setfontsize\small\@ixpt{13}}% +% {\ltjs@setfontsize\small{8.8888}{13.2418}}% + \abovedisplayskip 9\ltjs@mpt \@plus3\ltjs@mpt \@minus4\ltjs@mpt + \abovedisplayshortskip \z@ \@plus3\ltjs@mpt \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini @@ -1157,15 +1201,13 @@ % % \begin{macrocode} \newcommand{\footnotesize}{% - \ifnarrowbaselines -% \@setfontsize\footnotesize\@viiipt{9.5}% -% \@setfontsize\footnotesize{8.8888}{11}% - \else -% \@setfontsize\footnotesize\@viiipt{11}% -% \@setfontsize\footnotesize{8.8888}{13.2418}% - \fi - \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ - \abovedisplayshortskip \z@ \@plus2\p@ + \ltj@@ifnarrowbaselines +% {\ltjs@setfontsize\footnotesize\@viiipt{9.5}}% +% {\ltjs@setfontsize\footnotesize{8.8888}{11}}% +% {\ltjs@setfontsize\footnotesize\@viiipt{11}}% +% {\ltjs@setfontsize\footnotesize{8.8888}{13.2418}}% + \abovedisplayskip 6\ltjs@mpt \@plus2\ltjs@mpt \@minus3\ltjs@mpt + \abovedisplayshortskip \z@ \@plus2\ltjs@mpt \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini @@ -1194,21 +1236,21 @@ % [2004-11-03] |\HUGE| を追加。 % % \begin{macrocode} -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} -\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\scriptsize}{\ltjs@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\ltjs@setfontsize\tiny\@vpt\@vipt} \if@twocolumn -% \newcommand{\large}{\@setfontsize\large\@xiipt{\n@baseline}} -% \newcommand{\large}{\@setfontsize\large{11.111}{\n@baseline}} +% \newcommand{\large}{\ltjs@setfontsize\large\@xiipt{\n@baseline}} +% \newcommand{\large}{\ltjs@setfontsize\large{11.111}{\n@baseline}} \else -% \newcommand{\large}{\@setfontsize\large\@xiipt{17}} -% \newcommand{\large}{\@setfontsize\large{11.111}{17}} +% \newcommand{\large}{\ltjs@setfontsize\large\@xiipt{17}} +% \newcommand{\large}{\ltjs@setfontsize\large{11.111}{17}} \fi -%\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} -%\newcommand{\Large}{\@setfontsize\Large{12.222}{21}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} -\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} -\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} -\newcommand{\HUGE}{\@setfontsize\HUGE{30}{40}} +%\newcommand{\Large}{\ltjs@setfontsize\Large\@xivpt{21}} +%\newcommand{\Large}{\ltjs@setfontsize\Large{12.222}{21}} +\newcommand{\LARGE}{\ltjs@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\ltjs@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\ltjs@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\ltjs@setfontsize\HUGE{30}{40}} % \end{macrocode} % \end{macro} % \end{macro} @@ -1264,7 +1306,7 @@ % \begin{macrocode} %\setlength\columnsep{2\zw} %\setlength\columnsep{28truebp} -\setlength\columnseprule{0\p@} +\setlength\columnseprule{\z@} % \end{macrocode} % \end{macro} % \end{macro} @@ -1282,10 +1324,10 @@ % \texttt{normal...} の付いた方は保存用です。 % % \begin{macrocode} -\setlength\lineskip{1\p@} -\setlength\normallineskip{1\p@} -\setlength\lineskiplimit{1\p@} -\setlength\normallineskiplimit{1\p@} +\setlength\lineskip{1\ltjs@mpt} +\setlength\normallineskip{1\ltjs@mpt} +\setlength\lineskiplimit{1\ltjs@mpt} +\setlength\normallineskiplimit{1\ltjs@mpt} % \end{macrocode} % \end{macro} % \end{macro} @@ -1316,7 +1358,7 @@ % |\parindent| は段落の先頭の字下げ幅です。 % % \begin{macrocode} -\setlength\parskip{0\p@} +\setlength\parskip{\z@} \if@slide \setlength\parindent{0\zw} \else @@ -1383,9 +1425,9 @@ % ことにしました。 % % \begin{macrocode} -\setlength\topskip{10\p@} +\setlength\topskip{10\ltjs@mpt} \if@slide - \setlength\headheight{0\p@} + \setlength\headheight{0\ltjs@mpt} \else \setlength\headheight{2\topskip} \fi @@ -1405,7 +1447,7 @@ % \begin{macrocode} %<*article|kiyou> \if@slide - \setlength\footskip{0pt} + \setlength\footskip{\z@} \else \setlength\footskip{0.03367\paperheight} \ifdim\footskip<\baselineskip @@ -1421,7 +1463,7 @@ \setlength\footskip{\baselineskip} \fi \else - \setlength\footskip{0pt} + \setlength\footskip{\z@} \fi % % \end{macrocode} @@ -1437,7 +1479,7 @@ % \begin{macrocode} %<*article> \if@slide - \setlength\headsep{0\p@} + \setlength\headsep{0\ltjs@mpt} \else \setlength\headsep{\footskip} \addtolength\headsep{-\topskip} @@ -1456,8 +1498,8 @@ \addtolength\headsep{-\topskip} % %<*kiyou> -\setlength\headheight{0\p@} -\setlength\headsep{0\p@} +\setlength\headheight{0\ltjs@mpt} +\setlength\headsep{0\ltjs@mpt} % % \end{macrocode} % \end{macro} @@ -1582,7 +1624,7 @@ %\setlength{\textheight}{51\baselineskip} %\setlength{\textheight}{47\baselineskip} \addtolength{\textheight}{\topskip} -\addtolength{\textheight}{0.1\p@} +\addtolength{\textheight}{0.1\ltjs@mpt} %\setlength{\mathindent}{10mm} % \end{macrocode} % \end{macro} @@ -1695,7 +1737,7 @@ % 和文の行送りを考えてもうちょっと大きくします。 % % \begin{macrocode} -\setlength{\skip\footins}{16\p@ \@plus 5\p@ \@minus 2\p@} +\setlength{\skip\footins}{16\ltjs@mpt \@plus 5\ltjs@mpt \@minus 2\ltjs@mpt} % \end{macrocode} % \end{macro} % @@ -1821,9 +1863,9 @@ % |\intextsep| は本文の途中に出力されるフロートと本文との距離です。 % % \begin{macrocode} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\floatsep {12\ltjs@mpt \@plus 2\ltjs@mpt \@minus 2\ltjs@mpt} +\setlength\textfloatsep{20\ltjs@mpt \@plus 2\ltjs@mpt \@minus 4\ltjs@mpt} +\setlength\intextsep {12\ltjs@mpt \@plus 2\ltjs@mpt \@minus 2\ltjs@mpt} % \end{macrocode} % \end{macro} % \end{macro} @@ -1835,8 +1877,8 @@ % 二段組のときの段抜きのフロートについての値です。 % % \begin{macrocode} -\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dblfloatsep {12\ltjs@mpt \@plus 2\ltjs@mpt \@minus 2\ltjs@mpt} +\setlength\dbltextfloatsep{20\ltjs@mpt \@plus 2\ltjs@mpt \@minus 4\ltjs@mpt} % \end{macrocode} % \end{macro} % \end{macro} @@ -1851,9 +1893,9 @@ % |\@fpsep| はフロート間に入ります。 % % \begin{macrocode} -\setlength\@fptop{0\p@ \@plus 1fil} -\setlength\@fpsep{8\p@ \@plus 2fil} -\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@fptop{0\ltjs@mpt \@plus 1fil} +\setlength\@fpsep{8\ltjs@mpt \@plus 2fil} +\setlength\@fpbot{0\ltjs@mpt \@plus 1fil} % \end{macrocode} % \end{macro} % \end{macro} @@ -1866,9 +1908,9 @@ % 段抜きフロートについての値です。 % % \begin{macrocode} -\setlength\@dblfptop{0\p@ \@plus 1fil} -\setlength\@dblfpsep{8\p@ \@plus 2fil} -\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\ltjs@mpt \@plus 1fil} +\setlength\@dblfpsep{8\ltjs@mpt \@plus 2fil} +\setlength\@dblfpbot{0\ltjs@mpt \@plus 1fil} % \end{macrocode} % \end{macro} % \end{macro} @@ -2172,16 +2214,16 @@ \begin{center} \mbox{} \\[1\zw] \large - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\ltjs@mpt depth2\ltjs@mpt\relax}\par \smallskip \@title \smallskip - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\ltjs@mpt depth2\ltjs@mpt\relax}\par \vfill {\small \@author}% \end{center} \else - \vskip 60\p@ + \vskip 60\ltjs@mpt \begin{center}% {\LARGE \@title \par}% \vskip 3em% @@ -2484,7 +2526,7 @@ \@afterheading \fi \if@slide - {\vskip-6pt\maybeblue\hrule height0pt depth1pt\vskip7pt\relax}% + {\vskip-6\ltjs@mpt\maybeblue\hrule height0\ltjs@mpt depth1\ltjs@mpt\vskip7\ltjs@mpt\relax}% \fi \par % 2000-12-18 \ignorespaces} @@ -2807,7 +2849,7 @@ \normalfont \ifnum \c@secnumdepth >-2\relax \huge\headfont \prepartname\thepart\postpartname - \par\vskip20\p@ + \par\vskip20\ltjs@mpt \fi \Huge \headfont #2\par}% \@endpart} @@ -2905,8 +2947,8 @@ \addcontentsline{toc}{chapter}{#1}% \fi \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% + \addtocontents{lof}{\protect\addvspace{10\ltjs@mpt}}% + \addtocontents{lot}{\protect\addvspace{10\ltjs@mpt}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else @@ -3587,7 +3629,7 @@ % |array| 環境の列間には |\arraycolsep| の2倍の幅の空きが入ります。 % % \begin{macrocode} -\setlength\arraycolsep{5\p@} +\setlength\arraycolsep{5\ltjs@mpt} % \end{macrocode} % \end{macro} % @@ -3596,7 +3638,7 @@ % |tabular| 環境の列間には |\tabcolsep| の2倍の幅の空きが入ります。 % % \begin{macrocode} -\setlength\tabcolsep{6\p@} +\setlength\tabcolsep{6\ltjs@mpt} % \end{macrocode} % \end{macro} % @@ -3605,7 +3647,7 @@ % |array|,|tabular| 環境内の罫線の幅です。 % % \begin{macrocode} -\setlength\arrayrulewidth{.4\p@} +\setlength\arrayrulewidth{.4\ltjs@mpt} % \end{macrocode} % \end{macro} % @@ -3614,7 +3656,7 @@ % |array|,|tabular| 環境での二重罫線間のアキです。 % % \begin{macrocode} -\setlength\doublerulesep{2\p@} +\setlength\doublerulesep{2\ltjs@mpt} % \end{macrocode} % \end{macro} % @@ -3653,8 +3695,8 @@ % |\fbox|,|\framebox| の罫線の幅です。 % % \begin{macrocode} -\setlength\fboxsep{3\p@} -\setlength\fboxrule{.4\p@} +\setlength\fboxsep{3\ltjs@mpt} +\setlength\fboxrule{.4\ltjs@mpt} % \end{macrocode} % \end{macro} % \end{macro} @@ -3863,8 +3905,8 @@ % \begin{macrocode} \newlength\abovecaptionskip \newlength\belowcaptionskip -\setlength\abovecaptionskip{5\p@} % 元: 10\p@ -\setlength\belowcaptionskip{5\p@} % 元: 0\p@ +\setlength\abovecaptionskip{5\ltjs@mpt} % 元: 10\p@ +\setlength\belowcaptionskip{5\ltjs@mpt} % 元: 0\p@ % \end{macrocode} % \end{macro} % \end{macro} @@ -3875,15 +3917,21 @@ % % [2003-11-05] ロジックを少し変えてみました。 % +% [2015-05-26] |listings| パッケージを使うときに|title| を指定すると次のエラーが出るのを修正。 +% \begin{verbatim} +% ! Missing number, treated as zero. +% \end{verbatim} +% +% % \begin{macrocode} %<*!jspf> % \long\def\@makecaption#1#2{{\small % \advance\leftskip1cm % \advance\rightskip1cm % \vskip\abovecaptionskip -% \sbox\@tempboxa{#1\hskip1\zw\relax #2}% +% \sbox\@tempboxa{#1{\hskip1\zw}#2}% % \ifdim \wd\@tempboxa >\hsize -% #1\hskip1\zw\relax #2\par +% #1{\hskip1\zw}#2\par % \else % \global \@minipagefalse % \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% @@ -3893,9 +3941,9 @@ \advance\leftskip .0628\linewidth \advance\rightskip .0628\linewidth \vskip\abovecaptionskip - \sbox\@tempboxa{#1\hskip1\zw\relax #2}% + \sbox\@tempboxa{#1{\hskip1\zw}#2}% \ifdim \wd\@tempboxa <\hsize \centering \fi - #1\hskip1\zw\relax #2\par + #1{\hskip1\zw}#2\par \vskip\belowcaptionskip}} % %<*jspf> @@ -4110,7 +4158,7 @@ \ifnum \c@tocdepth >-2\relax % \addpenalty\@secpenalty % \addpenalty{-\@highpenalty}% - \addvspace{2.25em \@plus\p@}% + \addvspace{2.25em \@plus\ltjs@mpt}% \begingroup \parindent \z@ % \@pnumwidth should be \@tocrmarg @@ -4141,7 +4189,7 @@ \newcommand*{\l@chapter}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% - \addvspace{1.0em \@plus\p@} + \addvspace{1.0em \@plus\ltjs@mpt} % \vskip 1.0em \@plus\p@ % book.clsでは↑がこうなっている \begingroup \parindent\z@ @@ -4169,7 +4217,7 @@ \newcommand*{\l@section}[2]{% \ifnum \c@tocdepth >\z@ \addpenalty{\@secpenalty}% - \addvspace{1.0em \@plus\p@}% + \addvspace{1.0em \@plus\ltjs@mpt}% \begingroup \parindent\z@ % \rightskip\@pnumwidth @@ -4284,7 +4332,7 @@ % % \begin{macrocode} \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else - \vskip \z@ \@plus.2\p@ + \vskip \z@ \@plus.2\ltjs@mpt {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M @@ -4522,7 +4570,7 @@ % \@mkboth{\indexname}{\indexname}% \plainifnotempty % \thispagestyle{plain} \parindent\z@ - \parskip\z@ \@plus .3\p@\relax + \parskip\z@ \@plus .3\ltjs@mpt\relax \let\item\@idxitem \raggedright \footnotesize\narrowbaselines @@ -4557,7 +4605,7 @@ % 索引で先頭文字ごとのブロックの間に入るスペースです。 % % \begin{macrocode} -\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\newcommand{\indexspace}{\par \vskip 10\ltjs@mpt \@plus5\ltjs@mpt \@minus3\ltjs@mpt\relax} % \end{macrocode} % \end{macro} % @@ -4610,9 +4658,11 @@ % % [2013-05-14] plcore.ltx に倣った形に書き直しました(Thanks: 北川さん)。 % +% [2014-07-02 LTJ] |\ifydir| を使わない形に書換えました。 +% % \begin{macrocode} \renewcommand\@makefnmark{\hbox{}\hbox{% - \ifydir \@textsuperscript{\normalfont\@thefnmark}% + \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} % \end{macrocode} % \end{macro} @@ -4643,9 +4693,9 @@ % % \begin{macrocode} \renewcommand{\footnoterule}{% - \kern-3\p@ - \hrule width .4\columnwidth - \kern 2.6\p@} + \kern-3\ltjs@mpt + \hrule width .4\columnwidth height .4\ltjs@mpt + \kern 2.6\ltjs@mpt} % \end{macrocode} % \end{macro} % @@ -4732,9 +4782,9 @@ % % 段落頭のかぎかっこなどを見かけ1字半下げから全角1字下げに直します。 % -% [2012-04-24 LTJ] LuaTeX-jaではJFMに段落開始時の括弧類の字下げ幅をコントロール +% [2012-04-24 LTJ] Lua\TeX-jaではJFMに段落開始時の括弧類の字下げ幅をコントロール % する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる -% ため,うまく働きませんでした.形を変えて復活させます. +% ため,うまく働きませんでした。形を変えて復活させます。 % % |\item| 命令の直後です。 %