OSDN Git Service

ltj-jfont: more check
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index 48b2378..4c04d08 100644 (file)
@@ -29,7 +29,7 @@
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5310}
+% \CheckSum{5366}
 %% \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
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2016/07/21 ltjsclasses ]
+  [2016/08/27 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 \documentclass{ltjsarticle}
-\usepackage{doc}
+\usepackage{hypdoc}
+\hypersetup{unicode=true}
 \usepackage{fontspec}
 \usepackage[ipaex,nfssonly]{luatexja-preset}
 \ltjsetparameter{alxspmode={`\*,allow}}
 \ltjsetparameter{alxspmode={`\\,allow}}
 %%%%\usepackage{unicode-math}
 %%%%\setmathfont{Latin Modern Math}
-\usepackage[unicode]{hyperref}
 \addtolength{\textwidth}{-1in}
 \addtolength{\evensidemargin}{1in}
 \addtolength{\oddsidemargin}{1in}
 \addtolength{\marginparwidth}{1in}
 \setlength\marginparpush{0pt}
 % \OnlyDescription
-\DisableCrossrefs
+\EnableCrossrefs
 \setcounter{StandardModuleDepth}{1}
 \GetFileInfo{ltjsclasses.dtx}
 \CodelineNumbered
 %</book>
 %    \end{macrocode}
 %
+% \paragraph{\texttt{jslogo}パッケージの読み込み}
+%
+% \LaTeX 関連のロゴを再定義する\texttt{jslogo}パッケージを
+% 読み込まないオプション\texttt{nojslogo}を新設しました。
+% \texttt{jslogo}オプションの指定で従来どおりの動作となります。
+% デフォルトは\texttt{jslogo}で,すなわちパッケージを読み込みます。
+%    \begin{macrocode}
+\newif\if@jslogo \@jslogotrue
+\DeclareOption{jslogo}{\@jslogotrue}
+\DeclareOption{nojslogo}{\@jslogofalse}
+%    \end{macrocode}
+%
 % \paragraph{オプションの実行}
 %
 % デフォルトのオプションを実行します。
 % 和文文字間のスペース |kanjiskip|,
 % 和文・欧文間のスペース |xkanjiskip| を変更しています。
 %
-% |kanjiskip| は |ltj-latex.sty| で |0pt plus 0.4pt minus 0.4pt| に
+% |kanjiskip| は |ltj-latex.sty| で |0pt plus 0.4pt minus 0.5pt| に
 % 設定していますが,
 % これはそもそも文字サイズの変更に応じて変わるべきものです。
 % それに,プラスになったりマイナスになったりするのは,
 % 計算では |\headheight| ではなく |\topskip| を使う
 % ことにしました。
 %
+%
+% [2016-08-17] 圏点やルビが一行目に来た場合に下がるのを防ぐた
+% め,|\topskip| を10ptから1.38zwに増やしました。
+% |\headheight| は従来と同じ20ptのままとします。
+%
+% [2016-08-17 LTJ] 1.38zwの代わりに1.38|\zh|にしています。
+%
 %    \begin{macrocode}
-\setlength\topskip{10\jsc@mpt}
+\setlength\topskip{1.38\zh}%% from 10\jsc@mpt (2016-08-17)
 \if@slide
   \setlength\headheight{0\jsc@mpt}
 \else
-  \setlength\headheight{2\topskip}
+  \setlength\headheight{20\jsc@mpt}%% from 2\topskip (2016-08-17); from \topskip (2003-06-26)
 \fi
 %    \end{macrocode}
 % \end{macro}
 % [2003-06-26] |\headheight| を |\topskip| に直しました。
 % 以前はこの二つは値が同じであったので,変化はないはずです。
 %
+% [2016-08-26] |\topskip| を10ptから1.38zwに増やしましたので,
+% その分 |\textheight| を増やします(2016-08-17での修正漏れ)。
+%
 %    \begin{macrocode}
 %<*article|book>
 \if@slide
 \else
   \setlength{\textheight}{0.83\paperheight}
 \fi
-\addtolength{\textheight}{-\topskip}
+\addtolength{\textheight}{-0.5\headheight}%% from -\topskip (2016-08-26); from -\headheight (2003-06-26)
 \addtolength{\textheight}{-\headsep}
 \addtolength{\textheight}{-\footskip}
 \addtolength{\textheight}{-\topskip}
 % [2011-10-03 LTJ] ここも |\oddsidemargin| のときと同様に |-\inv@mag in| ではなく
 % |-1in| にします。
 %
+% [2016-08-17] |\topskip| を10ptから1.38zwに直しましたが,
+% |\topmargin| は従来の値から変わらないように調節しました。
+% …のつもりでしたが,|\textheight| を増やし忘れていたので
+% 変わってしまっていました(2016-08-26修正済み)。
 %    \begin{macrocode}
 \setlength\topmargin{\paperheight}
 \addtolength\topmargin{-\textheight}
 \if@slide
   \addtolength\topmargin{-\headheight}
 \else
-  \addtolength\topmargin{-\topskip}
+  \addtolength\topmargin{-0.5\headheight}%% from -\topskip (2016-08-17); from -\headheight (2003-06-26)
 \fi
 \addtolength\topmargin{-\headsep}
 \addtolength\topmargin{-\footskip}
 %
 % [2011-10-05 LTJ] Lua\TeX-jaでは |\everyparhook| は不要なので削除。
 %
+% [2016-07-28] \texttt{slide}オプションと\texttt{twocolumn}オプションを
+% 同時に指定した場合の罫線の位置を微調整しました。
+%
 %    \begin{macrocode}
 \def\@xsect#1{%
 % 見出しの後ろの空きを \@tempskipa にセット
     \@afterheading
   \fi
   \if@slide
-    {\vskip-6\jsc@mpt\maybeblue\hrule height0\jsc@mpt depth1\jsc@mpt\vskip7\jsc@mpt\relax}%
+    {\vskip\if@twocolumn-5\jsc@mpt\else-6\jsc@mpt\fi
+     \maybeblue\hrule height0\jsc@mpt depth1\jsc@mpt
+     \vskip\if@twocolumn 4\jsc@mpt\else 7\jsc@mpt\fi\relax}
   \fi
   \par  % 2000-12-18
   \ignorespaces}
 %    \begin{macrocode}
 \if@twocolumn
   \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
