From 61a103f99ea08fc8b455515cae283ae8f3d542e4 Mon Sep 17 00:00:00 2001 From: Hironori Kitagawa Date: Thu, 27 Mar 2014 10:32:14 +0900 Subject: [PATCH] Updated manuals. --- doc/luatexja.dtx | 86 +++++++++++++++++++++++++++------------- src/addons/luatexja-fontspec.sty | 38 ++++-------------- src/patches/lltjfont.sty | 7 +++- 3 files changed, 71 insertions(+), 60 deletions(-) diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 98ad53f..07abd1e 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -937,7 +937,7 @@ Okumura), namely, \Pkg{ltjclasses} and \Pkg{ltjsclasses}. %\section{フォントの変更} \subsection{plain \TeX~and~\LaTeXe} -\label{ssub-chgfnt} +\label{ssec-chgfnt} \paragraph{plain \TeX} %<*en> @@ -1011,7 +1011,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ alphabetic fonts to \texttt{T1}. \verb+\fontfamily+ also changes the current Japanese font family, the current alphabetic font family, \emph{or both}. - For the detail, see Subsection~\ref{ssub-nfsspat}. + For the detail, see Subsection~\ref{ssec-nfsspat}. % %<*ja> ここで,\verb+\fontencoding{+\verb+}+ は,引数により和文側か欧文 @@ -1020,7 +1020,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を \texttt{T1}へと変更する.\verb+\fontfamily+ も引数により和文側,欧文 側,\emph{あるいは両方}のフォントファミリを変更する.詳細は - \ref{ssub-nfsspat}節を参照すること. + \ref{ssec-nfsspat}節を参照すること. % %<*en> @@ -1043,7 +1043,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ %<*ja> 仮名書体を使う場合など,複数の和文フォントを組み合わせて使いたい場合は \ref{ssec-altfont}節の \verb+\ltjdeclarealtfont+ と,その\LaTeX 版の\ -\verb+\DeclareAlternateKanjiFont+(\ref{ssub-nfsspat}節)を参照せよ. +\verb+\DeclareAlternateKanjiFont+(\ref{ssec-nfsspat}節)を参照せよ. % \end{itemize} @@ -1644,7 +1644,7 @@ If you want to use these functions, load \Pkg{luatexja-otf} package. これら3オプションについては, \Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか, -あるいは対応する内容を\ref{ssub-chgfnt}節,\ref{ssub-nfsspat}節 (NFSS2) や +あるいは対応する内容を\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節 (NFSS2) や \ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある. % @@ -2666,7 +2666,7 @@ because of the compatibility with previous versions of \LuaTeX-ja. 図\ref{fig:kern-jfm}を参照. \begin{itemize} \item \emph{\texttt{\textbackslash jfont} や, -NFSS2用の命令(\ref{ssub-chgfnt}節,\ref{ssub-nfsspat}節)における指定では +NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では カーニング情報は標準で使用する}ことになっているようである. 言い換えれば,カーニング情報を使用しない設定にするには,面倒でも \begin{verbatim} @@ -4294,30 +4294,19 @@ are typeset by \verb+\piyo+. %\subsection{Patch for NFSS2} %\subsection{NFSS2へのパッチ} -\label{ssub-nfsspat} +\label{ssec-nfsspat} \begin{figure}[!tb] -\begin{lstlisting}[numberstyle=\tiny, numbers=left, numbersep=1em] +\begin{LTXexample}[pos=b] \DeclareKanjiFamily{JY3}{edm}{} -\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{} -\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;-kern;color=007F00}{} -\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern;color=0000FF}{} +\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;}{} +\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;color=007F00}{} +\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;color=0000FF}{} \DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}} \DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF} {\kanjifamily{edm}\selectfont 日本国民は、正当に選挙された国会における代表者を通じて行動し、……} -\end{lstlisting} -\begin{quote} -\DeclareKanjiFamily{JY3}{edm}{} -\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{} -\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;-kern;color=007F00}{} -\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern;color=0000FF}{} -\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}} -\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF} - -{\kanjifamily{edm}\selectfont -日本国民は、正当に選挙された国会における代表者を通じて行動し、……} -\end{quote} +\end{LTXexample} %\caption{\texttt{\textbackslash DeclareAlternateKanjiFont} の使用例} %\caption{An example of \texttt{\textbackslash DeclareAlternateKanjiFont}} \label{fig:altkanji} @@ -4327,13 +4316,13 @@ are typeset by \verb+\piyo+. Japanese patch for NFSS2 in \LuaTeX-ja is based on \texttt{plfonts.dtx} which plays the same role in \pLaTeXe. We will describe -commands which are not described in Subsection~\ref{ssub-chgfnt}. +commands which are not described in Subsection~\ref{ssec-chgfnt}. % %<*ja> \LuaTeX-jaのNFSS2への日本語パッチは \pLaTeXe で同様の役割を果たす \texttt{plfonts.dtx} をベースに, 和文エンコーディングの管理等をLuaで書きなおしたものである. -ここでは\ref{ssub-chgfnt}節で述べていなかった命令について +ここでは\ref{ssec-chgfnt}節で述べていなかった命令について 記述しておく. % @@ -4571,7 +4560,7 @@ In this case, the default family for font substitution is used for \item[DeclareAlternateKanjiFont\{\}\{\}\{\}\{\}\\ \null\hfill\{\}\{\}\{\}\{\}\{\}] %<*ja> -\ref{ssec-altfont}節の +\ref{ssec-altfont}節の\ \verb+\ltjdeclarealtfont+ と同様に,前半の4引数の和文フォント(基底フォント)のうち中の文字を 第5--第8引数の和文フォントを使って組むように指示する.使用例を図\ref{fig:altkanji}に載せた. @@ -4696,6 +4685,50 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが できる.\ref{ssec-psft}節を参照. % + + +\begin{figure}[!tb] +\begin{LTXexample}[width=0.35\textwidth] +\jfontspec[ + AltFontFeatures={ Color=00003F, CharacterWidth=Half }, + AltFont = KozMinPr6N-Regular.otf, + AltFontRange={ "3000-"30FF }, +]{KozGoPr6N-Regular.otf} + あいうえお医学アイウエオ医学\par +\addjfontfeatures{ AltFontFeatures={ Color=0000FF } } + あいうえお医学アイウエオ医学\par +\addjfontfeatures{JFM=prop,CharacterWidth=Proportional } + あいうえお医学アイウエオ医学 +\end{LTXexample} +%\caption{\texttt{AltFont}, \texttt{AltFontRange}, \texttt{AltFontFeatures} の使用例} +%\caption{An example of \texttt{AltFont}, \texttt{AltFontRange}~and~\texttt{AltFontFeatures}} +\label{fig:altkanji-fontspec} +\end{figure} + +\item[AltFont=] +\item[AltFontFeatures=\{\}] +\item[AltFontRange=]\ + +%<*en> +As \verb+\ltjdeclarealtfont+~(Subsection~\ref{ssec-altfont}) and +\verb+\DeclareAlternateKanjiFont+~(Subsection~\ref{ssec-nfsspat}), +these three keys make that characters in of the Japanese font +are typeset by a different font and/or using different features. +% +%<*ja> +\ref{ssec-altfont}節の \verb+\ltjdeclarealtfont+ や, +\ref{ssec-nfsspat}節の \verb+\DeclareAlternateKanjiFont+ のように, +これらのキーを用いると内の文字は異なったフォントやfont featureを使って組まれる. +\texttt{AltFont} と \texttt{AltFontFeatures} はどちらか片方指定指定してあればよい. + +また,図\ref{fig:altkanji-fontspec}に示すように, +\begin{itemize} + \item \texttt{AltFontFeatures} の指定は\emph{累積しない}. + \item \texttt{AltFontFeatures} が指定されたフォントを使用中に, +\verb+\addjfontfeatures+ で追加の属性を指定した場合は,\verb+\addjfontfeatures+ の指定が +優先適用となる. +\end{itemize} +% \end{list} %<*ja> @@ -4704,7 +4737,6 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. % - \subsection{\texttt{luatexja-otf.sty}} \label{ssec-ltjotf} %<*en> diff --git a/src/addons/luatexja-fontspec.sty b/src/addons/luatexja-fontspec.sty index 6eba74a..f351ce8 100644 --- a/src/addons/luatexja-fontspec.sty +++ b/src/addons/luatexja-fontspec.sty @@ -16,7 +16,7 @@ pass .code:n = \cs_set:Nn \ltj_fontspec_pass_opts: {#1}, } \ProcessKeysOptions { luatexja-fontspec } -\RequirePackage[\ltj_fontspec_pass_opts:]{fontspec} +\RequirePackage[\ltj_fontspec_pass_opts:]{fontspec}[2011/09/13] %%%%%%%% Change Japanese font family by \rmfamily or not \bool_if:NTF \ltj_fontspec_match @@ -49,13 +49,6 @@ \cs_generate_variant:Nn \prg_new_conditional:Nnn {Nnx} -%%%%%%%% For compatibility with old fontspec. -\prg_new_conditional:Nnx \ltj_fontspec_if_liiikeys: {TF,F} { - \@ifpackagelater {fontspec} {2011/09/13} - { \exp_not:N \prg_return_true: } % fontspec >= 2.2 (l3keys) - { \exp_not:N \prg_return_false: } % fontspec < 2.2 (xkeyval) -} - %%%%%%%% \g_ltj_fontspec_scale_fp %% Default scale value for jfont. \group_begin: @@ -66,19 +59,11 @@ %%%%%%%% Internal control sequences %% Each CS is ltj_fontspec version that corresponds to original CS of fontspec. \cs_new:Nn \ltj_fontspec_define_option:nn { - \ltj_fontspec_if_liiikeys:TF { - \keys_define:nn {fontspec} { #1 .code:n = {#2}} - } { - \define@key[zf]{options}{#1}{#2} - } + \keys_define:nn {fontspec} { #1 .code:n = {#2}} } \cs_new:Nn \ltj_fontspec_define_preparse_external:nn { - \ltj_fontspec_if_liiikeys:TF { - \keys_define:nn {fontspec-preparse-external} { #1 .code:n = {#2}} - } { - \define@key[zf]{preparse-external}{#1}{#2} - } + \keys_define:nn {fontspec-preparse-external} { #1 .code:n = {#2}} } %% Alternate Fonts @@ -96,13 +81,13 @@ } \cs_new:Nn \__ltj_fontspec_altfontfeature_key_code:n { + \fontspec_update_fontid:n {altfeat:#1} \bool_if:NF \l_fontspec_firsttime_bool { \tl_if_empty:nTF {#1} { \bool_set_false:N \ltj_fontspec_alt_bool } { \bool_set_true:N \ltj_fontspec_alt_bool } - \tl_set:Nn \ltj_fontspec_fontfeat_alt_clist {, #1} - \fontspec_update_fontid:n {altfeat:#1} + \tl_set:Nn \ltj_fontspec_fontfeat_alt_clist {, #1} } } \cs_new:Nn \__ltj_fontspec_altfont_key_code:n @@ -147,11 +132,7 @@ \fontspec_update_fontid:n {-kern} \fontspec_update_featstr:n {-kern} } - \ltj_fontspec_if_liiikeys:TF { - \tl_set:Nn \g_fontspec_encoding_tl {JY3} - } { - \tl_set:Nn \zf@enc {JY3} - } + \tl_set:Nn \g_fontspec_encoding_tl {JY3} \tl_set:Nx \g_fontspec_default_fontopts_tl {JFM=ujis, Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off, \g_ltj_fontspec_default_fontopts_tl} @@ -160,9 +141,6 @@ \cs_set_eq:NN \DeclareFontFamily \DeclareKanjiFamily \fontspec_select:nn{#1}{#2} \group_end: - \ltj_fontspec_if_liiikeys:F { - \tl_set_eq:NN \l_fontspec_family_tl \zf@family - } } \cs_new:Nn \ltj_fontspec_set_family:Nnn { @@ -175,14 +153,12 @@ \cs_new:Nn \ltj_fontspec_make_font_shapes:nnnn { \ltj_orig_fontspec_make_font_shapes:nnnn {#1} {#2} {#3} {#4} \group_begin: + %% Parse font features. However, we have to avoid redefine already defined shape. \__fontspec_load_fontname:n {#1} \cs_set_eq:NN \DeclareFontShape \ltj_fontspec_dummy_DeclareFontShape \fontspec_declare_shape:nnn {#2}{#3} { \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,} #4 } \cs_set_eq:NN \DeclareFontShape \ltj_fontspec_orig_DeclareFontShape - \typeout{2: #2, 3: #3, \l_fontspec_family_tl, \ltj_fontspec_altrange_clist.} - \typeout{<\bool_if:NTF \ltj_fontspec_alt_bool T F >, - < \ltj_fontspec_fontname_alt_tl >, < \ltj_fontspec_fontfeat_alt_clist > } \tl_if_empty:NTF \ltj_fontspec_fontname_alt_tl { \bool_if:NT \ltj_fontspec_alt_bool diff --git a/src/patches/lltjfont.sty b/src/patches/lltjfont.sty index 5157a1e..5839110 100644 --- a/src/patches/lltjfont.sty +++ b/src/patches/lltjfont.sty @@ -611,8 +611,11 @@ %%%% \DeclareAlternateKanjiFont % いつも global \def\DeclareAlternateKanjiFont#1#2#3#4#5#6#7#8#9{% - {\def\ltj@temp@bfont{#1/#2/#3/#4}\def\ltj@temp@afont{#5/#6/#7/#8}% - \expandafter\ltj@@altfont@latex#9,,}\ignorespaces} + \edef\@temp{#9}% + \ifx\@temp\@empty\else + {\def\ltj@temp@bfont{#1/#2/#3/#4}\def\ltj@temp@afont{#5/#6/#7/#8}% + \expandafter\ltj@@altfont@latex#9,,}\ignorespaces + \fi} \def\ltj@@altfont@latex#1,{\def\ltj@temp{#1}% \ifx\ltj@temp\empty\let\@next=\relax\else \ltj@@altfont@latexA{#1}\let\@next=\ltj@@altfont@latex\fi\@next} -- 2.11.0