OSDN Git Service

ltj-adjust.lua: support the case when all entry of end_adjust is less than 0
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index 4f4cb3b..d089d23 100644 (file)
@@ -21,7 +21,7 @@
 %
 %  Copyright 1993 1994 1995 1996 1997 1998 1999
 %  The LaTeX3 Project and any individual authors listed elsewhere
-%  in this file. 
+%  in this file.
 %
 %  Copyright 1995-1999 ASCII Corporation.
 %  Copyright 1999-2016 Haruhiko Okumura
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2016/07/21 ltjsclasses ]
+  [2016/08/03 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 \documentclass{ltjsarticle}
 \usepackage{doc}
 \usepackage{fontspec}
 \usepackage[ipaex,nfssonly]{luatexja-preset}
+\ltjsetparameter{alxspmode={`\*,allow}}
+\ltjsetparameter{alxspmode={`\\,allow}}
 %%%%\usepackage{unicode-math}
 %%%%\setmathfont{Latin Modern Math}
 \usepackage[unicode]{hyperref}
 %    \item \texttt{nomag}オプション指定時には,単にレイアウトに用いる各種長さの値をスケールさせるだけです。
 %      そのため,例えば本文の文字サイズが17\,ptのときにはcmr10でなくcmr17を用いることになり,組版結果の印象が
 %      異なる恐れがあります。
-%    \item \texttt{nomagx}オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに
+%    \item \texttt{nomag*}オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに
 %      cmr10を拡大縮小する,など)ため,\LaTeX のフォント選択システムNFSSへパッチを当てます。
 %      こうすることで前項に書いた不具合はなくなりますが,かえって別の不具合が起きる可能性
-%      はあります。
+%      はあります\footnote{%
+%        \texttt{nomag*}は\texttt{jsclasses}でも利用可能ですが,\texttt{ltjsclasses}では\texttt{jsclasses}とは
+%        別の実装をしています。
+%      }。
 %   \end{itemize}
-%   標準では\texttt{nomagx}オプションが有効になっています。\texttt{jsclasses}で用意されていた
-%   \texttt{usemag}オプションを指定すると警告を出します
+%   標準では\texttt{nomag*}オプションが有効になっています。\texttt{jsclasses}で用意され,かつ既定になっている
+%   \texttt{usemag}オプションを指定すると警告を出します
 % \end{itemize}
 %
 % [2014-02-07 LTJ] jsclasses 2014-02-07 ベースにしました。
 % [2016-03-21 LTJ] Lua\TeX~beta-0.87.0 ではPDF出力時に|\mag|が使用できなくなったので,
 % ZRさんの\texttt{bxjscls}を参考に使わないように書き換えました。
 %
-% [2016-03-31 LTJ] \texttt{xreal}オプションを標準で有効にしました
+% [2016-03-31 LTJ] \texttt{xreal}オプションを標準で有効にしました
 %
-% [2016-07-12 LTJ] \texttt{jsclasses}開発版に合わせ\texttt{real},~\texttt{xreal}オプションの名称を変更するなどの変更を行いました。
+% [2016-07-12 LTJ] \texttt{jsclasses}開発版に合わせ\texttt{real},~\texttt{xreal}オプションの名称を変更するなどの変更を行いました。
 %
-% [2016-07-18 LTJ] \texttt{usemag}オプションが指定されると警告を出すようにしました
+% [2016-07-18 LTJ] \texttt{usemag}オプションが指定されると警告を出すようにしました
 %
-% [2016-07-21 LTJ] \LaTeX 等のロゴの再定義で,\texttt{jslogo}パッケージがあればそちらを読み込むことにしました
+% [2016-07-21 LTJ] \LaTeX 等のロゴの再定義で,\texttt{jslogo}パッケージがあればそちらを読み込むことにしました
 %
 % \StopEventually{}
 %
 % \pLaTeXe の \texttt{b5paper}
 % は $257\,\mathrm{mm} \times 182\,\mathrm{mm}$ になっています。
 % ここでは\pLaTeXe にならってJISに従いました。