-    {\z@}{\z@}%
+    {\z@}{\if@slide .4\Cvs \else \z@ \fi}%
     {\normalfont\normalsize\headfont}}
 \else
   \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
 % \end{macro}
 %
 % \begin{macro}{\subsubsection}
+%
+% [2016-07-22] \texttt{slide}オプション指定時に |\subsubsection| の文字列
+% と罫線が重なる問題に対処しました(forum:1982)。
+%
 %    \begin{macrocode}
 \if@twocolumn
   \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
-    {\z@}{\z@}%
+    {\z@}{\if@slide .4\Cvs \else \z@ \fi}%
     {\normalfont\normalsize\headfont}}
 \else
   \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
     {\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
-    {\z@}%
+    {\if@slide .5\Cvs \@plus.3\Cdp \else \z@ \fi}%
     {\normalfont\normalsize\headfont}}
 \fi
 %    \end{macrocode}
 %    \begin{macrocode}
 \if@twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
-    {\z@}{-1\zw}% 改行せず 1\zw のアキ
+    {\z@}{\if@slide .4\Cvs \else -1\zw\fi}% 改行せず 1\zw のアキ
 %<jspf>    {\normalfont\normalsize\headfont}}
 %<!jspf>    {\normalfont\normalsize\headfont ■}}
 \else
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
     {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
-    {-1\zw}% 改行せず 1\zw のアキ
+    {\if@slide .5\Cvs \@plus.3\Cdp \else -1\zw\fi}% 改行せず 1\zw のアキ
 %<jspf>    {\normalfont\normalsize\headfont}}
 %<!jspf>    {\normalfont\normalsize\headfont ■}}
 \fi
 %    見出しの後ろで改行されません。
 %
 %    \begin{macrocode}
-\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
-   {\z@}{-1\zw}%
-   {\normalfont\normalsize\headfont}}
+\if@twocolumn
+  \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
+    {\z@}{\if@slide .4\Cvs \@plus.3\Cdp \else -1\zw\fi}%
+    {\normalfont\normalsize\headfont}}
+\else
+  \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
+    {\z@}{\if@slide .5\Cvs \@plus.3\Cdp \else -1\zw\fi}%
+    {\normalfont\normalsize\headfont}}
+\fi
 %    \end{macrocode}
 % \end{macro}
 %
 %
 % [2016-07-11] コミュニティ版p\LaTeX の変更に追随しました(Thanks: 角藤さん)。
 %
-%    \begin{macrocode}
-\renewcommand\@makefnmark{%
-  \unless\ifnum\ltjgetparameter{direction}=3
-    \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}%
-  \else\hbox{\yoko \@textsuperscript{\normalfont\@thefnmark}}\fi}
-%    \end{macrocode}
+% [2016-08-27 LTJ] 結果的に |\@makefnmark| の定義が
+% Lua\TeX-ja本体(lltjcore.sty)中のものと全く同じになっていたので,削除します,
 % \end{macro}
 %
 % \begin{macro}{\thefootnote}
 % [2016-07-14] ロゴの定義は\texttt{jslogo}パッケージに移転しました。
 % 後方互換のため,\texttt{jsclasses}ではデフォルトでこれを読み込みます。
 %
+% \texttt{nojslogo}オプションが指定されている場合は読み込みません。
+%
 % [2016-07-21 LTJ] \texttt{jsclasses} とLua\TeX-jaの更新タイミングが一致しない可能性を考慮し,
 % \texttt{jslogo}パッケージが存在しない場合は旧来の定義をそのまま使うことにしました。
 %
 %    \begin{macrocode}
-\IfFileExists{jslogo.sty}{%
+\IfFileExists{jslogo.sty}{}{\@jslogofalse}%
+\if@jslogo
   \RequirePackage{jslogo}
   \def\小{\jslg@small}
   \def\上小{\jslg@uppersmall}
-}{%
+\else
 %    \end{macrocode}
 %
 % 以下は\texttt{jslogo}パッケージがない場合の定義です。
 % 文字を小さめに出したり上寄りに小さめに出したりする命令です。
 %
 %    \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}
 %
 % \texttt{jslogo}パッケージがない場合の定義はここで終わりです。
 %    \begin{macrocode}
-}
+\fi
 %    \end{macrocode}
 %
 % \section{初期設定}