X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=1a0d580e208d5328a437eb2120e1fb6b5bff44b2;hb=d9b8861436e241a513cc1f09e08276981a7804ff;hp=d65b7165b8bfc9010bedddfca10aa21030da9996;hpb=e2056327f923bc3009e88c58642b2d5363bf5a0d;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index d65b716..1a0d580 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -17,34 +17,22 @@ \makeatletter %%%%%%%% \def\pgfsysdriver{pgfsys-pdftex.def} -\directlua{if jit then jit.on() end} -\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float} +\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float,mathtools} \usepackage{booktabs,multicol,luatexja-ruby} \usepackage[all]{xy} \usepackage{lltjext,alltt,comment} -%%%%%%%% Lua GC -\patchcmd\@outputpage{\stepcounter{page}}{% - \directlua{% - if jit then - local k = collectgarbage("count") - if k>900000 then - collectgarbage("collect") - texio.write_nl("term and log", "GC: ", math.floor(k), math.floor(collectgarbage("count"))) - end - end - }% - \stepcounter{page}% -}{}{} - %%%%%%%% fonts \usepackage{luatexja-otf} \usepackage[no-math]{fontspec} \setmainfont[Ligatures=TeX,RawFeature=-notdef]{Linux Libertine O} -\setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf, - BoldFont=lmmonolt10-bold.otf, BoldItalicFont=lmmonolt10-boldoblique.otf, - RawFeature=-notdef -]{lmmono10-regular.otf} +\setmonofont[RawFeature=-notdef, Ligatures=CommonOff, CharacterVariant={31,45,61,36}, +% Scale=0.8132073118633364, FakeStretch=1.183236, +% Scale=MatchLowercase, FakeStretch=1.137121, + ItalicFont=iosevka-slab-oblique, + BoldFont=iosevka-slab-bold, BoldItalicFont=iosevka-slab-bolditalic, +% ]{iosevka-slab-regular} +% ]{iosevka-slab-light} \setsansfont[Scale=MatchLowercase,Ligatures=TeX,RawFeature=-notdef]{Linux Biolinum O} \usepackage[match]{luatexja-fontspec} \usepackage[kozuka-pr6n]{luatexja-preset} @@ -71,7 +59,7 @@ %<*ja> \usepackage[textwidth=44\zw, lines=41, footskip=6mm]{geometry} \usepackage{luatexja-adjust}%\ltjdisableadjust -\advance\leftmargini-1\zw\advance\leftmarginii-1\zw +\advance\leftmargini-1\zw % %\long\def\fakefn#1#2{\par\noindent{\footnotesize\hbox to1.8em{\hss#1}#2\par}} %<*ja> @@ -85,20 +73,29 @@ \def\IVS#1{\char\numexpr "E0100+#1\relax}%" \def\IVSA#1#2#3#4#5{% - \textcolor{blue}{\raisebox{3.5pt}{\tt% - \fboxsep=0.5pt\fbox{\tiny \oalign{0#1#2\crcr#3#4#5\crcr}}}}% + \hbox to1em{\hss\textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{0#1#2\crcr#3#4#5\crcr}\hss}}}}\hss}% } {\catcode`\%=11 \gdef\IVSB#1{\expandafter\IVSA\directlua{ local cat_str = luatexbase.catcodetables['string'] tex.sprint(cat_str, string.format('%X', 0xE00EF+#1)) }}} +\def\UCSA#1#2#3#4{% + \hbox to1em{\hss\textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{#1#2\crcr#3#4\crcr}\hss}}}}\hss}% +} +\def\UCSB#1#2{% + \hbox to1em{\hss\textcolor{red}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{\hss#1\hss\crcr\hss#2\hss\crcr}\hss}}}}\hss}% +} \usepackage{listings,showexpl,enumitem} \lstset{ basicstyle=\ttfamily\small, pos=r, breaklines=true, numbers=none, rframe={}, basewidth=0.5em, numberstyle=\tiny, numbersep=0.5em, - explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed} + explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed}, + morecomment=[l]{\%}, commentstyle=\color{green}, } % Suppress output from showexpl to stdout. \makeatletter @@ -143,12 +140,13 @@ pdftitle={LuaTeX-jaパッケージ} % } +\usepackage{bxghost} %<*ja> \def\HyRef@autoref#1#2{% \begingroup \Hy@safe@activestrue \expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}% - \endgroup\ltjalchar"200C %" 欧文ゴースト + \endgroup\eghostguarded{}%" 欧文ゴースト } \def\figureautorefname{図} \def\tableautorefname{表} @@ -174,7 +172,7 @@ %%%%%%%% other macros \newlist{cslist}{description}{2} \setlist[cslist]{% - style=nextline,font=\mdseries\ttfamily, + style=nextline,font=\bfseries\ttfamily, before*=\def\<{\char`\<}\def\>{\char`\>}\def\{{\char`\{}\def\}{\char`\}}, topsep=\medskipamount, % leftmargin=2\zw, @@ -195,7 +193,7 @@ \def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}} \def\cs#1{\texttt{\upshape - \texorpdfstring{\textbackslash\hbox{\ltjsetparameter{autoxspacing=false}#1}}{\textbackslash#1}}} + \texorpdfstring{\hbox{\ltjsetparameter{autoxspacing=false}\textbackslash#1}}{\textbackslash#1}}} \ltjsetparameter{alxspmode={`\\,allow}} \def\text@#1{% \ifnum\mathstyle<\scriptstyle @@ -218,12 +216,10 @@ }}}}}\,} \makeatletter -\def\myghost{\ifmmode\else\ltjalchar"200C \fi} \def\Param#1{\texorpdfstring{\@Param{#1}}{#1}} % parameter name -\protected\def\@Param#1{\myghost\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} -\protected\def\DParam#1{\myghost\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name (definition) +\protected\def\@Param#1{\eghostguarded{\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}}} +\protected\def\DParam#1{\eghostguarded{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}}} % parameter name (definition) \def\Pkg#1{\texorpdfstring{\textsf{#1}}{#1}} % packages/classes -\ltjsetparameter{alxspmode={"200C,allow}} \begin{document} \lstset{ @@ -297,7 +293,7 @@ extent, but gaps still exist. 外部UTF-8入力が利用可能となり,さらにUnicode化を推進し,\pTeX の内部処理 までUnicode化した\upTeX も開発されている.また,\pTeX に\eTeX 拡張をマー ジした\epTeX も登場し,\TeX\ Live\ 2011では\pLaTeX が\epTeX の上で動作す -るようになった.だが,\pdfTeX 拡張(PDF直接出力やmicro-typesetting)を +るようになった.だが,\pdfTeX 拡張の主要部分(PDF直接出力やmicro-typesetting)を \pTeX に対応させようという動きはなく,海外とのgapは未だにあるのが現状であ る. % @@ -357,23 +353,23 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this %<*ja> \paragraph{命令の名称} 例えば\pTeX で追加された次のようなプリミティブ % -\begin{verbatim} +\begin{lstlisting} \kanjiskip=10pt \dimen0=kanjiskip \tbaselineshift=0.1zw \dimen0=\tbaselineshift \prebreakpenalty`ぁ=100 \ifydir ... \fi -\end{verbatim} +\end{lstlisting} % However, we cannot use them under \LuaTeX-ja. % Instead of them, we have to write as the following. % は\LuaTeX-jaには存在しない.\LuaTeX-jaでは以下のように記述することになる. -\begin{verbatim} +\begin{lstlisting} \ltjsetparameter{kanjiskip=10pt} \dimen0=\ltjgetparameter{kanjiskip} \ltjsetparameter{talbaselineshift=0.1\zw} \dimen0=\ltjgetparameter{talbaselineshift} \ltjsetparameter{prebreakpenalty={`ぁ,100}} -\ifnum\ltjgetparemeter{direction}=4 ... \fi -\end{verbatim} +\ifnum\ltjgetparameter{direction}=4 ... \fi +\end{lstlisting} %<*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. @@ -646,25 +642,21 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. %\section{使い方} %\subsection{Installation} %\subsection{インストール} - +\label{ssec:install} %The following packages are needed for the \LuaTeX-ja\ package. %\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である. \begin{itemize} -\item \LuaTeX\ 1.0.0 (or later) -\item recent \Pkg{luaotfload} (v2.98 or later recommended) +\item \href{http://www.luatex.org/}{\LuaTeX}\ 1.0.0 (or later) +\item recent \href{https://github.com/latex3/luaotfload}{\Pkg{luaotfload}} (v3.1 or later recommended) \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files) -\item \Pkg{etoolbox}, \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe) +\item \href{https://github.com/josephwright/etoolbox/}{\Pkg{etoolbox}}, + \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe) \item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi} -\item \Pkg{fontspec} v2.7c (or later) +\item \href{https://github.com/wspr/fontspec/}{\Pkg{fontspec}} v2.7c (or later) %\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/}) %\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})} \end{itemize} -%In summary, \LuaTeX-ja version 20180825.0 (or~later) no longer supports \TeX~Live~2016. -%<*ja> -要約すると,バージョン20180825.0以降の\LuaTeX-jaは\TeX~Live~2016以前では動作しない\footnote{% - もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である. -}. -% + %<*en> Now \LuaTeX-ja is available from @@ -672,8 +664,8 @@ CTAN (in the \texttt{macros/luatex/generic/luatexja} directory), and the following distributions: \begin{itemize} \item MiK\TeX\ (in \texttt{luatexja.tar.lzma}); see the next subsection - \item \TeX\ Live (in \texttt{texmf-dist/tex/luatex/luatexja}) - \item W32\TeX\ (in \texttt{luatexja.tar.xz}) + \item \href{https://www.tug.org/texlive/}{\TeX\ Live} (in \texttt{texmf-dist/tex/luatex/luatexja}) + \item \href{http://w32tex.org/}{W32\TeX}\ (in \texttt{luatexja.tar.xz}) \end{itemize} IPAex fonts are also available in these distributions. % @@ -689,6 +681,27 @@ IPAex fonts are also available in these distributions. W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にある. % +%<*en> +\paragraph{Using \LuaTeX-ja with LuaHB\TeX} +Using \LuaTeX-ja with LuaHB\TeX (\LuaTeX\ integrated with +\href{https://github.com/harfbuzz/harfbuzz}{HarfBuzz}) is not well tested. +Maybe documents can typeset without an error, +but with unwanted results (especially, vertical typesetting and \cs{CID}). + +Especially, +\emph{We don't recommend defining a Japanese font with HarfBuzz}, +by specifying \texttt{Renderer=Harfbuzz}~etc.\ (\Pkg{fontspec}) or~{mode=harf} (otherwise). +% +%<*ja> +\paragraph{LuaHB\TeX 下での\LuaTeX-jaの使用} +現時点では,LuaHB\TeX 下での\LuaTeX-jaの使用は十分にテストされていない. +エラーが発生せずにタイプセットできるかもしれないが,特に縦組時や +\cs{CID}などで意図しない結果となりうる可能性が大きい. + +特に,\texttt{Renderer=Harfbuzz}等(\Pkg{fontspec})や\texttt{mode=harf}指定(それ以外)を用いて +\emph{和文フォントに対してHarfBuzzを用いることは推奨しない}. +% + %\paragraph{Manual installation} %\paragraph{手動インストール方法} @@ -698,7 +711,7 @@ W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にあ At the present, \LuaTeX-ja has no \emph{stable} release. \begin{itemize} -\item Clone the Git repository: +\item Clone the Git repository by \begin{lstlisting} $ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git \end{lstlisting} @@ -716,11 +729,11 @@ the forefront of development is not the \texttt{master} branch. 開発版であって,安定版でないことに注意. \begin{itemize} -\item Gitリポジトリをクローンする: +\item Gitリポジトリを次のコマンドでクローンする: \begin{lstlisting} $ 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.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. \end{flushleft} @@ -759,7 +772,7 @@ $ lualatex ltjltxdoc.ins $ luatex ltj-kinsoku_make.tex \end{lstlisting} %<*en> -\emph{Do not forget The last line (processing \texttt{ltj-kinsoku\_make.tex})}. +\emph{Do not forget processing \texttt{ltj-kinsoku\_make.tex}}. \texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} used here are not needed in regular use. % %<*ja> @@ -813,29 +826,12 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}. 従来日本語の文字コードとして用いられてきたEUC-JPやShift-JISは使用できない. % %<*en> -\item \LuaTeX-ja is very slower than \pTeX. - % Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja - % about 30\% faster than \LuaTeX, but not always% - % \footnote{% - % LuaJIT has several limitations such as 1\,GB~(or~2\,GB) memory limitation. - % So typesetting a large source by LuaJIT\TeX may cause an ``out of memory'' error, - % or failure of loading/saving font cache of \Pkg{luaotfload}. - % }. +\item \LuaTeX-ja is very slower than \pTeX, and uses a lot of memory. % %<*ja> \item \LuaTeX-jaは動作が\pTeX に比べて非常に遅い. -コードを調整して徐々に速くしているが,まだ満足できる速度ではない. -% LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようであるが, -% IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある -% \footnote{% -% LuaJITは1\,GB(あるいは2\,GB)のメモリ制限など,いくつかの制限事項があることが知られている.そのため, -% 大きいソースファイルをLuaJIT\TeX でタイプセットするとLuaの側で``out of memory''エラーが発生してしまう. -% 本ドキュメントのように,「各ページごとにLuaで使っているメモリ容量をチェックし, -% 必要なら\texttt{collectgarbage("collect")}でガベージコレクタを実行」すると -% 状況が多少改善されるかもしれない. -% また,LuaJIT\TeX でIPA mj明朝などの「大きい」フォントを利用した場合はフォントキャッシュの保存に失敗し, -% 毎回フォントを読み込まなければならず結果的に時間がかかることがある. -% }. + コードを調整して徐々に速くしているが,まだ満足できる速度ではない. + また,和文フォントを読み込むために多量のメモリを消費することにも注意が必要である. % \item% @@ -1017,9 +1013,9 @@ By default, the following fonts are used for these two families. \begin{center}\small \begin{tabular}{lllll} \toprule -\textbf{classification}&\textbf{family}&\cs{mdseries}&\cs{bfseries}&\textbf{scale}\\\midrule -\emph{mincho} (明朝体)&\tt mc&IPAex Mincho&IPAex Gothic&0.962216\\ -\emph{gothic} (\textgt{ゴシック体})&\tt gt&IPAex Gothic&IPAex Gothic&0.962216\\ +\textbf{classification}&\textbf{family}&\textbf{\cs{mdseries}}&\textbf{\cs{bfseries}}&\textbf{scale}\\\midrule +\emph{mincho} (明朝体)&\texttt{mc}&IPAexMincho&IPAexGothic&0.962216\\ +\emph{gothic} (\textgt{ゴシック体})&\texttt{gt}&IPAexGothic&IPAexGothic&0.962216\\ \bottomrule \end{tabular} \end{center} @@ -1043,9 +1039,9 @@ By default, the following fonts are used for these two families. \begin{center}\small \begin{tabular}{lllll} \toprule -\emph{字体}&\emph{ファミリ}&\cs{mdseries}&\cs{bfseries}&\emph{スケール}\\\midrule -明朝体&\tt mc&IPAex明朝&IPAexゴシック&0.962216\\ -\textgt{ゴシック体}&\tt gt&IPAexゴシック&IPAexゴシック&0.962216\\ +\emph{字体}&\emph{ファミリ}&\textbf{\cs{mdseries}}&\textbf{\cs{bfseries}}&\emph{スケール}\\\midrule +明朝体&\texttt{mc}&IPAex明朝&IPAexゴシック&0.962216\\ +\textgt{ゴシック体}&\texttt{gt}&IPAexゴシック&IPAexゴシック&0.962216\\ \bottomrule \end{tabular} \end{center} @@ -1169,8 +1165,7 @@ so \Pkg{ltjsclasses} uses the \texttt{nomag*} option\footnote{Same effect as \footnote{\Pkg{jsclasses}や,八登崇之氏による\Pkg{BXjscls}クラスにおける同名のオプションと 同じ.上記クラスは\TeX コードのみで実装しているが,\Pkg{ltjsclasses}ではLuaコードも用いている.}が標準で 有効になっており,これを使って本文フォントサイズの設定を行っている. -しかし,この\texttt{nomag*}オプションでは(20180121.0版より前の版において\Pkg{unicode-math}パッケージ使用時に -起きたように)予想外の意図しない現象に遭遇する危険がある.そのような場合は +しかし,この\texttt{nomag*}オプションでは(バージョン20180121.0より前で\Pkg{unicode-math}パッケージ使用時に起きたように)予想外の意図しない現象に遭遇する危険がある.そのような場合は \cs{documentclass}において\texttt{nomag}オプションを指定してほしい. % @@ -1281,10 +1276,10 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ ( %<*en> \begin{center}\small -\begin{tabular}{llllll} +\begin{tabular}{>{\bfseries}llllll} \toprule &\textbf{encoding}&\textbf{family}&\textbf{series}&\textbf{shape}&\textbf{selection}\\\midrule -alphabetic fonts +Alphabetic fonts &\cs{romanencoding}&\cs{romanfamily}&\cs{romanseries}&\cs{romanshape} &\cs{useroman}\\ Japanese fonts @@ -1481,21 +1476,21 @@ counterparts of original commands in the \Pkg{fontspec} package \caption{Commands of \Pkg{luatexja-fontspec}}\label{tab:ltj_fntspc} \medskip {\centering\small -\begin{tabular}{cllll} +\begin{tabular}{>{\bfseries}lllll} \toprule Japanese fonts &\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\ -alphabetic fonts +Alphabetic fonts &\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\ \midrule Japanese fonts &\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\ -alphabetic fonts +Alphabetic fonts &\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\ \midrule Japanese fonts &\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\ -alphabetic fonts +Alphabetic fonts &\cs{newfontface}&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\ \bottomrule \end{tabular}\par} @@ -1655,7 +1650,7 @@ The following presets are defined: \begin{quote} \ttfamily \hyphenchar\font=-1 \exhyphenchar=-1 - hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg, + haranoaji, hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg, kozuka-pr6, kozuka-pr6n, kozuka-pro, moga-mobo, moga-mobo-ex, bizud, morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf, sourcehan, sourcehan-jp, ume, yu-osx, yu-win, yu-win10 @@ -1772,7 +1767,7 @@ 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, 5, and~8 is \textbf{ALchar}, - \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}. + \item a character which belongs character ranges 2,~3, 6, 7,~and~9 is \textbf{JAchar}. \end{itemize} % %<*ja> @@ -1781,11 +1776,11 @@ it sets 例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している: \begin{itemize} \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}. - \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}. + \item 2番,3番,6番,7番,9番の文字範囲に属する文字は\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, +9}} \end{lstlisting} %<*en> The argument to \textsf{jacharrange} parameter is a list of non-zero integer. @@ -1810,25 +1805,25 @@ Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an %<*en> \paragraph{Default character ranges} -\LuaTeX-ja predefines eight character ranges for convenience. They are +\LuaTeX-ja predefines nine character ranges for convenience. They are determined from the following data: % %<*ja> \paragraph{文字範囲の初期値} -\LuaTeX-jaでは8つの文字範囲を予め定義しており, +\LuaTeX-jaでは9つの文字範囲を予め定義しており, これらは以下のデータに基づいて決定している. % \begin{itemize} %\item Blocks in Unicode~12.0.0. -%\item Unicode~11.0のブロック. -%\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode. -%\item Adobe-Japan1-6のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}. +%\item Unicode~12.0のブロック. +%\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1- and Unicode. +%\item Adobe-Japan1-7のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}7. %\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato. %\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル. \end{itemize} %<*en> -Now we describe these eight ranges. The superscript ``J'' or ``A'' after the +Now we describe these nine 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. @@ -1836,61 +1831,66 @@ 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」 +以下ではこれら9つの文字範囲について記述する.添字のアルファベット「J」「A」 は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は \texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが, 8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部 \textbf{ALchar}としている. -なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている. +なお,\texttt{U+0080} 以降でこれら9つの文字範囲に属さない文字は,217番の文字範囲に属することになっている. % \begin{description} %<*en> - \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: + (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). + The character list is indicated in \autoref{tab:rng8}. % %<*ja> \item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と - JIS~X~0208の共通部分.この文字範囲は - 以下の文字で構成される: + JIS~X~0208の共通部分.文字のリストは\autoref{tab:rng8}を参照. % -\begin{multicols}{2} -\begin{itemize} -\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%" -\ch{A7}{Section Sign} -\ch{A8}{Diaeresis} -\ch{B0}{Degree sign} -\ch{B1}{Plus-minus sign} -\ch{B4}{Spacing acute} -\ch{B6}{Paragraph sign} -\ch{D7}{Multiplication sign} -\ch{F7}{Division Sign} -\end{itemize} -\end{multicols} +\begin{table}[!tb] +%\caption{Characters in predefined character range~8.}\medskip +%\caption{文字範囲8に指定されている文字.} +\label{tab:rng8} +\centering\footnotesize +\def\ch#1{\char"#1~(\texttt{U+00#1})}%" +\begin{tabular}{llll} +\ch{A7}&{Section Sign}& +\ch{A8}&{Diaeresis}\\ +\ch{B0}&{Degree sign}& +\ch{B1}&{Plus-minus sign}\\ +\ch{B4}&{Spacing acute}& +\ch{B6}&{Paragraph sign}\\ +\ch{D7}&{Multiplication sign}& +\ch{F7}&{Division Sign} +\end{tabular} +\end{table} %<*en> -\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6. -This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}: +\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-7. + This range consists of the Unicode ranges indicated in \autoref{tab:rng1}, + \emph{except characters in the range~8 above}. % %<*ja> -\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-6との共通部分があるもの. - この範囲は以下のUnicodeのブロックのうち - \emph{範囲8を除いた}部分で構成されている: +\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-7との共通部分があるもの. + この範囲は\autoref{tab:rng1}で示したUnicodeのブロックのうち + \emph{範囲8を除いた}部分で構成されている. % -\begin{multicols}{2} -\begin{itemize} -\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement -\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A -\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 -%\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} +\begin{table}[!tb] +%\caption{Unicode blocks in predefined character range~1.}\medskip +%\caption{文字範囲1に指定されているUnicodeブロック.} +\label{tab:rng1} +\centering\footnotesize +\begin{tabular}{llll} + \texttt{U+0080}--\texttt{U+00FF}&Latin-1 Supplement& + \texttt{U+0100}--\texttt{U+017F}&Latin Extended-A\\ + \texttt{U+0180}--\texttt{U+024F}& Latin Extended-B& + \texttt{U+0250}--\texttt{U+02AF}& IPA Extensions\\ + \texttt{U+02B0}--\texttt{U+02FF}& Spacing Modifier Letters& + \texttt{U+0300}--\texttt{U+036F}& Combining Diacritical Marks\\ + \texttt{U+1E00}--\texttt{U+1EFF}&Latin Extended Additional +\end{tabular} +\end{table} %<*en> \item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese fonts) has some of these characters. @@ -1908,11 +1908,11 @@ This range consists of the following Unicode ranges, \emph{except characters in \end{itemize} \end{multicols} %<*en> -\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is +\item[Range~3${}^{\text{\kern.1emJ}}$] Miscellaneous symbols. The block list is indicated in \autoref{tab:rng3}. % %<*ja> -\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは\autoref{tab:rng3}% +\item[範囲3${}^{\text{\kern.1emJ}}$] 記号類.ブロックのリストは\autoref{tab:rng3}% に示してある. % \begin{table}[!tb] @@ -1922,7 +1922,6 @@ This range consists of the following Unicode ranges, \emph{except characters in \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \centering\footnotesize \begin{tabular}{llll} -"2000--"206F&General Punctuation& "2070--"209F&Superscripts and Subscripts\\ "20A0--"20CF&Currency Symbols& "20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\ @@ -1943,23 +1942,79 @@ This range consists of the following Unicode ranges, \emph{except characters in \end{tabular} \end{table} %<*en> +\item[Range~9${}^{\text{J}}$] The intersection of the ``General Punctuation'' block + (\texttt{U+2000}--\texttt{U+206F}) + and Adobe-Japan1-7 character collection. + This character range characters in \autoref{tab:rng9}. +% +%<*ja> +\item[範囲9${}^{\text{J}}$] Unicodeの「一般句読点」ブロック(\texttt{U+2000}--\texttt{U+206F})と + Adobe-Japan1-7の共通部分. + この文字範囲は\autoref{tab:rng9}に示した文字で構成される. +% +\begin{table}[!tb] +%\caption{Characters in predefined character range~9.}\medskip +%\caption{文字範囲9に指定されている文字.} +\label{tab:rng9} +\centering\footnotesize +\def\ch#1{% + {\fboxsep0pt\fcolorbox{cyan}{white}% + {\normalsize\char"20#1}}\ (\texttt{U+20#1})} %" +% 13: JIS X0213, AJ, Adobe-Japan-1 only +\begin{tabular}{ll>{\color{white}}lll>{\color{white}}l} + \ch{02}&{En space}&AJ& + \ch{10}&{Hyphen}&\\ + \ch{11}&{Non-breaking hyphen}&AJ& + \ch{13}&{En dash}&13\\ + \ch{14}&{Em dash}&& + \ch{15}&{Horizontal bar}&\\ + \ch{16}&{Double vertical line}&& + \ch{18}&{Left single quotation mark}&\\ + \ch{19}&{Right single quotation mark}&& + \ch{1A}&{Single low-9 quotation mark}&AJ\\ + \ch{1C}&{Left double quotation mark}&& + \ch{1D}&{Right double quotation mark}&\\ + \ch{1E}&{Double low-9 quotation mark}&AJ& + \ch{20}&{Dagger}&\\ + \ch{21}&{Double dagger}&& + \ch{22}&{Bullet}&13\\ + \ch{25}&{Two dot leader}&& + \ch{26}&{Horizontal ellipsis}&\\ + \ch{30}&{Per mille sign}&& + \ch{32}&{Prime}&\\ + \ch{33}&{Double prime}&& + \ch{39}&{Single left-pointing angle quot.}&AJ\\ + \ch{3A}&{Single right-pointing angle quot.}&AJ& + \ch{3B}&{Reference mark}&\\ + \ch{3C}&{Double exclamation mark}&13& + \ch{3E}&{Overline}&\\ + \ch{3F}&{Undertie}&13& + \ch{42}&{Asterism}&13\\ + \ch{44}&{Fraction slash}&AJ& + \ch{47}&{Double question mark}&13\\ + \ch{48}&{Question exclamation mark}&13& + \ch{49}&{Exclamation question mark}&13\\ + \ch{51}&{Two asterisks aligned vertically}&13 +\end{tabular} +\end{table} +%<*en> \item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists of almost all Unicode blocks which are not in other predefined ranges. Hence, instead of showing the block list, - we put the definition of this range itself: + we put the definition of this range itself. % %<*ja> \item[範囲4${}^{\text{A}}$] 通常和文フォントには含まれていない文字. この範囲は他の範囲にないほとんど全てのUnicodeブロック で構成されている.したがって,ブロックのリストを示す - 代わりに,範囲の定義そのものを示す: + 代わりに,範囲の定義そのものを示す. % \begin{lstlisting} \ltjdefcharrange{4}{% "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF, "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF, - "1F300-"1FFFF + "1F300-"1FFFF, ... (characters in "2000-"206F which are not in range 9) } % non-Japanese \end{lstlisting} %\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas. @@ -1999,11 +2054,11 @@ This range consists of the following Unicode ranges, \emph{except characters in \end{tabular} \end{table} %<*en> -\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in Adobe-Japan1-6. +\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in Adobe-Japan1-7. The block list is indicated in \autoref{tab:rng7}. % %<*ja> -\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に +\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-7に 含まれていないもの. ブロックのリストは\autoref{tab:rng7}に示す. % @@ -2073,6 +2128,52 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll \end{LTXexample} % +%<*ja> +\paragraph{絵文字など,複数コードポイントの列で表現される字形をを利用する場合の注意} +(\Pkg{luaotfload}による)OpenType機能や合字等の処理は,\LuaTeX-jaが +段落・水平ボックスの中身全体に対して「この文字は\textbf{JAchar}だから和文フォントで組む」と +フォントを置き換えた後に適用される. +そのため,異体字セレクタや絵文字といった複数のコードポイントの列で表現される文字を +組む場合には,列全体で\textbf{JAchar}の範囲か\textbf{ALchar}の範囲かが +統一されていないといけない. + +例えば,CJK統合漢字(とその拡張達)と +IVS用の異体字セレクタ(\texttt{U+E0100}--\texttt{U+E01EF})は標準では +どちらも同じ文字範囲6であるため,(フォントがサポートしていれば)IVSは正しく機能する. +しかし,下の例のように異体字セレクタを\textbf{ALchar}の文字範囲(4)に移動させると, +IVSは機能しなくなる: +\ltjdefcharrange{4}{"E0100-"E01EF} +\begin{LTXexample} +\ltjdefcharrange{4}{"E0100-"E01EF} +葛󠄀城市,葛󠄁飾区,葛西 +\end{LTXexample} +\ltjdefcharrange{6}{"E0100-"E01EF} + +また,標準では絵文字として使われる可能性が大きい一部の文字が\textbf{JAchar}となっている +\footnote{同じUnicodeブロック内にAdobe-Japan1-6の文字があったため.}. +絵文字を用いる場合にはこの点に留意する必要がある. + +\begin{center} + \begin{minipage}{.5\textwidth}\small\ttfamily +\verb!\ltjsetparameter{jacharrange={+3}}!\\ +\verb!\font\nce=NotoColorEmoji.ttf:mode=harf\nce!\\ +\IVSA 1F469\UCSB{ZW}{J}\UCSA 2764\UCSB{VS}{16}\UCSB{ZW}J\IVSA 1F48B\UCSB{ZW}J\IVSA 1F468\ + \textcolor{green}{\% U+2764: JAchar}\\ +\verb!\ltjsetparameter{jacharrange={-3}}!\\ +\IVSA 1F469\UCSB{ZW}{J}\UCSA 2764\UCSB{VS}{16}\UCSB{ZW}J\IVSA 1F48B\UCSB{ZW}J\IVSA 1F468\ + \textcolor{green}{\% U+2764: ALchar} + \end{minipage}% + \begin{minipage}{.5\textwidth} +\ltjsetparameter{jacharrange={+3}} +\font\nce=NotoColorEmoji.ttf:mode=harf\nce +👩‍❤️‍💋‍👨 +\ltjsetparameter{jacharrange={-3}} +👩‍❤️‍💋‍👨 + \end{minipage} +\end{center} +\ltjsetparameter{jacharrange={+3}} +% + %\subsection{\Param{kanjiskip} and \Param{xkanjiskip}} %\subsection{\Param{kanjiskip}と\Param{xkanjiskip}} @@ -2582,7 +2683,7 @@ but not fullwidth alphanumerics and several other characters. This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja, since several control words containing Kanji or other fullwidth characters, such as -\verb+\西暦+~or~\verb+\1年目西暦+ are used in \pTeX. +\cs{西暦}~or~\cs{1年目西暦} are used in \pTeX. Hence, \LuaTeX-ja have a counterpart of \texttt{unicode-letters.tex} for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} % @@ -2615,7 +2716,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} \LuaLaTeX では漢字や仮名を制御綴内に 使用することが可能になったが,全角英数字は相変わらず使用できない, \end{description} -これでは\pTeX で使用できた\verb+\1年目西暦+\footnote{科研費\LaTeX で使用されているそうです.}などが使えないこととなり, +これでは\pTeX で使用できた\cs{1年目西暦}\footnote{科研費\LaTeX で使用されているそうです.}などが使えないこととなり, \LuaTeX-jaへの移行で手間が生じる.そのため,\LuaTeX-jaでは \texttt{unicode-letters.tex}の後半部にあたる内容を自前でパッチし, 結果として\emph{\XeTeX における初期設定と同じになるようにしている.} @@ -3137,7 +3238,7 @@ These commands set the dimension of \cs{box}. One does not need ボックスレジスタ \cs{box} にセットされているボックスの幅・高さ・深さの取得や 変更にはそれぞれ \cs{wd},~\cs{ht},~\cs{dp} プリミティブを用いるのであった. \pTeX ではこれらのプリミティブは,「現在の組方向におけるボックスの寸法」を指すもので, -同じボックスに対しても現在の組方向によって返る値は異なるもであった. +同じボックスに対しても現在の組方向によって返る値は異なるものであった. \LuaTeX-jaにおいては状況が異なり,\cs{wd},~\cs{ht},~\cs{dp} が返す値は 現在の組方向には依存しない.下の例のように,横組のボックスが格納されていれば @@ -3372,14 +3473,16 @@ JFMは文字と和文組版で自動的に挿入される \def\r#1#2{% \hbox{\Large\vrule \parbox[b]{7\zw}{% - \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{YokoFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ◆◆◆◆◆◆◆ ある日モモちゃんがお使いで迷子になって泣きました. }\vrule}} \def\s#1#2{% \Large \parbox[b]{7\zw}{% - \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{YokoFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ちょっと!何 }} \def\t#1#2#3{\hbox to 0pt{\hss% @@ -3426,17 +3529,17 @@ The following horizontal JFMs are shipped with \LuaTeX-ja: % \begin{description} %<*en> -\item[\tt jfm-ujis.lua] A standard horizontal JFM in \LuaTeX-ja. This JFM is +\item[\texttt{jfm-ujis.lua}] A standard horizontal JFM in \LuaTeX-ja. This JFM is based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM. % %<*ja> -\item[\tt jfm-ujis.lua] \LuaTeX-jaの標準JFMである.このJFMは\upTeX で +\item[\texttt{jfm-ujis.lua}] \LuaTeX-jaの標準JFMである.このJFMは\upTeX で 用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-h.tfm+ を 元にしている.\Pkg{luatexja-otf}パッケージを使うときはこのJFMを指定するべきである. % %<*en> -\item[\tt jfm-jis.lua] A counterpart for \verb+jis.tfm+, ``JIS font +\item[\texttt{jfm-jis.lua}] A counterpart for \verb+jis.tfm+, ``JIS font metric'' which is widely used in \pTeX. A major difference between \texttt{jfm-ujis.lua} and this \texttt{jfm-jis.lua} is that most characters under \texttt{jfm-ujis.lua} are square-shaped, @@ -3444,18 +3547,18 @@ The following horizontal JFMs are shipped with \LuaTeX-ja: rectangles. % %<*ja> -\item[\tt jfm-jis.lua] \pTeX で広く用いられている「JISフォントメトリック」 +\item[\texttt{jfm-jis.lua}] \pTeX で広く用いられている「JISフォントメトリック」 \verb+jis.tfm+ に相当するJFMである.\texttt{jfm-ujis.lua} とこの \texttt{jfm-jis.lua} の主な違いは,\texttt{jfm-ujis.lua} ではほとんどの文字が 正方形状であるのに対し,\texttt{jfm-jis.lua} では横長の長方形状であることと, \texttt{jfm-ujis.lua} では「?」「!」の直後に半角空白が挿入されることである. % %<*en> -\item[\tt jfm-min.lua] A counterpart for \verb+min10.tfm+, which is one +\item[\texttt{jfm-min.lua}] A counterpart for \verb+min10.tfm+, which is one of the default Japanese font metric shipped with \pTeX. % %<*ja> -\item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文用TFM +\item[\texttt{jfm-min.lua}] \pTeX に同梱されているデフォルトの和文用TFM (\verb+min10.tfm+)に相当し,行末で文字が揃うようにするために「っ」など一部の文字幅が変わっ ている.\verb+min10.tfm+ については\cite{min10}が詳しい. % @@ -3661,14 +3764,16 @@ This functionality is disabled by \texttt{-ltjksp} specification. \def\r#1#2{% \hbox{\tate\Large\vrule \parbox{7\zw}{% - \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{TateFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ◆◆◆◆◆◆◆ ある日モモちゃんが「お使い」で迷子になって泣きました。 }\vrule}} \def\s#1#2{% \hbox{\tate\Large \parbox{7\zw}{% - \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent + \addjfontfeatures{TateFeatures={JFM=#1}}\noindent + \color{#2}\transparent{0.5} ちょっと!何 }}} \def\t#1#2#3{\hbox to 0pt{\hss% @@ -3724,10 +3829,10 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont \item One have to specify the name of vertical JFM in \texttt{jfm=}. \LuaTeX-ja ships following vertical JFMs: \begin{description} -\item[\tt jfm-ujisv.lua] A standard vertical JFM in \LuaTeX-ja. This JFM is +\item[\texttt{jfm-ujisv.lua}] A standard vertical JFM in \LuaTeX-ja. This JFM is based on \verb+upnmlminr-v.tfm+, a metric for UTF/OTF package that is used in \upTeX. -\item[\tt jfm-tmin.lua] A counterpart for \verb+tmin10.tfm+, which is one +\item[\texttt{jfm-tmin.lua}] A counterpart for \verb+tmin10.tfm+, which is one of the default Japanese font metric shipped with \pTeX. \end{description} \begin{figure}[!tb] @@ -3785,48 +3890,62 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont \item \texttt{jfm=}\ の部分には縦組用JFMを指定する. 以下の縦組用JFMが\LuaTeX-jaには同梱されている.%おり,違いを\autoref{tab-difjfm-tate}に示した. \begin{description} -\item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で +\item[\texttt{jfm-ujisv.lua}] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で 用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を 元にしている. -\item[\tt jfm-tmin.lua] \pTeX に同梱されているデフォルトの和文用縦組TFM +\item[\texttt{jfm-tmin.lua}] \pTeX に同梱されているデフォルトの和文用縦組TFM である \verb+tmin10.tfm+ に相当し,\texttt{min10.tfm} と同様に 「っ」など一部の文字幅が狭められている. \end{description} \begin{figure}[!tb] -\begin{LTXexample}[pos=b] +\begin{LTXexample}[pos=r,width=.4\textwidth] \jfont\X=[KozMinPr6N-Regular.otf]:jfm=ujis \tfont\U=[KozMinPr6N-Regular.otf]:jfm=ujisv \tfont\V=[KozMinPr6N-Regular.otf]:jfm=ujisv;jpotf -\def\TEST#1#2{\leavevmode\hbox{#1#2\string#2 “引用,と句読点.”}} -\ttfamily\centering\TEST\yoko\X \quad \TEST\tate\U \quad \TEST\tate\V +\def\TEST#1#2{\leavevmode + \hbox{#1#2\string#2 “引用,と句読点.”}} +\ttfamily\centering +\TEST\yoko\X\quad \TEST\tate\U\quad +\TEST\tate\V \end{LTXexample} \caption{\texttt{jpotf} ``feature''} \label{fig:jpotf} \end{figure} - +\begin{table}[t] + \def\D#1#2#3#4{% + {\fboxsep0pt\fcolorbox{cyan}{white}% + {\large\lower-\cdp\hbox{\tate\ltjjachar"#1#2#3#4}}}\ (\texttt{U+#1#2#3#4})%" + } + \caption{\texttt{jpotf}が指定された際に行われる追加の縦組形への置換} + \label{tab:vert_replace_jpotf}\small\centering + \begin{tabular}{*{2}{l@{}>{${}\longmapsto{}$}c@{}l}} + \toprule + \D FF0C&&\D 3001&\D FF0E&&\D 3002\\ + \D 201C&&\D 301D&\D 201D&&\D 301F\\ + \bottomrule + \end{tabular} +\end{table} + \item \texttt{vert}, \texttt{vrt2}の少なくとも片方が(明示的・自動的を問わず) 有効になっていた場合,さらに\texttt{jpotf}を指定することで - 「通常では行わない縦組用字形への変換」を行うことができる. - - 標準では,この「変換」は全角のコンマ・ピリオドを句読点に, - また全角の二重引用符をダブルミニュートへ置き換える + 「通常では行わない縦組用字形への置換」を行うことができる. + + 標準では,\autoref{tab:vert_replace_jpotf}に示した置換が登録されている \footnote{% \texttt{jpotf}という名前にしたのは, OTFパッケージの縦組用和文TFMでほぼ同じの処理(そちらではさらに一重引用符を 「シングルミニュート」に置換する機能もあった)を行っていたことに由来する. - }.\autoref{fig:jpotf}を参照. - - ユーザ側で「変換」をカスタマイズしたい場合, - \verb+luatexja.jfont.register_vert_replace+ 関数に変更内容を記したテーブルを渡す. - 例えば縦組中では「あ」を「い」に置換し,また「,」は(「、」に置換せず)「,」のままに - したい場合は次のようにすれば良い. -\begin{lstlisting} -\directlua{luatexja.jfont.register_vert_replace{ - ['あ']='い', [',']=false, -}} -\end{lstlisting} - \verb+luatexja.jfont.register_vert_replace+ による変更はこの関数の\emph{実行後}に定義される + }.実行例は\autoref{fig:jpotf}を参照. + + ユーザ側で「置換」をカスタマイズしたい場合, + \verb+luatexja.jfont.register_vert_replace+関数に変更内容を記したテーブルを渡す. + 例えば置換$i_1\longmapsto v_1$, $i_2\longmapsto v_2$,~$\dots$を登録する場合は + \begin{lstlisting}[escapechar=\!] +\directlua{luatexja.jfont.register_vert_replace{[!$i_1$!]=!$v_1$!, [!$i_2$!]=!$v_2$!, ...}} + \end{lstlisting} + を実行する. + \verb+luatexja.jfont.register_vert_replace+による変更はこの関数の\emph{実行後}に定義される フォントについてのみ有効である. \end{itemize} @@ -3910,25 +4029,25 @@ the definition of \cs{ltj@stdmcfont} and others. %\subsection{\texttt{psft}プリフィックス} \label{ssec:psft} %<*en> -Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which +Besides ``\texttt{file}''\ and ``\texttt{name}''\ prefixes which are introduced in the \Pkg{luaotfload} package, -\LuaTeX-ja adds ``\texttt{psft:}''\ prefix in \cs{jfont} (and~\cs{font}), +\LuaTeX-ja adds ``\texttt{psft}''\ prefix in \cs{jfont} (and~\cs{font}), to specify a ``name-only'' Japanese font which will not be embedded to PDF. Note that these non-embedded fonts under current \LuaTeX\ has Identity-H encoding, and this violates the standard ISO32000-1:2008~(\cite{pdfstd}). -\emph{OpenType font features, such as ``{\tt +jp90}'', -have no meaning in name-only fonts using ``{\tt psft:}''\ prefix, +\emph{OpenType font features, such as ``\texttt{+jp90}'', +have no meaning in name-only fonts using ``\texttt{psft}''\ prefix, because we can't expect what fonts are actually used by the PDF reader.} Note that \texttt{extend}~and~\texttt{slant} settings (see~above) are supported with \texttt{psft} prefix, because they are only simple linear transformations. % %<*ja> \Pkg{luaotfload}で使用可能になった -\texttt{file:}\ と \texttt{name:}\ のプリフィックスに加えて, +\texttt{file}\ と \texttt{name}\ のプリフィックスに加えて, \cs{jfont}(と \cs{font} プリミティブ)では -\texttt{psft:}プリフィックスを用いることができる. +\texttt{psft}\ プリフィックスを用いることができる. このプリフィックスを用いることで,PDFには埋め込まれない「名前だけの」 和文フォントを指定することができる. なお,現行の\LuaTeX で非埋め込みフォントを作成するとPDF内でのエンコーディングが @@ -3948,13 +4067,13 @@ Identity-Hとなり,PDFの標準規格ISO32000-1:2008~(\cite{pdfstd})に非準 \label{para-cid} %<*en> -The default font defined by using \texttt{psft:} prefix is for Japanese typesetting; +The default font defined by using \texttt{psft} prefix is for Japanese typesetting; it is Adobe-Japan1-7 CID-keyed font. One can specify \texttt{cid} key to use other CID-keyed non-embedded fonts for Chinese or Korean typesetting. % %<*ja> -標準で\texttt{psft:}プリフィックスで定義されるフォントは日本語用のもので +標準で\texttt{psft}\ プリフィックスで定義されるフォントは日本語用のもので あり,Adobe-Japan1-7のCIDに対応したものとなる.しかし,\LuaTeX-jaは中国語 の組版にも威力を発揮することが分かり,日本語フォントでない非埋込フォント の対応も必要となった.そのために追加されたのが\texttt{cid}キーである. @@ -4027,7 +4146,7 @@ floating-point numbers in design-size unit. %<*ja> 実際のデータは上で \verb+{ ... }+ で示されたテーブルの中に格納されている. 以下ではこのテーブルの構造について記す. -なお,JFMファイル中の長さは全てdesign-sizeを単位とする浮動小数点数であることに +なお,JFMファイル中の長さは全てdesign sizeを単位とする浮動小数点数であることに 注意する. % @@ -4093,7 +4212,7 @@ This field specifies the ``ideal'' amount of \Param{kanjiskip}. As noted %<*ja> 理想的な\Param{kanjiskip}の量を指定する.\ref{subs-kskip}節で述べたように, もし\Param{kanjiskip}が \cs{maxdimen} の値ならば,このフィールドで指定された -値が実際には用いられる(指定なしは0\,ptとして扱われる).とのフィールドもdesign-size +値が実際には用いられる(指定なしは0\,ptとして扱われる).とのフィールドもdesign size が単位であることに注意せよ. % @@ -4871,9 +4990,9 @@ a \emph{horizontal} Japanese font. %\bf 和文フォント&\bf 欧文フォント\\ \midrule \cs{jfam}${}\in [0,256)$&\cs{fam}\\ -\tt\Param{jatextfont}\,=\{,\}&\tt\cs{textfont}=\\ -\tt\Param{jascriptfont}\,=\{,\}&\tt\cs{scriptfont}=\\ -\tt\Param{jascriptscriptfont}\,=\{,\}&\tt\cs{scriptscriptfont}=\\ +\ttfamily\Param{jatextfont}\,=\{,\}&\ttfamily\cs{textfont}=\\ +\ttfamily\Param{jascriptfont}\,=\{,\}&\ttfamily\cs{scriptfont}=\\ +\ttfamily\Param{jascriptscriptfont}\,=\{,\}&\ttfamily\cs{scriptscriptfont}=\\ \bottomrule \end{tabular} \end{table} @@ -4972,9 +5091,11 @@ For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose cl scaled value of those specified by the JFM, by the font size. \item \texttt{align} is a number which is determined from \texttt{align}~field in the JFM: \[ - \begin{cases} - 0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'} - \end{cases} + \begin{cases*} + 1&(\texttt{'right'} in JFM),\\ + 0.5&(\texttt{'middle'} in JFM),\\ + 0&(otherwise). + \end{cases*} \] \end{itemize} For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted @@ -5006,9 +5127,11 @@ $i\in\omega$に対して,\texttt{char\_type[$i$]} は文字クラス$i$の文 JFMで指定されているそれぞれの値をスケーリングしたものである. \item \texttt{align} はJFMで指定されている値によって, \[ - \begin{cases} - 0&\text{\texttt{'left'}や省略時}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'} - \end{cases} + \begin{cases*} + 1&(\texttt{'right'} in JFM),\\ + 0.5&(\texttt{'middle'} in JFM),\\ + 0&(otherwise). + \end{cases*} \] のいずれかの値をとる. \end{itemize} @@ -5035,10 +5158,6 @@ $i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は JFM中の同名のフィールドの値がそのまま使われている. \end{description} \end{itemize} -\item[ascent\textrm{, }descent] - 縦組時に個々のグリフを90度回転させる場合,そのグリフは(実際の高さ・深さにかかわらず) - 便宜的に高さ\texttt{ascent},深さ\texttt{descent}を持つものだと想定して回転させる. - この仕様は\Pkg{luaotfload}がOpenTypeフォントのVORGテーブルを読まないための暫定的なものである. \item[chars\_cbcache] 文字クラス決定の処理で.キャッシュとして使われる. \end{cslist} @@ -5186,18 +5305,17 @@ of \LuaTeX, see Section~\ref{sec-para}. %<*en> \cs{ltjsetparameter} and \cs{ltjglobalsetparameter} are commands -for assigning parameters. These take one argument which is a -\texttt{=} list. +for assigning parameters. These take one argument which is a key-value list. The difference between these two commands is the scope of assignment; \cs{ltjsetparameter} does a local assignment and -\cs{ltjglobalsetparameter} does a global one. +\cs{ltjglobalsetparameter} does a global one by default. They also obey the value of \cs{globaldefs}, like other assignments. % %<*ja> \cs{ltjsetparameter} と \cs{ltjglobalsetparameter} はパラメータを -指定するための命令で,\texttt{=}のリストを -引数としてとる.両者の違いはスコープであり, +指定するための命令で,key-valueリストを +引数としてとる.両者の違いはスコープであり,標準では \cs{ltjsetparameter} はローカルな設定を行うのに対し, \cs{ltjglobalsetparameter} はグローバルな設定を行う. また,他のパラメータ指定と同様に \cs{globaldefs} の値にも従う. @@ -6016,6 +6134,9 @@ If the current Japanese font is \cs{hoge}, \texttt{U+3000}--\texttt{U+30FF} and characters in class~1 (ideographic opening brackets) are typeset by \cs{piyo}. \end{quote} + +Note that specifying negative numbers needs specification like \verb+{-1}-{-1}+, +because simple ``\texttt{-1}'' is treated as the range between 0~and~1. % %<*ja> \cs{jfont} の書式を見ればわかるように,基本的には\LuaTeX-jaにおける1つの和文フォントに @@ -6060,20 +6181,21 @@ are typeset by \cs{piyo}. \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}として出力されること -に注意. +\LuaTeX-ja~20190926.0から,が127以下の場合でも\cs{ltjjachar}が +\textbf{JAchar}として出力されるようになっている. -以下は\ref{ssec:setrange}節に載せた例に,\cs{char} の動作を追加したものである. +以下は\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 +\gtfamily\large +¶,\char`¶,\ltjalchar`¶,\ltjjachar`¶\\ % default: ALchar +α,\char`α,\ltjalchar`α,\ltjjachar`α\\ % default: JAchar +g,\char`g,\ltjalchar`g,\ltjjachar`g % ALchar unless \ltjjachar \end{LTXexample} -% %\section{Commands for \LaTeXe} %\section{\LaTeXe 用の命令} @@ -6194,13 +6316,14 @@ for information of current Japanese font: %<*ja> を定義している.なお,\cs{cwd} と \cs{zw},また \cs{cHT} と \cs{zh} は一致しない可能性がある.なぜなら, -\cs{cwd},~\cs{cHT} は「あ」の寸法から決定されるのに対し, +\cs{cwd},~\cs{cHT} は文字クラス0の和文文字の寸法から決定されるのに対し, \cs{zw} と \cs{zh} はJFMに指定された値に過ぎないからである. % %<*en> Note that \cs{cwd}~and~\cs{cHT} may differ from \cs{zw}~and~\cs{zh} respectively. -On the one hand the former dimensions are determined from the character ``あ'', +On the one hand the former dimensions are determined from +a character whose character class is zero, but on the other hand \cs{zw}~and~\cs{zh} are specified by JFM. % @@ -6254,9 +6377,9 @@ The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaul 更させるようにするのが一般的と思われる. 本命令は -\begin{center}\tt -\{\}\quad$\longrightarrow$\quad -(の1段展開結果)\{の1段展開結果)\{\}\} +\begin{center} +\texttt{\{}\texttt{\}}\quad$\longrightarrow$\quad +(の1段展開結果)\texttt{\{}の1段展開結果)\texttt{\{\}\}} \end{center} と定義を行うので,使用には注意が必要である: %\vspace{-\medskipamount} @@ -6317,36 +6440,31 @@ Latin Modern Sans Serif (TU/lmss/m/n) に変わっていることがわかる. \item[\cs{adjustbaseline}] %<*en> In \pLaTeXe, \cs{adjustbaseline} sets \cs{tbaselineshift} -to match the vertical center of ``M'' and that of ``あ'' in vertical typesetting: +to match the vertical center of ``M'' and that of ``漢'' in vertical typesetting: \[ \text{\cs{tbaselineshift}} \leftarrow -\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{あ}}+d_{\text{あ}})}2 - + d_{\text{あ}} - d_{\text{M}}, +\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{漢}}+d_{\text{漢}})}2 + + d_{\text{漢}} - d_{\text{M}}, \] where $h_{a}$~and~$d_{a}$ denote the height of ``$a$'' and the depth, respectively. In \LuaTeX-ja, this \cs{adjustbaseline} does similar task, namely setting the - \Param{talbaselineshift} parameter. -If the \LaTeX\ is 2015/10/01 release or later, \LuaTeX-ja use a Japanese -character whose character class is zero, instead of `あ'. + \Param{talbaselineshift} parameter +(a Japanese character whose character class is zero is used, instead of `漢' ). % %<*ja> -\pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「あ」の中心線を一致させるために, -\cs{tbaselineshift} を設定する役割を持っていた: +\pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「漢」の中心線を一致させるために, +\cs{tbaselineshift} を設定する役割を持っている: \[ \text{\cs{tbaselineshift}} \leftarrow -\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{あ}}+d_{\text{あ}})}2 - + d_{\text{あ}} - d_{\text{M}}, +\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{漢}}+d_{\text{漢}})}2 + + d_{\text{漢}} - d_{\text{M}}, \] ここで,$h_{a}$,~$d_{a}$はそれぞれ「$a$」の高さ・深さを表す. -\LuaTeX-jaにおいても\cs{adjustbaseline} は同様に\Param{talbaselineshift}パラメータの調整処 - 理を行っている. - -同時に,これも\pLaTeXe の \cs{adjustbaseline} で同様の処理が行われていたが, -「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd} -といった長さ変数を設定する. +\LuaTeX-jaにおいても,同じように\cs{adjustbaseline}は\Param{talbaselineshift}パラメータの調整処 + 理を行っている(但し「漢」でなく「文字クラス0の和文文字」を用いる). -なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに -「文字クラス0の和文文字」を用いる. +\pLaTeXe では,\cs{adjustbaseline}で(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}%の + 設定処理も行っていたが,\LuaTeX-jaでも全く同様である. % \item[\cs{fontfamily}\{\}] @@ -6363,11 +6481,11 @@ to . See Subsection~\ref{ssec:fontfamilycmd} for detail. \begin{figure}[!tb] \begin{LTXexample}[pos=b] \DeclareKanjiFamily{JY3}{edm}{} -\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} +\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;}{} +\DeclareFontShape{JY3}{edm}{m}{fb} {<-> s*KozGoPr6N-Regular:jfm=ujis}{} +\DeclareFontShape{JY3}{edm}{m}{fb2} {<-> s*KozGoPr6N-Medium:jfm=ujis}{} +\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{fb}{ "4E00-"67FF,{-2}-{-2}} +\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{fb2}{"6800-"9FFF} {\kanjifamily{edm}\selectfont 日本国民は、正当に選挙された国会における代表者を通じて行動し、……} \end{LTXexample} @@ -6388,7 +6506,7 @@ to . See Subsection~\ref{ssec:fontfamilycmd} for detail. \begin{itemize} \item \cs{ltjdeclarealtfont} では基底フォント・置き換え先和文フォントはあらかじめ定義されてい - ないといけない(その代わり即時発効)であったが, + ないといけない(その代わり即時発効)たが, \cs{DeclareAlternateKanjiFont} の設定が 実際に効力が発揮するのは,書体変更やサイズ変更を行った時, あるいは(これらを含むが)\cs{selectfont} が実行された時である. @@ -6745,11 +6863,11 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec:psft}. \begin{figure}[!tb] \begin{LTXexample}[width=0.25\textwidth] \jfontspec[ - YokoFeatures={Color=007F00}, TateFeatures={Color=00007F}, + YokoFeatures={FakeBold=3}, TateFeatures={FakeBold=6}, TateFont=KozGoPr6N-Regular ]{KozMinPr6N-Regular} \hbox{\yoko 横組のテスト}\hbox{\tate 縦組のテスト} -\addjfontfeatures{Color=FF0000} +\addjfontfeatures{FakeBold=0} \hbox{\yoko 横組}\hbox{\tate 縦組} \end{LTXexample} %\caption{\texttt{TateFeatures} 等の使用例} @@ -6795,8 +6913,8 @@ A demonstrarion is shown in \autoref{fig:yokotate-fontspec}. \begin{LTXexample}[pos=b] \jfontspec[ AltFont={ - {Range="4E00-"67FF, Color=007F00}, - {Range="6800-"9EFF, Color=0000FF}, + {Range="4E00-"67FF, Font=KozGoPr6N-Medium}, + {Range="6800-"9EFF, FakeBold=4}, {Range="3040-"306F, Font=KozGoPr6N-Regular}, } ]{KozMinPr6N-Regular} @@ -6859,7 +6977,7 @@ For example, \begin{lstlisting} AltFont = { { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold, - Range="3000-"30FF, BoldFeatures={Color=007F00} } + Range="3000-"30FF, BoldFeatures={FakeBold=1} } } \end{lstlisting} does \emph{not} work. Instead, one have to write @@ -6868,7 +6986,7 @@ UprightFeatures = { AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } }, }, BoldFeatures = { - AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } }, + AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, FakeBold=1 } }, } \end{lstlisting} @@ -6891,7 +7009,7 @@ has no effect, because a color specification is already done in \begin{lstlisting} AltFont = { { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold, - Range="3000-"30FF, BoldFeatures={Color=007F00} } + Range="3000-"30FF, BoldFeatures={FakeBold=1} } } \end{lstlisting} のように指定することは出来ず, @@ -6900,7 +7018,7 @@ UprightFeatures = { AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } }, }, BoldFeatures = { - AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } }, + AltFont = { { Font=HogeraMin-Bold, Range="3000-"30FF, FakeBold=1 } }, } \end{lstlisting} のように指定しなければならない. @@ -6910,8 +7028,8 @@ BoldFeatures = { 指定することは可能であり.また\ \texttt{YokoFeatures},~\texttt{TateFeatures} キーの 中身に \texttt{AltFont} を指定することができる. -また,\autoref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず, -2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ +また,\autoref{fig:yokotate-fontspec}後半部では6行目の疑似太字無効化の指定が効かず, +2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による疑似太字の指定が有効になっ たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による OpenType機能指定は 組方向に依存しないOpenType機能の指定より後に解釈される}からである. @@ -7006,13 +7124,13 @@ ordinary characters in the following points: 有効か無効かを問わず,\cs{UTF} で出力される文字にはこれらのOpenType機能が働いた字形になる. % %<*en> -\item Processing codes for supporting other OpenType features (for example, +\item Processes for supporting other OpenType features (for example, glyph replacement and kerning) by the \Pkg{luaotfload} package is not performed to these characters. % %<*ja> \item その他のOpenType機能(例えばグリフ置換やカーニング)をサポートするための - \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない. + \Pkg{luaotfload}パッケージによる処理はこれらの文字には働かない. % \end{itemize} @@ -7884,13 +8002,13 @@ We didn't taken account of when more than one options among them are specified. \label{sssec:ltjpreset-multi} %<*en> -Besides \texttt{bizud}, \texttt{morisawa-pro},~and~\texttt{morisawa-pr6n} presets, +Besides \texttt{bizud}, \texttt{haranoaji}, \texttt{morisawa-pro},~and~\texttt{morisawa-pr6n} presets, fonts are specified by font name, not by file name. In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic}, \emph{if and only if \texttt{deluxe} option is specified}. % %<*ja> -\texttt{bizud}, \texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は +\texttt{bizud}, \texttt{haranoaji}, \texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は (ファイル名でなく)フォント名で行われる. 以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に} ゴシック体中字として用いられるものを示している. @@ -7926,12 +8044,12 @@ There is not rounded gothic family in Kozuka fonts. &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\ \cmidrule(l){2-5} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\ &extra bold&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ \bottomrule \end{tabular} @@ -7972,18 +8090,17 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ \cmidrule(l){2-4} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ &extra bold&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\ \bottomrule \end{tabular} \end{center} -%\newpage \item[bizud] BIZ UD fonts (by Morisawa Inc.) bundled with Windows~10 October 2018 Update. \begin{center}\small @@ -7998,12 +8115,12 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &medium&BIZ-UDGothicR.ttc\\ \cmidrule(l){2-3} %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&BIZ-UDGothicB.ttc\\ &extra bold&BIZ-UDGothicB.ttc\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&BIZ-UDGothicB.ttc\\ \bottomrule \end{tabular} @@ -8021,18 +8138,18 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%\smash{\raisebox{1.5ex}{\gt 明朝}}% +%\smash{\raisebox{1.5ex}{\textgt{明朝}}}% &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\ \midrule &medium &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\ %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\ &extra bold&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\ \bottomrule \end{tabular} @@ -8060,12 +8177,12 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\ \cmidrule(l){2-5} %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ &extra bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ \bottomrule \end{tabular} @@ -8083,17 +8200,17 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule &medium&Moga90Mincho&MogaMincho\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%\smash{\raisebox{1.5ex}{\gt 明朝}}% +%\smash{\raisebox{1.5ex}{\textgt{明朝}}}% &bold&Moga90Mincho Bold&MogaMincho Bold\\ \midrule &medium&Moga90Gothic&MogaGothic\\ %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&Moga90Gothic Bold&MogaGothic Bold\\ &extra bold&Moga90Gothic Bold&MogaGothic Bold\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&Mobo90Gothic&MoboGothic\\ \bottomrule \end{tabular} @@ -8111,19 +8228,19 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule &medium&Ume Mincho\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%\smash{\raisebox{1.5ex}{\gt 明朝}}% +%\smash{\raisebox{1.5ex}{\textgt{明朝}}}% &bold&Ume Mincho\\ \midrule &&Ume Gothic*\\ &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\ \cmidrule(l){2-3} %\textit{gothic}% -%\gt ゴシック +%\textgt{ゴシック} &bold&Ume Gothic O5\\ &extra bold&Ume Gothic O5\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&Ume Gothic O5\\ \bottomrule \end{tabular} @@ -8150,12 +8267,12 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &\AD{Sans}{Medium}\\ \cmidrule(l){2-4} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&\AD{Sans}{Bold}\\ &extra bold&\AD{Sans}{Heavy}\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&\AD{Sans}{Heavy}\\ \bottomrule \end{tabular} @@ -8182,18 +8299,54 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. &\AD{Sans}{Medium}\\ \cmidrule(l){2-4} %\smash{\raisebox{2ex}{\textit{gothic}}}% -%\smash{\raisebox{2ex}{\gt ゴシック}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% &bold&\AD{Sans}{Bold}\\ &extra bold&\AD{Sans}{Black}\\ \midrule %\textit{rounded gothic} -%\gt 丸ゴシック +%\textgt{丸ゴシック} &&\AD{Sans}{Black}\\ \bottomrule \end{tabular} \end{center} +\item[haranoaji] Harano Aji Fonts. +%\par These fonts can be downloaded from\\\hfill \url{https://github.com/trueroad/HaranoAjiFonts}. +%これらのフォントは \url{https://github.com/trueroad/HaranoAjiFonts} からダウンロードできる. +%<*en> +There is not rounded gothic family in Harano Aji Fonts. +% +%<*ja> +「原ノ味丸ゴシック」は存在しないので,便宜的に原ノ味角ゴシックHeavyによって代用している. +% +\begin{center}\small +\begin{tabular}{lll} +\toprule +\bf family&\bf series&\texttt{haranoaji}\\ +\midrule + &light&HaranoAjiMincho-Light.otf\\ +%\textit{mincho}% +%\textgt{明朝}% + &medium&HaranoAjiMincho-Regular.otf\\ + &bold&HaranoAjiMincho-Bold.otf\\ +\midrule + &&HaranoAjiGothic-Regular.otf*\\ + &\smash{\raisebox{1.5ex}{medium}} + &HaranoAjiGothic-Medium.otf\\ +\cmidrule(l){2-3} +%\smash{\raisebox{2ex}{\textit{gothic}}}% +%\smash{\raisebox{2ex}{\textgt{ゴシック}}}% + &bold&HaranoAjiGothic-Bold.otf\\ + &extra bold&HaranoAjiGothic-Heavy.otf\\ +\midrule +%\textit{rounded gothic} +%\textgt{丸ゴシック} +&&HaranoAjiGothic-Heavy.otf\\ +\bottomrule +\end{tabular} +\end{center} \end{cslist} + %\subsubsection{Presets which do not support multi weights} %\subsubsection{単ウェイト用プリセット一覧} \label{sssec:ltjpreset-single} @@ -8599,31 +8752,31 @@ unlike explicit \cs{kern}. Penalties inserted for the word-wrapping process (\emph{kinsoku shori}) of Japanese characters. % %禁則処理のために挿入されたペナルティ. -\item[\mathversion{bold}$(\textit{from\_jfm}-2)$--$(\textit{from\_jfm}+2)$~(4--8)] +\item[\mathversion{bold}$\textit{from\_jfm}$--$(\textit{from\_jfm}+63)$~(4--67)] %Glues/kerns from JFM. %JFM由来のグルー/カーン. -\item[\textit{kanji\_skip}~(9), \textit{kanji\_skip\_jfm}~(10)] +\item[\textit{kanji\_skip}~(68), \textit{kanji\_skip\_jfm}~(69)] %Glues from \Param{kanjiskip}. %和文間空白\Param{kanjiskip}を表すグルー. -\item[\textit{xkanji\_skip}~(11), \textit{xkanji\_skip\_jfm}~(12)] +\item[\textit{xkanji\_skip}~(70), \textit{xkanji\_skip\_jfm}~(71)] %Glues from \Param{xkanjiskip}. %和欧文間空白\Param{xkanjiskip}を表すグルー. -\item[\textit{processed} (13)] +\item[\textit{processed} (73)] %Nodes which is already processed by \ldots. %\LuaTeX-ja の内部処理によって既に処理されたノード. -\item[\textit{ic\_processed} (14)] +\item[\textit{ic\_processed} (74)] %<*en> Glues from an italic correction, but already processed in the insertion process of \textbf{JAglue}s. % %イタリック補正に由来するグルーであって,既に \textbf{JAglue} 挿入処理にかかったもの. -\item[\textit{boxbdd} (15)] +\item[\textit{boxbdd} (75)] %Glues/kerns that inserted just the beginning or the ending of an hbox or a paragraph. %hboxか段落の最初か最後に挿入されたグルー/カーン. \end{description} %<*ja> また,挿入処理の結果であるリストの最初のノードでは,\verb+\ltj@icflag+ の値に -\textit{processed\_begin\_flag}~(128)が追加される.これによって,\cs{unhbox} が +\textit{processed\_begin\_flag}~(4096)が追加される.これによって,\cs{unhbox} が 連続した場合でも「ボックスの境界」が識別できるようになっている. % @@ -8711,19 +8864,19 @@ Nodes for \LuaTeX-ja's stack system (see the next \item[\textit{char\_by\_cid}] %<*en> -Nodes for \textbf{JAchar} which the callback process of - \Pkg{luaotfload} won't be applied, and the character code is +Nodes for \textbf{JAchar} which processes by \Pkg{luaotfload} won't be applied, + and the character code is stored in the \texttt{value} field. Each node of this type are converted to a \textit{glyph\_node} \emph{after} - the callback process of luaotfload. -Nodes of this type is used in \cs{CID}, \cs{UTF} and IVS support. + processes by luaotfload. +Nodes of this type is used in \cs{CID}~and~\cs{UTF}. % %<*ja> -\Pkg{luaotfload}のコールバックによる処理が適用されない\textbf{JAchar}のためのノードで, +\Pkg{luaotfload}による処理が適用されない\textbf{JAchar}のためのノードで, \texttt{value} フィールドに文字コードが格納されている. この種類のノードはそれぞれが\Pkg{luaotfload}のコールバックの処理の \emph{後で}\textit{glyph\_node}に変換される. -\cs{CID}, \cs{UTF}やIVS対応処理でこの種類のノードが利用されている. +\cs{CID}, \cs{UTF}でこの種類のノードが利用されている. % \item[\textit{replace\_vs}] @@ -9044,10 +9197,10 @@ whose prefix is \texttt{ltj} and whose family is \texttt{japaram}, as the follow \texttt{luatexja.isglobal}. Its meaning is the following. \begin{align} \texttt{luatexja.isglobal} = -\begin{cases} - \texttt{'global'}&\text{global}\\ - \texttt{''}&\text{local} -\end{cases} +\begin{cases*} + \texttt{'global'}&(global assignment),\\ + \texttt{''}&(local assignment). +\end{cases*} \end{align} This is determined not only by command name (\cs{ltjsetparameter}~or~\cs{ltjglobalsetparameter}), @@ -9068,10 +9221,10 @@ but also by the value of \cs{globaldefs}. なお,パラメータ指定がグローバルかローカルかどうかを示す \texttt{luatexja.isglobal} が, \begin{align} \texttt{luatexja.isglobal} = -\begin{cases} - \texttt{'global'}&\text{パラメータ設定はグローバル}\\ - \texttt{''}&\text{パラメータ設定はローカル} -\end{cases} +\begin{cases*} + \texttt{'global'}&(パラメータ設定はグローバル),\\ + \texttt{''}&(パラメータ設定はローカル). +\end{cases*} \end{align} として自動的にセットされる\footnote{命令が \cs{ltjglobalsetparameter} かどうかだけでは なく,実行時の \cs{globaldefs} の値にも依存して定まる.}. @@ -9748,11 +9901,11 @@ JFM由来のグルー/カーンは以下の値となる: \] ここで.$f(x,y)$は \[ - f(x,y)=\begin{cases} -x&\text{if\ }\Param{diffrentjfm}=\texttt{pleft};\\ -y&\text{if\ }\Param{diffrentjfm}=\texttt{pright};\\ -(x+y)/2&\text{if\ }\Param{diffrentjfm}=\texttt{paverage}; -\end{cases}. + f(x,y)=\begin{dcases*} +x&($\Param{diffrentjfm}=\texttt{pleft}$),\\ +y&($\Param{diffrentjfm}=\texttt{pright}$),\\ +\frac{x+y}2&($\Param{diffrentjfm}=\texttt{paverage}$). +\end{dcases*} \] \item \Param{differentjfm}がそれ以外の値の時は,の値は無視され,JFM由来のグルー/カーンは以下の値となる: @@ -9761,12 +9914,12 @@ y&\text{if\ }\Param{diffrentjfm}=\texttt{pright};\\ \] ここで.$f(x,y)$は \[ - f(x,y)=\begin{cases} -\min(x,y)&\text{if\ }\Param{diffrentjfm}=\texttt{small};\\ -\max(x,y)&\text{if\ }\Param{diffrentjfm}=\texttt{large};\\ -(x+y)/2&\text{if\ }\Param{diffrentjfm}=\texttt{average};\\ -x+y&\text{if\ }\Param{diffrentjfm}=\texttt{both}; -\end{cases}. + f(x,y)=\begin{dcases*} +\min(x,y)&($\Param{diffrentjfm}=\texttt{small}$),\\ +\max(x,y)&($\Param{diffrentjfm}=\texttt{large}$),\\ +\frac{x+y}2&($\Param{diffrentjfm}=\texttt{average}$),\\ +x+y&($\Param{diffrentjfm}=\texttt{both}$). +\end{dcases*} \] \end{itemize} \end{enumerate} @@ -10236,11 +10389,11 @@ then the patch \Pkg{lltjp-listings} is loaded automatically at \verb+\begin{docu % \textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である. % 例えば次のような入力を考えよう: % % -% \begin{verbatim*} -% \begin{lstlisting}[escapechar=\#] +% \begin{lstlisting}[showspaces][escapechar=\!] +% !\cs{begin}!{lstlisting}[escapechar=\#] % #\ほげ xぴよ# +% !\cs{end}!{lstlisting} % \end{lstlisting} -% \end{verbatim*} % %The line~2 is transformed by the callback to % %ここで,2行目は \verb+process_input_buffer+ の作用により, % \begin{lstlisting}[showspaces, escapechar=\!] @@ -10284,9 +10437,8 @@ variation selectors are ``combined'' with the previous character. \texttt{vsraw}は,ブール値の値をとるキーであり,標準ではfalseである. \begin{itemize} - \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される. -もしもIVSサポート(\ref{ssec:ltjotf}節)が有効になっていた場合は, -以下の例(左側は入力,右側はその出力)のようになる. + \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力されるため, +例えば以下の例(左側は入力,右側はその出力)のようになる. % \begin{LTXexample} \begin{lstlisting}[vsraw=true] @@ -10314,8 +10466,8 @@ The default setting of the \texttt{vscmd} key produces the following. % For example, the following code is the setting of the \texttt{vscmd} key in this document. \begin{lstlisting}[numbers=left] \def\IVSA#1#2#3#4#5{% - \textcolor{blue}{\raisebox{3.5pt}{\tt% - \fboxsep=0.5pt\fbox{\tiny \oalign{0#1#2\crcr#3#4#5\crcr}}}}% + \hbox to1em{\hss\textcolor{blue}{\raisebox{3.5pt}{\normalfont\ttfamily% + \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{0#1#2\crcr#3#4#5\crcr}\hss}}}}\hss}% } {\catcode`\%=11 \gdef\IVSB#1{\expandafter\IVSA\directlua{ @@ -10637,12 +10789,12 @@ T^{+}&:=T^{+}_{L^+},&L^{+} = \max \{l\in $b_{i}$とおく.式で書くと, \[ \catcode`\<=12 -b_{i} = \begin{cases} - |\textit{total}-a_{i}\text{\cs{zw}}|/T^{+} - &(\textit{total}-a_{i}\text{\cs{zw}}\geq 0)\\ - |\textit{total}-a_{i}\text{\cs{zw}}|/T^{-} - &(\textit{total}-a_{i}\text{\cs{zw}}<0) -\end{cases}. +b_{i} = \begin{dcases*} + \frac{\lvert\textit{total}-a_{i}\text{\cs{zw}}\rvert}{T^{+}} + &($\textit{total}-a_{i}\text{\cs{zw}}\geq 0$),\\ + \frac{\lvert\textit{total}-a_{i}\text{\cs{zw}}\rvert}{T^{-}} + &($\textit{total}-a_{i}\text{\cs{zw}}<0$). +\end{dcases*} \] $b_{i}$達の最小値を与えるような$i$を$j$としたとき\footnote{% そのような$i$が2つ以上あるときは,$|\textit{total}-a_{i}\cdot \text{\cs{zw}}|$, @@ -10757,9 +10909,6 @@ $|\textit{total}|$の分だけが,行中のグルーの伸び量,あるい \item 「通常の」テキスト形式のキャッシュ(拡張子は \texttt{.lua})以外にも, それをバイナリ形式(バイトコード)に変換したものもサポートしている. \begin{itemize} - \item \LuaTeX とLuaJIT\TeX ではバイトコードの形式が異なるため,バイナリ形式の -キャッシュは共有できない.\LuaTeX 用のバイナリキャッシュは \texttt{.luc}, -LuaJIT\TeX 用のは \texttt{.lub} と拡張子を変えることで対応している. \item キャッシュを読み込む時,同名のバイナリキャッシュがあれば, テキスト形式のものよりそちらを優先して読み込む. \item テキスト形式のキャッシュが更新/作成される際は,そのバイナリ版も @@ -10779,9 +10928,6 @@ in a similar way to the \Pkg{luaotfload} package: \item In addition to caches of the text form (the extension is ``\texttt{.lua}''), caches of the \emph{binary}, precompiled form are supported. \begin{itemize} - \item We cannot share same binary cache for \LuaTeX\ and LuaJIT\TeX. -Hence we distinguish them by their extension, ``\texttt{.luc}'' for \LuaTeX\ -and ``\texttt{.lub}'' for LuaJIT\TeX. \item In loading a cache, the binary cache precedes the text form. \item When \LuaTeX-ja updates a cache \texttt{hoge.lua}, @@ -10798,16 +10944,12 @@ its binary version is also updated. \item[ltj-cid-auto-adobe-japan1.lua] Ryumin-Lightのような非埋め込みフォントの情報を格納しており, (それらが\LuaTeX-jaの標準和文フォントなので)\LuaTeX-jaの読み込み時に自動で読まれる. -生成には\texttt{UniJIS2004-UTF32-\{H, V\}}, \texttt{Adobe-Japan1-UCS2}という3つの +生成には\texttt{UniJIS2004-UTF32-\{H,V\}}, \texttt{Adobe-Japan1-UCS2}という3つの CMapが必要である. \pageref{para-cid}ページで述べたように,\texttt{cid}キーを使って 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される. キャッシュの名称,必要となるCMapについては\autoref{tab:cid-cache}を参照して欲しい. - -\item[extra\_***.lua] -フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして -縦組時における幅を格納している.構造は以下の通り: % %<*en> \subsection{Use of cache} @@ -10825,16 +10967,6 @@ Similar caches are created as \autoref{tab:cid-cache}, if you specified \texttt{cid} key in \cs{jfont} to use other CID-keyed non-embedded fonts for Chinese or Korean, as in Page~\pageref{para-cid}. - -\item[extra\_***.lua] -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 -the height of ascender and the depth of descender - \item vertical variants -\end{itemize} -The following is the structure of the that table. % \begin{table}[!tb] @@ -10856,38 +10988,15 @@ Adobe-CNS1-*<j-cid-auto-adobe-cns1.lua&UniCNS-UTF32-*&Adobe-CNS1-UCS2\\ \end{tabular} \end{table} -\begin{lstlisting} -return { - { - [10955]={ -- U+2ACB "Subset Of Above Not Equal To" - [65024]=983879, -- <2ACB FE00> - ["vwidth"]=0.98, -- vertical width - }, - [37001]={ -- U+9089 "邉" - [0]=37001, -- <9089 E0100> - 991049, -- <9089 E0101> - ... - ["vform"]=995025, -- vertical variant - }, - ... - ["unicodes"]={ - ["aj102.pe.vert"]=984163, -- glyph name to unicode - ... - } - }, - ["chksum"]="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", -- checksum of the fontfile - ["version"]=11, -- version of the cache -} -\end{lstlisting} %<*ja> -\item[ltj-jisx0208.\{luc|lub\}] -\LuaTeX-ja配布中の\texttt{ltj-jisx0208.lua}をバイナリ化したものである. +\item[ltj-jisx0208.luc] +\LuaTeX-ja配布中の\texttt{ltj-jisx0208.lua}をバイトコード化したものである. これはJIS~X~0208とUnicodeとの変換テーブルであり, \pTeX との互換目的の文字コード変換命令で用いられる. % %<*en> \item[ltj-jisx0208.\{luc|lub\}] -The binary version of \texttt{ltj-jisx0208.lua}. +The bytecode version of \texttt{ltj-jisx0208.lua}. This is the conversion table between JIS~X~0208 and Unicode which is used in Kanji-code conversion commands for compatibility with \pTeX. % @@ -11178,7 +11287,29 @@ direction~whatsit内部のノードリストに,\textit{dir\_box}として格 \subsection{縦組用字形の取得} 縦組時には,「\hbox to \zw{、}」(\texttt{U+3001})から「\ltjjachar"FE11」(\texttt{U+FE11})%" のように縦組用字形への置き換えに関係する処理は,以下のようになっている. - \begin{itemize} + +\begin{table}[t] + \def\D#1#2#3#4{% + {\fboxsep0pt\fcolorbox{cyan}{white}% + {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})%" + } + \caption{\LuaTeX-ja標準で行われる縦組形への置換} + \label{tab:vert_replace}\small\centering + \begin{tabular}{*{3}{l@{}>{${}\longmapsto{}$}c@{}l}} + \toprule + \D 3001&&\D FE11&\D 3002&&\D FE12&\D 3016&&\D FE17\\ + \D 3017&&\D FE18&\D 2026&&\D FE19&\D 2025&&\D FE30\\ + \D 2014&&\D FE31&\D 2013&&\D FE32&\D FF3F&&\D FE33\\ + \D FF08&&\D FE35&\D FF09&&\D FE36&\D FF5B&&\D FE37\\ + \D FF5D&&\D FE38&\D 3014&&\D FE39&\D 3015&&\D FE3A\\ + \D 3010&&\D FE3B&\D 3011&&\D FE3C&\D 300A&&\D FE3D\\ + \D 300B&&\D FE3E&\D 3008&&\D FE3F&\D 3009&&\D FE40\\ + \D 300C&&\D FE41&\D 300D&&\D FE42&\D 300E&&\D FE43\\ + \D 300F&&\D FE44&\D FF3B&&\D FE47&\D FF3D&&\D FE48\\ + \bottomrule + \end{tabular} +\end{table} +\begin{itemize} \item 各縦組用和文フォントは読み込み時に以下の属性が設定される: \begin{description} \item[\textit{vert\_activated}] 真となるのは, @@ -11195,20 +11326,16 @@ direction~whatsit内部のノードリストに,\textit{dir\_box}として格 \item また,各和文フォント読み込み時には, 「OpenType機能による置換以前に行う縦組形への置換」を格納したテーブル\textit{vform}も作成する. \begin{enumerate} - \item \LuaTeX-jaには,「\hbox to \zw{、}」(\texttt{U+3001})→「\ltjjachar"FE11」(\texttt{U+FE11})といった - いくつかの置換がハードコードされている.そのような各置換$i\longmapsto v$に対して, - \begin{quote} - 置換元$i$が(あるscript, languageにおける)\texttt{vert}では置換対象でなく, - かつ置換先$v$がフォント内に存在する文字コードである - \end{quote} - ならば,$i\longmapsto v$を\textit{vform}に登録する. + \item \autoref{tab:vert_replace}に示した各置換$i\longmapsto v$に対し, + 置換先$v$がフォント内に存在する文字コードであるならば,$i\longmapsto v$を\textit{vform}に登録する. \item \ref{ssec:tfont}節にある\texttt{jpotf}が指定された場合, - …… + \LuaTeX-ja内部の別のテーブル\textit{vert\_jpotf\_table}に登録されている各置換$i\longmapsto v$に対して + 置換先$v$がフォント内に存在する文字コードであるならば,$i\longmapsto v$を\textit{vform}に登録する. \item もし\texttt{vert}も\texttt{vrt2}も現在のscript, languageでは有効にできない場合, どこかのscript, languageにおける\texttt{vert}で定義されている 置換$i\longmapsto v$をすべて\textit{vform}に登録する. \end{enumerate} - + あとで説明するように,\textit{vform}は\textit{vert\_activated}が真であるような縦組用和文フォントでしか 利用されない. @@ -11216,9 +11343,8 @@ direction~whatsit内部のノードリストに,\textit{dir\_box}として格 その時点での組方向が縦組であり,かつ処理対象の各ノードの縦組用フォントで \textit{vert\_activated}が真である場合,\textit{vform}に従いグリフが置き換えられる. - \Pkg{luaotfload}が行う,OpenType機能に沿ったグリフ置換はこの後の処理となる.G + \Pkg{luaotfload}が行う,OpenType機能に沿ったグリフ置換はこの後の処理となる. \end{itemize} - % \newpage @@ -11229,32 +11355,27 @@ Victor Eijkhout. \newblock \textit{\TeX\ by Topic, A \TeX nician's Reference}, A \bibitem{listings} C.\ Heinz, B.\ Moses. \newblock The \textsf{Listings} Package. \bibitem{uptex} Takuji Tanaka. \newblock upTeX---Unicode version of pTeX with CJK extensions, -TUG 2013, October 2013. -%\newblock -%\\\null\hfill +TUG 2013, October 2013.\newblock \url{http://tug.org/tug2013/slides/TUG2013_upTeX.pdf} -\bibitem{jlisting} Thor Watanabe. \newblock Listings\ -\ MyTeXpert. -%\newblock -%\\\null\hfill +\bibitem{jlisting} Thor Watanabe. \newblock Listings\ -\ MyTeXpert.\newblock \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/}% % \\日本語訳の書籍版:W3C日本語組版タスクフォース(編),『W3C技術ノート 日本語組版処理の要件』,東京電機大学出版局,2012. -\bibitem{min10} 乙部厳己.「min10フォントについて」\\\null\hfill +\bibitem{min10} 乙部厳己.「min10フォントについて」\newblock \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 の出版への応用—縦組み機能の組み込み—」. -\\\null\hfill\texttt{.../texmf-dist/doc/ptex/base/ptexdoc.pdf} +\newblock\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. \bibitem{pdfstd} International Organization for Standardization. \newblock ISO 32000-1:2008, \textit{Document management -- Portable document format -- Part 1: PDF 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.\\ +\bibitem{tc18ltja} 北川弘典.「\LuaTeX-jaの近況」,\TeX Conf~2018. \url{https://osdn.net/projects/luatex-ja/wiki/Documentation/attach/tc18ltja.pdf} \end{thebibliography}