-% 
+%
 % デフォルトは \texttt{a4paper} です。
 %
 % \texttt{b5var}(B5変形,182mm×230mm),
 % [2016-07-08] |\mag| を使わずに各種寸法をスケールさせるためのオプション \texttt{nomag} を新設しました。
 % \texttt{usemag} オプションの指定で従来通りの動作となります。デフォルトは \texttt{usemag} です。
 %
+% [2016-07-24] オプティカルサイズを調整するためにNFSSへパッチを当てるオプション \texttt{nomag*} を新設しました。
+%
 %    \begin{macrocode}
 \def\jsc@magscale{1}
 \DeclareOption{slide}{\@slidetrue\def\jsc@magscale{3.583}\@landscapetrue\@titlepagetrue}
 %    \end{macrocode}
 %
 % \paragraph{オプティカルサイズの補正}
-% \texttt{nomagx}オプション指定時には,本文のフォントサイズが10pt以外の場合に
+% \texttt{nomag*}オプション指定時には,本文のフォントサイズが10pt以外の場合に
 % オプティカルサイズの補正を行うためにNFSSにパッチを当てます。
 % 現在の\texttt{ltjsclasses}ではこのパッチ当ては標準では行いますが,
 % 将来どうなるかわからないので\texttt{nomag}で無効化することができるようにしました。
 %
-% \texttt{noxreal},~\texttt{real}は旧来の互換性として今は残してありますが2017年7月に削除する予定です。
+% \texttt{noxreal},~\texttt{real}は旧来の互換性として今は残してありますが2017年7月に削除する予定です。
 %    \begin{macrocode}
 \newif\if@ltjs@mag@xreal
 \@ltjs@mag@xrealtrue
