X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=b2b9b68e0c7d291f8ab60074b2a15a65a92968d0;hb=4b746683891210cff75916d8afd7c0c60ccfa622;hp=31932283444e295d1c17b89866ae633e58e4b702;hpb=cd98a66b6441c0ebbe9af14dccafbb15a0063680;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 3193228..b2b9b68 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -1,17 +1,39 @@ -%#! lualatex -shell-escape manual.ins +%<*!showexpl> +%#! lualatex -shell-escape -%<*en> -\documentclass[a4paper,titlepage]{article} -\usepackage[margin=25mm,footskip=5mm]{geometry} +% \documentclass[a4paper,titlepage]{article} +% \documentclass[a4paper,titlepage]{ltjsarticle} +% \documentclass[a4paper,titlepage]{ltjsarticle} + +%%%%%%%% +\makeatletter +%%%%%%%% + +%%%%%%%% record loaded packages +\let\ltjpkglist\empty +\newif\if@real@append@list +\def\@append@newentry#1#2{{% + \@real@append@listtrue \def\@tempa{#2}% + \let\@pkglist\@append@newentry@pkglist#1% + \if@real@append@list + \let\@pkglist=\relax\xdef#1{#1\@pkglist{#2}}% + \fi}} +\def\@append@newentry@pkglist#1{% + \def\@tempb{#1}% + \ifx\@tempa\@tempb\@real@append@listfalse\fi} +\def\@addtofilelist#1{\@append@newentry\ltjpkglist{#1}} +\let\@listfiles\empty + +%<*en> +\usepackage[margin=25mm,footskip=6mm]{geometry} +\parskip=\smallskipamount % %<*ja> -\documentclass[a4paper,titlepage]{ltjsarticle} -\usepackage[margin=25mm, footskip=5mm]{geometry} +\usepackage[textwidth=45\zw, lines=45, footskip=6mm]{geometry} \advance\leftmargini-1\zw\advance\leftmarginii-1\zw % %<*zh> -\documentclass[a4paper,titlepage]{ltjsarticle} -\usepackage[margin=25mm, footskip=5mm]{geometry} +\usepackage[textwidth=45\zw, lines=45, footskip=6mm]{geometry} \advance\leftmargini-1\zw\advance\leftmarginii-1\zw \def\postpartname{编} \DeclareYokoKanjiEncoding{ZH}{}{} @@ -46,21 +68,40 @@ \SetSymbolFont{songti}{bold}{ZH}{hei}{m}{n} \DeclareSymbolFontAlphabet{\mathsong}{songti} \DeclareMathAlphabet{\mathhei}{ZH}{hei}{m}{n} -\makeatletter \DeclareRobustCommand\songfamily{\not@math@alphabet\songfamily\mathsong\kanjifamily\songdefault\selectfont} \DeclareRobustCommand\heifamily{\not@math@alphabet\heifamily\mathhei\kanjifamily\heidefault\selectfont} \DeclareRobustCommand\minchofamily{\not@math@alphabet\minchofamily\mathhei\kanjifamily\minchodefault\selectfont} \DeclareRobustCommand\rmfamily{\not@math@alphabet\rmfamily\mathrm\romanfamily\rmdefault\kanjifamily\songdefault\selectfont} \DeclareRobustCommand\sffamily{\not@math@alphabet\sffamily\mathsf\romanfamily\sfdefault\kanjifamily\heidefault\selectfont} -\makeatother % -\usepackage{amsmath,amssymb,xcolor,pict2e,multienum,amsthm,float,makecell} -\usepackage{mathptmx} -\usepackage{booktabs,listings,showexpl,multicol} -\usepackage{luatexja-otf} -\usepackage{luatexja-fontspec} +\usepackage{amsmath,tikz,pict2e,multienum,float} +\usepackage{booktabs,multicol} + +%%%%%%%% listings +\usepackage{listings,showexpl} +\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} +} +% Suppress output from showexpl to stdout. +\let\SX@Info\relax + +%%%%%%%% hyperref \usepackage{hyperref} +%<*en> +\title{The \LuaTeX-ja package} +\author{The \LuaTeX-ja project team} +% +%<*ja> +\title{\LuaTeX-jaパッケージ} +\author{\LuaTeX-jaプロジェクトチーム} +% +%<*zh> +\title{\LuaTeX-ja宏包} +\author{\LuaTeX-ja项目团队} +% \hypersetup{% unicode, colorlinks, @@ -79,16 +120,28 @@ pdftitle={LuaTeX-ja宏包} % } -\usepackage[all]{xy} -% \SelectTips{cm}{} + +%%%%%%%% definition env. +\usepackage{amsthm} +\theoremstyle{definition} +%\newtheorem{defn}{Definition} +%\newtheorem{defn}{定義} +%\newtheorem{defn}{定义} + +%%%%%%%% fonts +\usepackage{luatexja-otf} +\usepackage[jis2004]{luatexja-preset} +%\usepackage{amssymb} %<*en> -\usepackage{mathptmx} +\usepackage{unicode-math} \setmainfont[Ligatures=TeX]{TeX Gyre Termes} \setsansfont[Ligatures=TeX]{TeX Gyre Heros} +\setmathfont{xits-math.otf} \frenchspacing % -\def\labelenumii{(\arabic{enumii})} +%%%%%%%% logo +\usepackage{metalogo} \DeclareRobustCommand\eTeX{\ensuremath{\varepsilon}-\kern-.125em\TeX} \DeclareRobustCommand\LuaTeX{Lua\TeX} \DeclareRobustCommand\pdfTeX{pdf\TeX} @@ -98,11 +151,7 @@ \DeclareRobustCommand\pLaTeXe{p\kern-.05em\LaTeXe} \DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\kern-.125em\pTeX} -\theoremstyle{definition} -%\newtheorem{defn}{Definition} -%\newtheorem{defn}{定義} -%\newtheorem{defn}{定义} - +%%%%%%%% other macros \newenvironment{cslist}{% \leftskip2em\parindent=0pt\def\makelabel##1{{\tt\char92##1}} \def\{{\char`\{}\def\}{\char`\}} @@ -110,7 +159,7 @@ \def\item[##1]{\par\smallskip\par\hskip-\leftskip\makelabel{##1}\par} }{} -\makeatletter +\def\labelenumii{(\arabic{enumii})} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{{\small #1. #2}}% @@ -121,34 +170,18 @@ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip} -% Suppress output from showexpl to stdout. -\let\SX@Info\relax + +%%%%%%%% \makeatother +%%%%%%%% \def\Node#1#2{\,\vcenter{\hbox{\fboxsep=1pt\fbox{\vbox{\small\halign{\hfil##\hfil\cr #1\mathstrut\cr\noalign{\hrule height.4pt}\strut#2\cr}}}}\,}} -%<*en> -\title{The \LuaTeX-ja package} -\author{The \LuaTeX-ja project team} -% -%<*ja> -\title{\LuaTeX-jaパッケージ} -\author{\LuaTeX-jaプロジェクトチーム} -% -%<*zh> -\title{\LuaTeX-ja宏包} -\author{\LuaTeX-ja项目团队} -% -\lstset{ - basicstyle=\ttfamily\small, pos=r, breaklines=true, - numbers=none, rframe={}, basewidth=0.5em -} - -\parskip=\smallskipamount \protected\def\Param#1{\textsf{#1}} % parameter name \protected\def\Pkg#1{\underline{\smash{\texttt{#1}}}} % packages/classes + \begin{document} \catcode`\<=13 \def<#1>{{\normalfont\rm\itshape$\langle$#1$\rangle$}} @@ -305,8 +338,11 @@ The followings are major changes from \pTeX: `variation'. % %<*ja> -\item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォントメトリック(JFMと呼ぶ),そ - して`variation'と呼ばれる文字列の組である. +\item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォン + トメトリック(JFMと呼ぶ\footnote{混乱を防ぐため,p\TeX の意味での + JFM (\texttt{min10.tfm}) などは本ドキュメントでは\textbf{和文用 + TFM}とよぶことにする.}),そして`variation'と呼ばれる文字列の組で + ある. % %<*zh> \item 一个日文字体是由三部分构成的元组:实际的字体(如小塚明 @@ -417,6 +453,12 @@ The followings are major changes from \pTeX: % \end{itemize} +%<*ja> +\item \LuaTeX-jaでは,\pTeX と同様に漢字・仮名を制御綴内に用いることができ, +\verb+\西暦+ などが正しく動作するようにしている. +但し,制御綴中に使える和文文字が\pTeX・\upTeX と全く同じではないことに注意すること. +% + %<*en> \item At the present, vertical typesetting (\emph{tategaki}), is not supported in \LuaTeX-ja. @@ -442,7 +484,7 @@ For detailed information, see Part~\ref{part-imp}. %\subsection{Notations} %\subsection{用語と記法} -%\subsection{一些约定} +%\subsection{一些约定} %<*en> @@ -521,7 +563,7 @@ We say `alphabetic fonts' for fonts used in \textbf{ALchar}, and `Japanese fonts means a package or a class of \LaTeX. % %<*ja> -\item 下線付きのタイプライタ体で書かれた語(例:\Pkg{fontspec})は\LaTeX の +\item 下線付きタイプライタ体の語(例:\Pkg{fontspec})は\LaTeX の パッケージやクラスを表す. % %<*zh> @@ -816,7 +858,6 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. % \end{enumerate} - %\subsection{Cautions} %\subsection{注意点} %\subsection{注意} @@ -866,7 +907,7 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc \begin{itemize} %<*en> \item The following 6~Japanese fonts are preloaded: -\begin{center} +\begin{center}\small \begin{tabular}{ccccc} \toprule \textbf{classification}&\textbf{font name}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule @@ -878,7 +919,7 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc % %<*ja> \item 以下の6つの和文フォントが定義される: -\begin{center} +\begin{center}\small \begin{tabular}{ccccc} \toprule \textbf{字体}&\textbf{フォント名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule @@ -890,7 +931,7 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc % %<*zh> \item 提前加载了六种日文字体,如下: -\begin{center} +\begin{center}\small \begin{tabular}{ccccc} \toprule \textbf{字体}&\textbf{字体名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule @@ -902,20 +943,6 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc % \begin{itemize} %<*en> -\item The `Q(級)' is a unit used in Japanese phototypesetting, and - $1\,\textrm{Q}=0.25\,\textrm{mm}$. This length is stored in a - dimension \verb+\jQ+. -% -%<*ja> -\item `Q(級)'は日本の写植で用いられる単位で,$1\,\textrm{Q}=0.25\,\textrm{mm}$ - である.この長さは \verb+\jQ+ に保持されている. -% -%<*zh> -\item “Q(级)”是日本照排中使用的尺寸单位,$1 \mathrm{Q} = 0.25\mathrm{mm}$。 -该长度保存在长度\verb!\jQ!中。 -% - -%<*en> \item It is widely accepted that the font `Ryumin-Light' and `GothicBBB-Medium' aren't embedded into PDF files, and PDF reader substitute them by some external Japanese fonts (\textit{e.g.}, @@ -1020,7 +1047,7 @@ When vertical typesetting is supported by \LuaTeX-ja in the future, \texttt{JT3} %<*en> \item Two font families \texttt{mc} and \texttt{gt} are defined: -\begin{center} +\begin{center}\small \begin{tabular}{ccccc} \toprule \textbf{classification}&\textbf{family}&\verb+\mdseries+&\verb+\bfseries+&\textbf{scale}\\\midrule @@ -1035,7 +1062,7 @@ and GothicBBB-Medium) in early years of DTP. % %<*ja> \item 2つのフォントファミリ\texttt{mc}と\texttt{gt}が定義されている: -\begin{center} +\begin{center}\small \begin{tabular}{ccccc} \toprule \textbf{字体}&\textbf{ファミリ}&\verb+\mdseries+&\verb+\bfseries+&\textbf{スケール}\\\midrule @@ -1051,7 +1078,7 @@ Ryumin-Light, GothicBBB-Mediumだった)しか利用できなかった時の % %<*zh> \item 定义了两个字体族:\texttt{mc}!和\texttt{gt}:\\ -\begin{center} +\begin{center}\small \begin{tabular}{ccccc} \hline \textbf{字体}&\textbf{字体族}&\verb!\mdseries!&\verb!\bfseries!&缩放率\\ @@ -1099,161 +1126,35 @@ Okumura), namely, \Pkg{ltjclasses} and \Pkg{ltjsclasses}. (奥村晴彦)的文档类,即\Pkg{ltjclasses}和\Pkg{ltjsclasses}。 % -%<*en> -\paragraph{\texttt{\char92 CID}, \texttt{\char92 UTF} and macros in OTF package} -Under \pLaTeX, \Pkg{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 \Pkg{otf} package. -If you want to use these functions, load \Pkg{luatexja-otf} package. -% -%<*ja> -\paragraph{\texttt{\char92 CID}, \texttt{\char92 UTF}とOTFパッケージのマクロ} -\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために, -齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは -広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の -一部をサポートしている.これらの機能を用いるためには\Pkg{luatexja-otf}パッケージ -を読み込めばよい. -% -%<*zh> -\paragraph{OTF包中的\texttt{\char92CID},\texttt{\char92UTF}及其他宏} -\pLaTeX 下,\underline{\texttt{otf}}宏包(斋藤修三郎开发)是用来排印存在 -于Adobe-Japan1-6但不存在于JIS X 0208中的字符。 -该包已经广泛使用,\LuaTeX-ja支持部分\Pkg{otf}包中的部分功能。 -如果你想使用这些功能,加载\Pkg{luatexja-otf}宏包。 -\bgroup -\fontencoding{JY3}\selectfont -% - -\begin{LTXexample} -森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。 +%\section{Changing Fonts} +%\section{フォントの変更} +%\section{字体更改} -\CID{7652}飾区の\CID{13706}野家, -葛飾区の吉野家 -\end{LTXexample} -%<*zh> -\egroup -% - -%\subsection{Changing Fonts} -%\subsection{フォントの変更} -%\subsection{字体更改} +\subsection{plain \TeX~and~\LaTeXe} \label{ssub-chgfnt} -%<*en> -\paragraph{Remark: Japanese Characters in Math Mode} -Since \pTeX\ supports Japanese characters in math mode, there are -sources like the following: -% -%<*ja> -\paragraph{意見:数式モード中の和文文字} -\pTeX では,特に何もしないでも数式中に和文文字を記述することができた.そのため, -以下のようなソースが見られた: -% -%<*zh> -\paragraph{注记:数学模式下的日文字符} -\pTeX 支持在数学模式下的日文字符,如以下源码: -% - -\begin{LTXexample} -$f_{高温}$~($f_{\text{high temperature}}$). -\[ y=(x-1)^2+2\quad よって\quad y>0 \] -$5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$. -\end{LTXexample} -%<*en> -We (the project members of \LuaTeX-ja) think that using -Japanese characters in math mode are allowed if and only if these are used as identifiers. -In this point of view, -% -%<*ja> -\LuaTeX-jaプロジェクトでは,数式モード中での和文文字はそれらが識別子として用いられる -ときのみ許されると考えている. -この観点から, -% -%<*zh> -我们(\LuaTeX-ja项目成员)认为在数学模式下使用日文字符,只有在这些字符充当标识符时才是正确的。在这点下: -% -\begin{itemize} -%<*en> -\item The lines 1~and~2 above are not correct, since `高温' in above is used as a textual label, and -`よって' is used as a conjunction. -% -%<*ja> -\item 上記数式のうち1, 2行目は正しくない.なぜならば`高温'が意味のあるラベルと - して,`よって'が接続詞として用いられているからである. -% -%<*zh> -\item 第1行和第2行是不正确的,因为“高温”的作用为文本标签,“よって”用作为连词。 -% -%<*en> -\item However, the line~3 is correct, since `素' is used as an identifier. -% -%<*ja> -\item しかしながら,3行目は`素'が識別子として用いられているので正しい. -% -%<*zh> -\item 不过,第3行是正确的,因为“素”是作为标识符的。 -% -\end{itemize} -%<*en> -Hence, in our opinion, the above input should be corrected as: -% -%<*ja> -したがって,\LuaTeX-jaプロジェクトの意見としては,上記の入力は次のように直されるべき -である: -% -%<*zh> -那么,根据我们的观点,上述输入应当校正为: -% -\begin{LTXexample} -$f_{\text{高温}}$~% -($f_{\text{high temperature}}$). -\[ y=(x-1)^2+2\quad - \mathrel{\text{よって}}\quad y>0 \] -$5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$. -\end{LTXexample} -%BUG?: \{\}がなければ「素」がでない.上の段落の「よって」もでてない. -%<*en> -We also believe that using Japanese characters as identifiers is rare, -hence we don't describe how to change Japanese fonts in math mode in -this chapter. For the method, please see Subsection~\ref{ssec-math}. -% -%<*ja> -また\LuaTeX-jaプロジェクトでは,和文文字が識別子として用いられることはほとんどない -と考えており,したがってこの節では数式モード中の和文フォントを変更する方法については -記述しない.この方法については\ref{ssec-math}節を参照のこと. -% -%<*zh> -我们也认为使用日文字符作为标识符的情况极为少见,所以我们不在此章节描述如何在数学模式下改变日文字体。 -关于此方法,请参见\ref{ssec-math}。 -% - -%<*en> \paragraph{plain \TeX} +%<*en> To change Japanese fonts in plain \TeX, you must use the primitive \verb+\jfont+. So please see Subsection~\ref{ssec-jfont}. % %<*ja> -\paragraph{plain \TeX} -plain \TeX で和文フォントを変更するためには,\verb+\jfont+ プリミティブを用いなけれ -ばならない.\ref{ssec-jfont}節を参照. +plain \TeX で和文フォントを変更するためには,\verb+\jfont+ プリミティブを直接用いる. +\ref{ssec-jfont}節を参照. % %<*zh> -\paragraph{plain \TeX} 在plain \TeX 下改变日文字体,你必须使用基本语句\verb!\jfont!。请参见\ref{ssec-jfont}。 % +\paragraph{\LaTeXe\ (NFSS2)} %<*en> -\paragraph{NFSS2} For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (in \texttt{plfonts.dtx}). % %<*ja> -\paragraph{NFSS2} \LaTeXe については,\LuaTeX-jaではフォント選択システムを\pLaTeXe\ (\texttt{plfonts.dtx}) の大部分をそのまま採用している. % %<*zh> -\paragraph{NFSS2} 对于\LaTeXe,\LuaTeX-ja采用了\pLaTeXe 中(即\texttt{plfonts.dtx})大部分字体选择系统。 % \begin{itemize} @@ -1286,7 +1187,7 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ ( % %<*en> -\begin{center} +\begin{center}\small \begin{tabular}{cccccc} \toprule &\textbf{encoding}&\textbf{family}&\textbf{series}&\textbf{shape}&\textbf{selection}\\\midrule @@ -1303,14 +1204,14 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ \end{center} % %<*ja> -\begin{center} +\begin{center}\small \begin{tabular}{cccccc} \toprule &\textbf{エンコーディング}&\textbf{ファミリ}&\textbf{シリーズ}&\textbf{シェープ}&\textbf{選択}\\\midrule -欧文フォント +欧文 &\verb+\romanencoding+&\verb+\romanfamily+&\verb+\romanseries+&\verb+\romanshape+ &\verb+\useroman+\\ -和文フォント +和文 &\verb+\kanjiencoding+&\verb+\kanjifamily+&\verb+\kanjiseries+&\verb+\kanjishape+ &\verb+\usekanji+\\ 両方&---&--&\verb+\fontseries+&\verb+\fontshape+&---\\ @@ -1320,7 +1221,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ \end{center} % %<*zh> -\begin{center} +\begin{center}\small \begin{tabular}{cccccc} \toprule &\textbf{编码}&\textbf{族}&\textbf{系列}&\textbf{形状}&\textbf{选择}\\\midrule @@ -1380,6 +1281,94 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ % \end{itemize} +%<*en> +\paragraph{Remark: Japanese Characters in Math Mode} +Since \pTeX\ supports Japanese characters in math mode, there are +sources like the following: +% +%<*ja> +\paragraph{注意:数式モード中の和文文字} +\pTeX では,特に何もしないでも数式中に和文文字を記述することができた.そのため, +以下のようなソースが見られた: +% +%<*zh> +\paragraph{注记:数学模式下的日文字符} +\pTeX 支持在数学模式下的日文字符,如以下源码: +% + +\begin{LTXexample} +$f_{高温}$~($f_{\text{high temperature}}$). +\[ y=(x-1)^2+2\quad よって\quad y>0 \] +$5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$. +\end{LTXexample} +%<*en> +We (the project members of \LuaTeX-ja) think that using +Japanese characters in math mode are allowed if and only if these are used as identifiers. +In this point of view, +% +%<*ja> +\LuaTeX-jaプロジェクトでは,数式モード中での和文文字はそれらが識別子として用いられる +ときのみ許されると考えている. +この観点から, +% +%<*zh> +我们(\LuaTeX-ja项目成员)认为在数学模式下使用日文字符,只有在这些字符充当标识符时才是正确的。在这点下: +% +\begin{itemize} +%<*en> +\item The lines 1~and~2 above are not correct, since `高温' in above is used as a textual label, and +`よって' is used as a conjunction. +% +%<*ja> +\item 上記数式のうち1, 2行目は正しくない.なぜならば`高温'が意味のあるラベルと + して,`よって'が接続詞として用いられているからである. +% +%<*zh> +\item 第1行和第2行是不正确的,因为“高温”的作用为文本标签,“よって”用作为连词。 +% +%<*en> +\item However, the line~3 is correct, since `素' is used as an identifier. +% +%<*ja> +\item しかしながら,3行目は`素'が識別子として用いられているので正しい. +% +%<*zh> +\item 不过,第3行是正确的,因为“素”是作为标识符的。 +% +\end{itemize} +%<*en> +Hence, in our opinion, the above input should be corrected as: +% +%<*ja> +したがって,\LuaTeX-jaプロジェクトの意見としては,上記の入力は次のように直されるべき +である: +% +%<*zh> +那么,根据我们的观点,上述输入应当校正为: +% +\begin{LTXexample} +$f_{\text{高温}}$~% +($f_{\text{high temperature}}$). +\[ y=(x-1)^2+2\quad + \mathrel{\text{よって}}\quad y>0 \] +$5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$. +\end{LTXexample} +%BUG?: \{\}がなければ「素」がでない.上の段落の「よって」もでてない. +%<*en> +We also believe that using Japanese characters as identifiers is rare, +hence we don't describe how to change Japanese fonts in math mode in +this chapter. For the method, please see Subsection~\ref{ssec-math}. +% +%<*ja> +また\LuaTeX-jaプロジェクトでは,和文文字が識別子として用いられることはほとんどない +と考えており,したがってこの節では数式モード中の和文フォントを変更する方法については +記述しない.この方法については\ref{ssec-math}節を参照のこと. +% +%<*zh> +我们也认为使用日文字符作为标识符的情况极为少见,所以我们不在此章节描述如何在数学模式下改变日文字体。 +关于此方法,请参见\ref{ssec-math}。 +% + \subsection{fontspec} \label{ssec-fontspec} %<*en> @@ -1403,87 +1392,481 @@ In \Pkg{luatexja-fontspec} package, the following 7~commands are defined as counterparts of original commands in the \Pkg{fontspec} package: % %<*ja> -\Pkg{luatexja-fontspec}パッケージでは,以下の7つのコマンドを\Pkg{fontspec} -パッケージの元のコマンドに対応するものとして定義している: +\Pkg{luatexja-fontspec}パッケージでは,以下の7つのコマンドを\Pkg{fontspec} +パッケージの元のコマンドに対応するものとして定義している: +% +%<*zh> +在\Pkg{luatexja-fontspec}中,定义了如下七条命令,这些命令和\Pkg{fontspec}的相关命令对比如下: +% +%<*en> +\begin{center}\small +\begin{tabular}{ccccc} +\toprule +Japanese fonts +&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ +alphabetic fonts +&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +\midrule +Japanese fonts +&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+\\ +alphabetic fonts +&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+\\ +\bottomrule +\end{tabular} +\end{center} +% +%<*ja> +\begin{center}\small +\begin{tabular}{cccc} +\toprule +和文 +&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+\\ +欧文 +&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+\\ +\midrule +和文 +&\verb+\newjfontfamily+&\verb+\newjfontface+&\verb+\defaultjfontfeatures+\\ +欧文 +&\verb+\newfontfamily+&\verb+\newfontface+&\verb+\defaultfontfeatures+\\ +\midrule +和文 +&\verb+\addjfontfeatures+\\ +欧文 +&\verb+\addfontfeatures+\\ +\bottomrule +\end{tabular} +\end{center} +% +%<*zh> +\begin{center}\small +\begin{tabular}{ccccc} +\toprule +日文字体&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ +西文字体&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +\midrule +日文字体&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+&\\ +西文字体&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+&\\ +\bottomrule +\end{tabular} +\end{center} +% + +\begin{LTXexample} +\fontspec[Numbers=OldStyle]{LMSans10-Regular} +\jfontspec{IPAexMincho} +JIS~X~0213:2004→辻 + +\addjfontfeatures{CJKShape=JIS1990} +JIS~X~0208:1990→辻 +\end{LTXexample} + +%<*en> +Note that there is no command named \verb+\setmonojfont+, since it is +popular for Japanese fonts that nearly all Japanese glyphs have same +widths. Also note that the kerning feature is set off by default in +these 7~commands, since this feature and \textbf{JAglue} will clash (see +\ref{para-kern}). +% +%<*ja> +和文フォントについては全ての和文文字のグリフがほぼ等幅であるのが普通であるため, +\verb+\setmonojfont+ コマンドは存在しないことに注意.また,これらの和文用の7つのコマ +ンドではKerning featureはデフォルトではoffとなっている.これはこの +featureが\textbf{JAglue}と衝突するためである(\ref{para-kern}節を参照). +% +%<*zh> +请注意并没有\verb!\setmonofont!命令,因为流行的日文字体几乎全部是等宽的。 +另注意,出格特性在这7个命令中默认关闭,因为此特性会与\textbf{JAglue}冲突(参见\ref{para-kern})。 +% + +%\subsection{Preset} +%\subsection{プリセット設定} +\label{ssec-preset} + +%<*en> +To use standard Japanese font settings easily, one can load \Pkg{luatexja-preset} +package with several options. This package provides functions in a part of +\Pkg{otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato, +and loads \Pkg{luatexja-fontspec} internally. +% +%<*ja> +よく使われている和文フォント設定を一行で指定できるようにしたのが +\Pkg{luatexja-preset}パッケージである.このパッケージは, +\Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを +合わせたような格好をしており,内部で\Pkg{luatexja-fontspec}を読み込んでいる. +% + +%\paragraph{General options} +%\paragraph{一般的なオプション} +\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} +\item[deluxe] +%<*en> +Specifying this option enables us to use \textit{mincho} with two weights (medium~and~bold), +\textit{gothic} with three weights (medium,~bold and~heavy), and \textit{rounded gothic}% +\footnote{Provided by \texttt{\char92mgfamily}, +because \textit{rounded gothic} is called \textit{maru gothic} (丸ゴシック) in Japanese.}. +The heavy weight of \textit{gothic} can be used by ``changing the family'' \verb+\gtebfamily+. +This is because \Pkg{fontspec} package can handle only medium (\verb+\mdseries+) and +bold (\verb+\bfseries+). +% +%<*ja> +明朝体2ウェイト・ゴシック体3ウェイトと, +丸ゴシック体 (\verb+\mgfamily+) を使用可能とする. +ゴシック体は細字・太字・極太の3ウェイトがあるが,極太ゴシック体はファミリの切り替え (\verb+\gtebfamily+) % +で実現している.\Pkg{fontspec}では通常 (\verb+\mdseries+) と太字 (\verb+\bfseries+) しか扱えないために +このような中途半端な実装になっている. +% +\item[expert] +%<*en> +Use horizontal kana alternates, and define a control sequence \verb+\rubyfamily+ to use kana +characters designed for ruby. +% +%<*ja> +横組専用仮名を用いる.また,\verb+\rubyfamily+ でルビ用仮名が使用可能となる. +% +\item[bold] +%<*en> +Use bold gothic as bold mincho. +% +%<*ja> +明朝の太字をゴシック体の太字とする. +% +\item[90jis] +%<*en> +Use 90JIS glyphs if possible. +% +%<*ja> +出来る限り90JISの字形を使う. +% +\item[jis2004] +%<*en> +Use JIS2004 glyphs if possible. +% +%<*ja> +出来る限りJIS2004の字形を使う. +% +\item[jis] +%<*en> +Use the JFM \texttt{jfm-jis.lua}, instead of the default JFM of +\LuaTeX-ja, \texttt{jfm-ujis.lua}. +% +%<*ja> +用いるJFMを\texttt{jfm-jis.lua}とする.このオプションがない時は +\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる. +% +\end{list} + +%\paragraph{Kozuka fonts} +%\paragraph{小塚フォント} +%<*en> +When using single weight, we adopt Kozuka~Gothic~M as \textit{gothic}, +because we think that Kozuka~Gothic~R looks thin. +There is not `Kozuka Maru Gothic', therefore Kozuka~Gothic~H is used +as a substitute for \textit{rounded gothic}. +% +%<*ja> +まず,小塚フォントを用いる設定を述べる. +単ウェイト時のゴシック体は小塚ゴシックRでは細いように感じるので, +小塚ゴシックMに変更している. +さらに,丸ゴシック体はないので便宜上小塚ゴシックHで代用している. +% +\begin{center}\small +\begin{tabular}{llll} +\toprule +&\tt kozuka4&\tt kozuka6&\tt kozuka6n\\ +\midrule +%<*en> +\bf mincho medium&Kozuka Mincho Pro R&Kozuka Mincho ProVI R&Kozuka Mincho Pr6N R\\ +\bf mincho bold&Kozuka Mincho Pro B&Kozuka Mincho ProVI B&Kozuka Mincho Pr6N B\\ +\midrule +\bf gothic medium\\ + without \texttt{deluxe} +&Kozuka Gothic Pro M&Kozuka Gothic ProVI M&Kozuka Gothic Pr6N M\\ + multiple weights +&Kozuka Gothic Pro R&Kozuka Gothic ProVI R&Kozuka Gothic Pr6N R\\ +\midrule +\bf gothic bold +&Kozuka Gothic Pro B&Kozuka Gothic ProVI B&Kozuka Gothic Pr6N B\\ +\bf gothic heavy +&Kozuka Gothic Pro H&Kozuka Gothic ProVI H&Kozuka Gothic Pr6N H\\ +(rounded gothic) +&Kozuka Gothic Pro H&Kozuka Gothic ProVI H&Kozuka Gothic Pr6N H\\ +% +%<*ja> +\gt 明朝体細字&小塚明朝Pro~R&小塚明朝ProVI~R&小塚明朝Pr6N~R\\ +\gt 明朝体太字&小塚明朝Pro~B&小塚明朝ProVI~B&小塚明朝Pr6N~B\\ +\midrule +\gt ゴシック体細字\\ + 単ウェイト時 +&小塚ゴシックPro~M&小塚ゴシックProVI~M&小塚ゴシックPr6N~M\\ + 多ウェイト時 +&小塚ゴシックPro~R&小塚ゴシックProVI~R&小塚ゴシックPr6N~R\\ +\midrule +\gt ゴシック体太字 +&小塚ゴシックPro~B&小塚ゴシックProVI~B&小塚ゴシックPr6N~B\\ +\gt ゴシック体極太 +&小塚ゴシックPro~H&小塚ゴシックProVI~H&小塚ゴシックPr6N~H\\ +\inhibitglue(丸ゴシック体)\inhibitglue +&小塚ゴシックPro~H&小塚ゴシックProVI~H&小塚ゴシックPr6N~H\\ +% +\bottomrule +\end{tabular} +\end{center} + +%\paragraph{Hiragino and Morisawa} +%\paragraph{ヒラギノ・モリサワ} +%<*en> +Settings for Hiragino fonts: +% +%<*ja> +モリサワ・ヒラギノ用の設定はそのようなことは行っていない. +まずヒラギノフォントから: +% +% これらは持っているわけではないので,フォント名が +% 異なっているかもしれません.確認お願いします. +\begin{center}\small +\begin{tabular}{lll} +\toprule +&\tt hiragino&\tt hiraginon\\ +\midrule +%<*en> +\bf mincho medium& +Hiragino Mincho Pro W3&Hiragino Mincho Pr6N W3\\ +\bf mincho bold& +Hiragino Mincho Pro W6&Hiragino Mincho Pr6N W6\\ +\bf gothic medium& +Hiragino Kaku Gothic Pro W3&Hiragino Kaku Gothic ProN W3\\ +\bf gothic bold& +Hiragino Kaku Gothic Pro W6&Hiragino Kaku Gothic ProN W6\\ +\bf gothic heavy& +Hiragino Kaku Gothic Std W8&Hiragino Kaku Gothic StdN W8\\ +\bf rounded gothic& +Hiragino Maru Gothic Pro W4&Hiragino Maru Gothic ProN W4\\ +% +%<*ja> +\gt 明朝体細字& +ヒラギノ明朝体Pro~W3&ヒラギノ明朝体Pr6N~W3\\ +\gt 明朝体太字& +ヒラギノ明朝体Pro~W6&ヒラギノ明朝体Pr6N~W6\\ +\gt ゴシック体細字& +ヒラギノ角ゴPro~W3&ヒラギノ角ゴProN~W3\\ +\gt ゴシック体太字& +ヒラギノ角ゴPro~W6&ヒラギノ角ゴProN~W6\\ +\gt ゴシック体極太& +ヒラギノ角ゴStd~W8&ヒラギノ角ゴStdN~W8\\ +\gt 丸ゴシック体& +ヒラギノ丸ゴPro~W4&ヒラギノ丸ゴProN~W4\\ +% +\bottomrule +\end{tabular} +\end{center} +%<*en> +Settings for Morisawa fonts: +% +%<*ja> +次はモリサワフォントを用いる設定である: % -%<*zh> -在\Pkg{luatexja-fontspec}中,定义了如下七条命令,这些命令和\Pkg{fontspec}的相关命令对比如下: -% -%<*en> -\begin{center} -\begin{tabular}{ccccc} +\begin{center}\small +\begin{tabular}{lll} \toprule -Japanese fonts -&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ -alphabetic fonts -&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +&\tt morisawa4&\tt morisawa6n\\ \midrule -Japanese fonts -&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+\\ -alphabetic fonts -&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+\\ +%<*en> +\bf mincho medium& +Ryumin Pro L-KL&Ryumin Pr6N L-KL\\ +\bf mincho bold& +Futo Min A101 Pro Bold&Futo Min A101 Pr6N Bold\\ +\bf gothic medium& +Chu Gothic BBB Pro Med&Chu Gothic BBB Pr6N Med\\ +\bf gothic bold& +Futo Go B101 Pro Bold&Futo Go B101 Pr6N Bold\\ +\bf gothic heavy& +Midashi Go Pro MB31&Midashi Go Pr6N MB31\\ +\bf rounded gothic& +Jun Pro 101&Jun Pr6N 101\\ +% +%<*ja> +\gt 明朝体細字& +リュウミンPro~L-KL&リュウミンPr6N~L-KL\\ +\gt 明朝体太字& +太ミンA101~Pro~Bold&太ミンA101~Pr6N~Bold\\ +\gt ゴシック体細字& +中ゴシックBBB~Pro~Med&中ゴシックBBB~Pr6N~Med\\ +\gt ゴシック体太字& +太ゴB101~Pro~Bold&太ゴB101~Pr6N~Bold\\ +\gt ゴシック体極太& +見出ゴPro~MB31&見出ゴPr6N~MB31\\ +\gt 丸ゴシック体& +じゅんPro 101&じゅんPr6N 101\\ +% \bottomrule \end{tabular} \end{center} + +%\paragraph{Settings for single weight} +%\paragraph{単ウェイト用設定} +%<*en> +Next, we describe settings for using only single weight. +In four settings below, we use same fonts for medium and bold (and heavy) weights. +(Hence \verb+\mcfamily\bfseries+ and \verb+\mcfamily\mdseries+ yields same Japanese fonts, +if \texttt{deluxe} option is also specified). % %<*ja> -\begin{center} -\begin{tabular}{ccccc} +次に,単ウェイト用の設定を述べる.この4設定では「細字」「太字」の区別はない. +また,丸ゴシック体はゴシック体と同じフォントを用いる. +% +\begin{center}\small +\begin{tabular}{lllll} \toprule -和文フォント -&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ -欧文フォント -&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\ \midrule -和文フォント -&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+\\ -欧文フォント -&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+\\ +%<*en> +\bf mincho&Ryumin-Light (non-embedded) +&IPAMincho&IPAexMincho&MS Mincho\\ +\bf gothic&GothicBBB-Medium (non-embedded) +&IPAGothic&IPAexGothic&MS Gothic\\ +% +%<*ja> +\gt 明朝体&Ryumin-Light(非埋込) +&IPA明朝&IPAex明朝&MS明朝\\ +\gt ゴシック体&GothicBBB-Medium(非埋込) +&IPAゴシック&IPAexゴシック&MSゴシック\\ +% \bottomrule \end{tabular} \end{center} + +%\paragraph{Using HG fonts} +%\paragraph{HGフォントの利用} +%<*en> +We can use HG~fonts bundled with Microsoft Office for realizing multiple weights in Japanese fonts. +% +%<*ja> +すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って +多ウェイト化した設定もある. % -%<*zh> -\begin{center} -\begin{tabular}{ccccc} +\begin{center}\small +\begin{tabular}{llll} \toprule -日文字体&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ -西文字体&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +&\tt ipa-dx&\tt ipaex-dx&\tt ms-dx\\ \midrule -日文字体&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+&\\ -西文字体&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+&\\ +%<*en> +\bf mincho medium +&IPAMincho&IPAexMincho&MS Mincho\\\midrule +\bf mincho bold& +\multicolumn{3}{c}{HG Mincho E}\\\midrule +\bf Gothic medium\\ +~~without \texttt{deluxe} +&IPAGothic&IPAexGothic&MS Gothic\\ +~~with {\tt jis2004} +&IPAGothic&IPAexGothic&MS Gothic\\ +\cmidrule(lr){1-4} +~~otherwise& +\multicolumn{3}{c}{HG Gothic M}\\\midrule +\bf gothic bold& +\multicolumn{3}{c}{HG Gothic E}\\\midrule +\bf gothic heavy& +\multicolumn{3}{c}{HG Soei Kaku Gothic UB}\\\midrule +\bf rounded gothic& +\multicolumn{3}{c}{HG Maru Gothic PRO}\\ +% +%<*ja> +\gt 明朝体細字 +&IPA明朝&IPAex明朝&MS明朝\\\midrule +\gt 明朝体太字& +\multicolumn{3}{c}{HG明朝E}\\\midrule +\gt ゴシック体細字\\ + 単ウェイト時 +&IPAゴシック&IPAexゴシック&MSゴシック\\ + {\tt jis2004}指定時 +&IPAゴシック&IPAexゴシック&MSゴシック\\ +\cmidrule(lr){1-4} + それ以外の時& +\multicolumn{3}{c}{HGゴシックM}\\\midrule +\gt ゴシック体太字& +\multicolumn{3}{c}{HGゴシックE}\\\midrule +\gt ゴシック体極太& +\multicolumn{3}{c}{HG創英角ゴシックUB}\\\midrule +\gt 丸ゴシック体& +\multicolumn{3}{c}{HG丸ゴシック体PRO}\\ +% \bottomrule \end{tabular} \end{center} -% - -\begin{LTXexample} -\fontspec[Numbers=OldStyle]{TeX Gyre Termes} -\jfontspec{IPAexMincho} -JIS~X~0213:2004→辻 +%<*en> +Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB and HG Maru Gothic PRO +are internally specified by: +\begin{description} +\item[default] by font name (\texttt{HGMinchoE}, etc.). +\item[{\tt 90jis}] by filename (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}). +\item[{\tt jis2004}] by filename (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}). +\end{description} +% +%<*ja> +なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で +\begin{description} +\item[標準] フォント名(\texttt{HGMinchoE} など) +\item[{\tt 90jis}指定時] ファイル名 (% +\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}) +\item[{\tt jis2004}指定時] ファイル名 (% +\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}) +\end{description} +として指定を行っているので注意すること. +% -\addjfontfeatures{CJKShape=JIS1990} -JIS~X~0208:1990→辻 -\end{LTXexample} %<*en> -Note that there is no command named \verb+\setmonojfont+, since it is -popular for Japanese fonts that nearly all Japanese glyphs have same -widths. Also note that the kerning feature is set off by default in -these 7~commands, since this feature and \textbf{JAglue} will clash (see -\ref{para-kern}). +\subsection{\texttt{\char92 CID}, \texttt{\char92 UTF} and macros in \Pkg{otf} package} +Under \pLaTeX, \Pkg{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 \Pkg{otf} package. +If you want to use these functions, load \Pkg{luatexja-otf} package. % %<*ja> -和文フォントについては全ての和文文字のグリフがほぼ等幅であるのが普通であるため, -\verb+\setmonojfont+ コマンドは存在しないことに注意.また,これらの和文用の7つのコマ -ンドではKerning featureはデフォルトではoffとなっている.これはこの -featureが\textbf{JAglue}と衝突するためである(\ref{para-kern}節を参照). +\subsection{\texttt{\char92 CID}, \texttt{\char92 UTF}と\Pkg{otf}パッケージのマクロ} +\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために, +齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは +広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の +一部をサポートしている.これらの機能を用いるためには\Pkg{luatexja-otf}パッケージ +を読み込めばよい. % %<*zh> -请注意并没有\verb!\setmonofont!命令,因为流行的日文字体几乎全部是等宽的。 -另注意,出格特性在这7个命令中默认关闭,因为此特性会与\textbf{JAglue}冲突(参见\ref{para-kern})。 +\subsection{\Pkg{otf}包中的\texttt{\char92CID},\texttt{\char92UTF}及其他宏} +\pLaTeX 下,\underline{\texttt{otf}}宏包(斋藤修三郎开发)是用来排印存在 +于Adobe-Japan1-6但不存在于JIS X 0208中的字符。 +该包已经广泛使用,\LuaTeX-ja支持部分\Pkg{otf}包中的部分功能。 +如果你想使用这些功能,加载\Pkg{luatexja-otf}宏包。 +\bgroup +\fontencoding{JY3}\selectfont +% + +\begin{LTXexample} +森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。 + +\CID{7652}飾区の\CID{13706}野家, +葛飾区の吉野家 +\end{LTXexample} +%<*zh> +\egroup % +%<*ja> +\Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した: +\begin{description} +\item[\texttt{deluxe}] 明朝体・ゴシック体各2ウェイトと,丸ゴシック体を扱えるようになる. +\item[\texttt{expert}] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も扱えるようになる. +\item[\texttt{bold}] ゴシック体を標準で太いウェイトのものに設定する. +\end{description} +しかしこれらのオプションは\Pkg{luatexja-otf}パッケージには存在しない. +\Pkg{otf}パッケージが文書中で使用する和文用TFMを自前の物に置き換えていたのに対し, +\Pkg{luatexja-otf}パッケージでは,そのようなことは行わないからである. + +これら3オプションについては, +\Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか, +あるいは対応する内容を\ref{ssub-chgfnt}節 (NFSS2) や +\ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある. +% + %\section{Changing Parameters} %\section{パラメータの変更} %\section{变量更改} @@ -1509,7 +1892,7 @@ parameters, you have to use commands \verb+\ltjsetparameter+ and %\subsection{Editing the range of \textbf{JAchar}s} %\subsection{\textbf{JAchar}の範囲の設定} %\subsection{\textbf{JAchar}范围设定} - +\label{ssec-setrange} %<*en> To edit the range of \textbf{JAchar}s, you have to assign a non-zero @@ -1632,13 +2015,13 @@ determined from the following data: \item 在CID Adobe-Japan1-6和Unicode之间的映射\texttt{Adobe-Japan1-UCS2}。 % %<*en> -\item The \texttt{PXbase} bundle for \upTeX\ by Takayuki Yato. +\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato. % %<*ja> -\item 八登崇之氏による\upTeX 用の\texttt{PXbase}バンドル. +\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル. % %<*zh> -\item 八登崇之的\texttt{PXbase}宏包(\upTeX 下使用)。 +\item 八登崇之的\Pkg{PXbase}宏包(\upTeX 下使用)。 % \end{itemize} @@ -1777,7 +2160,7 @@ This range consist of the following Unicode ranges, \emph{except characters in t % %<*zh> \item \texttt{U+0370}--\texttt{U+03FF}: 希腊字母 -\item \texttt{U+0400}--\texttt{U+04FF}: 西里尔字母 +\item \texttt{U+0400}--\texttt{U+04FF}: 西里尔字母 \item \texttt{U+1F00}--\texttt{U+1FFF}: 希腊文扩充 % \\\ @@ -2141,7 +2524,7 @@ JFMは「望ましい\Param{kanjiskip}の値」や「望ましい\Param{xkanjisk % %\subsection{Insertion Setting of \Param{xkanjiskip}} -%\subsection{\Param{xkanjiskip} の設定の挿入} +%\subsection{\Param{xkanjiskip} の挿入設定} %\subsection{\Param{xkanjiskip}插入设定} %<*en> @@ -2301,66 +2684,13 @@ xyz漢字 \end{LTXexample} -%\subsection{Cropmark} -%\subsection{トンボ} -%\subsection{裁剪框标记} - -%<*en> -Cropmark is a mark for indicating 4~corners and horizontal/vertical -center of the paper. In Japanese, we call cropmark as tombo(w). -\pLaTeX\ and this \LuaTeX-ja support `tombow' by their kernel. -The following steps are needed to typeset cropmark: -% -%<*ja> -トンボは用紙の四つ角と水平/垂直方向の中心を表す印である. -\pLaTeX と \LuaTeX-jaではトンボの出力をサポートしている. -トンボを出力するためには以下の手順が必要である: -% -%<*zh> -裁剪框标记是在一页的四角和水平/垂直中央放置的标记。在日文中,裁剪框被称为“トンボ”。 -\pLaTeX 和\LuaTeX-ja均在底层支持裁剪框标记。需要下列步骤来实现: -% - -\begin{enumerate} -%<*en> -\item First, define the banner which will be printed at the upper left - of the paper. This is done by assigning a token list to - \verb+\@bannertoken+. - -For example, the following sets banner as `\texttt{filename (YYYY-MM-DD hh:mm)}': -% -%<*ja> -\item まず,用紙の左上に印刷されるバナーを定義する.これは \verb+\@bannertoken+ - にトークンリストを与えることでなされる. - -例えば,以下はバナーとして`\texttt{filename (YYYY-MM-DD hh:mm)}'を設定する: -% -%<*zh> -\item 首先,首先定义页面左上角将会出现的注记。这由向\verb!@bannertoken!分配一个token列完成。\\ -例如,下列所示将会设定注记为“\textsf{filename (YYYY-MM-DD hh:mm)}”: -% - -\begin{verbatim} -\makeatletter - -\hour\time \divide\hour by 60 \@tempcnta\hour \multiply\@tempcnta 60\relax -\minute\time \advance\minute-\@tempcnta -\@bannertoken{% - \jobname\space(\number\year-\two@digits\month-\two@digits\day - \space\two@digits\hour:\two@digits\minute)}% -\end{verbatim} - -\item ... -\end{enumerate} - - %\part{Reference} %\part{リファレンス} %\part{参考指南} \label{part-ref} %\section{Font Metric and Japanese Font} %\section{フォントメトリックと和文フォント} -%\section{字体测度和日文字体} +%\section{字体测度和日文字体} %\subsection{\texttt{\char92jfont} primitive} %\subsection{\texttt{\char92jfont}プリミティブ} %\subsection{\texttt{\char92jfont}基本语句} @@ -2456,7 +2786,7 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま % %<*ja> \item[\tt jfm-ujis.lua] \LuaTeX-jaの標準JFMである.このJFMは\upTeX で - 用いられるUTF/OTFパッケージ用のメトリックである \verb+upnmlminr-h.tfm+ を + 用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-h.tfm+ を 元にしている.\Pkg{luatexja-otf}パッケージを使うときはこのJFMを指定するべきである. % %<*zh> @@ -2490,7 +2820,7 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま shown in Table~\ref{tab-difjfm}. % %<*ja> -\item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文フォントメトリック +\item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文用TFM である \verb+min10.tfm+ に相当するJFMである.このJFMと他の2つのJFMの間には 表\ref{tab-difjfm}に示すような特筆すべき違いがある. % @@ -2509,7 +2839,7 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま %\caption{\LuaTeX-ja下不同JFM表现} \label{tab-difjfm} \ltjsetparameter{jacharrange={+3}} -\begin{center} +\begin{center}\small \def\r#1{{\jfont\g=psft:Ryumin-Light:jfm=#1 at 14.43324pt \g \setbox0=\vtop{\hsize=7\zw\noindent ◆◆◆◆◆◆◆ ある日モモちゃんがお使いで迷子になって泣きました.}\copy0 @@ -2804,6 +3134,7 @@ Like the \Param{kanjiskip} field, this field specifies the `ideal' \end{list} %<*en> +\paragraph{Character classes} Besides from above fields, a JFM file have several sub-tables those indices are natural numbers. The table indexed by~$i\in\omega$ stores information of `character class'~$i$. At least, the character class~0 is @@ -2812,6 +3143,7 @@ always present, so each JFM file must have a sub-table whose index is the following fields: % %<*ja> +\paragraph{文字クラス} 上記のフィールドに加えて,JFMファイルはそのインデックスが自然数であるいくつかの サブテーブルを持つ.インデックスが$i\in\omega$であるテーブルは「文字クラス」$i$の 情報を格納する.少なくとも,文字クラス0は常に存在するので,JFMファイルはインデックス @@ -2819,6 +3151,7 @@ the following fields: (そのインデックスを$i$で表わす)は以下のフィールドを持つ: % %<*zh> +\paragraph{Character classes} 除了上面涉及到的内容,JFM文件中还有几个以自然数进行声明的次级表。 这些表依靠满足$i\in\omega$的“字符类”$i$来索引。 一般,最少需要的是字符类0,故每一个JFM文件必须有次级表索引为\texttt{[0]}。 @@ -2832,22 +3165,28 @@ the following fields: %<*en> This field is a list of characters which are in this character - type~$i$. This field is not required if $i=0$, since all - \textbf{JAchar} which are not in any character class other + type~$i$. This field is optional if $i=0$, since all + \textbf{JAchar} which do not belong any character classes other than 0 are in the character class 0 (hence, the character class~0 contains most of - \textbf{JAchar}s). In the list, a character can be - specified by its code number, or by the character itself - (as a string of length~1). Moreover, there are `imaginary - characters' which specified in the list. We will describe these later. + \textbf{JAchar}s). In the list, character(s) can be specified in the following form: +\begin{itemize} +\item a Unicode code point +\item the character itself (as a Lua string, like \verb+'あ'+) +\item a string like \verb+'あ*'+ (the character followed by an asterisk) +\item several ``imaginary'' characters (We will describe these later.) +\end{itemize} % %<*ja> このフィールドは文字クラス$i$に属する文字のリストである.このフィールドは$i=0$の -場合には必須ではない.なぜならば,文字クラス0には,0以外の文字クラスに属するものを -除いた全ての\textbf{JAchar}が属するからである(よって,文字クラス0はほとんどの -\textbf{JAchar}を含む).このリストでは,文字はその文字コードを用いて,もしくは -文字それ自体(長さ1の文字列)によって指定される.さらに,このリストで指定される -「仮想的な文字」も存在する.これらについては後に記す. +場合には任意である(文字クラス0には,0以外の文字クラスに属するものを +除いた全ての\textbf{JAchar}が属するから).このリスト中で文字を指定するには,以下の方法がある: +\begin{itemize} +\item Unicode におけるコード番号 +\item 「\verb+'あ'+」のような,文字それ自体 +\item 「\verb+'あ*'+」のような,文字それ自体の後にアスタリスクをつけたもの +\item いくつかの「仮想的な文字」(後に説明する) +\end{itemize} % %<*zh> 这部分为字符集$i$的字符列表。当$i=0$时不需要设定此部分,因为不在字符集0种的\textbf{JAchar} @@ -3029,7 +3368,9 @@ Furthermore, the glyph is shifted according to values of fields % \end{itemize} \end{minipage} -\caption{ +\medskip + +\caption{% %The position of the `real' glyph. %「実際の」グリフの位置. %“真实”字形位置 @@ -3037,12 +3378,71 @@ Furthermore, the glyph is shifted according to values of fields \label{fig-pos} \end{figure} - \item[kern={\{[$j$]=, ...\}}] \item[glue={\{[$j$]=\{, , \}, ...\}}] \end{list} +%<*ja> +\paragraph{文字クラスの決定} +文字クラスの決定は少々複雑である.ここでは例を用いて説明しよう. + + +たとえば,次の内容を一部に含んだ \texttt{jfm-test.lua} を考えよう: +\begin{lstlisting} + [0] = { + chars = { '漢', 'ヒ*' }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.0, + }, + [2000] = { + chars = { '。', '、*', 'ヒ' }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.0, + }, +\end{lstlisting} +句点「。」の幅は二分であるので +\begin{LTXexample} +\jfont\a=psft:Ryumin-Light:jfm=test;+vert +\setbox0\hbox{\a 。\inhibitglue 漢} +\the\wd0 +\end{LTXexample} +では,全角二分(15.0\,pt)とならなければおかしいが,上の実行結果では20\,ptとなっている. +それは以下の事情によるものである: +\begin{enumerate} +\item \verb+vert+ featureによって句点が縦書き用のグリフと置き換わる(\Pkg{luaotfload} による処理). +\item しかしこのグリフは「文字コード」U+F0000以降とみなされている +(実際にいくらになるかは,フォントによって異なる). +\item よって,文字クラス0とみなされるため,結果として「。」の幅は全角だと認識されてしまう. +\end{enumerate} + +一方,「\texttt{'、*'}」のようにアスタリスクつきの指定があると, +状況は異なってくる. +\begin{LTXexample} +\jfont\a=psft:Ryumin-Light:jfm=test;+vert +\a 漢、\inhibitglue 漢 +\end{LTXexample} +ここで,読点「、」の文字クラスは,以下のようにして決まる. +\begin{enumerate} +\item とりあえず句点の時と同じように,\Pkg{luaotfload} によって縦書き用読点のグリフに置き換わる. +\item 置換後のグリフの「文字コード」はU+F0000以降であり, +そのままでは文字クラスは0と判定される. +\item ところが,JFMには「\texttt{'、*'}」指定があるので,置換前の横書き用読点のグリフ「、」(文字コードはU+3001)によって文字クラスを判定する. +\item 結果として,上の出力例中の読点の文字クラスは2000となる. +\end{enumerate} + +なお,置換後のグリフで判定した文字クラスの値が0でなければ,そちらをそのまま作用する. +\begin{LTXexample} +\jfont\a=psft:Ryumin-Light:jfm=test;+hwid +\a 漢ヒひ +\end{LTXexample} +上の例では, +\texttt{hwid} featureにより,「ヒ」が半角の「ヒ」に置き換わるが, +文字クラスは「ヒ」の属する0\textbf{ではなく},「ヒ」の属する2000となる. +% + +%\paragraph{仮想的な文字} +%\paragraph{Imaginary characters} %<*en> As described before, you can specify several `imaginary characters' in \texttt{chars} field. The most of these characters are regarded as the @@ -3094,8 +3494,8 @@ The following is the list of `imaginary characters': \end{list} %\paragraph{Porting JFM from \pTeX} -%\paragraph{\pTeX 用和文フォントメトリックの移植} -%\paragraph{\pTeX 下使用的JFM移植} +%\paragraph{\pTeX 用和文用TFMの移植} +%\paragraph{\pTeX 下使用的TFM移植} % ToDo: English version. @@ -3104,7 +3504,7 @@ The following is the list of `imaginary characters': % %<*ja> -以下に,\pTeX 用和文フォントメトリックを\LuaTeX-ja用に移植する場合の注意点を挙げておく. +以下に,\pTeX 用に作られた和文用TFMを\LuaTeX-ja用に移植する場合の注意点を挙げておく. \begin{itemize} \item 実際に出力される和文フォントのサイズがdesign sizeとなる. このため,例えば$1\,\textrm{zw}$がdesign sizeの0.962216倍であるJISフォン @@ -3194,17 +3594,18 @@ you can set both \verb+\fam+ and \verb+\jfam+ to the same value. %\caption{和文数式フォントに対するプリミティブ.} %\caption{日语数学字体基本语句} \label{tab-math} -\begin{center}\def\{{\char`\{}\def\}{\char`\}} -\begin{tabular}{lll} +\begin{center} +\def\{{\char`\{}\def\}{\char`\}}\small +\begin{tabular}{ll} \toprule -%&Japanese fonts&alphabetic fonts\\ -%&和文フォント&欧文フォント\\ -%&日文字体&西文字体\\ +%\bf Japanese fonts&\bf alphabetic fonts\\ +%\bf 和文フォント&\bf 欧文フォント\\ +%\bf 日文字体&\bf 西文字体\\ \midrule -font family&\verb+\jfam+${}\in [0,256)$&\verb+\fam+\\ -text size&\tt\Param{jatextfont}\,=\{,\}&\tt\verb+\textfont+=\\ -script size&\tt\Param{jascriptfont}\,=\{,\}&\tt\verb+\scriptfont+=\\ -scriptscript size&\tt\Param{jascriptscriptfont}\,=\{,\}&\tt\verb+\scriptscriptfont+=\\ +\verb+\jfam+${}\in [0,256)$&\verb+\fam+\\ +\tt\Param{jatextfont}\,=\{,\}&\tt\verb+\textfont+=\\ +\tt\Param{jascriptfont}\,=\{,\}&\tt\verb+\scriptfont+=\\ +\tt\Param{jascriptscriptfont}\,=\{,\}&\tt\verb+\scriptscriptfont+=\\ \bottomrule \end{tabular} \end{center} @@ -3256,13 +3657,11 @@ this argument has \texttt{chars} field which contains character codes %<*en> An example of this callback is the \texttt{ltjarticle} class, with forcefully assigning character class~0 to \texttt{'parbdd'} - in the JFM \texttt{jfm-min.lua}. This callback doesn't - replace any code of \LuaTeX-ja. + in the JFM \texttt{jfm-min.lua}. % %<*ja> このコールバックの使用例は\texttt{ltjarticle}クラスにあり, \texttt{jfm-min.lua}中の\texttt{'parbdd'}を強制的にクラス0に割り当てている. -このコールバックは\LuaTeX-jaのコードを書き換えない. % %\item[\texttt{luatexja.define\_font} callback] @@ -3289,18 +3688,38 @@ end You may assume that \verb+jfont_info+ has the following fields: % %<*ja> -\verb+jfont_info+ は以下のフィールドを持つ: +\verb+jfont_info+ は以下の2フィールドを持つ: % \begin{description} -\item[\tt jfm] -%The index number of JFM. -%JFMのインデックス番号. -%JFM索引编号。 - -\item[\tt size] -%Font size in a scaled point (${}=2^{-16}\,\textrm{pt}$). -%スケールド・ポイント(${}=2^{-16}\,\textrm{pt}$)を単位としたフォントのサイズ. -%以参照点(${}=2^{-16}\,\textrm{pt}$)为点位的字体大小。 +\item[\tt size\_cache] +%<*ja> +使用されているJFMの情報が格納されているテーブルで, +\textbf{このテーブルを書き換えてはならない}. +中身はほぼJFMファイルに書かれている唯一のテーブルであるが,次のように若干変わっている: +\begin{itemize} +\item 各文字クラス$i$に属する文字達のテーブル +\texttt{[$i$].chars=\{, ...\}}は,トップレベルにまとめられ, +\texttt{chars=\{[]=$i$, ...\}}という形になっている. +\item \texttt{zw},~\texttt{zh}, \texttt{kanjiskip},~\texttt{xkanjiskip} の各フィールドの値は, +実際に使われるフォントサイズに合わせたsp ($1\,\mathrm{sp}=2^{-6}\,\mathrm{pt}$)単位の長さに変わっている. +\item 各文字クラス$i$の情報を格納したテーブルも,\texttt{char\_type} フィールドの下にまとめられている. +例えば,文字クラス1に属する文字の高さは \texttt{char\_type[1].height} で参照できる. +\item \texttt{dir} フィールドはこのテーブルにはない. +\end{itemize} +% +%<*en> +A table which contains the information of a JFM, and \emph{this table must not be changed}. +The contents of this table are similar to that which is written is the JFM file, but +the following differ: +\begin{itemize} +\item There is a \texttt{chars} table, \dots +\item The value in \texttt{zw},~\texttt{zh}, \texttt{kanjiskip},~\texttt{xkanjiskip} fields are +now scaled by real font size, and in scaled-pont unit. +\item ... +\item There is no \texttt{dir} field in this table. +\end{itemize} +% +% ... \item[\tt var] %The value specified in \texttt{jfmvar=...} at a call of \verb+\jfont+. @@ -3309,11 +3728,12 @@ You may assume that \verb+jfont_info+ has the following fields: \end{description} %<*en> -The returned table \verb+new_jfont_info+ also should include these three fields. +The returned table \verb+new_jfont_info+ also should include these two fields. The \verb+font_number+ is a font number. % %<*ja> -戻り値の \verb+new_jfont_info+ テーブルもこれら3つのフィールドを含まなければならない. +戻り値の \verb+new_jfont_info+ テーブルもこれら2つのフィールドを含まなければならないが, +それ以外にユーザが勝手にフィールドを付け加えることは自由である. \verb+font_number+ はフォント番号である. % @@ -3327,7 +3747,6 @@ A good example of this and the next callbacks is the \Pkg{luatexja-otf} これと次のコールバックの良い使用例は\Pkg{luatexja-otf}パッケージであり, JFM中でAdobe-Japan1 CIDの文字を \verb+"AJ1-xxx"+ の形で指定するために 用いられている. -このコールバックは\LuaTeX-jaのコードを書き換えない. % %\item[\texttt{luatexja.find\_char\_class} callback] @@ -3369,16 +3788,6 @@ The argument \verb+char_class+ is the result of \LuaTeX-ja's default デフォルトルーチンを書き換えることになる. % -%<*en> -This callback doesn't replace any code of \LuaTeX-ja. -% -%<*ja> -このコールバックは\LuaTeX-jaのコードを書き換えない. -% -%<*zh> -此回调不会替换\LuaTeX-ja中任何代码。 -% - %\item[\texttt{luatexja.set\_width} callback] %\item[\texttt{luatexja.set\_width}コールバック] %\item[\texttt{luatexja.set\_width}回调] @@ -3743,7 +4152,8 @@ JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグル %\subsection{基本语句兼容性} %<*en> -The following primitives are implemented for compatibility with \pTeX: +The following primitives are implemented for compatibility with \pTeX. +Note that these primitives don't support JIS~X~0213, but only JIS~X~0208. % %<*ja> 以下のプリミティブは\pTeX との互換性のために実装されている: @@ -3819,8 +4229,9 @@ With the help of this example, we remark the specification of \verb+\inhibitglue %<*ja> \item \verb+\inhibitglue+ の(制限された)水平モード中での呼び出しはその場でのみ 有効であり,段落の境界を乗り越えない. - さらに,\verb+\inhibitglue+ は上の例の最終行のようにリガチャとカーニングを - 打ち消す. + さらに,\verb+\inhibitglue+ は上の例の最終行のように(欧文における)リガチャとカーニングを + 打ち消す.これは,\verb+\inhibitglue+ が内部的には「現在のリスト中にwhatsitノードを + 追加する」ことを行なっているからである. % %<*en> @@ -4024,19 +4435,15 @@ As closing this subsection, we shall introduce an example of % %<*ja> この節の終わりに,\verb+\SetRelationFont+ と \verb+\userelfont+ の例を -紹介しておこう. +紹介しておこう.\verb+\userelfont+ の使用によって,「abc」の部分のフォントが +Avant Garde (OT1/pag/m/n) に変わっていることがわかる. % \begin{LTXexample} -\gtfamily{}あいうabc +\kanjifamily{gt}\selectfont あいうxyz \SetRelationFont{JY3}{gt}{m}{n}{OT1}{pag}{m}{n} -\userelfont\selectfont{}あいうabc +\userelfont\selectfont あいうabc \end{LTXexample} - -%\subsection{Cropmark/`tombow'} -%\subsection{トンボ} -% ToDo - %\section{Extensions} %\section{拡張} \subsection{\texttt{luatexja-fontspec.sty}} @@ -4190,12 +4597,12 @@ Here the following is the list of dimensions and attributes which are used in \L \dim{jQ} %<*en> -As explained in Subsection~\ref{ssec-plain}, \verb+\jQ+ is equal to +\verb+\jQ+ is equal to $1\,\textrm{Q}=0.25\,\textrm{mm}$, where `Q'~(also called `級') is a unit used in Japanese phototypesetting. So one should not change the value of this dimension. % %<*ja> -\ref{ssec-plain}節で述べたように,\verb+\jQ+ は$1\,\textrm{Q}=0.25\,\textrm{mm}$ +\verb+\jQ+ は$1\,\textrm{Q}=0.25\,\textrm{mm}$ と等しい.ここで,`Q'(もしくは「級」)は日本の写植で用いられる単位である.したがって, この寸法レジスタの値を変更してはならない. % @@ -4207,7 +4614,7 @@ There is also a unit called `歯' which equals to $0.25\,\textrm{mm}$ and \verb+\jH+ is a synonym of \verb+\jQ+. % %<*ja> -同じく写植で用いられていた単位として「歯」があり,これは$0.25\,\textrm{mm}$と +同じく写植で用いられていた単位として「歯」があり,これも$0.25\,\textrm{mm}$と 等しい.\verb+\jH+ は \verb+\jQ+ の別名である. % @@ -4628,11 +5035,11 @@ This problem is resolved by using %\section{Linebreak after Japanese Character} %\section{和文文字直後の改行} -%\section{日文字符后断行} +%\section{日文字符后断行} \label{sec-lbreak} %\subsection{Reference: Behavior in \pTeX} -%\subsection{参考:\pTeX の動作} -%\subsection{参考:\pTeX 行为} +%\subsection{参考:\pTeX の動作} +%\subsection{参考: \pTeX 行为} %<*en> In~\pTeX, a line break after a Japanese character doesn't emit a space, since words are not separated by spaces in Japanese writings. However, @@ -4685,39 +5092,72 @@ after `beginning/ending of a group' characters. % \begin{figure}[!tb] -\begin{gather*} - \def\sp{\texttt{\char32}} - \xymatrix{&& - {\text{scan a cs}}\ar@(r,ul)[dr]&\\ -\ar[r]& - *++[o][F-]{N}\ar[ur]^0\ar[dd]_{d,\ g}\ar[u]^{5\ (\texttt{\char92par})} - \ar@{->}@(d,l)[ddrr]_(0.45){j}&& - *++[o][F-]{S}\ar@(l,dr)[ul]^0\ar@(l,ur)[ddll]_{d,\ g}\ar[u]_{5} - \ar@{->}@(r,r)[dd]^{j}\\&\\& - *++[o][F-]{M}\ar[uuur]^0\ar@(r,dl)[uurr]_(0.55){10\ (\sp)} - \ar[d]_{5\ ({\sp})}\ar@{->}@(dr,dl)[rr]_{j}&& - *++[o][F-]{K}\ar@{->}@(ul,d)[uuul]^0\ar@{->}[ll]^{d} - \ar@{->}@(ur,dr)[uu]^{10\ (\sp)}\ar@{->}[d]_5\\ - &&& - }\\ - d:=\{3,4,6,7,8,11,12,13\},\quad g:=\{1,2\},\quad j:=(\text{Japanese characters}) -\end{gather*} +\let\sp\textvisiblespace\small +\begin{minipage}{.6\textwidth}% +\begin{center} +\unitlength=6.5mm\sf\mathversion{bold} +\begin{tikzpicture}[ + ->, auto, shorten >=1pt +] +\node [shape=rectangle, font=\scriptsize] (init) at (2,7) {start}; +\node [shape=circle,draw, fill=blue!20] (newline) at (4,7) {$N$}; +\node [shape=circle,draw, fill=blue!20] (midline) at (4,4) {$M$}; +\node [shape=circle,draw, fill=blue!20] (skipspc) at (8,7) {$S$}; +\node [shape=circle,draw, fill=red!20] (kanji) at (8,4) {$K$}; +\node [shape=rectangle,draw, fill=green!20] (scanacs) at (6,8) {scan a c.s.}; +\node (endk) at (8,2.5) {} ; +\node (endm) at (4,2.5) {} ; +\node (ends) at (8,8.5) {} ; +\node (endn) at (4,8.5) {} ; +\begin{scope}[font=\scriptsize] +\path (newline) edge [bend right] node [left]{G, O} (midline) + (init) edge node {} (newline) + (midline) edge [bend right=10] node {10} (skipspc) + (skipspc) edge [bend right] node [left,right=10,above=7]{G, O} (midline) + (skipspc) edge [loop right] node {10} (skipspc) + (newline) edge [loop right] node {10} (newline) + (scanacs) edge [bend left] node [left=3,below]{$(*)$} (skipspc) + (scanacs) edge [bend right] node [right=30,above=20]{$(*)$} (midline) + (midline) edge node {5\ [\sp]} (endm) + (midline) edge [loop left] node {G, O} (midline) + (skipspc) edge node [right] {5} (ends) + (newline) edge node {5 [{\tt\char92par}]} (endn); +\begin{scope}[red] +\path (newline) edge [bend right] node [right=25,below=3]{J} (kanji) + (midline) edge node [below]{J} (kanji) + (kanji) edge [bend left] node {O} (midline) + (kanji) edge node {10} (skipspc) + (kanji) edge [loop right] node {G, J} (kanji) + (skipspc) edge [bend left] node {J} (kanji) + (kanji) edge node {5} (endk) +; +\end{scope} +\end{scope} +\end{tikzpicture} +\end{center} +\end{minipage}% +\begin{minipage}{.4\textwidth} +\begin{description} +\item[\textsf{G}] Beginning of group (usually \verb+{+)\\ + and ending of group (usually \verb+}+). +\item[\textsf{J}] Japanese characters. +\item[\textsf{5}] \textit{end-of-line} (usually \verb+^^J+). +\item[\textsf{10}] space (usually \sp). +\item[\textsf{O}] other characters, whose category code is in $\{3,4,6,7,8,11,12,13\}$. +\item[\textsf{[\sp]}, \textsf{[{\tt\char92par}]}] +emits a space, or~\verb+\par+. +\end{description} +\end{minipage} \begin{itemize} -%<*en> -\item Numbers represent category codes. -% -%<*ja> -\item 数字はカテゴリーコードを表わしている. -% -%<*en> -\item Category codes 9~(ignored), 14~(comment)~and~15~(invalid) are omitted in the above diagram. -% -%<*ja> -\item カテゴリーコード9(無視する文字),14(コメント文字),15(無効文字)は上の図では省かれている. -% -%<*zh> -\item -% +\item We omitted about category codes +9~(\textit{ignored}), 14~(\textit{comment})~and~15~(\textit{invalid}) +from the above diagram. We also ignored the input like `\verb+^^A+' or `\verb+^+\verb+^df+'. +\item When a character whose category code is 0 (\textit{escape character}) is seen by \TeX, +the input processor scans a control sequence (\textsf{scan a c.s.}). +These paths are not shown in the above diagram. + +After that, the state is changed to State~$S$ (skipping blanks) in most cases, but +to State~$M$ (middle of line) sometimes. \end{itemize} %\caption{State transitions of \pTeX's input processor.} %\caption{\pTeX の入力処理部の状態遷移.} @@ -4746,8 +5186,9 @@ A character U+FFFFF (its category code is set to 14~(comment) by \LuaTeX-ja) is appended to an input line, \emph{before \LuaTeX\ actually process it}, if and only if the following three conditions are satisfied: \begin{enumerate} -\item The category code of the character $\langle${return}$\rangle$ - (whose character code is 13) is 5~(end-of-line). +\item The category code of \verb+\endlinechar+% +\footnote{Usually, it is $\langle${return}$\rangle$ + (whose character code is 13).} is 5~(end-of-line). \item The category code of U+FFFFF itself is 14~(comment). \item The input line matches the following `regular expression': \[ @@ -4794,7 +5235,8 @@ u \footnote{この文字はコメント文字として扱われるように\LuaTeX-ja内部で設定をしている.} を末尾に追加する.よって,その場合に改行は空白とは見做されないこととなる. \begin{enumerate} -\item 改行文字(文字コード13番)のカテゴリーコードが5~(end-of-line)である. +\item \verb+\endlinechar+の文字\footnote{普通は,改行文字(文字コード13番)である.} +のカテゴリーコードが5~(end-of-line)である. \item U+FFFFFのカテゴリーコードが14~(comment)である. \item 入力行は次の「正規表現」にマッチしている: \[ @@ -4830,7 +5272,7 @@ u %\section{Insertion of JFM glues, \Param{kanjiskip} and \Param{xkanjiskip}} %\section{JFMグルーの挿入,\Param{kanjiskip}と\Param{xkanjiskip}} -%\section{JFM的胶插入,\Param{kanjiskip}和\Param{xkanjiskip}} +%\section{JFM的胶插入,\Param{kanjiskip}和\Param{xkanjiskip}} \label{sec-jfmglue} %\subsection{Overview} %\subsection{概要} @@ -5226,26 +5668,26 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき \label{tab-jfmglue} \begin{center} \small -\begin{tabular}{>{\sf}c|cccccc} +\begin{tabular}{c|cccccc} \toprule {\bf\textit{Np}}↓&\sf 和文A&\sf 和文B&\sf 欧文&\sf 箱&\sf glue&\sf kern\\\midrule -和文A& +\sf 和文A& \gkf{E}{M→K}{PN}& \gkf{---}{\OA →K}{PN}& \gkf{---}{\OA →X}{PN}& \gkf{---}{\OA}{PA}& \gkf{---}{\OA}{PN}& \gkf{---}{\OA}{PS}\\ -和文B& +\sf 和文B& \gkf{E}{\OB→K}{PA}& \gkf{---}{K}{PS}& \gkf{---}{X}{PS}\\ -欧文& +\sf 欧文& \gkf{E}{\OB →X}{PA}& \gkf{---}{X}{PS}\cr -箱&\gkf{E}{\OB}{PA}\\ -glue&\gkf{E}{\OB}{PN}\\ -kern&\gkf{E}{\OB}{PS}\\ +\sf 箱&\gkf{E}{\OB}{PA}\\ +\sf glue&\gkf{E}{\OB}{PN}\\ +\sf kern&\gkf{E}{\OB}{PS}\\ \bottomrule \end{tabular} \end{center} @@ -5478,9 +5920,509 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので, \section{psft} +%<*ja> +\section{\Pkg{listings} パッケージへの対応} +\Pkg{listings} パッケージが,そのままでは日本語をまともに出力できないこと +はよく知られている,きちんと整形して出力するために,\Pkg{listings}パッケー +ジは内部で「ほとんどの文字」をアクティブにし,各文字に対してその文字の出 +力命令を割り当てている (\cite{listings}). +しかし,そこでアクティブにする文字の中に,和文文 +字がないためである.p\TeX 系列では,和文文字をアクティブにする手法がなく, +\Pkg{jlisting.sty} というパッチ\cite{jlisting}を用いることで無理やり解決していたが, +\LuaTeX-jaでは,(\LuaTeX がネイティブでUnicodeを理解することから)「和文 +文字をアクティブ化し,それらに対して適切に出力命令を設定する」というより正統的な +方法を取ることにした. + +\LuaTeX-ja で利用される \Pkg{listings} パッケージへのパッチ \Pkg{lltjp-listings.sty} は, +\Pkg{listings.sty} と\LuaTeX-jaを読み込んでおけば, +\verb+\begin{document}+ の箇所において自動的に読み込まれるので,通常はあまり +意識する必要はない. + +\paragraph{文字種} +\Pkg{listings} パッケージの内部では,大雑把に言うと +\begin{enumerate} +\item 識別子として使える文字 (``letter'',~``digit'') たちを +集める. +\item letterでもdigitでもない文字が現れた時に,収集した文字列を(必要なら修飾して)出力する. +\item 今度は逆に,letterでない文字たちをletterが現れるまで集める. +\item letterが出現したら集めた文字列を出力する. +\item 1.に戻る. +\end{enumerate} +という処理が行われている.これにより,識別子の途中では行分割が行われないようになっている. +直前の文字が識別子として使えるか否かは \verb+\lst@ifletter+ というフラグに格納されている. + +さて,日本語の処理である.殆どの和文文字の前後では行分割が可能であるが,その一方で +括弧類や音引きなどでは禁則処理が必要なことから,\Pkg{lltjp-listings.sty} では, +直前が和文文字であるかを示すフラグ \verb+lst@kanji+ を新たに導入した. +以降,説明のために以下のように文字を分類する: +\begin{center} +\small +\begin{tabular}{lccccc} +\toprule +&Letter&Other&Kanji&Open&Close\\\midrule +\verb+\lst@ifletter+&T&F&T&F&T\\ +\verb+\lst@ifkanji+&F&F&T&T&F\\ +意図&識別子中の文字&その他欧文文字&殆どの和文文字&開き括弧類&閉じ括弧類\\ +\bottomrule +\end{tabular} +\end{center} +なお,本来の\Pkg{listings} パッケージでの分類``digit''は, +出現状況によって,上の表のLetterとOtherのどちらにもなりうる. +また,KanjiとCloseは \verb+\lst@ifletter+ と \verb+\lst@ifkanji+ の値が一致しているが, +これは間違いではない. + +例えば,Letterの直後にOpenが来た場合を考える. +文字種Openは和文開き括弧類を想定しているので,Letterの直後では行分割が可能であることが望ましい. +そのため,この場合では,すでに収集されている文字列を出力することで行分割を許容するようにした. +同じように,$5\times 5=25$通り全てについて書くと,次のようになる: +\begin{center} +\small +\begin{tabular}{llccccc} +\toprule +&&\multicolumn{4}{c}{後ろ側の文字}\\\cmidrule(lr){3-7} +&&\hbox to 4em{\hss Letter\hss}&\hbox to 4em{\hss Other\hss} +&\hbox to 4em{\hss Kanji\hss}&\hbox to 4em{\hss Open\hss}&Close\\\midrule +直&Letter&収集&\multicolumn{3}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\ +前&Other&出力&収集&\multicolumn{2}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\ +文&Kanji&\multicolumn{4}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\ +字&Open&\multicolumn{5}{c}{\hrulefill \ 収集\ \hrulefill}\\ +種&Close&\multicolumn{4}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\ +\bottomrule +\end{tabular} +\end{center} +上の表において, +\begin{itemize} +\item 「出力」は,それまでに集めた文字列を出力(≒ここで行分割可能)を意味する. +\item 「収集」は,後側の文字を,現在収集された文字列に追加(行分割不可)を意味する. +\end{itemize} + +\paragraph{和文文字扱いとなる文字} +\Pkg{listings} パッケージにおいて和文文字と扱われる +(前に述べたKanji, Open,あるいは「閉じ括弧類」分類)か否かは, +通常の\textbf{JAchar}/\textbf{Alchar}の範囲の設定(\ref{ssec-setrange}節)とは全く関係ない. + +また,禁則処理に関する\Param{prebreakpenalty},~\Param{postbreakpenalty}の設定も +\Pkg{listings} パッケージ内部ではまったく影響しない. + +\medskip +現在の実装では, +\begin{itemize} +\item 基本多言語面のU+2000--U+FFFF,追加漢字面の文字は,以下の場合を除きKanji扱いとなり, +また欧文文字2文字分の幅をとる..但し,以下は例外. +\item U+FF61--U+FF9Fの半角カナはKanji扱いだが,欧文文字1文字分しか幅がない. +\item 禁則処理のパラメータの標準値を定めている \texttt{luatexja-kinsoku.tex}\ % +において \Param{prebreakpenalty} が +10000と設定されている文字はClose扱いである. +\item \texttt{luatexja-kinsoku.tex} で \Param{postbreakpenalty} が10000 +と設定されている文字はOpen扱いである. +\end{itemize} +これらの設定をユーザが\TeX ソースで変更させる仕組みはまだ作成していない. + +% +%<*en> +\section{Patch for the \Pkg{listings} package} +\dots +% + \begin{thebibliography}{99} \addcontentsline{toc}{section}{\refname} \bibitem{texbytopic} Victor Eijkhout, \emph{\TeX\ by Topic, A \TeX nician's Reference}, Addison-Wesley, 1992. \end{thebibliography} + +\newpage +\appendix + +%<*ja> +\section{\LuaTeX-jaにおけるJIS~X~0213非漢字のcatcode} + +ここでは,JIS~X~0213の非漢字部分(第1区〜第13区)のうち, +どの文字が(u)\pTeX や\LuaTeX-jaで制御綴内に使用可能かを表にしてまとめる. +各文字は +\begin{center} +\tt\fboxsep=1pt\fbox{\hbox to \zw{\gt あ\hss}}\,\scriptsize LUP +\end{center} +のように表示しており,各文字は次の意味を持っている. +この表の生成は,JIS X 0208の範囲内の文字については\verb+\jis+命令を使って行なっている. +\begin{itemize} +\item 背景が薄く青く塗られている文字は, +\LuaTeX-ja の標準で\textbf{ALchar}として認識されている文字である. +\item 1文字目の {\tt L} は,\XeTeX や\LuaTeX-jaにおいてこの文字が制御綴内に +使用可能(catcodeが11)であることを表している. +\item 2文字目の{\tt U} は,\upTeX においてこの文字が制御綴内に使用可能(kcatcodeは16,~17)であることを +表している.この範囲内では,\upTeX は標準で全文字を和文文字として扱うようである. +\item 3文字目の {\tt P} は,\pTeX においてこの文字が制御綴内に使用可能(kcatcodeは16,~17)であることを +表している. +\item 3文字目が{\tt -}となっているもの(本体の文字も赤身がかっている)は, +JIS~X~0208にないため使用不能と考えて良いものである. +\item 第4区と第5区にある,鼻濁音の仮名については省略した. +\end{itemize} + + +\makeatletter +\def\uplist{% upTeX で \kcatcode!=18 なもの + \@elt {8486}\@elt {8491}\@elt {8492}\@elt {8499}\@elt {8500}\@elt {8501}% + \@elt {8502}\@elt {8504}\@elt {8508}\@elt {9008}\@elt {9009}\@elt {9010}% + \@elt {9011}\@elt {9012}\@elt {9013}\@elt {9014}\@elt {9015}\@elt {9016}% + \@elt {9017}\@elt {9025}\@elt {9026}\@elt {9027}\@elt {9028}\@elt {9029}% + \@elt {9030}\@elt {9031}\@elt {9032}\@elt {9033}\@elt {9034}\@elt {9035}% + \@elt {9036}\@elt {9037}\@elt {9038}\@elt {9039}\@elt {9040}\@elt {9041}% + \@elt {9042}\@elt {9043}\@elt {9044}\@elt {9045}\@elt {9046}\@elt {9047}% + \@elt {9048}\@elt {9049}\@elt {9050}\@elt {9057}\@elt {9058}\@elt {9059}% + \@elt {9060}\@elt {9061}\@elt {9062}\@elt {9063}\@elt {9064}\@elt {9065}% + \@elt {9066}\@elt {9067}\@elt {9068}\@elt {9069}\@elt {9070}\@elt {9071}% + \@elt {9072}\@elt {9073}\@elt {9074}\@elt {9075}\@elt {9076}\@elt {9077}% + \@elt {9078}\@elt {9079}\@elt {9080}\@elt {9081}\@elt {9082}\@elt {9249}% + \@elt {9250}\@elt {9251}\@elt {9252}\@elt {9253}\@elt {9254}\@elt {9255}% + \@elt {9256}\@elt {9257}\@elt {9258}\@elt {9259}\@elt {9260}\@elt {9261}% + \@elt {9262}\@elt {9263}\@elt {9264}\@elt {9265}\@elt {9266}\@elt {9267}% + \@elt {9268}\@elt {9269}\@elt {9270}\@elt {9271}\@elt {9272}\@elt {9273}% + \@elt {9274}\@elt {9275}\@elt {9276}\@elt {9277}\@elt {9278}\@elt {9279}% + \@elt {9280}\@elt {9281}\@elt {9282}\@elt {9283}\@elt {9284}\@elt {9285}% + \@elt {9286}\@elt {9287}\@elt {9288}\@elt {9289}\@elt {9290}\@elt {9291}% + \@elt {9292}\@elt {9293}\@elt {9294}\@elt {9295}\@elt {9296}\@elt {9297}% + \@elt {9298}\@elt {9299}\@elt {9300}\@elt {9301}\@elt {9302}\@elt {9303}% + \@elt {9304}\@elt {9305}\@elt {9306}\@elt {9307}\@elt {9308}\@elt {9309}% + \@elt {9310}\@elt {9311}\@elt {9312}\@elt {9313}\@elt {9314}\@elt {9315}% + \@elt {9316}\@elt {9317}\@elt {9318}\@elt {9319}\@elt {9320}\@elt {9321}% + \@elt {9322}\@elt {9323}\@elt {9324}\@elt {9325}\@elt {9326}\@elt {9327}% + \@elt {9328}\@elt {9329}\@elt {9330}\@elt {9331}\@elt {9505}\@elt {9506}% + \@elt {9507}\@elt {9508}\@elt {9509}\@elt {9510}\@elt {9511}\@elt {9512}% + \@elt {9513}\@elt {9514}\@elt {9515}\@elt {9516}\@elt {9517}\@elt {9518}% + \@elt {9519}\@elt {9520}\@elt {9521}\@elt {9522}\@elt {9523}\@elt {9524}% + \@elt {9525}\@elt {9526}\@elt {9527}\@elt {9528}\@elt {9529}\@elt {9530}% + \@elt {9531}\@elt {9532}\@elt {9533}\@elt {9534}\@elt {9535}\@elt {9536}% + \@elt {9537}\@elt {9538}\@elt {9539}\@elt {9540}\@elt {9541}\@elt {9542}% + \@elt {9543}\@elt {9544}\@elt {9545}\@elt {9546}\@elt {9547}\@elt {9548}% + \@elt {9549}\@elt {9550}\@elt {9551}\@elt {9552}\@elt {9553}\@elt {9554}% + \@elt {9555}\@elt {9556}\@elt {9557}\@elt {9558}\@elt {9559}\@elt {9560}% + \@elt {9561}\@elt {9562}\@elt {9563}\@elt {9564}\@elt {9565}\@elt {9566}% + \@elt {9567}\@elt {9568}\@elt {9569}\@elt {9570}\@elt {9571}\@elt {9572}% + \@elt {9573}\@elt {9574}\@elt {9575}\@elt {9576}\@elt {9577}\@elt {9578}% + \@elt {9579}\@elt {9580}\@elt {9581}\@elt {9582}\@elt {9583}\@elt {9584}% + \@elt {9585}\@elt {9586}\@elt {9587}\@elt {9588}\@elt {9589}\@elt {9590}% + % ここから JIS X 0213 + \@elt {8760}\@elt {8761}\@elt {9083}\@elt {9332}\@elt {9333}\@elt {9334}% + \@elt {9335}\@elt {9336}\@elt {9337}\@elt {9338}\@elt {9339}\@elt {9591}% + \@elt {9592}\@elt {9593}\@elt {9594}\@elt {9595}\@elt {9596}\@elt {9597}% + \@elt {9598}\@elt {9838}\@elt {9839}\@elt {9840}\@elt {9841}\@elt {9842}% + \@elt {9843}\@elt {9844}\@elt {9845}\@elt {9846}\@elt {9847}\@elt {9848}% + \@elt {9849}\@elt {9850}\@elt {9851}\@elt {9852}\@elt {9853}\@elt {9854}% + \@elt {10098}\@elt {10099}\@elt {10100}\@elt {10101}% +} +\def\plist{% pTeX で \kcatcode!=18 なもの + \@elt {8993}\@elt {8994}\@elt {8995}\@elt {8996}\@elt {8997}\@elt {8998}% + \@elt {8999}\@elt {9000}\@elt {9001}\@elt {9002}\@elt {9003}\@elt {9004}% + \@elt {9005}\@elt {9006}\@elt {9007}\@elt {9008}\@elt {9009}\@elt {9010}% + \@elt {9011}\@elt {9012}\@elt {9013}\@elt {9014}\@elt {9015}\@elt {9016}% + \@elt {9017}\@elt {9018}\@elt {9019}\@elt {9020}\@elt {9021}\@elt {9022}% + \@elt {9023}\@elt {9024}\@elt {9025}\@elt {9026}\@elt {9027}\@elt {9028}% + \@elt {9029}\@elt {9030}\@elt {9031}\@elt {9032}\@elt {9033}\@elt {9034}% + \@elt {9035}\@elt {9036}\@elt {9037}\@elt {9038}\@elt {9039}\@elt {9040}% + \@elt {9041}\@elt {9042}\@elt {9043}\@elt {9044}\@elt {9045}\@elt {9046}% + \@elt {9047}\@elt {9048}\@elt {9049}\@elt {9050}\@elt {9051}\@elt {9052}% + \@elt {9053}\@elt {9054}\@elt {9055}\@elt {9056}\@elt {9057}\@elt {9058}% + \@elt {9059}\@elt {9060}\@elt {9061}\@elt {9062}\@elt {9063}\@elt {9064}% + \@elt {9065}\@elt {9066}\@elt {9067}\@elt {9068}\@elt {9069}\@elt {9070}% + \@elt {9071}\@elt {9072}\@elt {9073}\@elt {9074}\@elt {9075}\@elt {9076}% + \@elt {9077}\@elt {9078}\@elt {9079}\@elt {9080}\@elt {9081}\@elt {9082}% + \@elt {9083}\@elt {9084}\@elt {9085}\@elt {9086}\@elt {9249}\@elt {9250}% + \@elt {9251}\@elt {9252}\@elt {9253}\@elt {9254}\@elt {9255}\@elt {9256}% + \@elt {9257}\@elt {9258}\@elt {9259}\@elt {9260}\@elt {9261}\@elt {9262}% + \@elt {9263}\@elt {9264}\@elt {9265}\@elt {9266}\@elt {9267}\@elt {9268}% + \@elt {9269}\@elt {9270}\@elt {9271}\@elt {9272}\@elt {9273}\@elt {9274}% + \@elt {9275}\@elt {9276}\@elt {9277}\@elt {9278}\@elt {9279}\@elt {9280}% + \@elt {9281}\@elt {9282}\@elt {9283}\@elt {9284}\@elt {9285}\@elt {9286}% + \@elt {9287}\@elt {9288}\@elt {9289}\@elt {9290}\@elt {9291}\@elt {9292}% + \@elt {9293}\@elt {9294}\@elt {9295}\@elt {9296}\@elt {9297}\@elt {9298}% + \@elt {9299}\@elt {9300}\@elt {9301}\@elt {9302}\@elt {9303}\@elt {9304}% + \@elt {9305}\@elt {9306}\@elt {9307}\@elt {9308}\@elt {9309}\@elt {9310}% + \@elt {9311}\@elt {9312}\@elt {9313}\@elt {9314}\@elt {9315}\@elt {9316}% + \@elt {9317}\@elt {9318}\@elt {9319}\@elt {9320}\@elt {9321}\@elt {9322}% + \@elt {9323}\@elt {9324}\@elt {9325}\@elt {9326}\@elt {9327}\@elt {9328}% + \@elt {9329}\@elt {9330}\@elt {9331}\@elt {9332}\@elt {9333}\@elt {9334}% + \@elt {9335}\@elt {9336}\@elt {9337}\@elt {9338}\@elt {9339}\@elt {9340}% + \@elt {9341}\@elt {9342}\@elt {9505}\@elt {9506}\@elt {9507}\@elt {9508}% + \@elt {9509}\@elt {9510}\@elt {9511}\@elt {9512}\@elt {9513}\@elt {9514}% + \@elt {9515}\@elt {9516}\@elt {9517}\@elt {9518}\@elt {9519}\@elt {9520}% + \@elt {9521}\@elt {9522}\@elt {9523}\@elt {9524}\@elt {9525}\@elt {9526}% + \@elt {9527}\@elt {9528}\@elt {9529}\@elt {9530}\@elt {9531}\@elt {9532}% + \@elt {9533}\@elt {9534}\@elt {9535}\@elt {9536}\@elt {9537}\@elt {9538}% + \@elt {9539}\@elt {9540}\@elt {9541}\@elt {9542}\@elt {9543}\@elt {9544}% + \@elt {9545}\@elt {9546}\@elt {9547}\@elt {9548}\@elt {9549}\@elt {9550}% + \@elt {9551}\@elt {9552}\@elt {9553}\@elt {9554}\@elt {9555}\@elt {9556}% + \@elt {9557}\@elt {9558}\@elt {9559}\@elt {9560}\@elt {9561}\@elt {9562}% + \@elt {9563}\@elt {9564}\@elt {9565}\@elt {9566}\@elt {9567}\@elt {9568}% + \@elt {9569}\@elt {9570}\@elt {9571}\@elt {9572}\@elt {9573}\@elt {9574}% + \@elt {9575}\@elt {9576}\@elt {9577}\@elt {9578}\@elt {9579}\@elt {9580}% + \@elt {9581}\@elt {9582}\@elt {9583}\@elt {9584}\@elt {9585}\@elt {9586}% + \@elt {9587}\@elt {9588}\@elt {9589}\@elt {9590}\@elt {9591}\@elt {9592}% + \@elt {9593}\@elt {9594}\@elt {9595}\@elt {9596}\@elt {9597}\@elt {9598}% + \@elt {9761}\@elt {9762}\@elt {9763}\@elt {9764}\@elt {9765}\@elt {9766}% + \@elt {9767}\@elt {9768}\@elt {9769}\@elt {9770}\@elt {9771}\@elt {9772}% + \@elt {9773}\@elt {9774}\@elt {9775}\@elt {9776}\@elt {9777}\@elt {9778}% + \@elt {9779}\@elt {9780}\@elt {9781}\@elt {9782}\@elt {9783}\@elt {9784}% + \@elt {9785}\@elt {9786}\@elt {9787}\@elt {9788}\@elt {9789}\@elt {9790}% + \@elt {9791}\@elt {9792}\@elt {9793}\@elt {9794}\@elt {9795}\@elt {9796}% + \@elt {9797}\@elt {9798}\@elt {9799}\@elt {9800}\@elt {9801}\@elt {9802}% + \@elt {9803}\@elt {9804}\@elt {9805}\@elt {9806}\@elt {9807}\@elt {9808}% + \@elt {9809}\@elt {9810}\@elt {9811}\@elt {9812}\@elt {9813}\@elt {9814}% + \@elt {9815}\@elt {9816}\@elt {9817}\@elt {9818}\@elt {9819}\@elt {9820}% + \@elt {9821}\@elt {9822}\@elt {9823}\@elt {9824}\@elt {9825}\@elt {9826}% + \@elt {9827}\@elt {9828}\@elt {9829}\@elt {9830}\@elt {9831}\@elt {9832}% + \@elt {9833}\@elt {9834}\@elt {9835}\@elt {9836}\@elt {9837}\@elt {9838}% + \@elt {9839}\@elt {9840}\@elt {9841}\@elt {9842}\@elt {9843}\@elt {9844}% + \@elt {9845}\@elt {9846}\@elt {9847}\@elt {9848}\@elt {9849}\@elt {9850}% + \@elt {9851}\@elt {9852}\@elt {9853}\@elt {9854}% +} + +\def\jlist{% JIS X 0213 だけにあるもの +\@elt{"222F}{"FF07}\@elt{"2230}{"FF02}\@elt{"2231}{"FF0D}\@elt{"2232}{"FF5E}% +\@elt{"2233}{"3033}\@elt{"2234}{"3034}\@elt{"2235}{"3035}\@elt{"2236}{"303B}% +\@elt{"2237}{"303C}\@elt{"2238}{"30FF}\@elt{"2239}{"309F}\@elt{"2242}{"2284}% +\@elt{"2243}{"2285}\@elt{"2244}{"228A}\@elt{"2245}{"228B}\@elt{"2246}{"2209}% +\@elt{"2247}{"2205}\@elt{"2248}{"2305}\@elt{"2249}{"2306}\@elt{"2251}{"2295}% +\@elt{"2252}{"2296}\@elt{"2253}{"2297}\@elt{"2254}{"2225}\@elt{"2255}{"2226}% +\@elt{"2256}{"FF5F}\@elt{"2257}{"FF60}\@elt{"2258}{"3018}\@elt{"2259}{"3019}% +\@elt{"225A}{"3016}\@elt{"225B}{"3017}\@elt{"226B}{"2262}\@elt{"226C}{"2243}% +\@elt{"226D}{"2245}\@elt{"226E}{"2248}\@elt{"226F}{"2276}\@elt{"2270}{"2277}% +\@elt{"2271}{"2194}\@elt{"227A}{"266E}\@elt{"227B}{"266B}\@elt{"227C}{"266C}% +\@elt{"227D}{"2669}\@elt{"2321}{"25B7}\@elt{"2322}{"25B6}\@elt{"2323}{"25C1}% +\@elt{"2324}{"25C0}\@elt{"2325}{"2197}\@elt{"2326}{"2198}\@elt{"2327}{"2196}% +\@elt{"2328}{"2199}\@elt{"2329}{"21C4}\@elt{"232A}{"21E8}\@elt{"232B}{"21E6}% +\@elt{"232C}{"21E7}\@elt{"232D}{"21E9}\@elt{"232E}{"2934}\@elt{"232F}{"2935}% +\@elt{"233A}{"29BF}\@elt{"233B}{"25C9}\@elt{"233C}{"303D}\@elt{"233D}{"FE46}% +\@elt{"233E}{"FE45}\@elt{"233F}{"25E6}\@elt{"2340}{"2022}\@elt{"235B}{"2213}% +\@elt{"235C}{"2135}\@elt{"235D}{"210F}\@elt{"235E}{"33CB}\@elt{"235F}{"2113}% +\@elt{"2360}{"2127}\@elt{"237B}{"30A0}\@elt{"237C}{"2013}\@elt{"237D}{"29FA}% +\@elt{"237E}{"29FB}\@elt{"2474}{"3094}\@elt{"2475}{"3095}\@elt{"2476}{"3096}% +\@elt{"2639}{"2664}\@elt{"263A}{"2660}\@elt{"263B}{"2662}% +\@elt{"263C}{"2666}\@elt{"263D}{"2661}\@elt{"263E}{"2665}\@elt{"263F}{"2667}% +\@elt{"2640}{"2663}\@elt{"2659}{"03C2}\@elt{"265A}{"24F5}\@elt{"265B}{"24F6}% +\@elt{"265C}{"24F7}\@elt{"265D}{"24F8}\@elt{"265E}{"24F9}\@elt{"265F}{"24FA}% +\@elt{"2660}{"24FB}\@elt{"2661}{"24FC}\@elt{"2662}{"24FD}\@elt{"2663}{"24FE}% +\@elt{"2664}{"2616}\@elt{"2665}{"2617}\@elt{"2666}{"3020}\@elt{"2667}{"260E}% +\@elt{"2668}{"2600}\@elt{"2669}{"2601}\@elt{"266A}{"2602}\@elt{"266B}{"2603}% +\@elt{"266C}{"2668}\@elt{"266D}{"25B1}\@elt{"266E}{"31F0}\@elt{"266F}{"31F1}% +\@elt{"2670}{"31F2}\@elt{"2671}{"31F3}\@elt{"2672}{"31F4}\@elt{"2673}{"31F5}% +\@elt{"2674}{"31F6}\@elt{"2675}{"31F7}\@elt{"2676}{"31F8}\@elt{"2677}{"31F9}% +\@elt{"2678}{"31F7}\@elt{"2679}{"31FA}\@elt{"267A}{"31FB}\@elt{"267B}{"31FC}% +\@elt{"267C}{"31FD}\@elt{"267D}{"31FE}\@elt{"267E}{"31FF}\@elt{"2742}{"23BE}% +\@elt{"2743}{"23BF}\@elt{"2744}{"23C0}\@elt{"2745}{"23C1}\@elt{"2746}{"23C2}% +\@elt{"2747}{"23C3}\@elt{"2748}{"23C4}\@elt{"2749}{"23C5}\@elt{"274A}{"23C6}% +\@elt{"274B}{"23C7}\@elt{"274C}{"23C8}\@elt{"274D}{"23C9}\@elt{"274E}{"23CA}% +\@elt{"274F}{"23CB}\@elt{"2750}{"23CC}\@elt{"2772}{"30F7}\@elt{"2773}{"30F8}% +\@elt{"2774}{"30F9}\@elt{"2775}{"30FA}\@elt{"2776}{"22DA}\@elt{"2777}{"22DB}% +\@elt{"2778}{"2153}\@elt{"2779}{"2154}\@elt{"277A}{"2155}\@elt{"277B}{"2713}% +\@elt{"277C}{"2318}\@elt{"277D}{"2423}\@elt{"277E}{"23CE}\@elt{"2841}{"3251}% +\@elt{"2842}{"3252}\@elt{"2843}{"3253}\@elt{"2844}{"3254}\@elt{"2845}{"3255}% +\@elt{"2846}{"3256}\@elt{"2847}{"3257}\@elt{"2848}{"3258}\@elt{"2849}{"3259}% +\@elt{"284A}{"325A}\@elt{"284B}{"325B}\@elt{"284C}{"325C}\@elt{"284D}{"325D}% +\@elt{"284E}{"325E}\@elt{"284F}{"325F}\@elt{"2850}{"32B1}\@elt{"2851}{"32B2}% +\@elt{"2852}{"32B3}\@elt{"2853}{"32B4}\@elt{"2854}{"32B5}\@elt{"2855}{"32B6}% +\@elt{"2856}{"32B7}\@elt{"2857}{"32B8}\@elt{"2858}{"32B9}\@elt{"2859}{"32BA}% +\@elt{"285A}{"32BB}\@elt{"285B}{"32BC}\@elt{"285C}{"32BD}\@elt{"285D}{"32BE}% +\@elt{"285E}{"32BF}\@elt{"2867}{"25D0}\@elt{"2868}{"25D1}\@elt{"2869}{"25D2}% +\@elt{"286A}{"25D3}\@elt{"286B}{"203C}\@elt{"286C}{"2047}\@elt{"286D}{"2048}% +\@elt{"286E}{"2049}\@elt{"286F}{"01CD}\@elt{"2870}{"01CE}\@elt{"2871}{"01D0}% +\@elt{"2872}{"1E3E}\@elt{"2873}{"1E3F}\@elt{"2874}{"01F8}\@elt{"2875}{"01F9}% +\@elt{"2876}{"01D1}\@elt{"2877}{"01D2}\@elt{"2878}{"01D4}\@elt{"2879}{"01D6}% +\@elt{"287A}{"01D8}\@elt{"287B}{"01DA}\@elt{"287C}{"01DC}\@elt{"2921}{"20AC}% +\@elt{"2922}{"00A0}\@elt{"2923}{"00A1}\@elt{"2924}{"00A4}\@elt{"2925}{"00A6}% +\@elt{"2926}{"00A9}\@elt{"2927}{"00AA}\@elt{"2928}{"00AB}\@elt{"2929}{"00AD}% +\@elt{"292A}{"00AE}\@elt{"292B}{"00AF}\@elt{"292C}{"00B2}\@elt{"292D}{"00B3}% +\@elt{"292E}{"00B7}\@elt{"292F}{"00B8}\@elt{"2930}{"00B9}\@elt{"2931}{"00BA}% +\@elt{"2932}{"00BB}\@elt{"2933}{"00BC}\@elt{"2934}{"00BD}\@elt{"2935}{"00BE}% +\@elt{"2936}{"00BF}\@elt{"2937}{"00C0}\@elt{"2938}{"00C1}\@elt{"2939}{"00C2}% +\@elt{"293A}{"00C3}\@elt{"293B}{"00C4}\@elt{"293C}{"00C5}\@elt{"293D}{"00C6}% +\@elt{"293E}{"00C7}\@elt{"293F}{"00C8}\@elt{"2940}{"00C9}\@elt{"2941}{"00CA}% +\@elt{"2942}{"00CB}\@elt{"2943}{"00CC}\@elt{"2944}{"00CD}\@elt{"2945}{"00CE}% +\@elt{"2946}{"00CF}\@elt{"2947}{"00D0}\@elt{"2948}{"00D1}\@elt{"2949}{"00D2}% +\@elt{"294A}{"00D3}\@elt{"294B}{"00D4}\@elt{"294C}{"00D5}\@elt{"294D}{"00D6}% +\@elt{"294E}{"00D8}\@elt{"294F}{"00D9}\@elt{"2950}{"00DA}\@elt{"2951}{"00DB}% +\@elt{"2952}{"00DC}\@elt{"2953}{"00DD}\@elt{"2954}{"00DE}\@elt{"2955}{"00DF}% +\@elt{"2956}{"00E0}\@elt{"2957}{"00E1}\@elt{"2958}{"00E2}\@elt{"2959}{"00E3}% +\@elt{"295A}{"00E4}\@elt{"295B}{"00E5}\@elt{"295C}{"00E6}\@elt{"295D}{"00E7}% +\@elt{"295E}{"00E8}\@elt{"295F}{"00E9}\@elt{"2960}{"00EA}\@elt{"2961}{"00EB}% +\@elt{"2962}{"00EC}\@elt{"2963}{"00ED}\@elt{"2964}{"00EE}\@elt{"2965}{"00EF}% +\@elt{"2966}{"00F0}\@elt{"2967}{"00F1}\@elt{"2968}{"00F2}\@elt{"2969}{"00F3}% +\@elt{"296A}{"00F4}\@elt{"296B}{"00F5}\@elt{"296C}{"00F6}\@elt{"296D}{"00F8}% +\@elt{"296E}{"00F9}\@elt{"296F}{"00FA}\@elt{"2970}{"00FB}\@elt{"2971}{"00FC}% +\@elt{"2972}{"00FD}\@elt{"2973}{"00FE}\@elt{"2974}{"00FF}\@elt{"2975}{"0100}% +\@elt{"2976}{"012A}\@elt{"2977}{"016A}\@elt{"2978}{"0112}\@elt{"2979}{"014C}% +\@elt{"297A}{"0101}\@elt{"297B}{"012B}\@elt{"297C}{"016B}\@elt{"297D}{"0113}% +\@elt{"297E}{"014D}\@elt{"2A21}{"0104}\@elt{"2A22}{"02D8}\@elt{"2A23}{"0141}% +\@elt{"2A24}{"013D}\@elt{"2A25}{"015A}\@elt{"2A26}{"0160}\@elt{"2A27}{"015E}% +\@elt{"2A28}{"0164}\@elt{"2A29}{"0179}\@elt{"2A2A}{"017D}\@elt{"2A2B}{"017B}% +\@elt{"2A2C}{"0105}\@elt{"2A2D}{"02DB}\@elt{"2A2E}{"0142}\@elt{"2A2F}{"013E}% +\@elt{"2A30}{"015B}\@elt{"2A31}{"02C7}\@elt{"2A32}{"0161}\@elt{"2A33}{"015F}% +\@elt{"2A34}{"0165}\@elt{"2A35}{"017A}\@elt{"2A36}{"02DD}\@elt{"2A37}{"017E}% +\@elt{"2A38}{"017C}\@elt{"2A39}{"0154}\@elt{"2A3A}{"0102}\@elt{"2A3B}{"0139}% +\@elt{"2A3C}{"0106}\@elt{"2A3D}{"010C}\@elt{"2A3E}{"0118}\@elt{"2A3F}{"011A}% +\@elt{"2A40}{"010E}\@elt{"2A41}{"0143}\@elt{"2A42}{"0147}\@elt{"2A43}{"0150}% +\@elt{"2A44}{"0158}\@elt{"2A45}{"016E}\@elt{"2A46}{"0170}\@elt{"2A47}{"0162}% +\@elt{"2A48}{"0155}\@elt{"2A49}{"0103}\@elt{"2A4A}{"013A}\@elt{"2A4B}{"0107}% +\@elt{"2A4C}{"010D}\@elt{"2A4D}{"0119}\@elt{"2A4E}{"011B}\@elt{"2A4F}{"010F}% +\@elt{"2A50}{"0111}\@elt{"2A51}{"0144}\@elt{"2A52}{"0148}\@elt{"2A53}{"0151}% +\@elt{"2A54}{"0159}\@elt{"2A55}{"016F}\@elt{"2A56}{"0171}\@elt{"2A57}{"0163}% +\@elt{"2A58}{"02D9}\@elt{"2A59}{"0108}\@elt{"2A5A}{"011C}\@elt{"2A5B}{"0124}% +\@elt{"2A5C}{"0134}\@elt{"2A5D}{"015C}\@elt{"2A5E}{"016C}\@elt{"2A5F}{"0109}% +\@elt{"2A60}{"011D}\@elt{"2A61}{"0125}\@elt{"2A62}{"0135}\@elt{"2A63}{"015D}% +\@elt{"2A64}{"016D}\@elt{"2A65}{"0271}\@elt{"2A66}{"028B}\@elt{"2A67}{"027E}% +\@elt{"2A68}{"0283}\@elt{"2A69}{"0292}\@elt{"2A6A}{"026C}\@elt{"2A6B}{"026E}% +\@elt{"2A6C}{"0279}\@elt{"2A6D}{"0288}\@elt{"2A6E}{"0256}\@elt{"2A6F}{"0273}% +\@elt{"2A70}{"027D}\@elt{"2A71}{"0282}\@elt{"2A72}{"0290}\@elt{"2A73}{"027B}% +\@elt{"2A74}{"026D}\@elt{"2A75}{"025F}\@elt{"2A76}{"0272}\@elt{"2A77}{"029D}% +\@elt{"2A78}{"028E}\@elt{"2A79}{"0261}\@elt{"2A7A}{"014B}\@elt{"2A7B}{"0270}% +\@elt{"2A7C}{"0281}\@elt{"2A7D}{"0127}\@elt{"2A7E}{"0295}\@elt{"2B21}{"0294}% +\@elt{"2B22}{"0266}\@elt{"2B23}{"0298}\@elt{"2B24}{"01C2}\@elt{"2B25}{"0253}% +\@elt{"2B26}{"0257}\@elt{"2B27}{"0284}\@elt{"2B28}{"0260}\@elt{"2B29}{"0193}% +\@elt{"2B2A}{"0153}\@elt{"2B2B}{"0152}\@elt{"2B2C}{"0268}\@elt{"2B2D}{"0289}% +\@elt{"2B2E}{"0258}\@elt{"2B2F}{"0275}\@elt{"2B30}{"0259}\@elt{"2B31}{"025C}% +\@elt{"2B32}{"025E}\@elt{"2B33}{"0250}\@elt{"2B34}{"026F}\@elt{"2B35}{"028A}% +\@elt{"2B36}{"0264}\@elt{"2B37}{"028C}\@elt{"2B38}{"0254}\@elt{"2B39}{"0251}% +\@elt{"2B3A}{"0252}\@elt{"2B3B}{"028D}\@elt{"2B3C}{"0265}\@elt{"2B3D}{"02A2}% +\@elt{"2B3E}{"02A1}\@elt{"2B3F}{"0255}\@elt{"2B40}{"0291}\@elt{"2B41}{"027A}% +\@elt{"2B42}{"0267}\@elt{"2B43}{"025A}\@elt{"2B44}{"00E6}\@elt{"2B45}{"01FD}% +\@elt{"2B46}{"1F70}\@elt{"2B47}{"1F71}\@elt{"2B48}{"0254}\@elt{"2B49}{"0254}% +\@elt{"2B4A}{"028C}\@elt{"2B4B}{"028C}\@elt{"2B4C}{"0259}\@elt{"2B4D}{"0259}% +\@elt{"2B4E}{"025A}\@elt{"2B4F}{"025A}\@elt{"2B50}{"1F72}\@elt{"2B51}{"1F73}% +\@elt{"2B52}{"0361}\@elt{"2B53}{"02C8}\@elt{"2B54}{"02CC}\@elt{"2B55}{"02D0}% +\@elt{"2B56}{"02D1}\@elt{"2B57}{"0306}\@elt{"2B58}{"203F}\@elt{"2B59}{"030B}% +\@elt{"2B5A}{"0301}\@elt{"2B5B}{"0304}\@elt{"2B5C}{"0300}\@elt{"2B5D}{"030F}% +\@elt{"2B5E}{"030C}\@elt{"2B5F}{"0302}\@elt{"2B60}{"02E5}\@elt{"2B61}{"02E6}% +\@elt{"2B62}{"02E7}\@elt{"2B63}{"02E8}\@elt{"2B64}{"02E9}\@elt{"2B65}{"02E9}% +\@elt{"2B66}{"02E5}\@elt{"2B67}{"0325}\@elt{"2B68}{"032C}\@elt{"2B69}{"0339}% +\@elt{"2B6A}{"031C}\@elt{"2B6B}{"031F}\@elt{"2B6C}{"0320}\@elt{"2B6D}{"0308}% +\@elt{"2B6E}{"033D}\@elt{"2B6F}{"0329}\@elt{"2B70}{"032F}\@elt{"2B71}{"02DE}% +\@elt{"2B72}{"0324}\@elt{"2B73}{"0330}\@elt{"2B74}{"033C}\@elt{"2B75}{"0334}% +\@elt{"2B76}{"031D}\@elt{"2B77}{"031E}\@elt{"2B78}{"0318}\@elt{"2B79}{"0319}% +\@elt{"2B7A}{"032A}\@elt{"2B7B}{"033A}\@elt{"2B7C}{"033B}\@elt{"2B7D}{"0303}% +\@elt{"2B7E}{"031A}\@elt{"2C21}{"2776}\@elt{"2C22}{"2777}\@elt{"2C23}{"2778}% +\@elt{"2C24}{"2779}\@elt{"2C25}{"277A}\@elt{"2C26}{"277B}\@elt{"2C27}{"277C}% +\@elt{"2C28}{"277D}\@elt{"2C29}{"277E}\@elt{"2C2A}{"277F}\@elt{"2C2B}{"24EB}% +\@elt{"2C2C}{"24EC}\@elt{"2C2D}{"24ED}\@elt{"2C2E}{"24EE}\@elt{"2C2F}{"24EF}% +\@elt{"2C30}{"24F0}\@elt{"2C31}{"24F1}\@elt{"2C32}{"24F2}\@elt{"2C33}{"24F3}% +\@elt{"2C34}{"24F4}\@elt{"2C35}{"2170}\@elt{"2C36}{"2171}\@elt{"2C37}{"2172}% +\@elt{"2C38}{"2173}\@elt{"2C39}{"2174}\@elt{"2C3A}{"2175}\@elt{"2C3B}{"2176}% +\@elt{"2C3C}{"2177}\@elt{"2C3D}{"2178}\@elt{"2C3E}{"2179}\@elt{"2C3F}{"217A}% +\@elt{"2C40}{"217B}\@elt{"2C41}{"24D0}\@elt{"2C42}{"24D1}\@elt{"2C43}{"24D2}% +\@elt{"2C44}{"24D3}\@elt{"2C45}{"24D4}\@elt{"2C46}{"24D5}\@elt{"2C47}{"24D6}% +\@elt{"2C48}{"24D7}\@elt{"2C49}{"24D8}\@elt{"2C4A}{"24D9}\@elt{"2C4B}{"24DA}% +\@elt{"2C4C}{"24DB}\@elt{"2C4D}{"24DC}\@elt{"2C4E}{"24DD}\@elt{"2C4F}{"24DE}% +\@elt{"2C50}{"24DF}\@elt{"2C51}{"24E0}\@elt{"2C52}{"24E1}\@elt{"2C53}{"24E2}% +\@elt{"2C54}{"24E3}\@elt{"2C55}{"24E4}\@elt{"2C56}{"24E5}\@elt{"2C57}{"24E6}% +\@elt{"2C58}{"24E7}\@elt{"2C59}{"24E8}\@elt{"2C5A}{"24E9}\@elt{"2C5B}{"32D0}% +\@elt{"2C5C}{"32D1}\@elt{"2C5D}{"32D2}\@elt{"2C5E}{"32D3}\@elt{"2C5F}{"32D4}% +\@elt{"2C60}{"32D5}\@elt{"2C61}{"32D6}\@elt{"2C62}{"32D7}\@elt{"2C63}{"32D8}% +\@elt{"2C64}{"32D9}\@elt{"2C65}{"32DA}\@elt{"2C66}{"32DB}\@elt{"2C67}{"32DC}% +\@elt{"2C68}{"32DD}\@elt{"2C69}{"32DE}\@elt{"2C6A}{"32DF}\@elt{"2C6B}{"32E0}% +\@elt{"2C6C}{"32E1}\@elt{"2C6D}{"32E2}\@elt{"2C6E}{"32E3}\@elt{"2C6F}{"32FA}% +\@elt{"2C70}{"32E9}\@elt{"2C71}{"32E5}\@elt{"2C72}{"32ED}\@elt{"2C73}{"32EC}% +\@elt{"2C7D}{"2051}\@elt{"2C7E}{"2042}\@elt{"2D21}{"2460}\@elt{"2D22}{"2461}% +\@elt{"2D23}{"2462}\@elt{"2D24}{"2463}\@elt{"2D25}{"2464}\@elt{"2D26}{"2465}% +\@elt{"2D27}{"2466}\@elt{"2D28}{"2467}\@elt{"2D29}{"2468}\@elt{"2D2A}{"2469}% +\@elt{"2D2B}{"246A}\@elt{"2D2C}{"246B}\@elt{"2D2D}{"246C}\@elt{"2D2E}{"246D}% +\@elt{"2D2F}{"246E}\@elt{"2D30}{"246F}\@elt{"2D31}{"2470}\@elt{"2D32}{"2471}% +\@elt{"2D33}{"2472}\@elt{"2D34}{"2473}\@elt{"2D35}{"2160}\@elt{"2D36}{"2161}% +\@elt{"2D37}{"2162}\@elt{"2D38}{"2163}\@elt{"2D39}{"2164}\@elt{"2D3A}{"2165}% +\@elt{"2D3B}{"2166}\@elt{"2D3C}{"2167}\@elt{"2D3D}{"2168}\@elt{"2D3E}{"2169}% +\@elt{"2D3F}{"216A}\@elt{"2D40}{"3349}\@elt{"2D41}{"3314}\@elt{"2D42}{"3322}% +\@elt{"2D43}{"334D}\@elt{"2D44}{"3318}\@elt{"2D45}{"3327}\@elt{"2D46}{"3303}% +\@elt{"2D47}{"3336}\@elt{"2D48}{"3351}\@elt{"2D49}{"3357}\@elt{"2D4A}{"330D}% +\@elt{"2D4B}{"3326}\@elt{"2D4C}{"3323}\@elt{"2D4D}{"332B}\@elt{"2D4E}{"334A}% +\@elt{"2D4F}{"333B}\@elt{"2D50}{"339C}\@elt{"2D51}{"339D}\@elt{"2D52}{"339E}% +\@elt{"2D53}{"338E}\@elt{"2D54}{"338F}\@elt{"2D55}{"33C4}\@elt{"2D56}{"33A1}% +\@elt{"2D57}{"216B}\@elt{"2D5F}{"337B}\@elt{"2D60}{"301D}\@elt{"2D61}{"301F}% +\@elt{"2D62}{"2116}\@elt{"2D63}{"33CD}\@elt{"2D64}{"2121}\@elt{"2D65}{"32A4}% +\@elt{"2D66}{"32A5}\@elt{"2D67}{"32A6}\@elt{"2D68}{"32A7}\@elt{"2D69}{"32A8}% +\@elt{"2D6A}{"3231}\@elt{"2D6B}{"3232}\@elt{"2D6C}{"3239}\@elt{"2D6D}{"337E}% +\@elt{"2D6E}{"337D}\@elt{"2D6F}{"337C}\@elt{"2D73}{"222E}\@elt{"2D78}{"221F}% +\@elt{"2D79}{"22BF}\@elt{"2D7D}{"2756}\@elt{"2D7E}{"261E}% +} + +\newcount\cntA +\newcount\cntB +\newcount\flag +\def\chk@in@#1#2{{\global\flag=0\relax% + \def\@elt##1{\ifnum#2=##1\global\flag=1 \fi}% + #1}} +\def\get@in@#1#2{{% + \global\flag=0\relax% + \def\@elt##1##2{\ifnum#2=##1\global\flag##2 \fi}% + #1}} + +\def\outi{% +\get@in@{\jlist}{\cntA}\cntB=\flag +\ifnum\cntB=0{}% + \cntB=\jis\cntA{}% + \ifnum\cntB=0 \else + \ifnum\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{\cntB}}=0 + \def\@@@tmp{white}\else\def\@@@tmp{white!85!blue}\fi + \fcolorbox{black}{\@@@tmp}{% + \hbox to \zw{\gt  \hskip-\zw\ltjjachar\cntB  \hss}}\,\scriptsize% + \ifnum\catcode\cntB=11 L\else\ \fi + \chk@in@{\uplist}{\cntA}\ifnum\flag=1 U\else~\fi + \chk@in@{\plist}{\cntA}\ifnum\flag=1 P\else~\fi + \fi +\else + \ifnum\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{\cntB}}=0 + \def\@@@tmp{white}\else\def\@@@tmp{white!85!blue}\fi + \fcolorbox{black}{\@@@tmp}{\color{red!50!black}% + \hbox to \zw{\gt  \hskip-\zw\ltjjachar\cntB  \hss}}\,\scriptsize% + \ifnum\catcode\cntB=11 L\else~\fi + \chk@in@{\uplist}{\cntA}\ifnum\flag=1 U\else~\fi-% +\fi\global\advance\cntA1 } + +\def\out#1#2{% +\midrule\global\cntA=\numexpr 8192+#1*256+#2*16\relax +"#2{}x&\ifnum#2=2\global\advance\cntA1\else\outi\fi&\outi&\outi&\outi&\outi&\outi&\outi&\outi%" +&\outi&\outi&\outi&\outi&\outi&\outi&\outi&\ifnum#2=7\global\advance\cntA1\else\outi\fi\\ +} + +\def\test#1{{% +\subsection*{第#1区}\tt\small\fboxsep=1pt\centering\tabcolsep=0.25\zw +\begin{tabular}{ccccccccccccccccc}\toprule&"0&"1&"2&"3&"4&"5&"6&"7&"8&"9&"A&"B&"C&"D&"E&"F\\ +\out{#1}{2}\out{#1}{3}\out{#1}{4}\out{#1}{5}\out{#1}{6}\out{#1}{7}\bottomrule +\end{tabular}\par}\medskip} + +\test{1}\test{2}\test{3}\test{4}\test{5}\test{6}\test{7}\test{8} +\test{9}\test{10}\test{11}\test{12}\test{13} + +% + + +\section{Package versions used in this document} +This document was typeset using the following packages: + +\medskip + +{\makeatletter\tt\footnotesize + \def\@pkglist#1{% + \filename@parse{#1}\def\@temp{sty} + \ifx\@temp\filename@ext + \edef\reserved@a{% + \filename@base.% + \ifx\filename@ext\relax tex\else\filename@ext\fi}% + \leavevmode\hskip-13em\hbox to 13em{\filename@area\reserved@a\hss}% + \csname ver@\reserved@a\endcsname\par + \fi + }% +\parindent0pt\leftskip13em +\ltjpkglist + +\makeatother} \end{document} +% +%<*showexpl> +%% +%% config file for showexpl.sty +%% +%% Copyright The LuaTeX-ja project team, 2012 +%% +\ProvidesFile{showexpl.cfg} + [2012/05/20 v0.01 Definitions for the showexpl package (luatexja)] +\lstset{} +\def\SX@Info{} +\endinput +%