OSDN Git Service

Target release date: 20190128.0. Regenerated PDF
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index de3c5f5..1d7748d 100644 (file)
 \def\cs#1{\texttt{\upshape
   \texorpdfstring{\textbackslash\hbox{\ltjsetparameter{autoxspacing=false}#1}}{\textbackslash#1}}}
 \ltjsetparameter{alxspmode={`\\,allow}}
+\def\text@#1{%
+  \ifnum\mathstyle<\scriptstyle
+       \mbox{#1}
+  \else\ifnum\mathstyle<\scriptscriptstyle
+       \mbox{\let\f@size\sf@size\selectfont#1}
+  \else
+       \mbox{\let\f@size\ssf@size\selectfont#1}
+  \fi\fi
+}
 %%%%%%%%
 \makeatother
 %%%%%%%%
@@ -917,12 +926,14 @@ and finally delete the temporary directory.
 %</ja>
 \begin{itemize}
 %<*en>
-\item With \texttt{luatexja.cfg}, one can use other fonts
-as ``default'' Japanese fonts (Subsection~\ref{ssec:cfg}).
+\item The ``default'' Japanese fonts (and~JFMs for them) can be 
+  modified by defining \cs{ltj@stdmcfont} etc.\ \emph{before}
+  one inputs \texttt{luatexja.sty} (Subsection~\ref{ssec:cfg}).
 %</en>
 %<*ja>
-\item \texttt{luatexja.cfg} を用いることによって,標準和文フォントを
-IPAexフォントから別のフォントに置き換えることができる.\ref{ssec:cfg}節を参照.
+\item 標準和文フォントやJFMをIPAexフォントから別のものに置き換えるには,
+  \cs{ltj@stdmcfont}等を\texttt{luatexja.sty}読み込み\emph{前}に定義すればよい.
+  \ref{ssec:cfg}節を参照.
 %</ja>
 
 %<*en>
@@ -1120,7 +1131,7 @@ By default, the following fonts are used for these two families.
 However, above settings are not sufficient for Japanese-based
 documents. To typeset Japanese-based documents, you are better to use
 class files other than \texttt{article.cls}, \texttt{book.cls}, and so on.  At
-the present, we have the counterparts of \Pkg{jclasses} (standard
+the present, \LuaTeX-ja has the counterparts of \Pkg{jclasses} (standard
 classes in \pLaTeX) and \Pkg{jsclasses} (classes by Haruhiko
 Okumura), namely, \Pkg{ltjclasses}\footnote{%
   \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls},
@@ -1149,7 +1160,7 @@ so \Pkg{ltjsclasses} uses the \texttt{nomag*} option\footnote{Same effect as
 },
 \Pkg{ltjsclasses}\footnote{%
   \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}%
-がそれぞれ用意されている.
+がそれぞれ\LuaTeX-ja標準で用意されている.
 
 元々の\Pkg{jsclasses}では本文のフォントサイズを設定するのに\cs{mag}プリミティブが使われていたが,
 \LuaTeX~beta-0.87.0以降ではPDF出力時の\cs{mag}のサポートが廃止された.
@@ -1703,60 +1714,6 @@ as an external package \Pkg{luatexja-otf}.
 \ref{ssec:fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
 %</ja>
 
-%<en>\subsection{Changing default Japanese fonts}
-%<ja>\subsection{標準和文フォントの変更}
-\label{ssec:cfg}
-%<*en>
-If \texttt{luatexja.cfg} can be seen from \LuaTeX, \LuaTeX-ja automatically reads it.
-The main use of \texttt{luatexja.cfg} is for changing default Japanese fonts,
-when IPAex fonts cannot be installed in \TeX~system.
-One should not overuse this \texttt{luatexja.cfg}; fonts which will be used in
-a document should be specified in its source.
-
-For example,
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
-IPAex~Mincho and IPAex~Gothic.
-
-For another example, the following two lines makes that
-non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
-(as the earlier version of \LuaTeX-ja):
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-%</en>
-%<*ja>
-\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
-このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
-IPAex明朝・IPAexゴシックから変更することができる.
-しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
-文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
-「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
-応急処置的に用いるべきである.
-
-例えば
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
-更される.
-
-
-なお,20140906.0以前のバージョンのように,
-Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-と記述すればよい.
-%</ja>
-
-
 %<en>\section{Changing Internal Parameters}
 %<ja>\section{パラメータの変更}
 
@@ -2865,6 +2822,10 @@ Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだ
 ただし,現在のモードが非制限水平モードや(文中,別行立て問わず)数式モードであるときには
 組方向を変更することは出来ない.
 また,縦組中の数式内のボックスは\pTeX と同じように組方向が \cs{utod} となる.
+
+なお,\LaTeX の下で\LuaTeX-jaを使用する場合,組方向変更命令には
+「新たな組方向下での和文フォントを必要なら読み込み(・選択する)」という
+処理が付け加えられている(\ref{ssec:ltx-jfm}節参照).
 %</ja>
 
 %<*en>
@@ -3811,6 +3772,77 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
 ト・縦組用和文フォントの定義が可能であったが,\LuaTeX-jaではそうでないので注意.
 %</ja>
 
+%<en>\subsection{Default Japanese fonts and JFMs}
+%<ja>\subsection{標準和文フォント・JFMの変更}
+\label{ssec:cfg}
+%<*en>
+If following commands are defined at loading \LuaTeX-ja package, these change
+default Japanese fonts and JFMs for them:
+%</en>
+%<*ja>
+\LuaTeX-jaが読み込まれる前に以下の命令が定義されていた場合は,
+それらが標準和文フォントやそれらに用いるJFMとして使われる.
+%</ja>
+
+\begin{cslist}[style=standard]
+  \item[\cs{ltj@stdmcfont}] 
+%<en>The default Japanese font for the mincho family.
+%<ja>明朝体として用いるフォント.
+  \item[\cs{ltj@stdgtfont}]
+%<en>The default Japanese font for the gothic family.
+%<ja>ゴシック体として用いるフォント.
+  \item[\cs{ltj@stdyokojfm}]
+%<en>The default JFM for horizontal direction.
+%<ja>標準で用いる横組用JFM.
+  \item[\cs{ltj@stdyokojfm}]
+%<en>The default JFM for vertical direction.
+%<ja>標準で用いる縦組用JFM.
+\end{cslist}
+
+%<*en>
+For example,
+\begin{lstlisting}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
+IPAex~Mincho and IPAex~Gothic.
+
+This feature is intended for classes which use special JFMs
+\footnote{This is because commands has \texttt{@} in their names.}.
+It is recommended to use \cs{luatexja-preset}~or~\cs{luatexja-fontspec} package
+to select standard fonts in ordinary \LaTeX\ sources.
+%</en>
+%<*ja>
+例えば
+\begin{lstlisting}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
+更される.
+
+この機能は,特別のJFMを用いるクラス
+\footnote{例えば阿部紀行氏によるjlreqがそれにあたる.}%
+などでの使用を意図しており,命令名に\texttt{@}が含まれることから
+通常の\TeX/\LaTeX 文書での使用は意図していない.
+通常の\LaTeX 文書では\Pkg{luatexja-preset}や\Pkg{luatexja-fontspec}などで
+使用フォントを選択することを推奨する.
+%</ja>
+
+%<*en>
+For compatibility with earlier versions,
+\LuaTeX-ja reads  \texttt{luatexja.cfg} automatically if it is found by \LuaTeX.
+One should not overuse this \texttt{luatexja.cfg}; it will overwrite
+the definition of \cs{ltj@stdmcfont} and others.
+%</en>
+%<*ja>
+旧バージョンとの互換性のため,
+\LuaTeX から見える位置に\texttt{luatexja.cfg}があれば,\LuaTeX-jaはそれを読み込む.
+しかし,\texttt{luatexja.cfg}内で\cs{ltj@stdmcfont}等が定義されていた場合はそちらが
+優先されるので,もはや\texttt{luatexja.cfg}は使わないほうが良いだろう.
+%</ja>
+
 %<en>\subsection{Prefix \texttt{psft}}
 %<ja>\subsection{\texttt{psft}プリフィックス}
 \label{ssec:psft}
@@ -5056,8 +5088,6 @@ Then, the position of glyphs is shifted up by
 \]
 \end{description}
 
-
-
 %<en>\section{Parameters}
 %<ja>\section{パラメータ}
 \subsection{\cs{ltjsetparameter}}
@@ -5973,6 +6003,77 @@ are typeset by \cs{piyo}.
 %<en>\section{Commands for \LaTeXe}
 %<ja>\section{\LaTeXe 用の命令}
 
+%<*en>
+\subsection{Loading Japanese fonts in \LaTeXe}
+\label{ssec:ltx-jfm}
+From versoin~20190107, 
+\emph{\LuaTeX-ja does not load Japanese fonts for horizontal direction and
+  that for vertical direction at same time},
+to reduce the number of loaded fonts.
+This will save time for typesetting and memory consumption of Lua side (\cite{tc18ltja}).
+
+\begin{itemize}
+  \item \cs{selectfont} loads (and chooses) only the Japanese font for current direction,
+  and does not load the Japanese font for other direction
+  (\LuaTeX-ja only detects its size and JFM, to calculate the amount of shifting the baseline).
+
+  \item Direction changing commands (\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod}) are patched to
+  include the following process:
+  \begin{quote}
+       If the Japanese font for new direction is not loaded,
+       \LuaTeX-ja loads it automatically.
+  \end{quote}
+  Original commands are saved as \cs{ltj@@orig@yoko} etc.
+  
+  \item Specifying Japanese font command which is
+  defined by \cs{jfont},~\cs{tfont}, or~\cs{DeclareFixedFont} directly
+  actually loads (and selects) the Japanese font.
+  For example, \textbf{JAchar}s in \cs{box0} will be typeset in \cs{HOGE},
+  in the following code:
+\begin{lstlisting}
+  % in horizontal direction (\yoko)
+  \DeclareFixedFont\HOGE{JT3}{gt}{m}{n}{12} % JT3: for vertical direction
+  \HOGE
+  \setbox0=\hbox{\tate あいう}
+\end{lstlisting}
+  \end{itemize}
+%</en>
+
+%<*ja>
+\subsection{\LaTeXe 下での和文フォントの読み込み}
+\label{ssec:ltx-jfm}
+バージョン20190107以降では,\LaTeXe の下で\LuaTeX-jaを使用した際に,
+\emph{横組用和文フォントと縦組み用和文フォントを両方一度に読み込み・選択せずに,
+  実際にそれぞれを使う組方向になったときに行う}という方針にした.
+これは実際に読み込むフォント数を削減することで,
+タイプセットにかかる時間と(主にLuaの)メモリ消費を削減するためである(\cite{tc18ltja}).
+
+\begin{itemize}
+  \item \cs{selectfont}は横組用・縦組用和文フォントのうち,現在の組方向で使う方を
+  実際に読み込み(・選択し),そうでない方は「フォントサイズとJFMのみ\LuaTeX-jaが把握している状態」
+  (以下,\emph{JFM把握状態})とする.
+
+  \item 組方向変更命令\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod}には
+  \begin{quote}
+       新たな組方向での和文フォントが読み込まれていない(JFM把握状態)ならば,
+       現在のエンコーディング・ファミリ・シリーズ・シェイプから改めて読み込む(または選択する)
+  \end{quote}
+  処理が付け加えられている.
+  もとの「組方向を変更するだけ」の命令は\cs{ltj@@orig@yoko}のように\texttt{ltj@@orig@}が前についた
+  命令に保存されている.
+  
+  \item \cs{jfont},~\cs{tfont},~\cs{DeclareFixedFont}で定義された和文フォントは
+  その時点で実際にフォントが読み込まれる.すなわち,以下のコードにおいて,
+  \cs{box0}中の\textbf{JAchar}は\cs{HOGE}でタイプセットされる.
+\begin{lstlisting}
+  % in horizontal direction (\yoko)
+  \DeclareFixedFont\HOGE{JT3}{gt}{m}{n}{12} % JT3: for vertical direction
+  \HOGE
+  \setbox0=\hbox{\tate あいう}
+\end{lstlisting}
+  \end{itemize}
+%</ja>
+
 %<en>\subsection{Patch for NFSS2}
 %<ja>\subsection{NFSS2へのパッチ}
 \label{ssec:nfsspat}
@@ -7105,7 +7206,7 @@ for making the difference obvious.}
 と同義.
 \end{cslist}
 
-また,優先順位付きの行長調整のために,次の3パラメータが\cs{ltjsetparameter}内で
+また,次のパラメータが\cs{ltjsetparameter}内で
 追加される.いずれもグローバルに効力を発揮する.
 \begin{cslist}[style=standard]
 \item[\DParam{stretch\_priority}\,=\{<list>\}]
@@ -7121,22 +7222,30 @@ stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50}
 \texttt{others}キーが「\textbf{JAglue}以外のグルー」を表す.
 各キーの値は,JFMグルーにおける「優先度$i$」を$10i$に対応させた整数値であり,
   大きい方が先に伸ばされることを意味している.
+  初期値は
+\begin{lstlisting}
+{kanjiskip=-35,xkanjiskip=-25,others=50}
+\end{lstlisting}
+であり,「優先度$-4$」と指定されているJFMグルーが最も伸びにくいようになっている.
 
 \item[\DParam{shrink\_priority}\,=\{<list>\}]
 同様に,「行を自然長より縮める」場合の調整に用いる優先度を指定する.
-それ以外は\Param{stretch\_priority}と指定の形式は変わらない.
\81\9dã\82\8c以å¤\96ã\81¯\Param{stretch\_priority}ã\81¨æ\8c\87å®\9aã\81®å½¢å¼\8fã\81¯å¤\89ã\82\8fã\82\89ã\81ªã\81\84ï¼\88å\88\9dæ\9c\9få\80¤ã\82\82å¤\89ã\82\8fã\82\89ã\81ªã\81\84ï¼\89ï¼\8e
 
  \item[\DParam{linestep\_factor}\,=<float>]
-  段階的な行送り調整の際,\cs{baselineskip}の何倍単位で行送りを変えるかを指定する.
+  段階的な行送り調整の際,\cs{baselineskip}の自然長の何倍単位で行送りを変えるかを指定する.
   0を指定すると無効になるのと変わらない.また負数を指定すると,
   その絶対値が指定されたかのように扱われる.
   初期値は0.5(つまり半行単位)である.
+
+  \item[\DParam{profile\_hgap\_factor}\,=<float>]
+  「中身まで見た」行送り計算の際,
+  前の行にある深さが大きいものと次の行にある高さが大きいものが
+  水平方向にどれだけ離れていないといけないかを
+  「\cs{lineskip}の自然長の何倍か」で指定する.
+  負数を指定すると,その絶対値が指定されたかのように扱われる.
+  初期値は1(つまり\cs{lineskip}(の自然長))である.
 \end{cslist}
-\Param{stretch\_priority}, \Param{shrink\_priority}の初期値はどちらも
-\begin{lstlisting}
-{kanjiskip=-35,xkanjiskip=-25,others=50}
-\end{lstlisting}
-であり,「優先度$-4$」と指定されているJFMグルーが最も伸び(縮み)にくいようになっている.
 %</ja>
 
 \subsection{\Pkg{luatexja-ruby}}
@@ -8282,18 +8391,23 @@ Current number of Japanese font family for math formulas.
 
 \attr{ltj@curjfnt}
 %<*en>
-The font index of current Japanese font for horizontal direction.
+If this attribute is a positive number, it stores the font number of current Japanese font for horizontal direction.
+If this attribute is negative, it means that the Japanese font for horizontal direction is
+not loaded---\LuaTeX-ja only knows its size and JFM.
 %</en>
 %<*ja>
-現在の横組用和文フォントのフォント番号.
+基本的には現在の横組用和文フォントのフォント番号を格納しているが,
+\LaTeX 下で使用する場合は($-2$以下の)負数となることがある.
+  負数の場合は「横組用和文フォントは実際には読み込まれておらず,そのフォントサイズとJFMだけが
+  \LuaTeX-jaが把握している」状態を表す.
 %</ja>
 
 \attr{ltj@curtfnt}
 %<*en>
-The font index of current Japanese font for vertical direction.
+Similar to \cs{ltj@curjfnt}, but with current Japanese font for vertical direction.
 %</en>
 %<*ja>
\8f¾å\9c¨ã\81®ç¸¦çµ\84ç\94¨å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81®ã\83\95ã\82©ã\83³ã\83\88ç\95ªå\8f·
¸¦çµ\84ç\94¨å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81«é\96¢ã\81\99ã\82\8b\cs{ltj@curjfnt}ã\81¨å\90\8cæ§\98ã\81®å\80¤
 %</ja>
 
 \attr{ltj@charclass}
@@ -10994,11 +11108,11 @@ TUG 2013, October 2013.
 Requirements for Japanese Text Layout (W3C Working Group Note), 2011, 2012. \newblock
 \url{http://www.w3.org/TR/jlreq/}%
 %<ja> \\日本語訳の書籍版:W3C日本語組版タスクフォース(編),『W3C技術ノート 日本語組版処理の要件』,東京電機大学出版局,2012.
-\bibitem{min10} 乙部厳己.min10フォントについて.\\\null\hfill
+\bibitem{min10} 乙部厳己.「min10フォントについて」\\\null\hfill
 \url{http://argent.shinshu-u.ac.jp/~otobe/tex/files/min10.pdf}
-\bibitem{x4051} 日本工業規格(Japanese Industrial Standard). JIS~X~4051,
-日本語文書の組版方法(Formatting rules for Japanese documents), 1993, 1995, 2004.
-\bibitem{ptexdoc} 濱野尚人,田村明史,倉沢良一.\TeX の出版への応用—縦組み機能の組み込み—
+\bibitem{x4051} 日本工業規格(Japanese Industrial Standard). JIS~X~4051,
+日本語文書の組版方法(Formatting rules for Japanese documents), 1993, 1995, 2004.
+\bibitem{ptexdoc} 濱野尚人,田村明史,倉沢良一.「\TeX の出版への応用—縦組み機能の組み込み—」
 \\\null\hfill\texttt{.../texmf-dist/doc/ptex/base/ptexdoc.pdf}
 \bibitem{ptextug} Hisato Hamano. \newblock
 \textit{Vertical Typesetting with \TeX}, TUGBoat~\textbf{11}(3), 346--352, 1990.
@@ -11007,6 +11121,8 @@ ISO 32000-1:2008, \textit{Document management -- Portable document format -- Par
       1.7}, 2008. \newblock
 \\\null\hfill
 \url{http://www.iso.org/iso/iso\_catalogue/catalogue_tc/catalogue\_detail.htm?csnumber=51502}
+\bibitem{tc18ltja} 北川弘典.「\LuaTeX-jaの近況」,\TeX Conf~2018.\\
+  \url{https://osdn.net/projects/luatex-ja/wiki/Documentation/attach/tc18ltja.pdf}
 \end{thebibliography}
 
 \end{document}