X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=0f95747b7d6aabb22297d9f946bf43c8d4c5a47f;hb=f702bd7ffe06f376115615e94ecd2527aa8cf34c;hp=702d60021be9c575df55f293072221d959bb9782;hpb=5f81f287d4389835fb9332f7537c91f74666a243;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 702d600..0f95747 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -16,8 +16,7 @@ \makeatletter %%%%%%%% \directlua{if jit then jit.on() end} - -\usepackage{amsmath,array,tikz,pict2e,multienum,float} +\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float} \usepackage{booktabs,multicol,luatexja-ruby} \usepackage[all]{xy} \usepackage{lltjext,alltt} @@ -35,6 +34,8 @@ \setmonojfont{KozGoPr6N-Regular.otf} \setmathfont[Scale=MatchLowercase]{xits-math.otf} \setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O} + +\setLaTeXa{\scshape a} %<*ja> \def\emph#1{\textbf{\textgt{#1}}} \def\headfont{\normalfont\bfseries\gtfamily}\normalsize @@ -44,6 +45,7 @@ \usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry} \usepackage{luatexja-adjust}\ltjdisableadjust \parskip=\smallskipamount +\makeatletter \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {3.25ex \@plus1ex \@minus.2ex}% {-1em}% @@ -77,6 +79,7 @@ explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed} } % Suppress output from showexpl to stdout. +\makeatletter \let\SX@Info\relax %%%%%%%% colors @@ -135,10 +138,11 @@ \DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\pTeX} %%%%%%%% other macros -\newlist{cslist}{description}{1} +\newlist{cslist}{description}{2} \setlist[cslist]{% style=nextline,font=\mdseries\ttfamily, before*=\def\<{\char`\<}\def\>{\char`\>}\def\{{\char`\{}\def\}{\char`\}}, + topsep=\medskipamount, % leftmargin=2\zw, % leftmargin=2em, } @@ -156,7 +160,8 @@ \vskip\belowcaptionskip} \def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}} -\def\cs#1{\texttt{\upshape\textbackslash\ltjsetparameter{autoxspacing=false}#1}} +\def\cs#1{\texttt{\upshape + \texorpdfstring{\textbackslash\ltjsetparameter{autoxspacing=false}#1}{\textbackslash#1}}} %%%%%%%% \makeatother @@ -169,9 +174,9 @@ width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr }}}}}\,} -\protected\def\Param#1{\hyperlink{fld:#1}{\textsf{#1}}} % parameter name -\protected\def\DParam#1{\hypertarget{fld:#1}{\textsf{#1}}} % parameter name (definition) -\protected\def\Pkg#1{\underline{\smash{\texttt{#1}}}} % packages/classes +\protected\def\Param#1{\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name +\protected\def\DParam#1{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name (definition) +\protected\def\Pkg#1{\textsf{#1}} % packages/classes \begin{document} @@ -268,14 +273,14 @@ scripts for appropriate callbacks. が始まったパッケージである. % -%\subsection{Major Changes from \pTeX} +%\subsection{Major changes from \pTeX} %\subsection{\pTeX からの主な変更点} \label{ssec:chgptex} %<*en> The \LuaTeX-ja package is under much influence of \pTeX\ engine. The initial -target of development was to implement features of \pTeX. However, -implementing all feature of \pTeX\ is impossible, +target of development was to implement features of \pTeX. However, +implementing all feature of \pTeX\ is impossible, since all process of \LuaTeX-ja must be implemented only by Lua and \TeX\ macros. Hence \emph{\LuaTeX-ja is not a just porting of \pTeX; unnatural specifications/behaviors of \pTeX\ were not adopted}. @@ -300,7 +305,7 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this % %<*en> -\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip}, +\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip}, \cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows: % %<*ja> @@ -313,7 +318,7 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this \prebreakpenalty`ぁ=100 \ifydir ... \fi \end{verbatim} -% However, we cannot use them under \LuaTeX-ja. +% However, we cannot use them under \LuaTeX-ja. % Instead of them, we have to write as the following. % は\LuaTeX-jaには存在しない.\LuaTeX-jaでは以下のように記述することになる. \begin{verbatim} @@ -323,13 +328,13 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this \ltjsetparameter{prebreakpenalty={`ぁ,100}} \ifnum\ltjgetparemeter{direction}=4 ... \fi \end{verbatim} -%<*en> +%<*en> Note that \pTeX\ adds new two useful units, namely \texttt{zw}~and~\texttt{zh}. As shown above, they are changed by \cs{zw}~and~\cs{zh} respectively, in \LuaTeX-ja. % %<*ja> -特に注意してほしいのは,\pTeX で追加された \texttt{zw} と \texttt{zh} という単位を -\LuaTeX-ja で扱うには,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である. +特に注意してほしいのは,\pTeX で追加された \texttt{zw} と \texttt{zh} という単位は +\LuaTeX-ja では使用できず,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である. % %<*en> @@ -349,7 +354,6 @@ In \pTeX, a line break after Japanese character is ignored (and % %<*en> - \paragraph{Spaces related to Japanese characters} The insertion process of glues/kerns between two Japanese characters and between a Japanese character and other characters @@ -418,17 +422,19 @@ The insertion process of glues/kerns between two Japanese %<*en> \paragraph{Directions} -From this version, \LuaTeX-ja supports vertical writing; -but this feature must \emph{not} be confused with $\Omega$-style direction support of \LuaTeX\ -itself. ... +From version~20150420.0, \LuaTeX-ja supports vertical writing. +We implement this feature by using callbacks of \LuaTeX; so it must \emph{not} be confused +with $\Omega$-style direction support of \LuaTeX\ itself. +Due to implementation, the dimension returned by \cs{wd},~\cs{ht}, or~\cs{dp} depends +on the content of the register \emph{only}. This is major difference with \pTeX. % %<*ja> \paragraph{組方向} -本版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている. -なお,\LuaTeX 本体も,$\Omega$流の組方向をサポートしているが,それとは全くの別物であること +20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている. +なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること に注意してほしい. -\LuaTeX のコールバックや実装により,特に異なった組方向のボックスを扱う場合には -\cs{wd}, \cs{ht}, \cs{dp}等の仕様が異なるので注意.詳細は第\ref{sec-direction}章を参照. +特に,異なった組方向のボックスを扱う場合には +\cs{wd}, \cs{ht}, \cs{dp}等の仕様が\pTeX と異なるので注意.詳細は第\ref{sec-direction}章を参照. % %<*en> @@ -442,7 +448,35 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported しても使いたい場合は \cs{hbox} で括ること. % +%<*en> +\paragraph{Greek and Cyrillic letters, and ISO~8859-1 symbols} +By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters, + To change this behavior, + put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble. + For the detailed description, see Subsection~\ref{ssec-setrange}. + +From this version, characters which belongs both ISO~8859-1 and JIS~X~0208, + such as \P~and~\S, are now typeset in alphabetic fonts. This means that + without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly. +% +%<*ja> +\paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号} +標準では,\LuaTeX-jaはギリシャ文字やキリル文字を和文フォントを使っ + て組む.ギリシャ語などを本格的に組むなどこの状況が望ましくない場合, + プリアンブルに +\begin{lstlisting} + \ltjsetparameter{jacharrange={-2,-3}} +\end{lstlisting} + を入れると + 上記種類の文字は欧文フォントを用いて組まれるようになる. + 詳しい説明は\ref{ssec-setrange}節を参照してほしい. +また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は + 本バージョンから標準で欧文扱いとなり,\emph{ソース中に直接記述しても + \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されなくなった}. + 和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令 + を使えばよい. +% %\subsection{Notations} %\subsection{用語と記法} @@ -486,21 +520,21 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. \textbf{JAchar}の出力に用いられるフォントを\emph{和文フォント}と呼ぶ. % %<*en> -\item A word in a sans-serif font (like \Param{prebreakpenalty}) +\item A word in a sans-serif font with underline (like \Param{prebreakpenalty}) means an internal parameter for Japanese typesetting, and it is used as a key in \cs{ltjsetparameter} command. % %<*ja> -\item サンセリフ体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の +\item 下線つきローマン体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の パラメータを表し,これらは \cs{ltjsetparameter} 命令のキーとして 用いられる. % %<*en> -\item A word in typewriter font with underline (like \Pkg{fontspec}) +\item A word in a sens-serif font without underline (like \Pkg{fontspec}) means a package or a class of \LaTeX. % %<*ja> -\item 下線付きタイプライタ体の語(例:\Pkg{fontspec})は\LaTeX の +\item 下線なしサンセリフ体の語(例:\Pkg{fontspec})は\LaTeX の パッケージやクラスを表す. % %<*en> @@ -512,28 +546,28 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. % \end{itemize} -%\subsection{About the Project} +%\subsection{About the project} %\subsection{プロジェクトについて} %\paragraph{Project Wiki} Project Wiki is under construction. %\paragraph{プロジェクトWiki} プロジェクトWikiは構築中である. %<*en> \begin{itemize} -\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29} (English) -\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage} (Japanese) -\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29} (Chinese) +\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29} (English) +\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage} (Japanese) +\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28zh%29} (Chinese) \end{itemize} % %<*ja> \begin{itemize} -\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日本語) -\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英語) -\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中国語) +\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage}(日本語) +\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英語) +\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中国語) \end{itemize} % -%This project is hosted by SourceForge.JP. -%本プロジェクトはSourceForge.JPのサービスを用いて運営されている. +%This project is hosted by OSDN. +%本プロジェクトはOSDNのサービスを用いて運営されている. %\paragraph{Members}\ %\paragraph{開発メンバー}\ @@ -564,7 +598,7 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. %\subsection{インストール} %The following packages are needed for the \LuaTeX-ja\ package. -%*ja>\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である. +%\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である. \begin{itemize} \item \LuaTeX\ beta-0.80.0 (or later) \item \Pkg{luaotfload} v2.5 (or later) @@ -630,11 +664,11 @@ W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にあ \begin{itemize} \item Clone the Git repository: \begin{lstlisting} -$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git +$ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git \end{lstlisting} \item Download the \texttt{tar.gz} archive of HEAD in the \texttt{master} branch from \begin{flushleft} -\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. +\url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. \end{flushleft} \end{itemize} @@ -648,15 +682,15 @@ the forefront of development is not the \texttt{master} branch. \begin{itemize} \item Gitリポジトリをクローンする: \begin{lstlisting} -$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git +$ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git \end{lstlisting} -\item \texttt{master}ブランチのスナップショット(\texttt{tar.gz}形式)をダウンロードする. +\item \texttt{master} ブランチのスナップショット(\texttt{tar.gz} 形式)をダウンロードする. \begin{flushleft} -\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. +\url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. \end{flushleft} \end{itemize} -\texttt{master}ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意. -主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを\texttt{master}に +\texttt{master} ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意. +主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを \texttt{master} に 反映させることにしている. % @@ -666,8 +700,8 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. % %<*ja> \item 「Gitリポジトリをクローン」以外の方法でアーカイブを取得したならば,それを展開する. - \texttt{src/}をはじめとしたいくつかのディレクトリができるが, - 動作には\texttt{src/}以下の内容だけで十分. + \texttt{src/} をはじめとしたいくつかのディレクトリができるが, + 動作には \texttt{src/} 以下の内容だけで十分. % %<*en> @@ -707,7 +741,7 @@ $ luatex ltj-kinsoku_make.tex instead copying is also good. % %<*ja> -\item \texttt{src}の中身を自分の\texttt{TEXMF}ツリーにコピーする. +\item \texttt{src} の中身を自分の \texttt{TEXMF} ツリーにコピーする. 場所の例としては,例えば \begin{quote} \texttt{TEXMF/tex/luatex/luatexja/} @@ -735,7 +769,7 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}. % \begin{itemize} %<*en> -\item The encoding of your source file must be UTF-8. No other +\item The encoding of your source file must be UTF-8. Other encodings, such as EUC-JP or Shift-JIS, are not supported. % %<*ja> @@ -753,9 +787,10 @@ about 30\% faster than \LuaTeX, but not always. LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようであるが, IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある. % + \item% %<*en> -\textbf{Outdated note for MiK\TeX\ users}\quad +\textbf{(Outdated) note for MiK\TeX\ users}\quad \LuaTeX-ja requires that several CMap files% \footnote{\texttt{UniJIS2004-UTF32-\{H,V\}} and \texttt{Adobe-Japan1-UCS2}.} must be found from \LuaTeX. @@ -768,7 +803,7 @@ so you will encounter an error like the following: \LuaTeX-jaが動作するためには,\emph{導入・更新後の初回起動時に} \texttt{UniJIS2004-UTF32-\{H,V\}}, \texttt{Adobe-Japan1-UCS2}という3つのCMapが \LuaTeX によって見つけられることが必要である. -しかしやや古いMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう: +しかし古いバージョンのMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう: % \begin{lstlisting} ! LuaTeX error ...iles (x86)/MiKTeX 2.9/tex/luatex/luatexja/ltj-rmlgbm.lua @@ -777,16 +812,17 @@ bad argument #1 to 'open' (string expected, got nil) %<*en> If so, please execute a batch file which is written on -\href{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{ the Project Wiki (English)}. +\href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{ the Project Wiki (English)}. This batch file creates a temporary directory, copy CMaps in it, -run \LuaTeX-ja in this directory, and finally delete the temporary directory. +run a test file which loads \LuaTeX-ja in this directory, +and finally delete the temporary directory. % %<*ja> そのような場合には, -\href{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{% +\href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{% プロジェクトWiki英語版トップページ}中に書かれているバッチファイルを 実行して欲しい.このバッチファイルは,作業用ディレクトリにCMap達を -コピーし,その中で\LuaTeX-ja の初回起動を行い,作業用ディレクトリを消す作業をしている. +コピーし,その中で\LuaTeX-jaの初回起動を行い,作業用ディレクトリを消す作業をしている. % \end{itemize} @@ -1003,7 +1039,7 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{% しかしながら,上記の設定は日本語の文書にとって十分とは言えない. 日本語文書を組版するためには,\texttt{article.cls}, \texttt{book.cls}といった 欧文用のクラスファイルではなく,和文用のクラスファイルを用いた方がよい. -現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses} +現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses}% (奥村晴彦氏による「\pLaTeXe 新ドキュメントクラス」)に対応するものとして, \Pkg{ltjclasses}\footnote{% 横組用は \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls} であり, @@ -1041,14 +1077,14 @@ vertical writing is used: % \begin{lstlisting} ! Incompatible direction list can't be unboxed. -\@begindvi ->\unvbox \@begindvibox - \global \let \@begindvi \@empty +\@begindvi ->\unvbox \@begindvibox + \global \let \@begindvi \@empty \end{lstlisting} %<*en> Now, \LuaTeX-ja automatically applies the patch \Pkg{lltjp-geometry} to the \Pkg{geometry} package, when the direction of the document is \emph{tate} (vertical writing). -This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, please refer +This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, please refer \url{lltjp-geometry.pdf}~(Japanese). % %<*ja> @@ -1087,13 +1123,12 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ ( % \begin{itemize} %<*en> -\item Commands \cs{fontfamily}, \cs{fontseries}, - \cs{fontshape}, and \cs{selectfont} can be used to change +\item Commands \cs{fontfamily}, \cs{fontseries}, and \cs{fontshape} can be used to change attributes of Japanese fonts. % %<*ja> -\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape}, - そしてそれらを反映させるために \cs{selectfont} を用いればよい. +\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape} を使用する. + もちろん,それらを実際に反映させるには手動で \cs{selectfont} を実行する必要がある. % %<*en> @@ -1154,14 +1189,16 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\ %<*en> \item For defining a Japanese font family, use \cs{DeclareKanjiFamily} instead of - \cs{DeclareFontFamily}. However, in the present implementation, - using \cs{DeclareFontFamily} doesn't cause any problem. + \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja, + using \cs{DeclareFontFamily} didn't cause any problem. But this no longer applies + the current version.) \item Defining a Japanese font shape can be done by usual \cs{DeclareFontShape}: % %<*ja> \item 和文フォントファミリの定義には \cs{DeclareFontFamily} の - 代わりに \cs{DeclareKanjiFamily} を用いる.しかし,現在の - 実装では \cs{DeclareFontFamily} を用いても問題は生じない. + 代わりに \cs{DeclareKanjiFamily} を用いる.以前の + 実装では \cs{DeclareFontFamily} を用いても問題は生じなかったが,現在の実装では + そうはいかない. \item 和文フォントのシェイプを定義するには,通常の \cs{DeclareFontShape} を使えば良い: % \begin{lstlisting} @@ -1235,12 +1272,12 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}. 記述しない.この方法については\ref{ssec-math}節を参照のこと. % - -\subsection{fontspec} +%\subsection{\Pkg{luatexja-fontspec} package} +%\subsection{\Pkg{luatexja-fontspec}パッケージ} \label{ssec-fontspec} %<*en> -To coexist with the \Pkg{fontspec} package, it is needed to load -the \Pkg{luatexja-fontspec} package in the preamble, as follows: +To use the functionality of the \Pkg{fontspec} package to Japanese fonts, +it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows: \begin{quote} \ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} \end{quote} @@ -1249,13 +1286,18 @@ automatically loads \Pkg{luatexja} and \Pkg{fontspec} packages, if needed. % %<*ja> -\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場合, -\Pkg{luatexja-fontspec}パッケージを読み込めばよい. +\Pkg{fontspec}パッケージは,\LuaTeX・\XeTeX において +TrueType・OpenTypeフォントを容易に扱うためのパッケージであり,このパッケージを読み込んでお +けばUnicodeによる各種記号の直接入力もできるようになる. +\LuaTeX-jaでは和文と欧文を区別しているため,\Pkg{fontspec}パッケージの機能は欧文フォントに +対してのみ有効なものとなっている. + +\LuaTeX-ja上において,\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場 +合は\Pkg{luatexja-fontspec}パッケージを読み込む: \begin{quote} \ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} \end{quote} -このパッケージ -は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. +このパッケージは自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. % %<*en> @@ -1307,19 +1349,60 @@ alphabetic fonts \end{tabular} \end{center} % -%<*en> -The package option of \Pkg{luatexja-fontspec} are the followings: + +% The package option of \Pkg{luatexja-fontspec} are the followings: +% \Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである: \begin{cslist} \item[match] +%<*en> If this option is specified, usual family-changing commands such as \cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family. Note that \emph{\cs{setmonojfont} is defined if and only if this \texttt{\textup{match}} option is specified}. +% + +%<*ja> +このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ +\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が +欧文フォントだけでなく和文フォントも変更するようになる. + +\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが +指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する. +% \item[pass=] -Specify options which will be passed to the \Pkg{fontspec} package. +% \emph{(Obsoleted)}\ Specify options which will be passed to the \Pkg{fontspec} package. +% \Pkg{fontspec} パッケージに渡すオプション を指定する.本オプションは時代遅れである. + +\item[scale=] +%<*en> +Override the ratio of the font size of Japanese fonts to that of alphabetic fonts. +The default value is calculated automatically (for~example, about~0.924865 when + the \Pkg{ltjsarticle} class is used). +% +%<*ja> +欧文に対する和文の比率は,標準では \Pkg{luatexja-fontspec}読み込み時の和欧文比率から +自動計算される(例えば,\Pkg{ltjsarticle}クラス使用時には和文は欧文の約0.924865倍となる)が, +それを手動で上書きするときに使用する. +% \end{cslist} + +%<*en> +All other options listed above are simply passed to the \Pkg{fontspec} package. +This means that two lines below are equivalent, for example. +% +%<*ja> +上記にないオプションは全て \Pkg{fontspec} パッケージに渡される. +例えば,下の2行は同じ意味になる: +% +\begin{lstlisting} +\usepackage[no-math]{fontspec}\usepackage{luatexja-fontspec} +\usepackage[no-math]{luatexja-fontspec} +\end{lstlisting} + + +%<*en> The reason that \cs{setmonojfont} is not defined by default is that it is popular for Japanese fonts that nearly all Japanese glyphs have same widths. Also note that kerning information in a font is not used @@ -1330,19 +1413,6 @@ This is because of the compatibility with previous versions of \LuaTeX-ja Below is an example of \cs{jfontspec}. % %<*ja> -\Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである: -\begin{cslist} - \item[match] -このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ -\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が -欧文フォントだけでなく和文フォントも変更するようになる. - -\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが -指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する. - - \item[pass=] -\Pkg{fontspec} パッケージに渡すオプション を指定する. -\end{cslist} 標準で \cs{setmonojfont} コマンドが定義されないのは, 和文フォントではほぼ全ての和文文字のグリフが等幅であるのが伝統的であったことによる. また,これらの和文用のコマンドではフォント内のペアカーニング情報は標準では使用されない, @@ -1359,21 +1429,39 @@ JIS~X~0213:2004→辻\par JIS~X~0208:1990→辻 \end{LTXexample} -%\subsection{Presets} -%\subsection{プリセット設定} +%\subsection{Presets of Japanese fonts} +%\subsection{和文フォントのプリセット設定} \label{ssec-preset} %<*en> -To use standard Japanese font settings easily, one can load the \Pkg{luatexja-preset} -package with several options. This package provides functions in a part of +One can load the \Pkg{luatexja-preset} +package to use several ``presets'' of Japanese fonts. +This package provides functions in a part of \Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato. + +One can specified other options other than listed in this subsection. +These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is +\emph{not} specified; in this case these options are simply ignored.}. +For example, the line~5 in below example is eqivalent to lines 1--3. % %<*ja> よく使われている和文フォント設定を一行で指定できるようにしたのが \Pkg{luatexja-preset}パッケージである.このパッケージは, \Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを 合わせたような格好をしている. + +オプションとして,本節にないものも指定することができるが,それらは +\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが +指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され +る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる. % +\begin{lstlisting} +\usepackage[no-math]{fontspec} +\usepackage[match]{luatexja-fontspec} +\usepackage[kozuka-pr6n]{luatexja-preset} +%%-------- +\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset} +\end{lstlisting} %\paragraph{General options} %\paragraph{一般的なオプション} @@ -1381,12 +1469,12 @@ package with several options. This package provides functions in a part of \item[fontspec] %<*en> -With this option, Japanese fonts are selected using functionality of +With this option, Japanese fonts are selected using functionality of the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is automatically loaded by this package. \emph{This option is enabled by default.} -If you need to pass some options to \Pkg{fontspec}, load \Pkg{fontspec} manually +If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually before \Pkg{luatexja-preset}: % %<*ja> @@ -1406,17 +1494,19 @@ before \Pkg{luatexja-preset}: \item[nfssonly] %<*en> -With this option,selecting Japanese fonts won't be performed using the functionality of - the \Pkg{fontspec} package, but only standard NFSS2. +With this option, selecting Japanese fonts won't be performed using the functionality of + the \Pkg{fontspec} package, but only standard NFSS2 (hence without + \cs{addjfontfeatures} etc.). +This option is ignored when \Pkg{luatexja-fontspec} package is loaded. -This option will be disabled when \Pkg{luatexja-fontspec} package is loaded. -Note that the \Pkg{fontspec} can coexist with the option as the following: +When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are +\emph{not} loaded by default. Nevertheless, +the package\Pkg{fontspec} can coexist with the option, as the following: \begin{lstlisting} \usepackage{fontspec} \usepackage[hiragino-pron,nfssonly]{luatexja-preset} \end{lstlisting} -Note that the functionality of the \Pkg{luatexja-fontspec} package, such as - \cs{setmainjfont}, cannot be used in the example above. +In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts. % %<*ja> \LaTeX 標準のフォント選択機構(NFSS2)を用いて @@ -1424,12 +1514,15 @@ Note that the functionality of the \Pkg{luatexja-fontspec} package, such as ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という 3つの和文フォントファミリを定義し,これらを用いる. -欧文フォントの指定で\Pkg{fontspec}パッケージを読み込んでいる場合でも +本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは +自動では読み込まれない,しかし, \begin{lstlisting} \usepackage{fontspec} \usepackage[hiragino-pron,nfssonly]{luatexja-preset} \end{lstlisting} -のようにこのオプションを指定することは可能である.一方, +のようにすれば,このオプションを指定すれば +欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる. +一方, パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて いる場合は \texttt{nfssonly} オプションは無視される. % @@ -1567,8 +1660,6 @@ There is not rounded gothic family in Kozuka fonts. \end{tabular} \end{center} -%\newpage - \item[hiragino-pro] Hiragino Pro (Adobe-Japan1-5) fonts. % \\*[-\dimexpr\medskipamount+\baselineskip\relax] \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts. @@ -1817,7 +1908,7 @@ are internally specified by: Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is used for typesetting characters which is in Adobe-Japan1-6 CID but not in JIS~X~0208. Since this package is widely used, \LuaTeX-ja -supports some of functions in the \Pkg{japanese-otf} package, +supports some of functions in the \Pkg{japanese-otf} package, as an external package \Pkg{luatexja-otf}. % %<*ja> @@ -1928,8 +2019,8 @@ parameters, you have to use commands \cs{ltjsetparameter} and 用いる. % -%\subsection{Editing the Range of \textbf{JAchar}s} -%\subsection{\textbf{JAchar}の範囲の設定} +%\subsection{Range of \textbf{JAchar}s} +%\subsection{\textbf{JAchar}の範囲} \label{ssec-setrange} %<*en> @@ -1948,6 +2039,7 @@ and the character ``漢'' to the character range~100. \begin{lstlisting} \ltjdefcharrange{100}{"20000-"2FFFF,`漢} \end{lstlisting} + %<*en> A character can belong to only one character range. For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja, @@ -1956,18 +2048,18 @@ removed from the range~4. % %<*ja> 各文字はただ一つの文字範囲に所属することができる. -例えば,SIPは全て\LuaTeX-jaのデフォルトでは4番の文字範囲に -属しているが,上記の指定を行えばSIPは100番に属すようになり,4番からは除かれる. +例えば,SIP内の文字は全て\LuaTeX-jaのデフォルトでは4番の文字範囲に +属しているが,上記の指定を行えばSIP内の文字は100番に属すようになり,4番からは除かれる. % %<*en> -The distinction between \textbf{ALchar} and \textbf{JAchar} is done for character ranges. +The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges. This can be edited by setting the \textsf{jacharrange} parameter. -For example, this is just the default setting of \LuaTeX-ja, and +For example, the code below is just the default setting of \LuaTeX-ja, and it sets \begin{itemize} - \item a character which belongs character ranges 1,~4, and~5 is \textbf{ALchar}, - \item a character which belongs character ranges 2,~3, 6, 7, and~8 is \textbf{JAchar}. + \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar}, + \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}. \end{itemize} % %<*ja> @@ -1975,12 +2067,12 @@ it sets これは\textsf{jacharrange}パラメータによって編集できる. 例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している: \begin{itemize} - \item 1番,4番,5番の文字範囲に属する文字は\textbf{ALchar}. - \item 2番,3番,6番,7番,8番の文字範囲に属する文字は\textbf{JAchar}. + \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}. + \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}. \end{itemize} % \begin{lstlisting} -\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}} +\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}} \end{lstlisting} %<*en> The argument to \textsf{jacharrange} parameter is a list of non-zero integer. @@ -1995,12 +2087,21 @@ and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''. % %<*en> -\paragraph{Default setting} +Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an +\textbf{ALchar} (this cannot be customized). +% +%<*ja> +なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す +ることは出来ない). +% + +%<*en> +\paragraph{Default character ranges} \LuaTeX-ja predefines eight character ranges for convenience. They are determined from the following data: % %<*ja> -\paragraph{初期設定} +\paragraph{文字範囲の初期値} \LuaTeX-jaでは8つの文字範囲を予め定義しており, これらは以下のデータに基づいて決定している. % @@ -2018,24 +2119,26 @@ Now we describe these eight ranges. The superscript ``J'' or ``A'' after the number shows whether each character in the range is treated as \textbf{JAchar}s or not by default. These settings are similar to the \texttt{prefercjk} settings defined in \texttt{PXbase} bundle. -Any characters above \texttt{U+0080} which does not belong to +Any characters equal to or above \texttt{U+0080} which does not belong to these eight ranges belongs to the character range~217. % %<*ja> 以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」 -は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの設定は -\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものである. +は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は +\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが, +8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部 +\textbf{ALchar}としている. なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている. % \begin{description} %<*en> -\item[Range~8${}^{\kern.1em\text{J}}$] The intersection of the upper half of ISO~8859-1 +\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1 (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range consists of the following characters: % %<*ja> -\item[範囲8${}^{\kern.1em\text{J}}$] ISO~8859-1の上位領域(ラテン1補助)と +\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と JIS~X~0208の共通部分.この文字範囲は 以下の文字で構成される: % @@ -2069,9 +2172,10 @@ This range consists of the following Unicode ranges, \emph{except characters in \item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B \item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions \item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters -\item \texttt{U+0300}--\texttt{U+036F}: \\\null\hfill Combining Diacritical Marks -\item \texttt{U+1E00}--\texttt{U+1EFF}: \\\null\hfill Latin Extended Additional -\par\ +%\par\ +\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks +\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional +%\par\ \end{itemize} \end{multicols} %<*en> @@ -2080,7 +2184,7 @@ This range consists of the following Unicode ranges, \emph{except characters in % %<*ja> \item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの - 和文フォント)はこれらの文字を持つ. + 和文フォント)には,これらの文字の一部が含まれている. % \begin{multicols}{2} \begin{itemize} @@ -2205,6 +2309,59 @@ The block list is indicated in Table~\ref{table-rng7}. \end{table} \end{description} +%<*en> +\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}} +You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar}, +when you use traditional 8-bit fonts, such as the \Pkg{textcomp} package or the +\Pkg{marvosym} package. + +For example, the codepoint \cs{textparagraph} which is provided by the \Pkg{textcomp} +package is 182. This codepoint corresponds \P\ (\text{U+00B6}) in Unicode. +Similarly, \cs{Frowny} which is provided by the \Pkg{marvosym} package has +the same codepoint as \S\ (\text{U+00A7}). +Hence, as previous versions of \LuaTeX-ja, if these characters are treated as +\text{JAchar}s, then \cs{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font), +and \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font). + +To avoid such situations, the default setting of \LuaTeX-ja is changed in this release +so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}. + +If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range +setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example. +\begin{LTXexample}[width=0.3\textwidth] +\gtfamily\large % default, ALchar, JAchar +¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar +α, \ltjalchar`α, \ltjjachar`α % default: JAchar +\end{LTXexample} +% +%<*ja> +\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意} +\LuaTeX-jaで,\Pkg{textcomp}パッケージや\Pkg{marvosym}パッケージ等,Unicodeフォントでなく +伝統的な8ビットフォントを用いる場合には注意が必要である. + +例えば,\Pkg{textcomp}パッケージの提供する \cs{textparagraph} は, +符号位置が182,つまり \texttt{0xB6} であり,Unicodeではこの符号位置では\P\ (\text{U+00B6}) に対応する. +また,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける +\S\ (\text{U+00A7}) と同じ符号位置にある. +即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で +あったとすると,上記の \cs{textparagraph} は和文フォントで「\ltjjachar`¶」を出力し, +また \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる. + +このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の +文字は全て\textbf{ALchar}となるように初期設定を変更している. +特に影響を受けるのが,JIS~X~0208の一部分である文字範囲8内の文字であり, +\emph{\Pkg{fontspec}パッケージを読み込んだりして欧文記号としてこれらの文字の出力環境を整え +ないと,ソース中に直接記述しても出力されない}ことになる. + +なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には, +以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい. +\begin{LTXexample}[width=0.3\textwidth] +\gtfamily\large % default, ALchar, JAchar +¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar +α, \ltjalchar`α, \ltjjachar`α % default: JAchar +\end{LTXexample} +% + %\subsection{\Param{kanjiskip} and \Param{xkanjiskip}} %\subsection{\Param{kanjiskip}と\Param{xkanjiskip}} \label{subs-kskip} @@ -2288,7 +2445,7 @@ JFMは「望ましい\Param{kanjiskip}の値」や \cs{ltjgetparameter} によって取得することはできないので注意が必要である. % -%\subsection{Insertion Setting of \Param{xkanjiskip}} +%\subsection{Insertion setting of \Param{xkanjiskip}} %\subsection{\Param{xkanjiskip} の挿入設定} %<*en> @@ -2411,7 +2568,7 @@ Here the horizontal line in the below example is the baseline of a line. 下の例において引かれている水平線がベースラインである. % \begin{LTXexample} -\vrule width 150pt height 0.4pt depth 0pt \hskip-120pt +\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt \ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう \ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう \end{LTXexample} @@ -2426,13 +2583,15 @@ The following is an example (beware the value is not well tuned): 異なる文字を中心線に揃えることができる. 以下は一つの例である(値はあまり調整されていないことに注意): % -\begin{LTXexample} -xyz漢字 +\begin{LTXexample}[width=0.4\textwidth] +\vrule width 150pt height4.417pt depth-4.217pt% +\kern-150pt +\large xyz漢字 {\scriptsize - \ltjsetparameter{yjabaselineshift=-1pt, - yalbaselineshift=-1pt} - XYZひらがな -}abcかな + \ltjsetparameter{yjabaselineshift=-1.757pt, + yalbaselineshift=-1.757pt} + 漢字xyzあいう +}あいうabc \end{LTXexample} %<*en> @@ -2489,20 +2648,20 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed. \toprule \emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount} \begin{lstlisting} -数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$, +数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$, $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$ \end{lstlisting}\\ \noalign{\vskip-\origbaselineskip} \midrule \emph{\pTeX}& {\ltjsetparameter{yalbaselineshift=10pt}% -数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$, +数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$, $\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$ \par}\\ \midrule \emph{\LuaTeX-ja}& {\ltjsetparameter{yalbaselineshift=10pt}% -数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$, +数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$, $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$ \par}\\ \noalign{\vskip-\origbaselineskip} @@ -2515,18 +2674,19 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$ \subsection{\emph{kinsoku} parameters and OpenType features} Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}), \begin{quote} - \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty}, + \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty}, \Param{postbreakpenalty}~and~\Param{kcatcode} \end{quote} -are stored by each character codes. ... +are stored by each character codes. +OpenType font features are ignored in these parameters. For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to -its halfwidth variant ``ア'', by \verb+hwid+ feature. +its halfwidth variant ``ア'', by \verb+hwid+ feature. However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of ``ア'', not 20. % %<*ja> -\subsection{禁則処理関連パラメータとfont feature} +\subsection{禁則処理関連パラメータとOpenTypeのfont feature} 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち \begin{quote} \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty}, @@ -2536,7 +2696,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt \Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など, 各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は, -\emph{OpenType featureの適用前の文字コードによって判定される.} +\emph{OpenType featureの適用前の文字コードによって適用される.} 例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」 に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である. % @@ -2791,7 +2951,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} \end{table} %<*en> -\subsection{Non-kanji Characters in a Control Word} +\subsection{Non-kanji characters in a control word} Because the engine differ, so non-kanji JIS~X~0208 characters which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja. Table~\ref{table-kcat-diff} shows the difference. @@ -2991,7 +3151,7 @@ the direction inside the box and that outside the box differ. \put(0,0){\vector(1,0){5}} \put(2.5,-0.2){\makebox(0,0)[t]{$h_{\mathrm{T}}$}} \put(0,0){\vector(-1,0){2}}\put(-1,-0.2){\makebox(0,0)[t]{$d_{\mathrm{T}}$}} \put(0,0){\vector(0,-1){7}}\put(0.2,-3.5){\makebox(0,0)[l]{$w_{\mathrm{T}}$}} - \end{picture}}} + \end{picture}}}% } \def\DTOUeg{% \hbox{\smash{\begin{picture}(0,0)(-5,0) @@ -3002,7 +3162,7 @@ the direction inside the box and that outside the box differ. \put(0,0){\vector(-1,0){5}} \put(-2.5,0.3){\makebox(0,0)[b]{$h_{\mathrm{D}}$}} \put(0,0){\vector(1,0){2}}\put(1,0.3){\makebox(0,0)[b]{$d_{\mathrm{D}}$}} \put(0,0){\vector(0,1){7}}\put(-0.2,3.5){\makebox(0,0)[r]{$w_{\mathrm{D}}$}} - \end{picture}}} + \end{picture}}}% } \def\YOKOeg{% \hbox{\smash{\begin{picture}(0,0) @@ -3013,7 +3173,7 @@ the direction inside the box and that outside the box differ. \put(0,0){\vector(0,1){5}} \put(0.3,2.5){\makebox(0,0)[l]{$h_{\mathrm{Y}}$}} \put(0,0){\vector(0,-1){2}}\put(0.3,-1){\makebox(0,0)[l]{$d_{\mathrm{Y}}$}} \put(0,0){\vector(1,0){7}}\put(3.5,0.2){\makebox(0,0)[b]{$w_{\mathrm{Y}}$}} - \end{picture}}} + \end{picture}}}% } \begin{tabular}{ccc} \toprule @@ -3119,7 +3279,7 @@ the direction inside the box and that outside the box differ. \begin{align*} W_{\mathrm{Y}} &= h_{\mathrm{D}}+d_{\mathrm{D}},\\ H_{\mathrm{Y}} &= w_{\mathrm{D}},\\ - D_{\mathrm{Y}} &= 0\,pt + D_{\mathrm{Y}} &= 0\,\mathrm{pt} \end{align*}% }& \parbox[c]{15\unitlength}{\begin{picture}(15,15)(0,-4) @@ -3676,8 +3836,8 @@ OpenType font featureと見かけ上同じような形式で指定できるも \paragraph{\texttt{extend} and \texttt{slant}} The following setting can be specified as OpenType font features: \begin{cslist}[style=standard] -\item[\cs{extend=}] expand the font horizontally by . -\item[\cs{slant=}] slant the font. +\item[\texttt{extend=}] expand the font horizontally by . +\item[\texttt{slant=}] slant the font. \end{cslist} Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant} settings; you have to write new JFMs on purpose. @@ -3692,6 +3852,36 @@ letter-spacing and the width of italic correction are not correct: \S あいう\/ABC \end{LTXexample} +%<*ja> +\paragraph{\texttt{ltjksp} 指定} +\label{pg:ltjksp} +\LuaTeX-ja標準では, +JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ +\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって, +「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が +同じ場所に挿入される」という状況が起こりうる. +この機能を無効化し,20150922.0版以前と同じような組版を得るためには +他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い. +\begin{LTXexample}[width=16\zw] +\leavevmode +\ltjsetparameter{kanjiskip=0pt plus 3\zw} +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule + +\jfont\G=file:KozMinPr6N-Regular.otf% + :jfm=ujis;-ltjksp at 9.2487pt +\G\leavevmode% +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\end{LTXexample} +なお, +\begin{lstlisting} + \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt +\end{lstlisting} +のように \texttt{+ltjksp} 指定を行った場合は,\texttt{kanjiskip\_natural} など +3キーは再び有効化される.\texttt{-ltjksp}, \texttt{+ltjksp} を複数回指定した場合は, +最後に指定したものが有効となる. +% + + %\subsection{\cs{tfont}} %\subsection{\cs{tfont} 命令} @@ -3753,7 +3943,7 @@ letter-spacing and the width of italic correction are not correct: 但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の 有効・無効を指定した場合は別である. \begin{lstlisting} -\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv +\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vert and vrt2 are automatically activated \tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated \end{lstlisting} @@ -3877,7 +4067,7 @@ Please contact the LuaTeX-ja project team. ? \end{lstlisting} -%\subsection{Structure of a JFM File} +%\subsection{Structure of a JFM file} %\subsection{JFMファイルの構造} \label{ssec-jfm-str} %A JFM file is a Lua script which has only one function call: @@ -4021,20 +4211,48 @@ This field is a list of characters which are in this character %(必須) %<*en> +\begin{table}[t] + \centering +\begin{tabular}{llr} +\toprule +Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textbf{\texttt{'tate'} (vertical)}}\\ +\midrule +\texttt{width} field&the width of the ``real'' glyph&1.0~(full-width)\\ +\texttt{height} field&the height of the ``real'' glyph&0.5~(half-width)\\ +\texttt{depth} field&the depth of the ``real'' glyph&0.5~(half-width)\\ +\midrule +\texttt{italic} field&\multicolumn{2}{c}{0.0}\\ +\bottomrule +\end{tabular} +\caption{Default values of \texttt{width} field and other fields} +\label{tab-wid} +\end{table} Specify the width of characters in character class~$i$, the height, the depth and the amount of italic correction. All characters in character class~$i$ are regarded that its width, height, and depth are -as values of these fields. - -But there is one exception: \texttt{width} field can be \texttt{'prop'}. -This means that width of a character becomes that of its ``real'' glyph. +as values of these fields. The default values are shown in Table~\ref{tab-wid}. % %<*ja> +\begin{table}[t] + \centering +\begin{tabular}{llr} +\toprule +JFM書字方向&\emph{\texttt{'yoko'}(横組)}&\multicolumn{1}{l}{\emph{\texttt{'tate'}(縦組)}}\\ +\midrule +\texttt{width}&「実際のグリフ」の幅&1.0(全角)\\ +\texttt{height}&「実際のグリフ」の高さ&0.5(二分)\\ +\texttt{depth}&「実際のグリフ」の深さ&0.5(二分)\\ +\midrule +\texttt{italic}&\multicolumn{2}{c}{0.0}\\ +\bottomrule +\end{tabular} +\caption{\texttt{width} フィールド等の標準値} +\label{tab-wid} +\end{table} 文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する. 文字クラス$i$に属する全ての文字は,その幅,高さ,深さがこのフィールドで指定した -値であるものとして扱われる. - -例外として,\emph{\texttt{width} フィールドには数値以外に \texttt{'prop'} が指定可能である}. -この場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用 +値であるものとして扱われる.省略時や,数でない値を指定した時には表\nobreak\ref{tab-wid}に + 示されている値を用いる.例えば,横組用JFMで \texttt{width} フィールドには数値以外の値を指 + 定した場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用 すれば,これによってプロポーショナル組を行うことができる. % @@ -4258,62 +4476,122 @@ Furthermore, the glyph is shifted according to values of fields \label{fig-pos-tate} \end{figure} -\item[kern={\{[$j$]=, [$j'$]=\{, []\}, ...\}}] - -\item[glue={\{[$j$]=\{, , , [], []\}, ...\}}]\ +\item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}] +\nopagebreak +\item[glue={\{[$j$]=\{, , , [ratio=, ...]\}, ...\}}]\leavevmode %<*ja> -文字クラス$i$の文字と$j$の文字の間に挿入されるkernやglueの量を指定する. +文字クラス$i$の文字と$j$の文字の間に挿入されるカーンやグルーの量を指定する. - は \Pkg{luatexja-adjust} による優先順位付き - 行長調整(\ref{ssec-adj}節)が有効なときのみ意味を持つ. -このフィールドは省略可能であり,行調整処理におけるこのglueの優先 - 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」 - ことを意味する.省略時の値 - は0であり,範囲外の値が指定されたときの動作は未定義である. - -も省略可能フィールドであり,$-1$から$+1$の実数値をとる.省略時の値は0である. -\begin{itemize} -\item $-1$はこのグルーが「前の文字」由来であることを示す. -\item $+1$はこのグルーが「後の文字」由来であることを示す. -\item それ以外の値は,「前の文字」由来のグルーと「後の文字」由来の -グルーが混合されていることを示す. -\end{itemize} -なお,このフィールドの値は\Param{differentjfm}の値が +は,グルーの自然長のうちどれだけの割合が「後の文字」由来かを示す量で, +$0$から$+1$の実数値をとる.省略時の値は$0.5$である. +このフィールドの値は\Param{differentjfm}の値が \texttt{pleft},~\texttt{pright},~\texttt{paverage}の値のときのみ実際に用いられる. 例えば,\cite{x4051}では,句点と中点の間には, 句点由来の二分空きと中点由来の四分空きが挿入されるが,この場合には \begin{itemize} \item には$0.5+0.25=0.75$を指定する. -\item には次の値を指定する. -\[ - -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13 -\] +\item には$0.25/(0.5+0.25)=1/3$を指定する. \end{itemize} % %<*en> \ -Specifies the width of kern or glue which will be inserted +Specifies the amount of kern or glue which will be inserted between characters in character class~$i$ and those in character class~$j$. - is an integer in $[-2,2]$ (treated as 0 if omitted), and this is -used only in line adjustment with priority by \Pkg{luatexja-adjust} -(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to shretch, -and is also easy to shrink. - - is also an optional value between $-1$ and 1. For example, + specifies how much the glue is originated in the ``right'' character. +It is a real number between 0 and 1, and treated as 0.5 if omitted. For example, The width of a glue between an ideographic full stop ``。'' and a fullwidth middle dot ``・'' is three-fourth of fullwidth, namely halfwidth from the ideographic full stop, and quarter-width from the fullwidth middle dot. In this case, -we specify to -\[ - -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13. -\] +we specify to $0.25/(0.5+0.25)=1/3$. % +%<*ja> +グルーの指定においては,上記に加えて各 \texttt{[$j$]} の各サブテーブル内に +次のキーを指定できる, +\begin{cslist}[style=standard] +\item[priority=] + \Pkg{luatexja-adjust} による優先順位付き + 行長調整(\ref{ssec-adj}節)の際に使われる値であり, +行調整処理におけるこのglueの優先 + 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」 + ことを意味する.省略時の値 + は0であり,範囲外の値が指定されたときの動作は未定義である. +\item[kanjiskip\_natural=\textrm{, }% + kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode + \label{pg:ksp_nat} + +JFMによって本来挿入されるグルーの他に +\Param{kanjiskip}分の空白を自然長(\texttt{kanjiskip\_natural}),伸び量(\texttt{kanjiskip\_stretch}), +縮み量(\texttt{kanjiskip\_shrink})ごとに挿入する\footnote{本来\Param{xkanjiskip}が挿入される場所においては + \Param{xkanjiskip}分の空白を自然長・伸び量・縮み量ごとに.追加できる.}% +ための指定である.いずれも省略された場合のデフォルト値は0(追加しない)である. + +例えば,\LuaTeX-jaの横組標準JFMの \texttt{jfm-ujis.lua} では, +\begin{itemize} + \item 通常の文字「あ」と開き括弧類の間に入るグルーは,自然長・縮み量半角,伸び量0のグルー +となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け + た分だけ伸びることが許される. + \item 同様に,閉じ括弧類(全角コンマ「,」も含む)と通常の文字「う」「え」の間にも +自然長・縮み量半角,伸び量0のグルー +となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け + た分だけ伸びることが許される. +\end{itemize} +となっている.従って,以下のような組版結果を得る. + +\medskip +\begin{LTXexample}[width=16\zw] +\leavevmode +\ltjsetparameter{kanjiskip=0pt plus 3\zw} +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\end{LTXexample} + +\end{cslist} +% +%<*en> +In case of glue, one can specify following additional keys in each \texttt{[$j$]} + subtable: +\begin{cslist}[style=standard] +\item[priority=] +An integer in $[-2,2]$ (treated as 0 if omitted), and this is +used only in line adjustment with priority by \Pkg{luatexja-adjust} +(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch, +and is also easy to shrink. +\item[kanjiskip\_natural=\textrm{, }% + kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode + +These keys specifies the amount of the natural width of \Param{kanjiskip} +(the stretch/shrink part, respectively) which will be inserted +in addition to the original JFM glue. Default values of them are all 0. + +As an example, in \texttt{jfm-ujis.lua}, the standard JFM in horizontal writing, we have +\begin{itemize} + \item Between an ordinal letter ``あ'' and an ideographic opening bracket, we have +a glue whose natural part and shrink part are both half-width, while its stretch part is + zero. However, this glue also can be stretched + as much as the stretch part of \Param{kanjiskip} times the value of + \texttt{kanjiskip\_stretch} key (1 in this case). + \item Between an ideographic closeing brackets (the ideographic comma ``,'' + is included) and an ordinal letter, we have the same glue. + Again, this glue also can be stretched + as much as the stretch part of \Param{kanjiskip} times the value of + \texttt{kanjiskip\_stretch} key (1 in this case). +\end{itemize} +Hence we have the following result: + +\medskip +\begin{LTXexample}[width=16\zw] +\leavevmode +\ltjsetparameter{kanjiskip=0pt plus 3\zw} +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\end{LTXexample} + +\end{cslist} +% \item[end\_stretch=, end\_shrink=] %<*ja> @@ -4509,7 +4787,7 @@ JFM側で一部の対処ができることにより,\Pkg{jsclasses}のよう % -%\subsection{Math Font Family} +%\subsection{Math font family} %\subsection{数式フォントファミリ} \label{ssec-math} @@ -4723,7 +5001,7 @@ glueであれば,\texttt{[$j$]=\{false, , , \}} で \end{itemize} \item[ascent\textrm{, }descent] …… -\item[chars\_cbcache] +\item[chars\_cbcache] …… \end{cslist} % @@ -4801,7 +5079,7 @@ This callback is called when \LuaTeX-ja is trying to encapsule a その\textit{glyph\_node}をカプセル化しようとする際に呼び出される. % \begin{lstlisting}[numbers=left] -function ( shift_info,
jfont_info, char_class) +function (
shift_info,
jfont_info,
char_type) return
new_shift_info end \end{lstlisting} @@ -4840,7 +5118,7 @@ Then, the position of glyphs is shifted up by (和文OpenTypeフォントの標準値) \item 実フォント側の数値:$(\hbox{高さ})=28y$, $(\hbox{深さ})=5y$(和文TrueTypeフォントの標準値) \end{itemize} -となっていたとする.すると,実際の文字の出力位置は,以下の量だけ上にぜらされることとなる: +となっていたとする.すると,実際の文字の出力位置は,以下の量だけ上にずらされることとなる: % \[ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y. @@ -5379,7 +5657,7 @@ The correct way is using a temporary register. \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw} \@tempskipa=\ltjgetparameter{xkanjiskip} \ifdim\@tempskipa>\z@ - \if@slide + \if@slide \ltjsetparameter{xkanjiskip=0.1em} \else \ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em} @@ -5399,7 +5677,7 @@ The correct way is using a temporary register. \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 @@ -5434,7 +5712,7 @@ The correct way is using a temporary register. さて,縦組の欧文ベースライン補正量\Param{talbaselineshift}は, 実際には \cs{ltj@tablshift} という属性レジスタに格納されている (\ref{sec-para}\nobreak 節参照).属性レジスタは長さではなく整数値を格納する\footnote{% - 従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\ + 従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\ のように記述することはできない.属性レジスタを \cs{tbaselineshift} という名称にしなかっ たのはそのためである. }ものであり,\cs{ltj@tablshift} は補正量を sp 単位で保持することから, @@ -5453,7 +5731,7 @@ The correct way is using a temporary register. %\section{Other Commands for plain \TeX\ and \LaTeXe} %\section{plainでも\LaTeX でも利用可能なその他の命令} -%\subsection{Commands for Compatibility with \pTeX} +%\subsection{Commands for compatibility with \pTeX} %\subsection{\pTeX 互換用命令} %<*en> @@ -5569,7 +5847,7 @@ With the help of this example, we remark the specification of \cs{inhibitglue}: Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts. This \cs{ltjdeclarealtfont} uses in the following form: \begin{quote} -\ttfamily \textbackslash ltjdeclarealtfont{} +\ttfamily \textbackslash ltjdeclarealtfont\{\} \end{quote} where ~and~ are defined by \cs{jfont}. Its meaning is @@ -5577,8 +5855,7 @@ Its meaning is If the current Japanese font is , characters which belong to is typeset by another Japanese font , instead of . \end{quote} - - is a comma-separated list of character codes, but also accepts negative integers: +Here is a comma-separated list of character codes, but also accepts negative integers: $-n$~($n≥1$) means that all characters of character classes~$n$, with respect to JFM used by . Note that characters which do not exist in are ignored. @@ -5602,7 +5879,7 @@ are typeset by \cs{piyo}. \cs{ltjdeclarealtfont} は以下の書式で使用する: \begin{quote} -\ttfamily \textbackslash ltjdeclarealtfont{} +\ttfamily \textbackslash ltjdeclarealtfont\{\} \end{quote} これは「現在の和文フォント」がであるとき, に属する文字はを用いて組版される,という意味である. @@ -5630,6 +5907,28 @@ are typeset by \cs{piyo}. マクロの都合による. % +%<*ja> +\subsection{\cs{ltjalchar} と \cs{ltjjachar}} +文字コードが$\text{}~(\geq 128=\mathtt{0x80})$の文字を +\ \cs{char} プリミティブを使い \cs{char} として出力させると, +その文字の属する文字範囲(\ref{ssec-setrange}節参照)によって +\textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され +るかが決まる. + +文字範囲の設定を無視し,文字コードが$\text{}~(\geq 128=\mathtt{0x80})$の文字を強制的に +\textbf{ALchar}, \textbf{JAchar}で出力する命令がそれぞれ +\ \cs{ltjalchar},~\cs{ltjjachar} である.使用方法は \cs{char} と同じく +\ \cs{ltjalchar}, \cs{ltjjachar}とすればよい. +が127以下の場合は,\cs{ltjjachar} であっても\textbf{ALchar}として出力されること +に注意. + +以下は\ref{ssec-setrange}節に載せた例に,\cs{char} の動作を追加したものである. +\begin{LTXexample}[width=0.25\textwidth] +\gtfamily\large % default, ALchar, JAchar +¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar +α, \char`α, \ltjalchar`α, \ltjjachar`α % default: JAchar +\end{LTXexample} +% %\section{Commands for \LaTeXe} @@ -5821,66 +6120,12 @@ In \LuaTeX-ja, this \cs{adjustbaseline} does same task, namely setting the \item[\cs{fontfamily}\{\}] %<*en> As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both}) -to . Which family will be changed is determined as follows: +to . See Subsection~\ref{ssec-fontfamilycmd} for detail. % %<*ja> 元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文, -和文,\emph{もしくは両方})をに変更する. -どのファミリが変更されるかは以下のようにして決定される: -% -\begin{itemize} -%<*en> -\item Let current encoding scheme for Japanese fonts be - . Current Japanese font family will be changed to - , if one of the following two conditions is met: -% -%<*ja> -\item 現在の和文フォントに対するエンコーディングがであるとしよう. - 現在の和文フォントファミリは,以下の2つの条件のうちの1つが満たされているときに - に変更される: -% -\begin{itemize} -%<*en> -\item The family under the encoding has been already defined by - \cs{DeclareKanijFamily}. -% -%<*ja> -\item エンコーディングにおけるファミリが -既に \cs{DeclareKanjiFamily} によって定義されている. -% -%<*en> -\item A font definition named \texttt{.fd} (the file name is - all lowercase) exists. -% -%<*ja> -\item フォント定義ファイル\texttt{.fd}(ファイル名は全て小文字)が存在する. -% -\end{itemize} -%<*en> -\item Let current encoding scheme for alphabetic fonts be - . For alphabetic font family, the criterion as above is used. -% -%<*ja> -\item 現在の欧文フォントに対するエンコーディングをとする. - 欧文フォントファミリに対しても,上記の基準が用いられる. -% -%<*en> -\item There is a case which none of the above applies, that is, the font - family named doesn't seem to be defined neither under the - encoding , nor under . -In this case, the default family for font substitution is used for - alphabetic and Japanese fonts. Note that current encoding will not - be set to , unlike the original implementation in \LaTeX. -% -%<*ja> -\item 上記のいずれもが適用されない,つまりがとの - どちらでも定義されないような場合がある. - この場合,代替フォントに用いられるデフォルトのフォントファミリが欧文フォントと - 和文フォントに用いられる.\LaTeX のオリジナルの実装とは異なり, - 現在のエンコーディングはには設定されないことに注意する. +和文,\emph{もしくは両方})をに変更する.詳細は\ref{ssec-fontfamilycmd}節を参照すること. % -\end{itemize}% -%\vspace{-\medskipamount} \begin{figure}[!tb] @@ -5957,21 +6202,187 @@ Avant Garde (OT1/pag/m/n) に変わっていることがわかる. \userelfont\selectfont あいうabc \end{LTXexample} +%\subsection{Detail of \cs{fontfamily} command} +%\subsection{\cs{fontfamily}コマンドの詳細} +\label{ssec-fontfamilycmd} %<*en> -\section{Addons} +In this subsection, we describe when \cs{fontfamily} changes current +Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to + if it is recognized as a Japanese font family, and similar with alphabetic font +family. There is a case that current Japanese/alphabetic font family are both changed to +, and another case that isn't recognized as a Japanese/alphabetic font +family either. + +\paragraph{Recognition as Japanese font family} +First, Whether Japanese font family will be changed is determined in following order. +This order is very similar to \cs{fontfamily} in \pLaTeXe, but we re-implemented in Lua. +We use an auxiliary list~$N_{\mathrm{J}}$. +% +%<*ja> +本節では,\cs{fontfamily} がいつ和文/欧文フォントファミリを変更するかについて解説 +する.基本的には,が和文フォントファミリだと認識されれば和文側が,欧文フォントファ +ミリだと認識されれば欧文側が変更される.どちらとも認識されれば和文・欧文の両方が変わるこ +とになるし,当然どちらとも認識されないこともある. + +\paragraph{和文フォントファミリとしての認識} +まず,が和文フォントファミリとして認識されるかは以下の順序で決定される. +これは\pLaTeXe の \cs{fontfamily} にとても似ているが,ここではLuaによって実装している. +補助的に「和文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{J}}$を用いる. +% +\begin{enumerate} +%<*en> +\item If the family~ has been defined already by \cs{DeclareKanjiFamily}, + is recognized as a Japanese font family. + Note that need not be defined under \emph{current} Japanese font encoding. +% +%<*ja> +\item ファミリが既に \cs{DeclareKanjiFamily} によって定義されている場合, + は和文フォントファミリであると認識される. + ここで,は現在の和文フォントエンコーディングで定義されていなくてもよい. +% +%<*en> +\item If the family~ has been listed in a list~$N_{\mathrm{J}}$, this means + that is not a Japanese font family. +% +%<*ja> +\item ファミリがリスト$N_{\mathrm{J}}$に既に含まれていれば,それは + が和文フォントファミリではないことを意味する. +% +%<*en> +\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and is not + recognized as a Japanese font family. + + If the \Pkg{luatexja-fontspec} package is \emph{not} loaded, +now \LuaTeX-ja looks whether there exists a Japanese font encoding~ such that + a font definition named \texttt{.fd} (the file name is + all lowercase) exists. If so, is recognized as a Japanese font family (the font definition file won't be loaded here). + If not, is not a Japanese font family, and + is appended to the list~$N_{\mathrm{J}}$. +% +%<*ja> +\item もし\Pkg{luatexja-fontspec}パッケージが読み込まれていれば,ここで終了であり, +は和文フォントファミリとして認識されないことになる. + +もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディングで +フォント定義ファイル\texttt{.fd}(ファイル名は全て小文字)が存在するようなも + のがあるかどうかを調べる. +存在すれば,は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな + い). +存在しなければ,は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$にを追加することでそれを記憶する. + +% +\end{enumerate} + +%<*en> +\paragraph{Recognition as alphabetic font family} +Next, whether alphabetic font family will be changed is determined in following order. +We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$, +% +%<*ja> +\paragraph{欧文フォントファミリとしての認識} +同様に,が和文フォントファミリとして認識されるかは以下の順序で決定される. +補助的に「欧文フォントファミリと既に認識された」ファミリのリスト$F_{\textrm{A}}$と, +「欧文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{A}}$を用いる. +% + +\begin{enumerate} +%<*en> +\item If the family~ has been listed in a list~$F_{\mathrm{A}}$, + is recognized as an alphabetic font family. +% +%<*ja> +\item ファミリがリスト$F_{\mathrm{A}}$に既に含まれていれば, + は欧文フォントファミリと認識される. +% +%<*en> +\item If the family~ has been listed in a list~$N_{\mathrm{A}}$, this means + that is not an alphabetic font family. +% +%<*ja> +\item ファミリがリスト$N_{\mathrm{A}}$に既に含まれていれば,それは + が欧文フォントファミリではないことを意味する. +% +%<*en> +\item If there exists an alphabetic font encoding such that the family~ has been + defined under it, is recognized as an alphabetic font family, and + to memorize this, is appended to the list~$F_{\mathrm{A}}$. +% +%<*ja> +\item ある欧文フォントエンコーディング下でファミリが定義されていれば, + は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$にを追加することでこのことを記憶する. +% +%<*en> +\item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~ such that + a font definition named \texttt{.fd} (the file name is + all lowercase) exists. If so, current alphabetic font family will be changed to + ~(the font definition file won't be loaded here). + If not, current alphabetic font family won't be changed, and + is appended to the list~$N_{\mathrm{A}}$. +% +%<*ja> +\item 最終段階では,欧文エンコーディングで +フォント定義ファイル\texttt{.fd}(ファイル名は全て小文字)が存在するようなも + のがあるかどうかを調べる. +存在すれば,は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない). +存在しなければ,は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に + を追加してそのことを記憶する. +% +\end{enumerate} + +%<*en> +Also, each call of \cs{DeclareFontFamily} \emph{after} loading of \LuaTeX-ja makes +the second argument (family) is appended to the list~$F_{\mathrm{A}}$. +% +%<*ja> +また,\cs{DeclareFontFamily}が\LuaTeX-jaの読み込み後に実行された場合は, +第2引数(ファミリ名)が自動的に$F_{\mathrm{A}}$に追加される. +% + +%<*en> +The above order is very similar to \cs{fontfamily} in \pLaTeXe, but more complicated (clause~3.). +This is because \pLaTeXe\ is a \emph{format} however \LuaTeX-ja is not, +hence \LuaTeX-ja does not know calls of \cs{DeclareFontFamily} \emph{before} itself is +loaded. +% +%<*ja> +以上の方針は\pLaTeXe における \cs{fontfamily} にやはり類似しているが,3.が加わり若干複雑になっている. +それは\pLaTeXe がフォーマットであるのに対し\LuaTeX-jaはそうでないため, +\LuaTeX-jaは自身が読み込まれる前にどういう\cs{DeclareFontFamily}の呼び出しがあったか +把握できないからである. +% + +%\paragraph{Remarks} +%\paragraph{注意} +%<*en> +Of course, there is a case that is not recognized as a Japanese font family, nor +an alphabetic font family. +In this case, \LuaTeX-ja treats ``the argument is wrong'', so +set both current alphabetic and Japanese font family to , +to use the default family for font substitution. +% +%<*ja> +さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」 +という事態もあり得る. + この場合,引数は不正だった,ということになるので, +和文・欧文の両方のフォントファミリをに設定し,代用フォントが使われるに任せることにする. +% + + +%<*en> +\section{Addon packages} \LuaTeX-ja has several addon packages. These addons are written as \LaTeX\ packages, but \Pkg{luatexja-otf} and~\Pkg{luatexja-adjust} can be loaded in plain \LuaTeX\ by \cs{input}. % %<*ja> -\section{拡張} +\section{拡張パッケージ} \LuaTeX-jaには(動作には必須ではないが)自由に読み込める拡張が付属している. これらは\LaTeX のパッケージとして制作しているが, \Pkg{luatexja-otf}と\Pkg{luatexja-adjust}についてはplain \LuaTeX でも\ \cs{input} で読み込み可能である. % -\subsection{\texttt{luatexja-fontspec.sty}} +\subsection{\Pkg{luatexja-fontspec}} \label{ssec-fontspec2} %<*en> As described in Subsection~\ref{ssec-fontspec}, this optional package @@ -5985,8 +6396,8 @@ the commands of Japanese version: \ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}% パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する. -\Pkg{fontspec}パッケージで指定可能な各種font featureに加えて,和文版のコマンドには -以下の``font feature''を指定することができる: +\Pkg{fontspec}パッケージで指定可能な各種OpenType機能に加えて,和文版のコマンドには +以下の「フォント機能」を指定することができる: % @@ -6042,17 +6453,25 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. \label{fig:yokotate-fontspec} \end{figure} +\item[Kanjiskip=] +%<*ja> +\pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と +同一の効力を持ち, +JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ +\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える. +標準値は \texttt{true} である. +% \item[TateFeatures=\{\}\textrm{, }TateFont=] %<*en> The \texttt{TateFeatures} key specifies font features which are only turned~on in -vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature). +vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature). Similarly, the \texttt{TateFont} key specifies the Japanese font which will be used only in vertical writing. A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}. % %<*ja> -縦組において使用されるフォントや,縦組においてのみ適用されるfeature達を +縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を 指定する.使用例は図\ref{fig:yokotate-fontspec}参照. % @@ -6063,7 +6482,7 @@ horizontal writing,. A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}. % %<*ja> -同様に,横組においてのみ適用されるfeature達を +同様に,横組においてのみ適用されるフォント機能達を 指定する.使用例は図\ref{fig:yokotate-fontspec}参照. % @@ -6098,7 +6517,7 @@ as the following: %<*ja> \ref{ssec-altfont}節の \cs{ltjdeclarealtfont} や, \ref{ssec-nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に, -このキーを用いると一部の文字を異なったフォントやfont featureを使って組むことができる. +このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる. \texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである: % \begin{lstlisting}[escapechar=\#] @@ -6188,13 +6607,14 @@ BoldFeatures = { また,図\ref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず, 2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ -たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ によるfeature指定は -組方向に依存しないfeature指定より後に解釈される}からである. +たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による +OpenType機能指定は +組方向に依存しないOpenType機能の指定より後に解釈される}からである. % -\subsection{\texttt{luatexja-otf.sty}} +\subsection{\Pkg{luatexja-otf}} \label{ssec-ltjotf} %<*en> This optional package supports typesetting characters in @@ -6267,7 +6687,7 @@ ordinary characters in the following points: is not performed to these characters. % %<*ja> -\item OpenType feature(例えばグリフ置換やカーニング)をサポートするための +\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない. % \end{itemize} @@ -6344,7 +6764,7 @@ For example, only ``葛'' in ``葛西'' is changed by font features \texttt{jp78}~or~\texttt{jp90}, which does not followed by any variation selector. % %<*ja> -また,IVSによる字形指定は,font featureによるそれに優先されることとした. +また,IVSによる字形指定は,OpenType機能によるそれに優先されることとした. 下の例において,\texttt{jp78}, \texttt{jp90} 指定で字形が変化した文字は 異体字セレクタが続いていない「葛西」中の「葛」のみである. % @@ -6369,7 +6789,7 @@ Lua・\TeX コードが参考になるだろう. % -\subsection{\texttt{luatexja-adjust.sty}} +\subsection{\Pkg{luatexja-adjust}} \label{ssec-adj} \begin{figure}[t] \def\sq{% @@ -6449,7 +6869,7 @@ for making the difference obvious. \end{cslist} % -\subsection{\texttt{luatexja-ruby.sty}} +\subsection{\Pkg{luatexja-ruby}} %<*en> This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations using callbacks of \LuaTeX-ja. @@ -6553,7 +6973,7 @@ among the line-head form, the line-middle form, and the line-end form. %<*ja> -\subsection{\texttt{lltjext.sty}} +\subsection{\Pkg{lltjext}} \pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが, それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である. @@ -6693,7 +7113,7 @@ In this case, will be aligned \dots %\section{Storing Parameters} %\section{パラメータの保持} \label{sec-para} -%\subsection{Used Dimensions, Attributes and Whatsit Nodes} +%\subsection{Used dimensions, attributes and whatsit nodes} %\subsection{\LuaTeX-jaで用いられるレジスタとwhatsitノード} %<*en> @@ -7004,7 +7424,7 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s. これらのwhatsitノードは\textbf{JAglue}の挿入処理の間に取り除かれる. % -%\subsection{Stack System of \LuaTeX-ja} +%\subsection{Stack system of \LuaTeX-ja} %\subsection{\LuaTeX-jaのスタックシステム} \label{ssec-stack} @@ -7184,7 +7604,7 @@ To solve this problem, we use another trick: the assignment % %<*en> -\subsection{Lua Functions of the Stack System} +\subsection{Lua functions of the stack system} In this subsection, we will see how a user use \LuaTeX-ja's stack system to store some data which obeys the grouping of \TeX. % @@ -7390,7 +7810,7 @@ end %\section{Linebreak after a Japanese Character} %\section{和文文字直後の改行} \label{sec-lbreak} -%\subsection{Reference: Behavior in \pTeX} +%\subsection{Reference: behavior in \pTeX} %\subsection{参考:\pTeX の動作} %<*en> In~\pTeX, a line break after a Japanese character doesn't emit a space, @@ -8327,10 +8747,10 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので, 仮想ボディの高さ$h$,深さ$d$については \begin{description} \catcode`\<=12\catcode`\>=12 - \item[$\texttt{yoffset}\geq 0$のとき] -$h = \max(\texttt{height} + \texttt{yoffset}, 0)$, -$d = \max(\texttt{depth} - \texttt{yoffset}, 0)$, - \item[$\texttt{yoffset}<0$のとき] + \item[$\texttt{yoffset}\geq 0$のとき] +$h = \max(\texttt{height} + \texttt{yoffset}, 0)$, +$d = \max(\texttt{depth} - \texttt{yoffset}, 0)$, + \item[$\texttt{yoffset}<0$のとき] $h = \max(\texttt{height} + \texttt{yoffset}, 0)$, $d=\texttt{depth}$. \end{description} という仕様になっている.つまり,\texttt{yoffset} が負(グリフを下ける)の場合に深さは増加しな @@ -8472,9 +8892,9 @@ instead of ``\verb+\ほげ+''. %<*en> \paragraph{Variation selectors} \Pkg{lltjp-listings} add two keys, namely \texttt{vsraw}~and~\texttt{vscmd}, -which specify how variation selectors are treated in +which specify how variation selectors are treated in \texttt{lstlisting} or other enviroments. -Note that these additional keys are not usable in the preamble, +Note that these additional keys are not usable in the preamble, since \Pkg{lltjp-listings} is loaded at \verb+\begin{document}+. \texttt{vsraw} is a key which takes a boolean value, and its default value is @@ -8502,7 +8922,7 @@ variation selectors are ``combined'' with the previous character. \end{lstlisting} \end{LTXexample} %<*en> -\item If the \texttt{vsraw} key is false, then +\item If the \texttt{vsraw} key is false, then variation selectors are typeset by an appropriate command, which is specified by the \texttt{vscmd} key. The default setting of the \texttt{vscmd} key produces the following. @@ -8583,7 +9003,7 @@ With this key, the above input now produces better output. \end{lstlisting} % -%\subsection{Class of Characters} +%\subsection{Class of characters} %\subsection{文字種} %Roughly speaking, the \Pkg{listings} package processes input as follows: @@ -8890,13 +9310,13 @@ JFM中にある文字クラス$n$の定義の が連続した場合に,$p$のフォントに対応したが持つ「異体字情報」に従って出力するグリフを変える. しかし,単に$p.\textit{char}$を変更するだけでは,後から -font featureの適用(すぐ下)により置換される可能性がある.そのため, +OpenType機能の適用(すぐ下)により置換される可能性がある.そのため, \cs{CID} や \cs{UTF} と同じように,\textit{glyph\_node}~$p$の代わりに \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを用いている. \item[(\Pkg{luaotfload} によるfont featureの適用)] \item[\tt ltj.otf] \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを きちんと\textit{glyph\_node}に変換する.この処理は,\cs{CID}, \cs{UTF}やIVSによる置換が, -font featureの適用で上書きされてしまうのを防止するためである. +OpenType機能の適用で上書きされてしまうのを防止するためである. \item[\tt ltj.main\_process] \textbf{JAglue}の挿入処理(\ref{sec-jfmglue}章)と, JFMの指定に従って各\textbf{JAchar}の「寸法を補正」することを行う. \end{description} @@ -8992,7 +9412,7 @@ CMapが必要である. 縦組時における幅を格納している.構造は以下の通り: % %<*en> -\subsection{Use of Cache} +\subsection{Use of cache} \LuaTeX-ja uses the following cache: \begin{cslist} @@ -9012,7 +9432,7 @@ as in Page~\pageref{para-cid}. This file stores the table which stores the following. \begin{itemize} \item unicode variants in a font ``\texttt{***}'' - \item vertical width of glyphs, if it is not equal to the sum of + \item vertical width of glyphs, if it is not equal to the sum of the height of ascender and the depth of descender \item vertical variants \end{itemize} @@ -9368,7 +9788,7 @@ TUG 2013, October 2013. \bibitem{jlisting} Thor Watanabe. \newblock Listings\ -\ MyTeXpert. %\newblock %\\\null\hfill -\url{http://mytexpert.sourceforge.jp/index.php?Listings} +\url{http://mytexpert.osdn.jp/index.php?Listings} \bibitem{jlreq} W3C Japanese Layout Task Force~(ed). \newblock Requirements for Japanese Text Layout (W3C Working Group Note), 2011, 2012. \newblock \url{http://www.w3.org/TR/jlreq/}%