OSDN Git Service

Resolved conflicts between 3a2e3a7 and 7c7fe5e.
[luatex-ja/luatexja.git] / src / ltjsclasses / ltjsclasses.dtx
index 31c11b4..bb4692a 100644 (file)
@@ -22,7 +22,7 @@
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5218}
+% \CheckSum{5224}
 %% \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
 % オプション自体は残してあります(つまり,削除されたオプションが指定されていても
 % コンパイルは通る)。
 % \begin{itemize}
-% \item フォントメトリック関係のオプション |mingoth|, |winjis|, |jis| が
-%   効かないようにしてあります(要検討)。
+% \item フォントメトリック関係のオプション |winjis| は単に無視されます.
+% \item 標準では|jfm-ujis.lua|(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します.
 % \item up\TeX 関係のオプションを削除してあります。
 % \item |disablejfam| オプションが無効になっています。
+%       ←本当にそれでいい? \LaTeX カーネルレベルではまだ16個のままのような気がします.
 % \item |papersize| オプションの指定に関わらず PDF のページサイズは適切に
 %   設定されます。
 % \item 「\texttt{amsmath} との衝突の回避」のコードは,上流で既に対処されている上に
 %
 % \paragraph{和文フォントメトリックの選択}
 %
-% 一旦無効にします。Lua\TeX-ja でも対応する JFM ファイルを用意すれば
-% 互換性は確保できると思われます(要検討)。
-%
+% ここではOTFパッケージのメトリックを元とした,|jfm-ujis.lua|メトリックを標準で使います。
+% 古い \texttt{min10},\texttt{goth10} 互換のメトリックを使いたいときは \texttt{mingoth}
+% というオプションを指定します。
+% p\TeX でよく利用される \texttt{jis} フォントメトリックと互換のメトリックを使いたい場合は,
+% \texttt{ptexjis} というオプションを指定します。
+% \texttt{winjis} メトリックは用済みのため,\texttt{winjis} オプションは無視されます.
+% 
 %    \begin{macrocode}
-\newif\ifwinjis
-\winjisfalse
 \newif\ifmingoth
 \mingothfalse
 \newif\ifjisfont
 \jisfontfalse
-\newif\if@jsc@uplatex
-\@jsc@uplatexfalse
+\newif\ifptexjis
+\ptexjisfalse
+\DeclareOption{winjis}{}\DeclareOption{uplatex}{} % These 2 options are ignored.
 \DeclareOption{mingoth}{\mingothtrue}
-\DeclareOption{winjis}{\winjistrue}
+\DeclareOption{ptexjis}{\ptexjistrue}
 \DeclareOption{jis}{\jisfonttrue}
-\DeclareOption{uplatex}{\@jsc@uplatextrue\winjisfalse}
 %    \end{macrocode}
 %
 % \paragraph{papersizeスペシャルの利用}
 % \end{macro}
 % \end{macro}
 %
+% \section{和文フォントの選択}
+%
+% JISの1ポイントは0.3514mm(約1/72.28インチ),
+% PostScriptの1ポイントは1/72インチですが,
+% \TeX では1/72.27インチを1pt(ポイント),
+% 1/72インチを1bp(ビッグポイント)と表します。
+% QuarkXPressなどのDTPソフトは標準で1/72インチを1ポイント
+% としますが,以下ではすべて1/72.27インチを1ptとしています。
+% 1インチは定義により25.4mmです。
+%
+% \pTeX (アスキーが日本語化した\TeX )では,例えば従来のフォントメトリック
+% \texttt{min10} やJISフォントメトリックでは「公称10ポイントの和文フォントは,
+% 実際には9.62216ptで出力される(メトリック側で0.962216倍される)」という
+% 仕様になっています.
+% 一方,Lua\TeX-jaの提供するメトリックでは,そのようなことはありません.
+% 公称10ポイントの和文フォントは,10ポイントで出力されます.
+% 
+% この|ltjsclasses|でも,派生元の|jsclasses|と同じように,
+% この公称10ポイントのフォントをここでは13級に縮小して
+% 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924872$ 倍
+% すればいいことになります。
+%
+%
+%    \begin{macrocode}
+%<*!jspf>
+\ifmingoth
+  \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{}
+  \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min}{}
+\else
+  \ifptexjis
+    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=jis}{}
+    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=jis}{}
+  \else
+    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=ujis}{}
+    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=ujis}{}
+  \fi
+\fi
+%</!jspf>
+%    \end{macrocode}
+%
+% これにより,公称10ポイントの和文フォントを0.924872倍したことにより,
+% 約9.25ポイント,
+% DTPで使う単位(1/72インチ)では9.21ポイントということになり,
+% 公称10ポイントといっても実は9ポイント強になります。
+%
+% 某学会誌では,
+% 和文フォントをPostScriptの9ポイントにするために,
+% $0.9*72.27/72 \simeq 0.903375$ 倍します。
+%
+%    \begin{macrocode}
+%<*jspf>
+\ifmingoth
+  \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=min}{}
+  \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=min}{}
+\else
+  \ifptexjis
+    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=jis}{}
+    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=jis}{}
+  \else
+    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=ujis}{}
+    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=ujis}{}
+  \fi
+\fi
+%</jspf>
+%    \end{macrocode}
+%
 % 和文でイタリック体,斜体,サンセリフ体,
 % タイプライタ体の代わりにゴシック体を使うことにします。
 %
         {\not@math@alphabet\ttfamily\mathtt
          \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
 %    \end{macrocode}
-%
-% \begin{macro}{\textmc}
-% \begin{macro}{\textgt}
-%
-% 次のコマンドはイタリック補正なども含めて定義されていますが,
-% 和文ではイタリック補正はあまり役に立たず,
-% 欧文・和文間のグルーが入らないという副作用もありますので,
-% 単純な定義に直します。
-%
-%    \begin{macrocode}
-\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}}
-\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
+%%
+% Lua\TeX-jaでは和文組版に伴うグルーはノードベースで挿入するようになり,また
+% 欧文・和文間のグルーとイタリック補正は干渉しないようになりました.
+% まだ「和文の斜体」についてはLua\LaTeX カーネル側でまともな対応がされていませんが,
+% |jsclasses.dtx|で行われていた|\textmc|, |\textgt|の再定義は不要のように思われます.
 %
 % 新クラスでも数式内で日本語が使えるようにしました。
 %