-\DeclareOption{nomagx}{\@ltjs@mag@xrealtrue}
+\DeclareOption{nomag*}{\@ltjs@mag@xrealtrue}
 \DeclareOption{nomag}{\@ltjs@mag@xrealfalse}
 \DeclareOption{noxreal}{%
   \ClassWarningNoLine{\jsc@clsname}{%
     This \jsc@clsname\space cls does not support `usemag'\MessageBreak
        option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
   \@ltjs@mag@xrealtrue}
-  
+
 
 %    \end{macrocode}
 %
 % [2016-03-28 LTJ] |\luafunction|を使うようにし,また本文のフォントサイズが10\,ptのときには
 % (不要なので)パッチを当てないことにしました。
 %
-% [2016-04-04 LTJ] NFSSへのパッチを修正
+% [2016-04-04 LTJ] NFSSへのパッチを修正
 %    \begin{macrocode}
 \if@ltjs@mag@xreal\RequirePackage{type1cm}
 \ifdim\jsc@mpt=\p@\else
 % 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924715$倍
 % すればいいことになります。
 %
-% |\ltj@stdmcfont|,~|\ltj@stdgtfont| によるデフォルトで使われる明朝・ゴシックのフォントの
-% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく
+% |\ltj@stdmcfont|,~|\ltj@stdgtfont| によるデフォルトで使われる明朝・ゴシックのフォントの
+% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく
 % 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ\texttt{luatexja.cfg}によって
 % セットされるものです。
 %
 % [2014-07-26 LTJ] なお,現状のところ,縦組用JFMは\texttt{jfm-ujisv.lua}しか準備していません。
 %
-% [2016-03-21 LTJ] 拡大率の計算で1~ptを$1/72.27$インチでなく0.3514~mmと間違えて扱っていたのを修正
+% [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
 % [2004-11-03] |\rmfamily| も和文対応にしました。
 %
 % [2016-01-30 LTJ] |\rmfamily|, |\sffamily|, |\ttfamily| の再定義をLua\TeX-ja
-% カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\ 
+% カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\
 % を有効にさせるだけでよいです。
 %    \begin{macrocode}
 \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
 % 和文文字間のスペース |kanjiskip|,
 % 和文・欧文間のスペース |xkanjiskip| を変更しています。
 %
-% |kanjiskip| は |ltj-latex.sty| で |0pt plus 0.4pt minus 0.4pt| に
+% |kanjiskip| は |ltj-latex.sty| で |0pt plus 0.4pt minus 0.5pt| に
 % 設定していますが,
 % これはそもそも文字サイズの変更に応じて変わるべきものです。
 % それに,プラスになったりマイナスになったりするのは,
   \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw
   \@tempskipa=\ltjgetparameter{xkanjiskip}
   \ifdim\@tempskipa>\z@
-    \if@slide 
+    \if@slide
       \ltjsetxkanjiskip .1em
     \else
       \ltjsetxkanjiskip .25em plus .15em minus .06em
 % ページスタイルとして,\LaTeXe (欧文版)の標準クラス
 % では |empty|,|plain|,|headings|,|myheadings| があります。
 % このうち |empty|,|plain| スタイルは\LaTeXe 本体
-% で定義されています。 
+% で定義されています。
 %
 % アスキーのクラスファイルでは |headnombre|,|footnombre|,
 % |bothstyle|,|jpl@in| が追加されていますが,
 % \begin{verbatim}
 % ! Missing number, treated as zero.
 % \end{verbatim}
-% 
+%
 %
 %    \begin{macrocode}
 %<*!jspf>
 % これらは互換性のためのもので,
 % できるだけ |\text...| と |\math...| を使ってください。
 %
-% [2016-07-15] KOMA-Script中の |\scr@DeclareOldFontCommand| に倣い
+% [2016-07-15] KOMA-Script中の |\scr@DeclareOldFontCommand| に倣い
 % これらの命令を使うときには警告を発することにしました。
 %
 % [2016-07-16] 警告を最初の一回だけ発することにしました。また,
    \@lnumwidth #3\relax
    \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip
     {#4}\nobreak
-    \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep 
+    \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill \nobreak\hb@xt@\@pnumwidth{%
          \hfil\normalfont \normalcolor #5}\par}\fi}
 %    \end{macrocode}
 % 後方互換のため,\texttt{jsclasses}ではデフォルトでこれを読み込みます。
 %
 % [2016-07-21 LTJ] \texttt{jsclasses} とLua\TeX-jaの更新タイミングが一致しない可能性を考慮し,
-% \texttt{jslogo}パッケージが存在しない場合は旧来の定義をそのまま使うことにしました
+% \texttt{jslogo}パッケージが存在しない場合は旧来の定義をそのまま使うことにしました
 %
 %    \begin{macrocode}
 \IfFileExists{jslogo.sty}{%
 }{%
 %    \end{macrocode}
 %
-% 以下は\texttt{jslogo}パッケージがない場合の定義です
+% 以下は\texttt{jslogo}パッケージがない場合の定義です
 %
 % \begin{macro}{\小}
 % \begin{macro}{\上小}
 % 文字を小さめに出したり上寄りに小さめに出したりする命令です。
 %
 %    \begin{macrocode}
-\def\小#1{\hbox{$\m@th$%
+\def\小##1{\hbox{$\m@th$%
   \csname S@\f@size\endcsname
   \fontsize\sf@size\z@
   \math@fontsfalse\selectfont
-  #1}}
-\def\上小#1{{\sbox\z@ T\vbox to\ht0{\小{#1}\vss}}}
+  ##1}}
+\def\上小##1{{\sbox\z@ T\vbox to\ht0{\小{##1}\vss}}}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
 % \end{macro}
 %
-% \texttt{jslogo}パッケージがない場合の定義はここで終わりです
+% \texttt{jslogo}パッケージがない場合の定義はここで終わりです
 %    \begin{macrocode}
 }
 %    \end{macrocode}