X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=c57030fb43077e62f142629a92c2f5b2e166a7a9;hb=0d4cabde0e301b63631e876116e5743e294bcdb0;hp=0fff128bbea4828ba5a389b80aca8d7472d828d4;hpb=2d064e6898934ddd3ab8ecc10f9d1f99f23c508f;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 0fff128..c57030f 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -1,44 +1,160 @@ -%#! 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} +\usepackage{luatexja-adjust}\ltjdisableadjust +\parskip=\smallskipamount % %<*ja> -\documentclass[a4paper,titlepage]{ltjsarticle} -\usepackage[margin=25mm, footskip=5mm]{geometry} +\usepackage[textwidth=45\zw, lines=45, footskip=6mm]{geometry} +\usepackage{luatexja-adjust}%\ltjdisableadjust +\advance\leftmargini-1\zw\advance\leftmarginii-1\zw +% +%<*zh> +\usepackage[textwidth=45\zw, lines=45, footskip=6mm]{geometry} +\usepackage{luatexja-adjust}\ltjdisableadjust \advance\leftmargini-1\zw\advance\leftmarginii-1\zw +\def\postpartname{编} +\DeclareYokoKanjiEncoding{ZH}{}{} +\DeclareKanjiEncodingDefaults{}{} +\DeclareErrorKanjiFont{ZH}{song}{m}{n}{10} +\DeclareKanjiSubstitution{ZH}{song}{m}{n} +\newcommand\songdefault{song} +\newcommand\heidefault{hei} +\newcommand\minchodefault{mincho} +\renewcommand\kanjiencodingdefault{ZH} +\renewcommand\kanjifamilydefault{\songdefault} +\renewcommand\kanjiseriesdefault{\mddefault} +\renewcommand\kanjishapedefault{\updefault} +\DeclareKanjiFamily{ZH}{song}{} +\DeclareFontShape{ZH}{song}{m}{n}{<->name:AdobeSongStd-Light:jfm=jis}{} +\DeclareFontShape{ZH}{song}{m}{it}{<->ssub*song/m/n}{} +\DeclareFontShape{ZH}{song}{bx}{n}{<->ssub*hei/m/n}{} +\DeclareKanjiFamily{ZH}{hei}{} +\DeclareFontShape{ZH}{hei}{m}{n}{<->name:SimHei:jfm=jis}{} +\DeclareFontShape{ZH}{hei}{bx}{n}{<->ssub*hei/m/n}{} +\DeclareKanjiFamily{ZH}{mincho}{} +\DeclareFontShape{ZH}{mincho}{m}{n}{<->psft:KozMinPr6N-Regular:cid=Adobe-Japan1-6;jfm=jis}{} +\fontencoding{ZH}\selectfont +\DeclareTextFontCommand{\textsong}{\songfamily} +\DeclareTextFontCommand{\texthei}{\heifamily} +\DeclareTextFontCommand{\textmincho}{\minchofamily} +\DeclareOldFontCommand{\song}{\normalfont\songfamily}{} +\DeclareOldFontCommand{\hei}{\normalfont\heifamily}{} +\DeclareOldFontCommand{\mincho}{\normalfont\minchofamily}{} +\DeclareSymbolFont{songti}{ZH}{song}{m}{n} +\jfam\symsongti +\SetSymbolFont{songti}{bold}{ZH}{hei}{m}{n} +\DeclareSymbolFontAlphabet{\mathsong}{songti} +\DeclareMathAlphabet{\mathhei}{ZH}{hei}{m}{n} +\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} +% + +\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, + allbordercolors=1 1 1, + allcolors=blue, +%<*en> + pdfauthor={The LuaTeX-ja project team}, + pdftitle={The LuaTeX-ja package} +% +%<*ja> + pdfauthor={LuaTeX-jaプロジェクトチーム}, + pdftitle={LuaTeX-jaパッケージ} +% +%<*zh> + pdfauthor={LuaTeX-ja项目团队}, + pdftitle={LuaTeX-ja宏包} +% +} -\usepackage{amsmath,amssymb,xcolor,pict2e,multienum,amsthm,float,makecell} -\usepackage{mathptmx} -\usepackage{booktabs,listings,showexpl,multicol} +%%%%%%%% definition env. +\usepackage{amsthm} +\theoremstyle{definition} +%\newtheorem{defn}{Definition} +%\newtheorem{defn}{定義} +%\newtheorem{defn}{定义} + +%%%%%%%% fonts \usepackage{luatexja-otf} -\usepackage{luatexja-fontspec} -\usepackage[unicode=true]{hyperref} -\usepackage[all]{xy} -% \SelectTips{cm}{} +\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} -\DeclareRobustCommand\pTeX{p\kern-.05em\TeX} -\DeclareRobustCommand\upTeX{up\kern-.05em\TeX} +\DeclareRobustCommand\pTeX{p\kern-.15em\TeX} +\DeclareRobustCommand\upTeX{up\kern-.15em\TeX} \DeclareRobustCommand\pLaTeX{p\kern-.05em\LaTeX} \DeclareRobustCommand\pLaTeXe{p\kern-.05em\LaTeXe} \DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\kern-.125em\pTeX} -\theoremstyle{definition} -%\newtheorem{defn}{Definition} -%\newtheorem{defn}{定義} - +%%%%%%%% other macros \newenvironment{cslist}{% \leftskip2em\parindent=0pt\def\makelabel##1{{\tt\char92##1}} \def\{{\char`\{}\def\}{\char`\}} @@ -46,7 +162,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}}% @@ -57,31 +173,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プロジェクトチーム} -% - -\lstset{ - basicstyle=\ttfamily\small, pos=o, 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$}} @@ -98,13 +201,19 @@ grammatical (and contextual) errors.} Also, several parts %<*ja> \textbf{\large 本ドキュメントはまだまだ未完成です.} % +%<*zh> +\textbf{\large 本文档尚未完成。} +% \clearpage %\part{User's manual} %\part{ユーザーズマニュアル} +%\part{用户手册} %\section{Introduction} %\section{はじめに} +%\section{引言} + %<*en> The \LuaTeX-ja package is a macro package for typesetting high-quality @@ -114,9 +223,14 @@ Japanese documents when using \LuaTeX. \LuaTeX-jaパッケージは,次世代標準\TeX である\LuaTeX の上で,\pTeX と同等 /それ以上の品質の日本語組版を実現させようとするマクロパッケージである. % +%<*zh> +\LuaTeX-ja宏包是应用于下一代标准\TeX 引擎亦即\LuaTeX 引擎上的高质量日语文档排版宏包。 +% %\subsection{Backgrounds} %\subsection{背景} +%\section{背景} + %<*en> Traditionally, ASCII \pTeX, an extension of \TeX, and its derivatives @@ -137,6 +251,13 @@ ASCII \pTeX やそれの拡張物が用いられることが一般的であっ OpenType, Unicodeといった計算機で日本語を扱う際の状況の変化に追従すること を怠ってしまったのだ. % +%<*zh> +一般情况下,\TeX 下的日语文档输出,是ASCII \pTeX(\TeX 的一个扩展)及其衍生 +软件来完成的。\pTeX 作为\TeX 的一个扩展引擎,在生成高质量的日语文档时,规避 +了繁杂的宏编写。但是在和同时期的引擎相比之下,\pTeX 的处境未免有些尴尬:\pTeX +已经远远落后于\eTeX 和pdf\TeX,此外也没有跟上计算机上对日文处理的演进(比如, +UTF-8编码,TrueType字体,OpenType字体)。 +% %<*en> Recently extensions of \pTeX, namely \upTeX\ (Unicode-implementation @@ -153,6 +274,10 @@ extent, but gaps still exist. \pTeX に対応させようという動きはなく,海外とのgapは未だにあるのが現状であ る. % +%<*zh> +最近开发的\pTeX 扩展,即\upTeX(Unicode下的\pTeX 实现)和\epTeX(\pTeX 和 +\eTeX 的融合版本),虽然在部分情况上弥补了上述的差距,但是差距依然存在。 +% %<*en> However, the appearance of \LuaTeX\ changed the whole situation. With @@ -170,9 +295,15 @@ scripts for appropriate callbacks. \TeX マクロによって日本語組版を\LuaTeX の上で実現させようという目的で開発 が始まったパッケージである. % +%<*zh> +不过,\LuaTeX 的出现改变了整个状况。用户可以通过使用Lua语言的“callback”来 +调整\LuaTeX 的内部处理机制。所以,没有必要去通过修改引擎的源代码来支持日文 +排版,相反,我们需要做的仅仅是编写其当处理callback的Lua脚本。 +% %\subsection{Major Changes from \pTeX} %\subsection{\pTeX からの主な変更点} +%\subsection{与\pTeX 的差异所在} %<*en> The \LuaTeX-ja package is under much influence of \pTeX\ engine. The initial @@ -188,6 +319,10 @@ specifications/behaviors of \pTeX\ were not adopted}. \pTeX の完全な移植は目標とはしない.\pTeX における不自然な仕様・挙動があ れば,そこは積極的に改める.} % +%<*zh> +\LuaTeX-ja宏包在设计上,受\pTeX 影响很大。最初开发的主要议题是实现\pTeX 的特性。 +不过,{\bf\LuaTeX-ja不是简简单单的移植\pTeX,很多不自然的特征和现象都被移出了。} +% %<*en> The followings are major changes from \pTeX: @@ -195,6 +330,9 @@ The followings are major changes from \pTeX: %<*ja> 以下は \pTeX からの主な変更点である. % +%<*zh> +下面列举出了一些和\pTeX 的差异: +% \begin{itemize} %<*en> @@ -203,9 +341,16 @@ 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 一个日文字体是由三部分构成的元组:实际的字体(如小塚明 + 朝,IPA明朝),日文字体测度(\textbf{JFM})和变体字串。 +% %<*en> \item In \pTeX, a line break after Japanese character is ignored (and @@ -219,17 +364,24 @@ The followings are major changes from \pTeX: 直後の改行は無視される(スペースが入らない)ようになっていた.しかし, \LuaTeX-ja では \LuaTeX の仕様のためにこの機能は完全には実装されていない. % +%<*zh> +\item \pTeX 中,日文字符之后的断行并不允许(也不产生空格),其他在源码中的断行 + 是可以随处允许的。不过,因为\LuaTeX 的特殊关系,\LuaTeX-ja并没有这个功能。 +% %<*en> \item The insertion process of glues/kerns between two Japanese characters and between a Japanese character and other characters - (we refer these glues/kerns as \textbf{JAglue}) is rewritten from + (we refer glues/kerns of both kinds as \textbf{JAglue}) is rewritten from scratch. % %<*ja> -\item 2つの和文文字の間,和文文字と欧文文字の間に入るグルー/カーン - (\textbf{JAglue}と呼ぶ)の挿入処理が0から書き直されている. +\item 2つの和文文字の間や,和文文字と欧文文字の間に入るグルー/カーン + (両者をあわせて\textbf{JAglue}と呼ぶ)の挿入処理が0から書き直されている. % +%<*zh> +\item 插在日文字符和其他字符言之间的胶/出格(我们将此称为\textbf{JAglue})是重新实现的。 +% \begin{itemize} %<*en> @@ -242,6 +394,10 @@ The followings are major changes from \pTeX: \verb+of{}fice+ で合字は抑制されない),\textbf{JAglue}の挿入処理も 「ノードベース」である. % +%<*zh> +\item 在\LuaTeX 中,内部的字符处理是“基于node的”(例如:\verb!of{}fice!不会避免合字), + \textbf{JAglue}的插入处理,现在也是“基于node的”。 +% %<*en> \item Furthermore, nodes between two characters which have no effects in @@ -252,6 +408,10 @@ The followings are major changes from \pTeX: \item さらに,2つの文字の間にある行末では効果を持たないノード(例えば \verb+\special+ ノード)や, イタリック補正に伴い挿入されるカーンは挿入処理中では無視される. % +%<*zh> +\item 此外,两个字符之间的node在断行时不起作用的(例如,\verb!\special!node),还有 + 意大利体校正带来的出格在插入处理中也是被忽略的。 +% %<*en> \item \emph{Caution: due to above two points, many methods which did for the @@ -262,6 +422,10 @@ The followings are major changes from \pTeX: \item \textbf{注意:上の2つの変更により,従来\textbf{JAglue}の挿入処理を分断するのに 使われていたいくつかの方法は用いることができない.具体的には,次の方法はもはや無効である:} % +%<*zh> +\item \textbf{警告:鉴于以上两点,在\pTeX 中分割\textbf{JAglue}处理的多种方法不再生效。} + 明确地说,下列两种方法不再生效: +% \begin{verbatim}   ちょ{}っと  ちょ\/っと \end{verbatim} @@ -271,6 +435,9 @@ The followings are major changes from \pTeX: %<*ja> もし同じことをやりたければ,空の水平ボックスを間に挟めばよい: % +%<*zh> + 如果想得到此种结果,请使用空盒子替代: +% \begin{verbatim}   ちょ\hbox{}っと \end{verbatim} @@ -284,8 +451,17 @@ The followings are major changes from \pTeX: \item 処理中では,2つの和文フォントは,「実際の」フォントのみが異なる場合に同一視 される. % +%<*zh> +\item 处理过程中,两个在“真实”字体上具区别的日文字体可以被识别出来。 +% \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. @@ -293,6 +469,9 @@ The followings are major changes from \pTeX: %<*ja> \item 現時点では,縦書きは\LuaTeX-jaではサポートされていない. % +%<*zh> +\item 当下,\LuaTeX-ja并不支持直行排版。 +% \end{itemize} @@ -302,9 +481,14 @@ For detailed information, see Part~\ref{part-imp}. %<*ja> 詳細については第\ref{part-imp}部を参照. % +%<*zh> +详细的描述,请参见第\ref{part-imp}编。 +% %\subsection{Notations} %\subsection{用語と記法} +%\subsection{一些约定} + %<*en> In this document, the following terms and notations are used: @@ -312,6 +496,9 @@ In this document, the following terms and notations are used: %<*ja> 本ドキュメントでは,以下の用語と記法を用いる: % +%<*zh> +在本文档中,有下面一些约定: +% \begin{itemize} %<*en> @@ -320,6 +507,9 @@ In this document, the following terms and notations are used: %<*ja> \item 文字は2種類に分けられる: % +%<*zh> +\item 字符被分为两种类型: +% \begin{itemize} %<*en> \item \textbf{JAchar}: standing for Japanese characters such as @@ -330,6 +520,9 @@ In this document, the following terms and notations are used: \item \textbf{JAchar}: ひらがな,カタカナ,漢字,和文用の約物といった和文文字の ことを指す. % +%<*zh> +\item \textbf{JAchar}:表示日文字符,如平假名,片假名,汉字,日文标点。 +% %<*en> \item \textbf{ALchar}: standing for all other characters like alphabets. @@ -337,6 +530,9 @@ In this document, the following terms and notations are used: %<*ja> \item \textbf{ALchar}: アルファベットを始めとする,その他全ての文字を指す. % +%<*zh> +\item \textbf{ALchar}:代表其他字母字符。 +% \end{itemize} %<*en> @@ -346,26 +542,36 @@ We say `alphabetic fonts' for fonts used in \textbf{ALchar}, and `Japanese fonts そして,\textbf{ALchar}の出力に用いられるフォントを「欧文フォント」と呼び, \textbf{JAchar}の出力に用いられるフォントを「和文フォント」と呼ぶ. % +%<*zh> +我们将用于\textbf{ALchar}的字体称为“字母字体”,用于\textbf{JAchar}的字体称为“日文字体”。 +% %<*en> -\item A word in a sans-serif font (like \Param{prebreakpenalty}) +\item A word in a sans-serif font (like \Param{\hyperlink{fld:prebp}{prebreakpenalty}}) means an internal parameter for Japanese typesetting, and it is used as a key in \verb+\ltjsetparameter+ command. % %<*ja> -\item サンセリフ体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の +\item サンセリフ体で書かれた語(例:\Param{\hyperlink{fld:prebp}{prebreakpenalty}})は日本語組版用の パラメータを表し,これらは \verb+\ltjsetparameter+ コマンドのキーとして 用いられる. % +%<*zh> +\item 用无衬线字体表示的词(如:\Param{\hyperlink{fld:prebp}{prebreakpenalty}})表示 + 日文排版中的内部便利iang,并用做\verb!\ltjsetparameter!命令一个键。 +% %<*en> \item A word in typewriter font with underline (like \Pkg{fontspec}) means a package or a class of \LaTeX. % %<*ja> -\item 下線付きのタイプライタ体で書かれた語(例:\Pkg{fontspec})は\LaTeX の +\item 下線付きタイプライタ体の語(例:\Pkg{fontspec})は\LaTeX の パッケージやクラスを表す. % +%<*zh> +\item 用下划线表示的词(如:\Pkg{fontspec})表示\LaTeX 的宏包或者文档类。 +% %<*en> \item The word `primitive' is used not only for primitives in \LuaTeX, @@ -376,6 +582,9 @@ We say `alphabetic fonts' for fonts used in \textbf{ALchar}, and `Japanese fonts \item 「プリミティブ」という語を,\LuaTeX のプリミティブだけではなく \LuaTeX-ja のコアモジュールで定義されたコントロールシーケンスに対しても用いる. % +%<*zh> +\item “primitive”,该词在本文档中不仅表示\LuaTeX 的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令 +% %<*en> \item In this document, natural numbers start from~0. @@ -383,10 +592,14 @@ We say `alphabetic fonts' for fonts used in \textbf{ALchar}, and `Japanese fonts %<*ja> \item 本ドキュメントでは,自然数は0から始まる. % +%<*zh> +\item 所有的自然数从0开始 +% \end{itemize} %\subsection{About the project} %\subsection{プロジェクトについて} +%\subsection{关于本项目} %<*en> \paragraph{Project Wiki} Project Wiki is under construction. @@ -394,29 +607,45 @@ We say `alphabetic fonts' for fonts used in \textbf{ALchar}, and `Japanese fonts %<*ja> \paragraph{プロジェクトWiki} プロジェクトWikiは構築中である. % +%<*zh> +\paragraph{项目wiki} 本项目wiki正在编写中。 +% %<*en> \begin{itemize} \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29} (English) \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage} (Japanese) +\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29} (Chinese) \end{itemize} % %<*ja> \begin{itemize} \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日本語) \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英語) +\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中国語) \end{itemize} % - +%<*zh> +\begin{itemize} +\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日语) +\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英语) +\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(汉语) +\end{itemize} +% %<*en> This project is hosted by SourceForge.JP. % %<*ja> 本プロジェクトはSourceForge.JPのサービスを用いて運営されている. % +%<*zh> +本项目由SourceForge.JP托管。 +% %\paragraph{Members}\ %\paragraph{開発メンバー}\ +%\paragraph{开发者}\ + %<*en> \begin{multienumerate} \def\labelenumi{$\bullet$} @@ -433,15 +662,24 @@ This project is hosted by SourceForge.JP. \mitemxxx{本田 知亮}{齋藤 修三郎}{馬 起園} \end{multienumerate} % - +%<*zh> +\begin{multienumerate} +\def\labelenumi{$\bullet$} +\mitemxxx{北川 弘典}{前田 一贵}{八登 崇之} +\mitemxxx{黒木 裕介}{阿部 纪行}{山本 宗宏} +\mitemxxx{本田 知亮}{斋藤 修三郎}{马 起园} +\end{multienumerate} +% % \paragraph{Acknowledgments} -- 挿入するならここ \clearpage %\section{Getting Started} %\section{使い方} +%\section{使用} %\subsection{Installation} %\subsection{インストール} +%\subsection{安装} %<*en> To install the \LuaTeX-ja\ package, you will need: @@ -449,6 +687,9 @@ To install the \LuaTeX-ja\ package, you will need: %<*ja> \LuaTeX-jaパッケージのインストールには,次のものが必要である. % +%<*zh> +安装\LuaTeX-ja之前,需要如下: +% \begin{itemize} %<*en> \item \LuaTeX\ (version 0.65.0-beta or later) and its supporting packages.\\ @@ -458,12 +699,19 @@ If you are using \TeX~Live~2011 or current W32\TeX, you don't have to worry. \item \LuaTeX(バージョン 0.65.0-beta 以降)とその支援パッケージ. \TeX~Live~2011やW32\TeX の最新版ならば問題ない. % +%<*zh> +\item \LuaTeX(版本号为大于0.65)和相关支持宏包。\\ +如果用户使用的是\TeX Live2011以及最新版本的W32\TeX,可不考虑此项。 +% %<*en> \item The source archive of \LuaTeX-ja, of course\texttt{:)} % %<*ja> \item \LuaTeX-jaのソースアーカイブ(もちろん\texttt{:)}). % +%<*zh> +\item \LuaTeX-ja的源码(当然喽\texttt{:)})。 +% %<*en> \item The \Pkg{xunicode} package, which version is \emph{just v0.981 (2011/09/09)}.\\ If you have the \Pkg{fontspec} package, this \Pkg{xunicode} package must be exist. @@ -474,6 +722,11 @@ But be careful about the version; other versions may not work correctly with \Lu \Pkg{fontspec}パッケージが導入されていればこのパッケージも導入されているはずであるが, このv0.981以外のバージョンでは\LuaTeX-ja上で正しく動作しない危険性がある. % +%<*zh> +\Pkg{xunicode}宏包,当前版本必须为\textit{v0.981(2011/09/09)}。\\ +如果你使用\Pkg{fontspec}宏包,\Pkg{xunicode}就必须存在。但是请注意该包的 +版本,其他版本可能不会正常工作。 +% \end{itemize} %<*en> @@ -482,6 +735,9 @@ The installation methods are as follows: %<*ja> インストール方法は以下のようになる: % +%<*zh> +安装方法如下: +% \begin{enumerate} %<*en> \item Download the source archive, by one of the following method. @@ -499,6 +755,7 @@ $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git \item Now \LuaTeX-ja is available from the following archive and distributions: \begin{itemize} \item CTAN (in the \texttt{macros/luatex/generic/luatexja} directory) + \item MiK\TeX\ (in \texttt{luatexja.tar.lzma}) \item \TeX\ Live (in \texttt{texmf-dist/tex/luatex/luatexja}) \item W32\TeX\ (in \texttt{luatexja.tar.xz}) \end{itemize} @@ -524,6 +781,7 @@ $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git \item 今や,\LuaTeX-jaは以下のアーカイブ,およびディストリビューションにも収録されている: \begin{itemize} \item CTAN (\texttt{macros/luatex/generic/luatexja}) + \item MiK\TeX\ (\texttt{luatexja.tar.lzma}) \item \TeX\ Live (\texttt{texmf-dist/tex/luatex/luatexja}) \item W32\TeX\ (\texttt{luatexja.tar.xz}) \end{itemize} @@ -534,6 +792,31 @@ $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git 主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを\texttt{master}に 反映させることにしている. % +%<*zh> +\item 按照如下方法下载源码归档。现在,\LuaTeX-ja没有稳定版本。 + +\begin{itemize} +\item 复制Git仓库: +\begin{verbatim} +$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git +\end{verbatim} +\item 下载\texttt{master} HEAD版本的\texttt{tar.gz}归档: +\begin{flushleft} +\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. +\end{flushleft} +\item 现在\LuaTeX-ja可以在下列仓库和发行版中获取:: + \begin{itemize} + \item CTAN ( \texttt{macros/luatex/generic/luatexja}) + \item MiK\TeX\ (\texttt{luatexja.tar.lzma}) + \item \TeX\ Live (\texttt{texmf-dist/tex/luatex/luatexja}) + \item W32\TeX\ (\texttt{luatexja.tar.xz}) + \end{itemize} + 这些版本都基于\texttt{master}分支。 +\end{itemize} + +注意\texttt{master}分支和CTAN仓库中的版本,升级并不频繁。 +前段开发并未在\texttt{master}分支。 +% %<*en> \item Extract the archive. You will see \texttt{src/} and several other sub-directories. @@ -544,6 +827,10 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. \texttt{src/}をはじめとしたいくつかのディレクトリができるが, 動作には\texttt{src/}以下の内容だけで十分. % +%<*zh> +\item 解压归档。你会看到\texttt{src/}和其他相关文件夹。 +但是只有\texttt{src/}文件夹下的相关文件是\LuaTeX-ja运行所必须的。 +% %<*en> \item Copy all the contents of \texttt{src/} into one of your \texttt{TEXMF} tree. @@ -557,6 +844,11 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. シンボリックリンクが利用できる環境で,かつリポジトリを直接取得したのであれば, (更新を容易にするために)コピーではなくリンクを貼ることを勧める. % +%<*zh> +\item 复制\texttt{src/}文件夹下内容至\texttt{TEXMF}数下。 +\texttt{TEXMF/tex/luatex/luatexja/}为例。 +如果你复制了整个Git仓库,为\texttt{src/}制作软链接来替代复制也是可以的。 +% %<*en> \item If \texttt{mktexlsr} is needed to update the file name database, make it so. @@ -564,11 +856,15 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. %<*ja> \item 必要があれば,\texttt{mktexlsr}を実行する. % +%<*zh> +\item 如有必要,执行\texttt{mktexlsr}。 +% \end{enumerate} - %\subsection{Cautions} %\subsection{注意点} +%\subsection{注意} + \begin{itemize} %<*en> @@ -579,10 +875,14 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. \item 原稿のソースファイルの文字コードはUTF-8固定である. 従来日本語の文字コードとして用いられてきたEUC-JPやShift-JISは使用できない. % +%<*zh> +\item 源文档编码必须是UTF-8。其他的编码,如EUC-JP和Shift-JIS都不被支持。 +% \end{itemize} %\subsection{Using in plain \TeX} %\subsection{plain \TeX で使う} +%\subsection{plain \TeX 下使用} \label{ssec-plain} %<*en> @@ -591,6 +891,9 @@ To use \LuaTeX-ja in plain \TeX, simply put the following at the beginning of th %<*ja> \LuaTeX-jaを plain \TeX で使うためには,単に次の行をソースファイルの冒頭に追加すればよい: % +%<*zh> +在plain \TeX 下使用\LuaTeX-ja相当简易,在文档开头放置一行: +% \begin{verbatim} \input luatexja.sty \end{verbatim} @@ -600,11 +903,14 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc %<*ja> これで(\texttt{ptex.tex}のように)日本語組版のための最低限の設定がなされる: % +%<*zh> +这里做出了做小的日文文档排版设定(如\texttt{ptex.tex}): +% \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 @@ -616,7 +922,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 @@ -626,18 +932,20 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc \end{tabular} \end{center} % +%<*zh> +\item 提前加载了六种日文字体,如下: +\begin{center}\small +\begin{tabular}{ccccc} +\toprule +\textbf{字体}&\textbf{字体名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule +明朝体&Ryumin-Light &\verb+\tenmin+&\verb+\sevenmin+&\verb+\fivemin+\\ +哥特体&GothicBBB-Medium&\verb+\tengt+ &\verb+\sevengt+ &\verb+\fivegt+\\ +\bottomrule +\end{tabular} +\end{center} +% \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+ に保持されている. -% - -%<*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.}, @@ -651,6 +959,11 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc 小塚明朝で代替される).そこで,これらを引き続きデフォルトのフォントと して採用する. % +%<*zh> +\item 广为接受的“Ryumin-Light”和“GothicBBB-Medium”字体不嵌入PDF文件, +而PDF阅读器则会使用外部日文字体替代(例如,在Adobe Reader中使用 +Kozuka Mincho字体替代Ryumin-Light)。我们使用默认设定。 +% %<*en> \item A character in an alphabetic font is generally smaller than a @@ -664,16 +977,23 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc 小さくなるように設定されており,具体的には指定の0.962216倍にスケールされる. この0.962216という数値も,\pTeX におけるスケーリングを踏襲した値である. % +%<*zh> +\item 一般情况下,相同大小日文字体比西文字体要大一下。所以实际的日文字体尺寸需哟小于西文字 +体,即使用一个缩放率:0.962216。 +% \end{itemize} %<*en> \item The amount of glue that are inserted between a \textbf{JAchar} and - an \textbf{ALchar} (the parameter \Param{xkanjiskip}) is set to + an \textbf{ALchar} (the parameter \Param{\hyperlink{fld:xks}{xkanjiskip}}) is set to % %<*ja> -\item \textbf{JAchar}と\textbf{ALchar}の間に入るグルー(\Param{xkanjiskip})の +\item \textbf{JAchar}と\textbf{ALchar}の間に入るグルー(\Param{\hyperlink{fld:xks}{xkanjiskip}})の 量は次のように設定されている: % +%<*zh> +\item 在\textbf{JAchar}和\textbf{ALchar}之间插入的胶(\textsf{xkanjiskip}参数)大小为: +% \[ (0.25\cdot 0.962216\cdot 10\,\mathrm{pt})^{+1\,\text{pt}}_{-1\,\text{pt}} = 2.40554\,\mathrm{pt}^{+1\,\text{pt}}_{-1\,\text{pt}}. @@ -682,6 +1002,7 @@ This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese doc %\subsection{Using in \LaTeX} %\subsection{\LaTeX で使う} +%\subsection{\LaTeX 下使用} \label{ssec-ltx} \paragraph{\LaTeXe} @@ -694,6 +1015,9 @@ for Japanese, you only have to load \texttt{luatexja.sty}: \LaTeXe を用いる場合も基本的には同じである.日本語組版のための最低限の環境を 設定するためには,\texttt{luatexja.sty}を読み込むだけでよい: % +%<*zh> +在\LaTeXe 下使用基本相同。设定日文的最小环境,你只需加载\texttt{luatexja.sty}: +% \begin{verbatim} \usepackage{luatexja} \end{verbatim} @@ -705,6 +1029,9 @@ plfonts.dtx} and \texttt{pldefs.ltx}): これで\pLaTeX の\texttt{plfonts.dtx}と\texttt{pldefs.ltx}に相当する最低限の設定が なされる: % +%<*zh> +这些做了最小的设定(作用相当于\pLaTeX 中的\texttt{plfonts.dtx}和\texttt{pldefs.ltx}): +% \begin{itemize} %<*en> @@ -716,10 +1043,14 @@ When vertical typesetting is supported by \LuaTeX-ja in the future, \texttt{JT3} 将来的に,\LuaTeX-jaで縦書きがサポートされる際には,\texttt{JT3}を縦書き用として 用いる予定である. % +%<*zh> +\item \texttt{JY3}是日文字体编码(在水平方向)。\\ +在将来\LuaTeX-ja要支持直行排版的时候,\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 @@ -734,7 +1065,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 @@ -748,6 +1079,21 @@ and GothicBBB-Medium) in early years of DTP. Ryumin-Light, GothicBBB-Mediumだった)しか利用できなかった時の名残であり,\pLaTeX{} での標準設定とも同じである. % +%<*zh> +\item 定义了两个字体族:\texttt{mc}!和\texttt{gt}:\\ +\begin{center}\small + \begin{tabular}{ccccc} + \hline + \textbf{字体}&\textbf{字体族}&\verb!\mdseries!&\verb!\bfseries!&缩放率\\ + \hline + \textit{mincho}&\verb!mc!&Ryumin-Light&GothicBBB-Medium&0.962216\\ + \textit{gothic}&\verb!gt!&GothicBBB-Medium&GothicBBB-Medium&0.962216\\ + \hline + \end{tabular} +\end{center} +注意的是两个字体族的粗体系列同为中等系列的\textbf{哥特}族。这\pLaTeX 中的规定。在近些年 +中的DTP实务中有仅使用2个字体的趋向(是为Ryumin-Light和GothicBBB-Medium)。 +% %<*en> \item Japanese characters in math mode are typeset by the font family \texttt{mc}. @@ -755,6 +1101,9 @@ Ryumin-Light, GothicBBB-Mediumだった)しか利用できなかった時の %<*ja> \item 数式モード中の和文文字は\texttt{mc}ファミリで出力される. % +%<*zh> +\item 在数学模式下,日文字符使用\verb!mc!字体族来排印。 +% \end{itemize} %<*en> @@ -773,34 +1122,167 @@ Okumura), namely, \Pkg{ltjclasses} and \Pkg{ltjsclasses}. (奥村晴彦氏によるクラスファイル)に対応するものとして,\Pkg{ltjclasses}, \Pkg{ltjsclasses}がそれぞれ用意されている. % +%<*zh> +不过,上述设定并不能满足排版基于日文的文档。为了排印基于日文的文 +档,你最好不要使用\texttt{article.cls},\texttt{book.cls}等文档类文件。 +现在,我们有相当于\Pkg{jclasses}(\pLaTeX 标准文档类)和\Pkg{jsclasses} +(奥村晴彦)的文档类,即\Pkg{ltjclasses}和\Pkg{ltjsclasses}。 +% + +%\section{Changing Fonts} +%\section{フォントの変更} +%\section{字体更改} +\subsection{plain \TeX~and~\LaTeXe} +\label{ssub-chgfnt} + +\paragraph{plain \TeX} %<*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. +To change Japanese fonts in plain \TeX, you must use the primitive +\verb+\jfont+. So please see Subsection~\ref{ssec-jfont}. % %<*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}パッケージ -を読み込めばよい. +plain \TeX で和文フォントを変更するためには,\verb+\jfont+ プリミティブを直接用いる. +\ref{ssec-jfont}節を参照. % +%<*zh> +在plain \TeX 下改变日文字体,你必须使用基本语句\verb!\jfont!。请参见\ref{ssec-jfont}。 +% -\begin{LTXexample} -森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。 +\paragraph{\LaTeXe\ (NFSS2)} +%<*en> +For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (in \texttt{plfonts.dtx}). +% +%<*ja> +\LaTeXe については,\LuaTeX-jaではフォント選択システムを\pLaTeXe\ (\texttt{plfonts.dtx}) +の大部分をそのまま採用している. +% +%<*zh> +对于\LaTeXe,\LuaTeX-ja采用了\pLaTeXe 中(即\texttt{plfonts.dtx})大部分字体选择系统。 +% +\begin{itemize} +%<*en> +\item Two control sequences \verb+\mcdefault+ and \verb+\gtdefault+ are + used to specify the default font families for \emph{mincho} and + \emph{gothic}, respectively. Default values: \texttt{mc} for + \verb+\mcdefault+ and \texttt{gt} for \verb+\gtdefault+. +% +%<*ja> +\item 2つのコントロールシーケンス \verb+\mcdefault+ と \verb+\gtdefault+ がそれぞ + れ明朝体とゴシック体のデフォルトのフォントファミリを指定するために用いられる. + 初期値:\verb+\mcdefault+ は\texttt{mc},\verb+\gtdefault+ は\texttt{gt}. +% +%<*zh> +\item \verb!\mcdefault!和\verb!\gtdefault!控制语句用来分别控制默认的\textit{mincho}和\textit{gothic}字体族。 + 默认值:\texttt{mc}用于\verb!\mcdefault!,\texttt{gt}用于\verb!\gtdefault!。 +% +%<*en> +\item Commands \verb+\fontfamily+, \verb+\fontseries+, + \verb+\fontshape+ and \verb+\selectfont+ can be used to change + attributes of Japanese fonts. +% +%<*ja> +\item \verb+\fontfamily+, \verb+\fontseries+, \verb+\fontshape+, そして + \verb+\selectfont+ が和文フォントの属性を変更するために使用できる. +% +%<*zh> +\item 命令\verb!\fontfamily!,\verb!\fontseries!,\verb!\fontshape!个\verb!\selectfont!用来改变日文字体属性。 +% -\CID{7652}飾区の\CID{13706}野家, -葛飾区の吉野家 -\end{LTXexample} +%<*en> +\begin{center}\small +\begin{tabular}{cccccc} +\toprule +&\textbf{encoding}&\textbf{family}&\textbf{series}&\textbf{shape}&\textbf{selection}\\\midrule +alphabetic fonts +&\verb+\romanencoding+&\verb+\romanfamily+&\verb+\romanseries+&\verb+\romanshape+ +&\verb+\useroman+\\ +Japanese fonts +&\verb+\kanjiencoding+&\verb+\kanjifamily+&\verb+\kanjiseries+&\verb+\kanjishape+ +&\verb+\usekanji+\\ +both&---&--&\verb+\fontseries+&\verb+\fontshape+&---\\ +auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ +\bottomrule +\end{tabular} +\end{center} +% +%<*ja> +\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+&---\\ +自動選択&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ +\bottomrule +\end{tabular} +\end{center} +% +%<*zh> +\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+&---\\ +自动选择&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ +\bottomrule +\end{tabular} +\end{center} +% -%\subsection{Changing Fonts} -%\subsection{フォントの変更} -\label{ssub-chgfnt} +%<*en> + \verb+\fontencoding{}+ changes the encoding of alphabetic fonts + or Japanese fonts depending on the argument. For example, + \verb+\fontencoding{JY3}+ changes the encoding of Japanese fonts to + \texttt{JY3} and \verb+\fontencoding{T1}+ changes the encoding of + alphabetic fonts to \texttt{T1}. + \verb+\fontfamily+ also changes the family of Japanese fonts, alphabetic + fonts, \emph{or both}. For detail, see Subsection~\ref{ssub-nfsspat}. +% +%<*ja> + ここで,\verb+\fontencoding{}+ は,引数により和文側か欧文 + 側かのどちらかのエンコーディングを変更する.例えば, + \verb+\fontencoding{JY3}+ は和文フォントのエンコーディングを + \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を + \texttt{T1}へと変更する.\verb+\fontfamily+ も引数により和文側,欧文 + 側,\textbf{あるいは両方}のフォントファミリを変更する.詳細は + \ref{ssub-nfsspat}節を参照すること. +% +%<*zh> + \verb!\fontencoding{}!依赖于参数以改变西文字体或者日文字体。 + 例如,\verb!\fontencoding{JY3}!改变当前日文字体至\texttt{JY3}, + \verb!\fontencoding{T1}!改变西文字体至\texttt{T1}。 + \verb!\fontfamily!也会改变日文字体或西文字体的族,抑或二者。 + 细节详见\ref{ssub-nfsspat}。 +% + +%<*en> +\item For defining a Japanese font family, use + \verb+\DeclareKanjiFamily+ instead of + \verb+\DeclareFontFamily+. However, in the present implementation, + using \verb+\DeclareFontFamily+ doesn't cause any problem. +% +%<*ja> +\item 和文フォントファミリの定義には \verb+\DeclareFontFamily+ の + 代わりに \verb+\DeclareKanjiFamily+ を用いる.しかし,現在の + 実装では \verb+\DeclareFontFamily+ を用いても問題は生じない. +% +%<*zh> +\item 对于定义日文字体族,使用\verb!\DeclareKanjiFamily!代替\verb!\DeclareFontFamily!。 + 不过,在现在的实现中,使用\verb!\DeclareFontFamily!不会引起任何问题。 +% +\end{itemize} %<*en> \paragraph{Remark: Japanese Characters in Math Mode} @@ -808,10 +1290,15 @@ Since \pTeX\ supports Japanese characters in math mode, there are sources like the following: % %<*ja> -\paragraph{意見:数式モード中の和文文字} +\paragraph{注意:数式モード中の和文文字} \pTeX では,特に何もしないでも数式中に和文文字を記述することができた.そのため, 以下のようなソースが見られた: % +%<*zh> +\paragraph{注记:数学模式下的日文字符} +\pTeX 支持在数学模式下的日文字符,如以下源码: +% + \begin{LTXexample} $f_{高温}$~($f_{\text{high temperature}}$). \[ y=(x-1)^2+2\quad よって\quad y>0 \] @@ -827,6 +1314,9 @@ In this point of view, ときのみ許されると考えている. この観点から, % +%<*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 @@ -836,12 +1326,18 @@ In this point of view, \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: @@ -850,6 +1346,9 @@ Hence, in our opinion, the above input should be corrected as: したがって,\LuaTeX-jaプロジェクトの意見としては,上記の入力は次のように直されるべき である: % +%<*zh> +那么,根据我们的观点,上述输入应当校正为: +% \begin{LTXexample} $f_{\text{高温}}$~% ($f_{\text{high temperature}}$). @@ -868,198 +1367,511 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}. と考えており,したがってこの節では数式モード中の和文フォントを変更する方法については 記述しない.この方法については\ref{ssec-math}節を参照のこと. % +%<*zh> +我们也认为使用日文字符作为标识符的情况极为少见,所以我们不在此章节描述如何在数学模式下改变日文字体。 +关于此方法,请参见\ref{ssec-math}。 +% +\subsection{fontspec} +\label{ssec-fontspec} %<*en> -\paragraph{plain \TeX} -To change Japanese fonts in plain \TeX, you must use the primitive -\verb+\jfont+. So please see Subsection~\ref{ssec-jfont}. +To coexist with the \Pkg{fontspec} package, it is needed to load +\Pkg{luatexja-fontspec} package in the preamble. This additional +package automatically loads \Pkg{luatexja} and \Pkg{fontspec} +package, if needed. % %<*ja> -\paragraph{plain \TeX} -plain \TeX で和文フォントを変更するためには,\verb+\jfont+ プリミティブを用いなけれ -ばならない.\ref{ssec-jfont}節を参照. +\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いるためには, +\Pkg{luatexja-fontspec}パッケージをプリアンブルで読み込む必要がある.このパッケージ +は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. % +%<*zh> +为与\Pkg{fontspec}宏包共存,需要在导言区中使用\Pkg{luatexja-fontspec}宏包。 +这个附加宏包会自动加载\Pkg{luatexja}和\Pkg{fontspec}。 +% %<*en> -\paragraph{NFSS2} -For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (in \texttt{plfonts.dtx}). +In \Pkg{luatexja-fontspec} package, the following 7~commands are defined as +counterparts of original commands in the \Pkg{fontspec} package: % %<*ja> -\paragraph{NFSS2} -\LaTeXe については,\LuaTeX-jaではフォント選択システムを\pLaTeXe\ (\texttt{plfonts.dtx}) -の大部分をそのまま採用している. +\Pkg{luatexja-fontspec}パッケージでは,以下の7つのコマンドを\Pkg{fontspec} +パッケージの元のコマンドに対応するものとして定義している: % -\begin{itemize} +%<*zh> +在\Pkg{luatexja-fontspec}中,定义了如下七条命令,这些命令和\Pkg{fontspec}的相关命令对比如下: +% %<*en> -\item Two control sequences \verb+\mcdefault+ and \verb+\gtdefault+ are - used to specify the default font families for \emph{mincho} and - \emph{gothic}, respectively. Default values: \texttt{mc} for - \verb+\mcdefault+ and \texttt{gt} for \verb+\gtdefault+. +\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> -\item 2つのコントロールシーケンス \verb+\mcdefault+ と \verb+\gtdefault+ がそれぞ - れ明朝体とゴシック体のデフォルトのフォントファミリを指定するために用いられる. - 初期値:\verb+\mcdefault+ は\texttt{mc},\verb+\gtdefault+ は\texttt{gt}. +\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> -\item Commands \verb+\fontfamily+, \verb+\fontseries+, - \verb+\fontshape+ and \verb+\selectfont+ can be used to change - attributes of Japanese fonts. +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> -\item \verb+\fontfamily+, \verb+\fontseries+, \verb+\fontshape+, そして - \verb+\selectfont+ が和文フォントの属性を変更するために使用できる. +よく使われている和文フォント設定を一行で指定できるようにしたのが +\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> -\begin{center} -\begin{tabular}{cccccc} -\toprule -&\textbf{encoding}&\textbf{family}&\textbf{series}&\textbf{shape}&\textbf{selection}\\\midrule -alphabetic fonts -&\verb+\romanencoding+&\verb+\romanfamily+&\verb+\romanseries+&\verb+\romanshape+ -&\verb+\useroman+\\ -Japanese fonts -&\verb+\kanjiencoding+&\verb+\kanjifamily+&\verb+\kanjiseries+&\verb+\kanjishape+ -&\verb+\usekanji+\\ -both&---&--&\verb+\fontseries+&\verb+\fontshape+&---\\ -auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ -\bottomrule -\end{tabular} -\end{center} +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> -\begin{center} -\begin{tabular}{cccccc} +明朝体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 fonts with 90JIS glyphs if possible. +% +%<*ja> +出来る限り90JISの字形を採用しているフォントを使う. +% +\item[jis2004] +%<*en> +Use fonts with JIS2004 glyphs if possible. +% +%<*ja> +出来る限りJIS2004の字形を採用しているフォントを使う. +% +\item[jis] +%<*en> +Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of +\LuaTeX-ja. +% +%<*ja> +用いるJFMを(JISフォントメトリック類似の)\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 -&\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+&---\\ -自動選択&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ +&\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> - \verb+\fontencoding{}+ changes the encoding of alphabetic fonts - or Japanese fonts depending on the argument. For example, - \verb+\fontencoding{JY3}+ changes the encoding of Japanese fonts to - \texttt{JY3} and \verb+\fontencoding{T1}+ changes the encoding of - alphabetic fonts to \texttt{T1}. - \verb+\fontfamily+ also changes the family of Japanese fonts, alphabetic - fonts, \emph{or both}. For detail, see Subsection~\ref{ssub-nfsspat}. +Settings for Hiragino fonts: % %<*ja> - ここで,\verb+\fontencoding{}+ は,引数により和文側か欧文 - 側かのどちらかのエンコーディングを変更する.例えば, - \verb+\fontencoding{JY3}+ は和文フォントのエンコーディングを - \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を - \texttt{T1}へと変更する.\verb+\fontfamily+ も引数により和文側,欧文 - 側,\textbf{あるいは両方}のフォントファミリを変更する.詳細は - \ref{ssub-nfsspat}節を参照すること. +まずヒラギノフォントから: % - +% これらは持っているわけではないので,フォント名が +% 異なっているかもしれません.確認お願いします. +\begin{center}\small +\begin{tabular}{lll} +\toprule +&\tt hiragino&\tt hiraginon\\ +\midrule %<*en> -\item For defining a Japanese font family, use - \verb+\DeclareKanjiFamily+ instead of - \verb+\DeclareFontFamily+. However, in the present implementation, - using \verb+\DeclareFontFamily+ doesn't cause any problem. -% -%<*ja> -\item 和文フォントファミリの定義には \verb+\DeclareFontFamily+ の - 代わりに \verb+\DeclareKanjiFamily+ を用いる.しかし,現在の - 実装では \verb+\DeclareFontFamily+ を用いても問題は生じない. +\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\\ % -\end{itemize} - -\subsection{fontspec} -\label{ssec-fontspec} +\bottomrule +\end{tabular} +\end{center} %<*en> -To coexist with the \Pkg{fontspec} package, it is needed to load -\Pkg{luatexja-fontspec} package in the preamble. This additional -package automatically loads \Pkg{luatexja} and \Pkg{fontspec} -package, if needed. +Settings for Morisawa fonts: % %<*ja> -\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いるためには, -\Pkg{luatexja-fontspec}パッケージをプリアンブルで読み込む必要がある.このパッケージ -は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. +次はモリサワフォントを用いる設定である: +% +\begin{center}\small +\begin{tabular}{lll} +\toprule +&\tt morisawa4&\tt morisawa6n\\ +\midrule +%<*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> -In \Pkg{luatexja-fontspec} package, the following 7~commands are defined as -counterparts of original commands in the \Pkg{fontspec} package: +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> -\Pkg{luatexja-fontspec}パッケージでは,以下の7つのコマンドを\Pkg{fontspec} -パッケージの元のコマンドに対応するものとして定義している: +次に,単ウェイト用の設定を述べる.この4設定では「細字」「太字」の区別はない. +また,丸ゴシック体はゴシック体と同じフォントを用いる. % -%<*en> -\begin{center} -\begin{tabular}{ccccc} +\begin{center}\small +\begin{tabular}{lllll} \toprule -Japanese fonts -&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ -alphabetic fonts -&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\ \midrule -Japanese fonts -&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+\\ -alphabetic fonts -&\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> -\begin{center} -\begin{tabular}{ccccc} +すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って +多ウェイト化した設定もある. +% +\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} +%<*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} +として指定を行っているので注意すること. % + +%<*en> +\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> +\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> +\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} -\fontspec[Numbers=OldStyle]{TeX Gyre Termes} -\jfontspec{IPAexMincho} -JIS~X~0213:2004→辻 +森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。 -\addjfontfeatures{CJKShape=JIS1990} -JIS~X~0208:1990→辻 +\CID{7652}飾区の\CID{13706}野家, +葛飾区の吉野家 \end{LTXexample} +%<*zh> +\egroup +% -%<*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}節を参照). +\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{变量更改} %<*en> There are many parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX, @@ -1074,9 +1886,15 @@ parameters, you have to use commands \verb+\ltjsetparameter+ and そのため,これらのパラメータを設定・取得するためには \verb+\ltjsetparameter+ と \verb+\ltjgetparameter+ を 用いる必要がある. % +%<*zh> +\LuaTeX-ja包含大量的参数,以控制排版细节。 +设定这些参数需要使用命令:\verb!\ltjsetparameter!和\verb!\ltjgetparameter!命令。 +% %\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 @@ -1091,8 +1909,13 @@ and the character `漢' to the range number~100. 例えば,次のように書くことで追加漢字面(SIP)にある全ての文字と`漢'が 「100番の文字範囲」に属するように設定される. % +%<*zh> +在设定\textbf{JAchar}之前,需要分配一个小于217的自然数。 +这个可以由\verb!\ltjdefcharrange!基本语句来完成。例如, +下面就分配了整个表意文字补充平面和汉字“漢”为100。 +% \begin{lstlisting} -\ltjdefcharrange{100}{"10000-"1FFFF,`漢} +\ltjdefcharrange{100}{"20000-"2FFFF,`漢} \end{lstlisting} %<*en> This assignment of numbers to ranges are always global, so you should @@ -1102,6 +1925,9 @@ not do this in the middle of a document. この文字範囲の割り当ては常にグローバルであり,したがって文書の途中で この操作をするべきではない. % +%<*zh> +范围数的分配是全局的,故你不可在文档中使用。 +% %<*en> If some character has been belonged to some non-zero numbered range, @@ -1115,6 +1941,11 @@ removed from the range~4. 上書きされる.例えば,SIPは全て\LuaTeX-jaのデフォルトでは4番の文字範囲に 属しているが,上記の指定を行えばSIPは100番に属すようになり,4番からは除かれる. % +%<*zh> +如果某些字符被改变为新的非零数范围,将会被新设定重写。 +例如,整个SIP在\LuaTeX-ja默认设定中属于范围4,如果你使用如上设定, +SIP将会被设定为范围100,且从范围4种移除。 +% %<*en> After assigning numbers to ranges, the \textsf{jacharrange} parameter can @@ -1127,6 +1958,10 @@ setting of \LuaTeX-ja): して扱われる文字の範囲を設定するために用いられる.例えば,以下は\LuaTeX-jaの 初期設定である: % +%<*zh> +分配了范围数之后,\textsf{jacharrange}参数将用于设定字符范围为\textbf{JAchar}, +如下(为\LuaTeX-ja默认设定): +% \begin{verbatim} \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}} \end{verbatim} @@ -1141,6 +1976,11 @@ that `the characters that belong to range~$n$ are treated as \textbf{JAchar}'. リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として 扱われる」ことを意味し,正の整数$+n$は\textbf{JAchar}として扱うことを意味する. % +%<*zh> +\textsf{jacharrange}参数的变量未整数数组。 +负数$-n$在数组中表示“字符范围$n$中的字符被视作\textbf{ALchar}”, +正数$+n$则表示“字符范围$n$被视作\textbf{JAchar}”。 +% %<*en> \paragraph{Default Setting} @@ -1152,6 +1992,10 @@ determined from the following data: \LuaTeX-jaでは8つの文字範囲を設定している.これらは以下のデータに基づいて決定して いる. % +%<*zh> +\paragraph{默认设定} +\LuaTeX-ja默认设定了8个字符范围。如下设定: +% \begin{itemize} %<*en> \item Blocks in Unicode~6.0. @@ -1159,6 +2003,9 @@ determined from the following data: %<*ja> \item Unicode~6.0のブロック. % +%<*zh> +\item Unicode~6.0区块 +% %<*en> \item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode. % @@ -1166,12 +2013,18 @@ determined from the following data: \item \texttt{Adobe-Japan1-UCS2}によるAdobe-Japan1-6のCIDとUnicodeの間の マッピング. % +%<*zh> +\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 八登崇之的\Pkg{PXbase}宏包(\upTeX 下使用)。 +% \end{itemize} %<*en> @@ -1185,6 +2038,10 @@ number shows whether characters in the range is treated as はデフォルトで\textbf{JAchar}か\textbf{ALchar}かを表している.これらの設定は \texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものである. % +%<*zh> +现在我们描述8个字符范围。在数字后的“J”和“A”表明代表\textbf{JAchar}或者未跟随默认设定。 +这些设定类似于\texttt{PXbase}中的\texttt{prefercjk}设定。 +% \begin{description} %<*en> \item[Range~8${}^{\text{J}}$] Symbols in the intersection of the upper half of ISO~8859-1 @@ -1196,6 +2053,9 @@ number shows whether characters in the range is treated as JIS~X~0208の共通部分にある記号.この文字範囲は 以下の文字で構成される: % +%<*zh> +\item[范围8${}^\text{J}$] ISO 8859-1(Latin-1补充)的上半部和JIS X 0208(日文基本字符集)的重叠部分,包含下列字符: +% \begin{multicols}{2} \begin{itemize} \def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%" @@ -1219,6 +2079,16 @@ number shows whether characters in the range is treated as \ch{D7}{乗算記号} \ch{F7}{除算記号} % +%<*zh> +\ch{A7}{分节符} +\ch{A8}{分音符} +\ch{B0}{温度符号} +\ch{B1}{加减符号} +\ch{B4}{置位尖音} +\ch{B6}{段落符号} +\ch{D7}{乘号} +\ch{F7}{除号} +% \end{itemize} \end{multicols} @@ -1231,6 +2101,10 @@ This range consist of the following Unicode ranges, \emph{except characters in t この範囲は以下のUnicodeのブロックから構成されている. \textbf{ただし,範囲8は除く.} % +%<*zh> +\item[范围1${}^\text{A}$] 包含于Adobe-Japan1-6中的拉丁字符,此范围包含下列 + Unicode区域,但\textbf{不包括上述提到过的范围8}: +% \begin{multicols}{2} \begin{itemize} %<*en> @@ -1248,9 +2122,18 @@ This range consist of the following Unicode ranges, \emph{except characters in t \item \texttt{U+0180}--\texttt{U+024F}: ラテン文字拡張B \item \texttt{U+0250}--\texttt{U+02AF}: IPA拡張(国際音声記号) \item \texttt{U+02B0}--\texttt{U+02FF}: 前進を伴う修飾文字 -\item \texttt{U+0300}--\texttt{U+036F}: ダイアクリティカルマーク(合成可能) +\item \texttt{U+0300}--\texttt{U+036F}: 合成可能な識別記号 \item \texttt{U+1E00}--\texttt{U+1EFF}: ラテン文字拡張追加 % +%<*zh> +\item \texttt{U+0080}--\texttt{U+00FF}: 拉丁字母补充-1 +\item \texttt{U+0100}--\texttt{U+017F}: 拉丁字母扩充-A +\item \texttt{U+0180}--\texttt{U+024F}: 拉丁字母扩充-B +\item \texttt{U+0250}--\texttt{U+02AF}: 国际音标扩充 +\item \texttt{U+02B0}--\texttt{U+02FF}: 进格修饰符元 +\item \texttt{U+0300}--\texttt{U+036F}: 组合音标附加符号 +\item \texttt{U+1E00}--\texttt{U+1EFF}: 拉丁字母扩充附加 +% \par\ \end{itemize} \end{multicols} @@ -1259,9 +2142,12 @@ This range consist of the following Unicode ranges, \emph{except characters in t fonts) has some of these characters. % %<*ja> -\item[範囲2${}^{\text{J}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがって多くの +\item[範囲2${}^{\text{J}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの 和文フォント)はこれらの文字を持つ. % +%<*zh> +\item[范围2${}^\text{J}$] 希腊文和西里尔字母,使用JIS X 0208的大部分日文字体包含这些字符: +% \begin{multicols}{2} \begin{itemize} %<*en> @@ -1270,10 +2156,15 @@ This range consist of the following Unicode ranges, \emph{except characters in t \item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended % %<*ja> -\item \texttt{U+0370}--\texttt{U+03FF}: ギリシア文字及びコプト文字 +\item \texttt{U+0370}--\texttt{U+03FF}: ギリシア文字・コプト文字 \item \texttt{U+0400}--\texttt{U+04FF}: キリル文字 \item \texttt{U+1F00}--\texttt{U+1FFF}: キリル文字補助 % +%<*zh> +\item \texttt{U+0370}--\texttt{U+03FF}: 希腊字母 +\item \texttt{U+0400}--\texttt{U+04FF}: 西里尔字母 +\item \texttt{U+1F00}--\texttt{U+1FFF}: 希腊文扩充 +% \\\ \end{itemize} \end{multicols} @@ -1285,6 +2176,9 @@ This range consist of the following Unicode ranges, \emph{except characters in t \item[範囲3${}^{\text{J}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}% に示してある. % +%<*zh> +\item[范围3${}^\text{J}$] 标点以及杂项符号,参见表\ref{table-rng3}。 +% \begin{table}[!tb] %<*en> \caption{Unicode blocks in predefined character range~3.} @@ -1292,6 +2186,9 @@ This range consist of the following Unicode ranges, \emph{except characters in t %<*ja> \caption{文字範囲3に指定されているUnicodeブロック.} % +%<*zh> +\caption{字符范围3定义的Unicode范围} +% \label{table-rng3} \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \begin{center}\small @@ -1338,6 +2235,27 @@ This range consist of the following Unicode ranges, \emph{except characters in t "2B00--"2BFF&その他の記号及び矢印\\ "E000--"F8FF&私用領域(外字領域)& % +%<*zh> +"2000--"206F&一般标点符号& +"2070--"209F&上标及下标\\ +"20A0--"20CF&货币符号& +"20D0--"20FF& 符号用组合附加符号\\ +"2100--"214F&类字母符号& +"2150--"218F&数字形式\\ +"2190--"21FF&箭头符号& +"2200--"22FF&数学运算符号\\ +"2300--"23FF&杂项技术符号& +"2400--"243F&控制图像\\ +"2500--"257F&制表符& +"2580--"259F&区块元素\\ +"25A0--"25FF&几何形状& +"2600--"26FF&杂项符号\\ +"2700--"27BF&什锦符号& +"2900--"297F&补充性箭头-B\\ +"2980--"29FF&混合数学符号-B& +"2B00--"2BFF&杂项符号和箭头符号\\ +"E000--"F8FF&私用区域& +% \end{tabular} \end{center} \end{table} @@ -1353,6 +2271,10 @@ This range consist of the following Unicode ranges, \emph{except characters in t で構成されている.したがって,ブロックのリストを示す 代わりに,範囲の定義そのものを示す: % +%<*zh> +\item[范围4${}^\text{A}$] 通常情况下不包含于日文字体的部分。本范围包含有其他 +范围尚未涵盖部分。故,我们直接给出定义: +% \begin{lstlisting} \ltjdefcharrange{4}{% "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, @@ -1365,6 +2287,9 @@ This range consist of the following Unicode ranges, \emph{except characters in t %<*ja> \item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域. % +%<*zh> +\item[范围5${}^\text{A}$] 代替以及补充私有使用区域。 +% %<*en> \item[Range~6${}^{\text{J}}$] Characters used in Japanese. The block list is indicated in Table~\ref{table-rng6}. % @@ -1372,6 +2297,9 @@ This range consist of the following Unicode ranges, \emph{except characters in t \item[範囲6${}^{\text{J}}$] 日本語で用いられる文字.ブロックのリストは 表\ref{table-rng6}に示す. % +%<*zh> +\item[范围6${}^\text{J}$] 日文字符。 +% \begin{table}[!tb] %<*en> \caption{Unicode blocks in predefined character range~6.} @@ -1379,6 +2307,9 @@ This range consist of the following Unicode ranges, \emph{except characters in t %<*ja> \caption{文字範囲6に指定されているUnicodeブロック.} % +%<*zh> +\caption{字符范围6定义的Unicode范围} +% \label{table-rng6} \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \begin{center}\small @@ -1419,6 +2350,24 @@ This range consist of the following Unicode ranges, \emph{except characters in t "FE50--"FE6F&小字形& "{20}000--"{2F}FFF&(追加漢字面) % +%<*zh> +"2460--"24FF&圈状字母数字& +"2E80--"2EFF&CJK部首补充\\ +"3000--"303F&CJK标点符号& +"3040--"309F&平假名\\ +"30A0--"30FF&片假名& +"3190--"319F&汉文标注号\\ +"31F0--"31FF&片假名音标补充& +"3200--"32FF&圈状CJK字母及月份\\ +"3300--"33FF&CJK兼容& +"3400--"4DBF&CJK统一表意文字扩充A\\ +"4E00--"9FFF&CJK统一表意文字& +"F900--"FAFF&CJK兼容表意文字\\ +"FE10--"FE1F&直行标点& +"FE30--"FE4F&CJK兼容形式\\ +"FE50--"FE6F&小写变体& +"{20}000--"{2F}FFF&(补充字符) +% \end{tabular} \end{center} \end{table} @@ -1431,6 +2380,9 @@ The block list is indicated in Table~\ref{table-rng7}. 含まれていないもの. ブロックのリストは表\ref{table-rng7}に示す. % +%<*zh> +\item[范围7${}^\text{J}$] 不包含于Adobe-Japan1-6的CJK字符,参见表\ref{table-rng7}。 +% \begin{table}[!tb] %<*en> \caption{Unicode blocks in predefined character range~7.} @@ -1438,6 +2390,9 @@ The block list is indicated in Table~\ref{table-rng7}. %<*ja> \caption{文字範囲7に指定されているUnicodeブロック.} % +%<*zh> +\caption{字符范围7定义的Unicode范围} +% \label{table-rng7} \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \begin{center}\small @@ -1470,6 +2425,20 @@ The block list is indicated in Table~\ref{table-rng7}. "AC00--"D7AF&ハングル音節文字& "D7B0--"D7FF&ハングル字母拡張B % +%<*zh> +"1100--"11FF&谚文字母& +"2F00--"2FDF&康熙部首\\ +"2FF0--"2FFF&汉字结构描述字符& +"3100--"312F&注音字母\\ +"3130--"318F&谚文兼容字母& +"31A0--"31BF&注音字母扩充\\ +"31C0--"31EF&CJK笔划& +"A000--"A48F&彝文音节\\ +"A490--"A4CF&彝文字母& +"A830--"A83F&一般印度数字\\ +"AC00--"D7AF&谚文音节& +"D7B0--"D7FF&谚文字母扩充-B +% \end{tabular} \end{center} \end{table} @@ -1478,6 +2447,7 @@ The block list is indicated in Table~\ref{table-rng7}. %\subsection{\Param{kanjiskip} and \Param{xkanjiskip}} %\subsection{\Param{kanjiskip}と\Param{xkanjiskip}} +%\subsection{\Param{kanjiskip}和\Param{xkanjiskip}} \label{subs-kskip} %<*en> @@ -1486,6 +2456,9 @@ The block list is indicated in Table~\ref{table-rng7}. %<*ja> \textbf{JAglue}は以下の3つのカテゴリに分類される: % +%<*zh> +\textbf{JAglue}分为以下三个范畴: +% \begin{itemize} %<*en> \item Glues/kerns specified in JFM. If \verb+\inhibitglue+ is issued @@ -1496,67 +2469,90 @@ The block list is indicated in Table~\ref{table-rng7}. \item JFMで指定されたグルー/カーン.もし \verb+\inhibitglue+ が和文文字の周りで 発行されていれば,このグルーは挿入されない. % +%<*zh> +\item JFM设定的胶或出格值。如果在一个日文字符附近使用\verb!\inhibitglue!,则胶便不会插入。 +% %<*en> \item The default glue which inserted between two \textbf{JAchar}s (\Param{% kanjiskip}). % %<*ja> -\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}). +\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}). % +%<*zh> +\item 两个\textbf{JAchar}之间默认插入的胶(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}})。 +% %<*en> \item The default glue which inserted between a \textbf{JAchar} and an - \textbf{ALchar} (\Param{xkanjiskip}). + \textbf{ALchar} (\Param{\hyperlink{fld:xks}{xkanjiskip}}). % %<*ja> -\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{xkanjiskip}). +\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{\hyperlink{fld:xks}{xkanjiskip}}). % +%<*zh> +\item \textbf{JAchar}和\textbf{ALchar}之间默认插入的胶(\Param{\hyperlink{fld:xks}{xkanjiskip}})。 +% \end{itemize} %<*en> -The value (a skip) of \Param{kanjiskip} or \Param{xkanjiskip} can be +The value (a skip) of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} or \Param{\hyperlink{fld:xks}{xkanjiskip}} can be changed as the following. % %<*ja> -\Param{kanjiskip}や\Param{xkanjiskip}の値は以下のようにして変更可能である. +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}や\Param{\hyperlink{fld:xks}{xkanjiskip}}の値は以下のようにして変更可能である. % +%<*zh> +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}和\Param{\hyperlink{fld:xks}{xkanjiskip}}的设定如下所示: +% \begin{lstlisting} \ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt}, xkanjiskip={0.25\zw plus 1pt minus 1pt}} \end{lstlisting} %<*en> -It may occur that JFM contains the data of `ideal width of \Param{kanjiskip}' -and/or `ideal width of \Param{xkanjiskip}'. -To use these data from JFM, set the value of \Param{kanjiskip} or -\Param{xkanjiskip} to \verb+\maxdimen+. +It may occur that JFM contains the data of `ideal width of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}' +and/or `ideal width of \Param{\hyperlink{fld:xks}{xkanjiskip}}'. +To use these data from JFM, set the value of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} or +\Param{\hyperlink{fld:xks}{xkanjiskip}} to \verb+\maxdimen+. % %<*ja> -JFMは「望ましい\Param{kanjiskip}の値」や「望ましい\Param{xkanjiskip}の値」を +JFMは「望ましい\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値」や「望ましい\Param{\hyperlink{fld:xks}{xkanjiskip}}の値」を 持っていることがある. -これらのデータを使うためには,\Param{kanjiskip}や\Param{xkanjiskip}の +これらのデータを使うためには,\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}や\Param{\hyperlink{fld:xks}{xkanjiskip}}の 値を \verb+\maxdimen+ の値に設定すればよい. % +%<*zh> +当JFM包含“\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}理想宽度”和/或“\Param{\hyperlink{fld:xks}{xkanjiskip}}理想宽度”数据时, +上述设定产生作用。如果想用JFM中的数据,请设定\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}或\textsf{xkanjiskip}为\verb!\maxdimen!。 +% %\subsection{Insertion Setting of \Param{xkanjiskip}} -%\subsection{\Param{xkanjiskip} の設定の挿入} +%\subsection{\Param{xkanjiskip} の挿入設定} +%\subsection{\Param{xkanjiskip}插入设定} %<*en> -It is not desirable that \Param{xkanjiskip} is inserted into every +It is not desirable that \Param{\hyperlink{fld:xks}{xkanjiskip}} is inserted into every boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example, -\Param{xkanjiskip} should not be inserted after opening parenthesis +\Param{\hyperlink{fld:xks}{xkanjiskip}} should not be inserted after opening parenthesis (\textit{e.g.}, compare `(あ' and `(\hskip\ltjgetparameter{xkanjiskip}あ'). -\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted +\LuaTeX-ja can control whether \Param{\hyperlink{fld:xks}{xkanjiskip}} can be inserted before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and \Param{alxspmode} parameters \textbf{ALchar}s respectively. % %<*ja> -\Param{xkanjiskip}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に -挿入されるのは望ましいことではない.例えば,\Param{xkanjiskip}は開き括弧の +\Param{\hyperlink{fld:xks}{xkanjiskip}}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に +挿入されるのは望ましいことではない.例えば,\Param{\hyperlink{fld:xks}{xkanjiskip}}は開き括弧の 後には挿入されるべきではない(`(あ'と`(\hskip\ltjgetparameter{xkanjiskip}あ'を 比べてみよ). -\LuaTeX-jaでは\Param{xkanjiskip}をある文字の前/後に挿入するかどうかを, +\LuaTeX-jaでは\Param{\hyperlink{fld:xks}{xkanjiskip}}をある文字の前/後に挿入するかどうかを, \textbf{JAchar}に対しては\Param{jaxspmode}を,\textbf{ALchar}に対しては \Param{alxspmode}をそれぞれ変えることで制御することができる. % +%<*zh> +并不是在所有的\textbf{JAchar}和\textbf{ALchar}周围插入\textsf{xkanjiskip}都是合适的。 +比如,在开标点之后插入\Param{\hyperlink{fld:xks}{xkanjiskip}}并不合适[如,比较“(あ”和“(\hskip\ltjgetparameter{xkanjiskip}あ”]。 +\LuaTeX-ja可以通过设定\textbf{JAchar}的\Param{jaxspmode}以及\textbf{ALchar}的\Param{alxspmode}来控制 +\Param{\hyperlink{fld:xks}{xkanjiskip}}在字符前后的插入。 +% \begin{LTXexample} \ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}} pあq い!う @@ -1564,15 +2560,19 @@ pあq い!う %<*en> The second argument \texttt{preonly} means `the insertion of -\Param{xkanjiskip} is allowed before this character, but not after'. +\Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before this character, but not after'. the other possible values are \texttt{postonly}, \texttt{allow} and \texttt{ inhibit}. % %<*ja> -2つ目の引数の \texttt{preonly}は「\Param{xkanjiskip}の挿入はこの文字の +2つ目の引数の \texttt{preonly}は「\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入はこの文字の 前でのみ許され,後では許さない」ことを意味する.他に指定可能な値は \texttt{postonly}, \texttt{allow}, \texttt{inhibit}である. % +%<*zh> +第二个参数\textsf{preonly}表示的含义为“允许在该字符前插入\textsf{xkanjiskip},但不允许在该字符之后插入”。 +其他参数还有\textsf{postonly},\textsf{allow}和\textsf{inhibit}。 +% %<*en> \Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters @@ -1584,6 +2584,10 @@ as follows: 仕様では,\Param{jaxspmode}, \Param{alxspmode}はテーブルを共有しており, 上のコードの1行目を次のように変えても同じことになる: % +%<*zh> +当前版本的\Param{jaxspmode}和\Param{alxspmode}使用相同的的表保存参数。 +因此,上一行可被写作: +% \begin{verbatim} \ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}} \end{verbatim} @@ -1593,21 +2597,28 @@ One can use also numbers to specify these two parameters (see Subsection~\ref{ss %<*ja> また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param}節を参照). % +%<*zh> +你也可以使用数字来定义两个参数(参见\ref{ssec-param})。 +% %<*en> -If you want to enable/disable all insertions of \Param{kanjiskip} and -\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing} +If you want to enable/disable all insertions of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} and +\Param{\hyperlink{fld:xks}{xkanjiskip}}, set \Param{autospacing} and \Param{autoxspacing} parameters to \texttt{true}/\texttt{false}, respectively. % %<*ja> -もし全ての\Param{kanjiskip}と\Param{xkanjiskip}の挿入を有効化/無効化 +もし全ての\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}と\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入を有効化/無効化 したければ,それぞれ\Param{autospacing}と\Param{autoxspacing}を \texttt{true}/\texttt{false}に設定すればよい. % +%<*zh> +如果你想要启用/屏蔽所有的\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}和\Param{\hyperlink{fld:xks}{xkanjiskip}}插入,设定 +\Param{autospacing}和\Param{autoxspcing}为\texttt{ture}/\texttt{false}即可。 +% %\subsection{Shifting Baseline} %\subsection{ベースラインの移動} - +%\subsection{基线浮动} %<*en> To make a match between a Japanese font and an alphabetic font, sometimes shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved @@ -1629,6 +2640,12 @@ parameter). (\Param{yalbaselineshift}パラメータ)と和文フォントのベースラインのシフト量 (\Param{yjabaselineshift}パラメータ)を独立に設定できるようになっている. % +%<*zh> +为了确保日文字体和西文字体能够对其,有时需要浮动其中一者的基线。 +在\pTeX 中,此项设定由设定\verb!\yabaselineshift!为非零长度(西文字体基线应向下浮动)。 +不过,如果文档的中主要语言不是日文,那么最好上浮日文字体的基线,西文字体不变。 +如上所述,\LuaTeX-ja可以独立设定西文字体的基线(\Param{yabaselineshift}参数)和日文字体的基线(\Param{yjabaselineshift}参数)。 +% \begin{LTXexample} \vrule width 150pt height 0.4pt depth 0pt\hskip-120pt @@ -1641,6 +2658,9 @@ Here the horizontal line in above is the baseline of a line. %<*ja> 上の例において引かれている水平線がベースラインである. % +%<*zh> +上述水平线为此行基线。 +% %<*en> There is an interesting side-effect: characters in different size can be @@ -1652,6 +2672,10 @@ The following is an example (beware the value is not well tuned): 異なる文字を中心線に揃えることができるのだ. 以下は一つの例である(値はあまり調整されていないことに注意): % +%<*zh> +这里还有一个有趣的副作用:不同大小的字符可以通过适当调整这两个参数而在一行中垂直居中。 +下面是一个例子(注意,参数值并没有刻意调整): +% \begin{LTXexample} xyz漢字 {\scriptsize @@ -1662,57 +2686,16 @@ xyz漢字 \end{LTXexample} -%\subsection{Cropmark} -%\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ではトンボの出力をサポートしている. -トンボを出力するためには以下の手順が必要である: -% - -\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)}'を設定する: -% - -\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{字体测度和日文字体} %\subsection{\texttt{\char92jfont} primitive} %\subsection{\texttt{\char92jfont}プリミティブ} +%\subsection{\texttt{\char92jfont}基本语句} \label{ssec-jfont} %<*en> @@ -1730,6 +2713,10 @@ so TrueType/OpenType fonts with features can be used for Japanese fonts: TrueType/OpenTypeフォントにfeatureを指定したものを和文フォントとして用いる ことができる: % +%<*zh> +为了加载日文字体,需要使用\verb!\jfont!基本语句替代\verb!\font!,前者支持后者所有相同句法。 +\LuaTeX-ja自动加载\Pkg{luaotfload}宏包,故TrueType/OpenType字体的特性可以使用于日文字体: +% \begin{LTXexample} \jfont\tradgt={file:ipaexg.ttf:script=latn;% +trad;-kern;jfm=ujis} at 14pt @@ -1749,6 +2736,11 @@ causes a error. We denote control sequences which are defined in 入力はエラーとなることに注意する.以下では \verb+\jfont+ で定義された コントロールシーケンスをで表す. % +%<*zh> +注意定义的控制序列(上例中的\verb!\tradgt!)使用的\verb!\jfont!并不是一个\textit{font\_def}标记, +故类似\verb!\fontname\tradgt!输入会引起错误。 +我们将定义\verb!\jfont!采用。 +% \paragraph{JFM} %<*en> @@ -1764,6 +2756,10 @@ which JFM will be used for this font by the following keys: \verb+\jfont+ プリミティブの呼び出しの際には,どのJFMを用いるのかを以下のキーで 指定する必要がある: % +%<*zh> +在引言中已提及此项,所谓JFM是字符亮度和日文排版中自动插入的胶/出格。 +JFM的结构将在下节进行描述。在使用\verb!\jfont!基本语句时,必须设定JFM如下两个键: +% \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} \item[jfm=] @@ -1779,6 +2775,11 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま 以下のJFMが\LuaTeX-jaには同梱されている: % +%<*zh> +设定JFM名称。设定的JFM如未加载,\LuaTeX-ja会搜寻并加载一个命名为\texttt{jfm-}<\textit{name}>\texttt{.lua}的文件。 + +\LuaTeX-ja提供如下JFM: +% \begin{description} %<*en> \item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is @@ -1787,9 +2788,13 @@ 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> +\item[\tt jfm-ujis.lua] \LuaTeX-ja标准JFM。次JFM基于\upTeX 使用的UTF/OTF宏包的\verb!upnmlminr-h.tfm!。 +如果你使用\Pkg{luatexja-otf}宏包,你将会用到此JFM。 +% %<*en> \item[\tt jfm-jis.lua] A counterpart for \verb+jis.tfm+, `JIS font metric' which is widely used in \pTeX. A major difference of @@ -1804,6 +2809,12 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま \texttt{jfm-jis.lua}の主な違いは,\texttt{jfm-ujis.lua}ではほとんどの文字が 正方形状であるのに対し,\texttt{jfm-jis.lua}では横長の長方形状である. % +%<*zh> +\item[\tt jfm-jis.lua] 相当于\pTeX 使用的\verb!jis.tfm!(“JIS font metric”)。 + \texttt{jfm-ujis.lua}和\texttt{jfm-jis.lua}主要区别是: + \texttt{jfm-ujis.lua}下的大部分字符是方形, + \texttt{jfm-jis.lua}下则为长方形。 +% %<*en> \item[\tt jfm-min.lua] A counterpart for \verb+min10.tfm+, which is one of the default Japanese font metric shipped with \pTeX. There @@ -1811,21 +2822,26 @@ 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}に示すような特筆すべき違いがある. % +%<*zh> +\item[\tt jfm-min.lua] 相当于\pTeX 中默认的\verb!min10.tfm!。 + 这个JFM与其他2个JFM的区别如表\ref{tab-difjfm}所示。 +% \end{description} -\item[jfmvar=] Sometimes there is a need that ... +\item[jfmvar=] Sometimes there is a need that \ldots. \end{list} \begin{table}[t] %\caption{Differences between JFMs shipped with \LuaTeX-ja} %\caption{\LuaTeX-ja に同梱されている 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 @@ -1843,11 +2859,13 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま \toprule &\tt jfm-ujis.lua&\tt jfm-jis.lua&\tt jfm-min.lua\\ \midrule -%Example~1\footnotemark -%例1\footnotemark +%Example~1\cite{min10} +%例1\cite{min10} +%例1\cite{min10} &\r{ujis}&\r{jis}&\r{min}\\ %Example~2 %例2 +%例2 &\s{ujis}&\s{jis}&\s{min}\\ Bounding Box&\t{ujis}&\t{jis}&\t{min}\\ \bottomrule @@ -1855,11 +2873,10 @@ Bounding Box&\t{ujis}&\t{jis}&\t{min}\\ \end{center} \ltjsetparameter{jacharrange={-3}} \end{table} -\footnotetext{from: 乙部厳己, min10フォントについて. -\texttt{http://argent.shinshu-u.ac.jp/\~{\ }otobe/tex/files/min10.pdf}.} %\paragraph{Note: kern feature} %\paragraph{注意:kern feature} +%\paragraph{注意:kern feature} \label{para-kern} %<*en> Some fonts have information for inter-glyph spacing. However, this @@ -1876,7 +2893,11 @@ and it from JFM are present. JFMに基づくグルー/カーンも挿入される場合には2文字間の意図しないスペースの原因と なる. % - +%<*zh> +一些字体具有内部字形间距信息。但是,这些信息在\LuaTeX-ja下并不良好兼容。 +仔细些说,出格间距是在\textbf{JAglue}插入\textbf{之前}而先行插入的, +这就造成了字体数据中和JFM中的胶/出格在两个字符间插入出错。 +% \begin{itemize} %<*en> \item You should specify \texttt{-kern} in @@ -1887,21 +2908,27 @@ JFMに基づくグルー/カーンも挿入される場合には2文字間の \item \texttt{script=...}といったfeatureを使いたい場合には,\verb+\jfont+ プリミティブに\texttt{-kern}を指定するべきである. % +%<*zh> +\item 当你想使用其他字体特性如\texttt{script=...}的时候,可以在\verb!jfont!基本语句中设置\texttt{-kern} +% %<*en> \item If you want to use Japanese fonts in proportional width, and use - information from this font, use \texttt{jfm-prop.lua} for its JFM, and ... + information from this font, use \texttt{jfm-prop.lua} for its JFM, and\ldots. % %<*ja> \item もしプロポーショナル幅の和文フォントをそのフォントの情報に基づいて使いたい ならば,\texttt{jfm-prop.lua}をJFMとして指定し,…… % - +%<*zh> +\item 如果你想使用比例宽度的日文字体,并且使用此字体信息,使用\texttt{jfm-prop.lua}为其JFM,…… +% TODO: kanjiskip? \end{itemize} %\subsection{Prefix \texttt{psft}} %\subsection{\texttt{psft}プリフィックス} +%\subsection{\texttt{psft}前缀} \label{ssec-psft} %<*en> Besides \texttt{file:}\ and \texttt{name:}\ prefixes, one can use \texttt{psft:}\ @@ -1919,10 +2946,34 @@ the `standard' Japanese fonts, namely, `Ryumin-Light' and 和文フォントを指定することができる.「標準的な」和文フォント, つまり`Ryumin-Light'と`GothicBBB-Medium'の指定でこのプリフィックスが使われる. % +%<*zh> +除使用\texttt{file:}和\texttt{name:}外,我们还可以在\verb!\jfont!(以及\verb!\font!) +中使用\texttt{psft:}来设定一个“名义上”的并不嵌入PDF中的日文字体。 +此前缀的典型使用是定义“标准”日文字体,即“Ryumin-Light”和“GothicBBB-Medium”。 +\paragraph{\texttt{cid}键} 默认使用\texttt{psft:}前缀定义的字体是为Adobe-Japan1-6 CID字体。 +也可以使用\texttt{cid}键来使用其他的CID字体,如中文和韩文。 +% -\paragraph{\texttt{cid} key} +%\paragraph{\texttt{cid} key} +%\paragraph{\texttt{cid}キー} \label{para-cid} +%<*en> +The default font defined by using \texttt{psft:} prefix is for Japanese typesetting; +it is Adobe-Japan1-6 CID-keyed font. +One can specify \texttt{cid} key to use other CID-keyed non-embedded fonts +for Chinese or Korean typesetting. +\begin{lstlisting}[numbers=left] +\jfont\testJ={psft:Ryumin-Light:cid=Adobe-Japan1-6;jfm=jis} % Japanese +\jfont\testD={psft:Ryumin-Light:jfm=jis} % default value is Adobe-Japan1-6 +\jfont\testC={psft:AdobeMingStd-Light:cid=Adobe-CNS1-5;jfm=jis} % Traditional Chinese +\jfont\testG={psft:SimSun:cid=Adobe-GB1-5;jfm=jis} % Simplified Chinese +\jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis} % Korean +\end{lstlisting} +Note that the code above specifies \texttt{jfm-jis.lua}, which is for Japanese fonts, +as JFM for Chinese and Korean fonts. +% +%<*ja> 標準で\texttt{psft:}プリフィックスで定義されるフォントは日本語用のもので あり,Adobe-Japan1-6のCIDに対応したものとなる.しかし,\LuaTeX-jaは中国語 の組版にも威力を発揮することが分かり,日本語フォントでない非埋込フォント @@ -1937,32 +2988,47 @@ the `standard' Japanese fonts, namely, `Ryumin-Light' and \jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis} % 韓国語 \end{lstlisting} 上のコードでは中国語・韓国語用フォントに対してもJFMに -日本語用の \texttt{jfm-jis.lua} を指定しているので注意されたい. +日本語用の\texttt{jfm-jis.lua}を指定しているので注意されたい. +% +%<*en> +At present, \LuaTeX-ja supports only 4 values written in the sample code above. +Specifying other values, e.g., +% +%<*ja> 今のところ,\LuaTeX-jaは上のサンプルコード中に書いた4つの値しかサポートしていない. +% \begin{lstlisting} \jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis} \end{lstlisting} +%<*en> +occurs the following error: +% +%<*ja> のようにそれら以外の値を指定すると, +% \begin{lstlisting}[numbers=left] ! Package luatexja Error: bad cid key `Adobe-Japan2'. See the luatexja package documentation for explanation. Type H for immediate help. - - \par -l.78 - + + \par +l.78 + ? h I couldn't find any non-embedded font information for the CID `Adobe-Japan2'. For now, I'll use `Adobe-Japan1-6'. Please contact the LuaTeX-ja project team. -? +? \end{lstlisting} +%<*ja> というエラーが出る. +% %\subsection{Structure of JFM file} %\subsection{JFMファイルの構造} +%\subsection{JFM结构} %<*en> A JFM file is a Lua script which has only one function call: @@ -1970,6 +3036,9 @@ A JFM file is a Lua script which has only one function call: %<*ja> JFMファイルはただ一つの関数呼び出しを含むLuaスクリプトである: % +%<*zh> +JFM文件为下列函数调用的Lua脚本: +% \begin{verbatim} luatexja.jfont.define_jfm { ... } \end{verbatim} @@ -1985,65 +3054,87 @@ floating-point numbers in design-size unit. なお,JFMファイル中の長さは全てdesign-sizeを単位とする浮動小数点数であることに 注意する. % +%<*zh> +实际的数据保存在表中,即如上的\verb!{ ... }!。 +以下部分描述表结构。 +请注意,在JFM中的所有长度都是按照以design-size为单位的浮点数。 +% \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} \item[dir=] %(required) %(必須) +%(必须) %The direction of JFM. At the present, only \texttt{'yoko'} is supported. %JFMの書字方向.現時点では\texttt{'yoko'}のみがサポートされる. +%JFM的方向,现在只支持\texttt{yoko}(水平)。 \item[zw=] %(required) %(必須) +%(必须) %The amount of the length of the `full-width'. %「全角幅」の長さ. +%“全角”长度。 \item[zh=] %(required) %(必須) +%(必须) %The amount of the length of the `full-height' (height + depth). %「全角高さ」(height + depth)の長さ. +%“全角高度”(height + depth)长度。 \item[kanjiskip=\{, , \}] %(optional) %(任意) +%(可选) %<*en> -This field specifies the `ideal' amount of \Param{kanjiskip}. As noted +This field specifies the `ideal' amount of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}. As noted in Subsection~\ref{subs-kskip}, if the parameter - \Param{kanjiskip} is \verb+\maxdimen+, the value specified + \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is \verb+\maxdimen+, the value specified in this field is actually used (if this field is not specified in JFM, it is regarded as 0\,pt). Note that and fields are in design-size unit too. % %<*ja> -「理想的な」\Param{kanjiskip}の量を指定する.\ref{subs-kskip}節で述べたように, -もし\Param{kanjiskip}が \verb+\maxdimen+ の値ならば,このフィールドで指定された +「理想的な」\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の量を指定する.\ref{subs-kskip}節で述べたように, +もし\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}が \verb+\maxdimen+ の値ならば,このフィールドで指定された 値が実際には用いられる(もしこのフィールドがJFMで指定されていなければ, 0\,ptであるものとして扱われる).とのフィールドもdesign-size が単位であることに注意せよ. % +%<*zh> +这部分为“理想长度”\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}。\ref{subs-kskip}节有详述,如果参数\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} +为\verb!\maxdimen!,则值设定将会被使用(若再JFM中未设定,则被视为0\,pt)。 +请注意,和的长度均为design-size单位。 +% \item[xkanjiskip=\{, , \}] %(optional) %(任意) +%(可选) %<*en> -Like the \Param{kanjiskip} field, this field specifies the `ideal' - amount of \Param{xkanjiskip}. +Like the \texttt{kanjiskip} field, this field specifies the `ideal' + amount of \Param{\hyperlink{fld:xks}{xkanjiskip}}. % %<*ja> -\Param{kanjiskip}フィールドと同様に,\Param{xkanjiskip}の「理想的な」量を +\texttt{kanjiskip}フィールドと同様に,\Param{\hyperlink{fld:xks}{xkanjiskip}}の「理想的な」量を 指定する. % +%<*zh> +和\texttt{kanjiskip}类似,此部分设定\Param{\hyperlink{fld:xks}{xkanjiskip}}的“理想长度”。 +% \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 @@ -2052,41 +3143,62 @@ 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ファイルはインデックス が\texttt{[0]}のサブテーブルを持たなければならない.それぞれのサブテーブル (そのインデックスを$i$で表わす)は以下のフィールドを持つ: % +%<*zh> +\paragraph{Character classes} +除了上面涉及到的内容,JFM文件中还有几个以自然数进行声明的次级表。 +这些表依靠满足$i\in\omega$的“字符类”$i$来索引。 +一般,最少需要的是字符类0,故每一个JFM文件必须有次级表索引为\texttt{[0]}。 +% \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} \item[chars=\{, ...\}] %(required except character class~0) %(文字クラス0を除いて必須) +%(字符类0外必须) %<*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} +字符都包含在字符集0中(也就是字符集0包含大多数的\textbf{JAchar})。在这个字符列表中,每一个 +字符据可以使用其编码,或者字符本身(长度为1的字符串)。另外还有部分“假想字符”可在此列表中 +使用。我们会在下面描述。 +% \item[width=, height=, depth=, italic=] %(required) %(必須) +%(必须) %<*en> Specify width of characters in character class~$i$, height, depth and @@ -2101,6 +3213,11 @@ But there is one exception: if \texttt{'prop'} is specified in \texttt{width} fi しかし,例外が一つある:もし\texttt{'prop'}が\texttt{width}フィールドに 指定された場合,文字の幅はその「実際の」グリフの幅となる. % +%<*zh> +设定字符类$i$的宽度,高度和深度以及意大利体校正。在字符集$i$中,所有字符的宽度,高度 +和深度的值为上述设定之值。不过还有例外,如果\texttt{'prop'}设定了\texttt{width}部分,那么 +字符的宽度则为其“真实”字形宽度。 +% \item[left=, down=, align=]\ @@ -2121,6 +3238,12 @@ The effects of these 3~fields are indicated in Figure~\ref{fig-pos}. \texttt{'left'}であるものとして扱われる. これら3つのフィールドの意味については図\ref{fig-pos}で説明する. % +%<*zh> +此部分为“真实”字形对齐位置。\texttt{align}的合法值为\texttt{'left'}, +\texttt{'middle'}和\texttt{'right'}。如此三项被省略,则\texttt{left}和 +\texttt{down}被视作0,\texttt{align}被视作\texttt{'left'}。 +此部分三个域的作用,请参见图\ref{fig-pos}。 +% %<*en> In most cases, \texttt{left} and \texttt{down} fields are~0, while @@ -2135,6 +3258,11 @@ when the current character class is the class for opening delimiters'. 例えば,\texttt{align}フィールドを\texttt{'right'}に指定することは, 文字クラスが開き括弧類であるときに実際必要である. % +%<*zh> +在大多数情况下,\texttt{left}和\texttt{down}域为0,但是在\texttt{align}域为 +\texttt{'middle'}或者\texttt{'right'}时则是不正常的。例如,必须设定\texttt{align} +为\texttt{'right'}时,则当前字符类必须为开定界符。 +% \begin{figure}[!tb] \begin{minipage}{0.4\textwidth}% \begin{center}\unitlength=10pt\small @@ -2197,6 +3325,9 @@ field is \texttt{'middle'}. \texttt{align}フィールドの値が\texttt{'middle'}である和文文字を含むノードを 考えよう. % +%<*zh> +假定一个node包含日语字符,且其值为\texttt{align}的\texttt{'middle'}。 +% \begin{itemize} \item %<*en> @@ -2207,6 +3338,9 @@ Its width, height and depth are specified by JFM. 黒色の長方形はノードの枠である. その幅,高さ,深さはJFMによって指定される. % +%<*zh> +黑色长方形为node框。其宽度,高度,深度均为JFM所设定。 +% \item %<*en> Since the \texttt{align} field is \texttt{'middle'}, @@ -2216,6 +3350,9 @@ the `real' glyph is centered horizontally (the green rectangle). \texttt{align}フィールドは\texttt{middle}なので,「実際の」グリフは 水平方向の中心に配置される(緑色の長方形). % +%<*zh> +因\texttt{align}被设定为\texttt{middle},故“真实”字形为水平居中(绿长方形中)。 +% \item %<*en> Furthermore, the glyph is shifted according to values of fields @@ -2226,21 +3363,125 @@ Furthermore, the glyph is shifted according to values of fields さらに,グリフは\texttt{left}と\texttt{down}の値に従ってシフトされる. 最終的な実際のグリフの位置は赤色の長方形で示された位置になる. % +%<*zh> +此外,字形移位由\texttt{left}和\texttt{down}决定。最终字形位置为红长方形所示。 +% \end{itemize} \end{minipage} -\caption{ +\medskip + +\caption{% %The position of the `real' glyph. %「実際の」グリフの位置. +%“真实”字形位置 } \label{fig-pos} \end{figure} +\item[kern={\{[$j$]=, [$j'$]=\{, []\}...\}}] + +\item[glue={\{[$j$]=\{, , , [], []\}, ...\}}] +%<*ja> +文字クラス$i$の文字と$j$の文字の間に挿入されるkernやglueの量を指定する. + + は\texttt{luatexja-adjust.sty} による優先順位付き + 行長調整(\ref{ssec-adj}節)が有効なときのみ意味を持つ. +このフィールドは省略可能であり,行調整処理におけるこのglueの優先 + 度を$-2$から$+2$の間の整数で指定する.の省略時の値 + は0であり,範囲外の値が指定されたときの動作は未定義である). + +も省略可能フィールドであり,$-1$から$+1$の実数値をとる.省略時の値は0である. +\begin{itemize} +\item $-1$はこのグルーが「前の文字」由来であることを示す. +\item $+1$はこのグルーが「後の文字」由来であることを示す. +\item それ以外の値は,「前の文字」由来のグルーと「後の文字」由来の +グルーが混合されていることを示す. +\end{itemize} +なお,このフィールドの値は\Param{\hyperlink{fld:diffjfm}{differentjfm}}の値が\texttt{pleft},~\texttt{pright},~\texttt{paverage}の値のときのみ実際に用いられる. + +例えば,\cite{x4051}では,句点と中点の間には, +句点由来の二分空きと中点由来の四分空きが挿入されるが,この場合には +\begin{itemize} +\item には$0.5+0.25=0.75$を指定する. +\item には次の値を指定する. +\[ + -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13 +\] +\end{itemize} -\item[kern={\{[$j$]=, ...\}}] +% + +\item[end\_stretch=] +\item[end\_shrink=] +%<*ja> +これらのフィールドは省略可能である. +優先順位付き行長調整が有効であり,かつ現在の文字クラスの文字が行 + 末に来た時に,行長を詰める調整・伸ばす調整のた + めにこの文字と行末の間に挿入可能なカーンの大きさを指定する. +% -\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 @@ -2254,43 +3495,55 @@ The following is the list of `imaginary characters': クラス0の文字」として扱われていた文字であり,その結果として\pTeX より細か い組版調整ができるようになっている.以下でその一覧を述べる: % +%<*zh> +如上所述,你可以在\texttt{chars}中设定多个“假想字符”。这些字符中的多数字符在 +\pTeX 中式被视作字符集0中字符。故此,\LuaTeX-ja可以比\pTeX 做得更好。 +下列为“假想字符”列表: +% \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} -\item['lineend'] -%An ending of a line. -%行の終端を表す. +%%\item['lineend'] +%%%An ending of a line. +%%%行の終端を表す. +%%%行尾结束字符。 -\item['diffmet'] -%Used at a boundary between two \textbf{JAchar}s whose JFM or size is different. -%JFMやサイズが異なる2つの\textbf{JAchar}の間の境界として用いられる. +%%\item['diffmet'] +%%Used at a boundary between two \textbf{JAchar}s whose JFM or size is different. +%%JFMやサイズが異なる2つの\textbf{JAchar}の間の境界として用いられる. +%%用于两个不同大小或不同JFM的两个\textbf{JAchar}间边界。 \item['boxbdd'] %The beginning/ending of a horizontal box, and the beginning of a noindented paragraph. %水平ボックスの先頭と末尾,及びインデントされていない(\verb+\noindent+ で開始された)段落の先頭を表す. +%水平合字结束或结尾,以及未缩进段落开头。 \item['parbdd'] %The beginning of an (indented) paragraph. %通常の(\verb+\noindent+ で開始されていない)段落の先頭. +%缩进段落开头。 \item['jcharbdd'] -%A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue, ...). +%A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots). %和文文字と「その他のもの」(欧文文字,glue,kern等)との境界. +%日文字符和其他(如\textbf{ALchar},胶,出格等)边界。 \item[$-1$] %The left/right boundary of an inline math formula. %行中数式と地の文との境界. +%行中数学式的左/右边界。 \end{list} %\paragraph{Porting JFM from \pTeX} -%\paragraph{\pTeX 用和文フォントメトリックの移植} +%\paragraph{\pTeX 用和文用TFMの移植} +%\paragraph{\pTeX 下使用的TFM移植} % ToDo: English version. %<*en> -... +\ldots % %<*ja> -以下に,\pTeX 用和文フォントメトリックを\LuaTeX-ja用に移植する場合の注意点を挙げておく. +以下に,\pTeX 用に作られた和文用TFMを\LuaTeX-ja用に移植する場合の注意点を挙げておく. \begin{itemize} \item 実際に出力される和文フォントのサイズがdesign sizeとなる. このため,例えば$1\,\textrm{zw}$がdesign sizeの0.962216倍であるJISフォン @@ -2337,9 +3590,14 @@ The following is the list of `imaginary characters': \footnote{\texttt{no\_runtime/ltjsclasses.dtx} を参照されたい. JFM側で一部の対処ができることにより,\Pkg{jsclasses}のようにif文の判定はしていない.} % +%<*zh> +下面,给出用于\pTeX 使用的JFM移植到\LuaTeX-ja过程中需要注意的几点。 +% + %\subsection{Math Font Family} %\subsection{数式フォントファミリ} +%\subsection{数学字体族} \label{ssec-math} %<*en> @@ -2373,17 +3631,20 @@ you can set both \verb+\fam+ and \verb+\jfam+ to the same value. \begin{table}[!tb] %\caption{Primitives for Japanese math fonts.} %\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} @@ -2391,6 +3652,7 @@ scriptscript size&\tt\Param{jascriptscriptfont}\,=\{,\}&\tt\ver %\subsection{Callbacks} %\subsection{コールバック} +%\subsection{回调} %<*en> Like \LuaTeX\ itself, \LuaTeX-ja also has callbacks. These callbacks can @@ -2405,6 +3667,7 @@ be accessed via \verb+luatexbase.add_to_callback+ function and so on, as other c {\def\makelabel#1{\bfseries#1}} %\item[\texttt{luatexja.load\_jfm} callback] %\item[\texttt{luatexja.load\_jfm}コールバック] +%\item[\texttt{luatexja.load\_jfm}回调] %<*en> With this callback you can overwrite JFMs. This callback is called when a new JFM is loaded. @@ -2433,17 +3696,16 @@ 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] %\item[\texttt{luatexja.define\_font}コールバック] +%\item[\texttt{luatexja.define\_font}回调] %<*en> This callback and the next callback form a pair, and you can assign letters which don't have fixed code points in Unicode to non-zero character classes. @@ -2465,28 +3727,52 @@ 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のインデックス番号. - -\item[\tt size] -%Font size in a scaled point (${}=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+. %\verb+\jfont+ の呼び出しの際に\texttt{jfmvar=...}で指定された値. +%\verb!\jfont!调用的\texttt{jfmvar=...}值。 \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+ はフォント番号である. % @@ -2500,11 +3786,11 @@ 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] %\item[\texttt{luatexja.find\_char\_class}コールバック] +%\item[\texttt{luatexja.find\_char\_class}回调] %<*en> This callback is called just when \LuaTeX-ja is trying to determine which character class a character \verb+chr_code+ belongs. @@ -2541,15 +3827,9 @@ 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のコードを書き換えない. -% - %\item[\texttt{luatexja.set\_width} callback] %\item[\texttt{luatexja.set\_width}コールバック] +%\item[\texttt{luatexja.set\_width}回调] %<*en> This callback is called when \LuaTeX-ja is trying to encapsule a \textbf{JAchar} \textit{glyph\_node}, to adjust its @@ -2614,8 +3894,10 @@ Then, the position of glyphs is shifted up by %\section{Parameters} %\section{パラメータ} +%\section{参数} %\subsection{\texttt{\char92 ltjsetparameter} primitive} %\subsection{\texttt{\char92 ltjsetparameter}プリミティブ} +%\subsection{\texttt{\char92 ltjsetparameter}基本参数} %<*en> As noted before, \verb+\ltjsetparameter+ and \verb+\ltjgetparameter+ are @@ -2629,7 +3911,7 @@ of \LuaTeX, see Section~\ref{sec-para}. 先に述べたように,\verb+\ltjsetparameter+ と \verb+\ltjgetparameter+ は \LuaTeX-jaのほとんどのパラメータにアクセスするためのプリミティブである. \LuaTeX-jaが\pTeX のような文法(例えば,\verb+\prebreakpenalty`)=10000+)を -採用しない理由の一つは,\LuaTeX のソースにおける \verb+\hpack_filter+ +採用しない理由の一つは,\LuaTeX のソースにおける \verb+hpack_filter+ コールバックの位置にある.\ref{sec-para}節を参照. % @@ -2686,6 +3968,7 @@ character other than space~`\texttt{\char32}'~(U+0020) has the category code %\subsection{List of Parameters} %\subsection{パラメータ一覧} +%\subsection{参数一览} \label{ssec-param} %<*en> @@ -2699,6 +3982,9 @@ in \pTeX, and symbols beside each parameter has the following meaning: また,それぞれのパラメータの右上にある記号には次の意味がある: % \begin{itemize} +%<*zh> +\item % avoiding from error ``Something's wrong--perhaps a missing \item.''. +% %<*en> \item No mark: values at the end of the paragraph or the hbox are adopted in the whole paragraph/hbox. @@ -2746,25 +4032,21 @@ At the present version, the lowermost bit of indicates みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照). % -\item[\Param{prebreakpenalty}\,=\{,\}] [\verb+\prebreakpenalty+]\ +\item[\Param{\hypertarget{fld:prebp}{prebreakpenalty}}\,=\{,\}] [\verb+\prebreakpenalty+]\ %<*ja> 文字コードの\textbf{JAchar}が行頭にくることを抑止するために, この文字の前に挿入/追加されるペナルティの量を指定する. -例えば閉じ括弧「〗」は絶対に行頭にきてはならないので,標準で読み込まれる - \texttt{luatexja-kinsoku.tex}において +例えば閉じ括弧「〗」は絶対に行頭にきてはならないので, \begin{verbatim} \ltjsetparameter{prebreakpenalty={`〙,10000}} \end{verbatim} -と,最大値の10000が指定されている.他にも,小書きのカナなど,絶対禁止とい +と,最大値の10000が標準で指定されている.他にも,小書きのカナなど,絶対禁止とい うわけではないができれば行頭にはきて欲しくない場合に,0と 10000の間の値を指定するのも有用であろう. -\begin{verbatim} -\ltjsetparameter{prebreakpenalty={`ゕ,150}} -\end{verbatim} % -\item[\Param{postbreakpenalty}\,=\{,\}] [\verb+\postbreakpenalty+] +\item[\Param{\hypertarget{fld:postbp}{postbreakpenalty}}\,=\{,\}] [\verb+\postbreakpenalty+] %<*ja> 文字コードの\textbf{JAchar}が行末にくることを抑止するために, この文字の後に挿入/追加されるペナルティの量を指定する. @@ -2781,35 +4063,42 @@ At the present version, the lowermost bit of indicates \item[\Param{jatextfont}\,=\{,\}] %[\verb+\textfont+ in \TeX] %[\TeX の \verb+\textfont+] +%[\TeX 的\verb+\textfont+] \item[\Param{jascriptfont}\,=\{,\}] %[\verb+\scriptfont+ in \TeX] %[\TeX の \verb+\scriptfont+] +%[\TeX 中的\verb+\scriptfont+] \item[\Param{jascriptscriptfont}\,=\{,\}] %[\verb+\scriptscriptfont+ in \TeX] %[\TeX の \verb+\scriptscriptfont+] +%[\TeX 中的\verb+\scriptscriptfont+] \item[\Param{yjabaselineshift}\,=$^\ast$]\ \item[\Param{yalbaselineshift}\,=$^\ast$] [\verb+\ybaselineshift+] \item[\Param{jaxspmode}\,=\{,\}] %<*en> -Setting whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is . +Setting whether inserting \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before/after a \textbf{JAchar} whose character code is . The followings are allowed for : % %<*ja> -文字コードがの\textbf{JAchar}の前/後ろに\Param{xkanjiskip}の +文字コードがの\textbf{JAchar}の前/後ろに\Param{\hyperlink{fld:xks}{xkanjiskip}}の 挿入を許すかどうかの設定. 以下のが許される: % \begin{description} -%\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character. -%\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される. -%\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after. -%\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない. -%\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before. -%\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない. -%\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed both before the character and after the character. This is the default value. -%\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である. +%\item[0, \texttt{inhibit}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is inhibited before the character, nor after the character. +%\item[0, \texttt{inhibit}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも禁止される. +%\item[0, \texttt{inhibit}] 插入文字前/后的\Param{\hyperlink{fld:xks}{xkanjiskip}}均被禁止。 +%\item[1, \texttt{preonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before the character, but not after. +%\item[1, \texttt{preonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前では許されるが,後ろでは許されない. +%\item[1, \texttt{preonly}] 文字前允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但其后不允许插入。 +%\item[2, \texttt{postonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed after the character, but not before. +%\item[2, \texttt{postonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の後ろでは許されるが,前では許されない. +%\item[2, \texttt{postonly}] 文字后允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但之前不允许插入。 +%\item[3, \texttt{allow}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed both before the character and after the character. This is the default value. +%\item[3, \texttt{allow}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である. +%\item[3, \texttt{allow}] 文字前后均可插入\Param{\hyperlink{fld:xks}{xkanjiskip}}。此为默认值。 \end{description} %<*en> This parameter is similar to the \verb+\inhibitxspcode+ primitive of \pTeX, but not compatible with \verb+\inhibitxspcode+. @@ -2818,28 +4107,34 @@ This parameter is similar to the \verb+\inhibitxspcode+ primitive of \pTeX, but このパラメータは\pTeX の \verb+\inhibitxspcode+ プリミティブと似ているが, 互換性はない. % - +%<*zh> +此参数类似\pTeX 基本语句\verb!\inhibitxspcode!,但是和\verb!\inhibitxspcode!不兼容。 +% \item[\Param{alxspmode}\,=\{,\}] [\verb+\xspcode+] %<*en> -Setting whether inserting \Param{xkanjiskip} is allowed before/after a +Setting whether inserting \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before/after a \textbf{ALchar} whose character code is . The followings are allowed for : % %<*ja> -文字コードがの\textbf{ALchar}の前/後ろに\Param{xkanjiskip}の +文字コードがの\textbf{ALchar}の前/後ろに\Param{\hyperlink{fld:xks}{xkanjiskip}}の 挿入を許すかどうかの設定. 以下のが許される: % \begin{description} -%\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character. -%\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される. -%\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after. -%\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない. -%\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before. -%\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない. -%\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed before the character and after the character. This is the default value. -%\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である. +%\item[0, \texttt{inhibit}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is inhibited before the character, nor after the character. +%\item[0, \texttt{inhibit}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも禁止される. +%\item[0, \texttt{inhibit}] 插入文字前/后的\Param{\hyperlink{fld:xks}{xkanjiskip}}均被禁止。 +%\item[1, \texttt{preonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before the character, but not after. +%\item[1, \texttt{preonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前では許されるが,後ろでは許されない. +%\item[1, \texttt{preonly}] 文字前允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但其后不允许插入。 +%\item[2, \texttt{postonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed after the character, but not before. +%\item[2, \texttt{postonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の後ろでは許されるが,前では許されない. +%\item[2, \texttt{postonly}] 文字后允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但之前不允许插入。 +%\item[3, \texttt{allow}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before the character and after the character. This is the default value. +%\item[3, \texttt{allow}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である. +%\item[3, \texttt{allow}] 文字前后均可插入\Param{\hyperlink{fld:xks}{xkanjiskip}}。此为默认值。 \end{description} %<*en> Note that parameters \Param{jaxspmode} and \Param{alxspmode} use a common table, hence these two parameters are synonyms of each other. @@ -2848,13 +4143,29 @@ Note that parameters \Param{jaxspmode} and \Param{alxspmode} use a common table, \Param{jaxspmode}と\Param{alxspmode}は共通のテーブルを用いているため, これら2つのパラメータは互いの異名となっていることに注意する. % +%<*zh> +注意参数\Param{jaxspmode}和\Param{alxspmode}公用一个表,故这两个参数互为同义语。 +% \item[\Param{autospacing}\,=$^\ast$] [\verb+\autospacing+] \item[\Param{autoxspacing}\,=$^\ast$] [\verb+\autoxspacing+] -\item[\Param{kanjiskip}\,=] [\verb+\kanjiskip+] -\item[\Param{xkanjiskip}\,=] [\verb+\xkanjiskip+] +\item[\Param{\hypertarget{fld:kanjiskip}{kanjiskip}}\,=] [\verb+\kanjiskip+] +%<*ja> +デフォルトで2つの\textbf{JAchar}の間に挿入されるグルーである. +通常では,\pTeX と同じようにフォントサイズに比例して変わることはない. +しかし,自然長が \verb+\maxdimen+ の場合は,例外的に和文フォントのJFM側で指定されている +値を採用(こちらはフォントサイズに比例)することになっている. +% + +\item[\Param{\hypertarget{fld:xks}{xkanjiskip}}\,=] [\verb+\xkanjiskip+] +%<*ja> +デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルーである. +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}と同じように,通常ではフォントサイズに比例して変わることはないが, +自然長が \verb+\maxdimen+ の場合が例外である. +% -\item[\Param{differentjfm}\,=$^\dagger$] + +\item[\Param{\hypertarget{fld:diffjfm}{differentjfm}}\,=$^\dagger$] %<*en> Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different. @@ -2862,14 +4173,21 @@ The allowed arguments are the followings: % %<*ja> JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグルー/カーンをどのように -入れるかを指定うる. +入れるかを指定する. 許される値は以下の通り: % +%<*zh> +对于处理不同大小或者JFM的两种\textbf{JAchar}之间的胶/出格。 +有下列参数: +% \begin{description} \item[\texttt{average}] \item[\texttt{both}] \item[\texttt{large}] \item[\texttt{small}] +\item[\texttt{pleft}] +\item[\texttt{pright}] +\item[\texttt{paverage}] \end{description} \item[\Param{jacharrange}\,=$^\ast$] @@ -2879,15 +4197,21 @@ JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグル %\section{Other Primitives} %\section{その他のプリミティブ} +%\section{其他基本语句} %\subsection{Primitives for Compatibility} %\subsection{互換プリミティブ} +%\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 との互換性のために実装されている: % +%<*zh> +下列基本语句的实现与\pTeX 兼容: +% \begin{list}{}{\def\makelabel{\ttfamily\char92 }\advance\leftmargin1\zw} \item[kuten] \item[jis] @@ -2899,7 +4223,7 @@ The following primitives are implemented for compatibility with \pTeX: %\subsection{\texttt{\char92 inhibitglue} primitive} %\subsection{\texttt{\char92 inhibitglue}プリミティブ} - +%\subsection{\texttt{\char92 inhibitglue}基本语句} %<*en> The primitive \verb+\inhibitglue+ suppresses the insertion of \textbf{JAglue}. The following is an example, using a special JFM that there will be a glue between @@ -2910,6 +4234,10 @@ the beginning of a box and `あ', and also between `あ' and `ウ'. 以下は,ボックスの始めと`あ'の間,`あ'と`ウ'の間にグルーが入る特別なJFMを用いた例で ある. % +%<*zh> +基本语句\verb!\inhibitglue!会压缩\textbf{JAchar}的插入。 +下面的例子使用了特殊的JFM。在一个盒子和“あ”之间,以及“あ”和“ウ”之间存在胶。 +% \begin{LTXexample} \jfont\g=psft:Ryumin-Light:jfm=test \g @@ -2926,7 +4254,13 @@ With the help of this example, we remark the specification of \verb+\inhibitglue %<*ja> この例を援用して,\verb+\inhibitglue+ の仕様について述べる. % +%<*zh> +如上例子,我们注意到\verb!\inhibtglue!的用法。 +% \begin{itemize} +%<*zh> +\item +% %<*en> \item The call of \verb+\inhibitglue+ in the (internal) vertical mode is simply ignored. @@ -2946,8 +4280,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> @@ -2960,9 +4295,11 @@ With the help of this example, we remark the specification of \verb+\inhibitglue %\section{Control Sequences for \LaTeXe} %\section{\LaTeXe 用のコントロールシーケンス} +%\section{\LaTeXe 下使用的控制序列} %\subsection{Patch for NFSS2} %\subsection{NFSS2へのパッチ} +%\subsection{NFSS2补丁} \label{ssub-nfsspat} %<*en> @@ -3070,7 +4407,7 @@ Like \verb+\fontfamily+, \verb+\selectfont+ is required to take an effect. % \item[adjustbaseline] -... +\ldots \item[fontfamily\{\}] {\let\item\origitem @@ -3084,6 +4421,9 @@ to . Which family will be changed is determined as follows: どのファミリが変更されるかは以下のようにして決定される: % \begin{itemize} +%<*zh> +\item +% %<*en> \item Let current encoding scheme for Japanese fonts be . Current Japanese font family will be changed to @@ -3106,6 +4446,9 @@ to . Which family will be changed is determined as follows: \item A font definition named \texttt{.fd} (the file name is all lowercase) exists. % +%<*zh> +\item +% %<*ja> \item フォント定義ファイル\texttt{.fd}(ファイル名は全て小文字)が存在する. % @@ -3143,19 +4486,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}} @@ -3177,41 +4516,35 @@ the commands of Japanese version: \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} +\item[CID=] \item[JFM=] -\item[JFM-var=] +\item[JFM-var=] \ %<*en> -These 2 font features correspond to \texttt{jfm} and \texttt{jfmvar} keys for -\verb+\jfont+ primitive, respectively. See Subsection~\ref{ssec-jfont}. +These 3 font features correspond to \texttt{cid}, \texttt{jfm} and +\texttt{jfmvar} keys for \verb+\jfont+ primitive, respectively. +\texttt{CID} is effective only when with \texttt{NoEmbed} +described below. +See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details. % %<*ja> -これら2つのキーはそれぞれ \verb+\jfont+ プリミティブに対する -\texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する. -\ref{ssec-jfont}節を参照. +これら3つのキーはそれぞれ \verb+\jfont+ プリミティブに対する +\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する. +\texttt{CID} は下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である. +\verb+\jfont+ プリミティブに対する +\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーの詳細は\ref{ssec-jfont}節 + と\ref{ssec-psft}節を参照. % \item[NoEmbed] %<*en> -By specifying this font feature, you can use `name-only' Japanese font which +By specifying this font feature, one can use `name-only' Japanese font which will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. % %<*ja> これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが できる.\ref{ssec-psft}節を参照. % - -\item[CID=] -%<*en> -This feature is effective only when with NoEmbed feature. -You can use the non-embedded CID-keyed font whose glyphs are addressed according -to the specified character collection defined by Adobe Inc. -The default value is Adobe-Japan1. See also Subsection~\ref{ssec-psft}. -% -%<*ja> -NoEmbed キーと合わせて用いる. -非埋め込みの CID-keyed フォントがどの文字コレクションに基づくものかを指定する. -デフォルトは Adobe-Japan1 である.\ref{ssec-psft}節も参照. -% \end{list} \subsection{\texttt{luatexja-otf.sty}} @@ -3257,6 +4590,9 @@ ordinary characters in the following points: 以下の点で通常の文字と異なる: % \begin{itemize} +%<*zh> +\item +% %<*en> \item Always treated as \textbf{JAchar}s. % @@ -3290,6 +4626,83 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形 使えるようになる.これはAdobe-Japan1におけるCID番号が \verb+xxx+ の文字を表す. % +\subsection{\texttt{luatexja-adjust.sty}} +\label{ssec-adj} +\begin{figure}[t] +\def\sq{% + \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{% +  \hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw% + \hskip\dimexpr.5\zw-.2pt\relax}\hss}} +\def\sb{\hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{% + ■\hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw% + \hskip\dimexpr.5\zw-.2pt\relax}\hss}} +\newbox\gridbox +\def\outbox#1{{\Large% + \ltjsetparameter{kanjiskip=0pt plus .2\zw minus .2\zw}% + \setbox\gridbox=\hbox to 20\zw{\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb}% + \hbox{\textcolor{cyan!50!white}{\copy\gridbox}\hskip-20\zw% + \vbox{\hsize=20\zw\noindent\leftskip0pt\rightskip0pt\parfillskip0pt#1}\vrule}% +}} + +{\centering +\begin{tabular}{lc} +\toprule +no adjustment&\outbox{以上の原理は,「包除原理」とよく呼ばれるが\hskip-.5\zw\null}\\ +without priority&% +\ltjdisableadjust +\outbox{以上の原理は,「包除原理」とよく呼ばれるが}% +\ltjenableadjust\\ +with priority&% +\outbox{以上の原理は,「包除原理」とよく呼ばれるが} +%\ltjdisableadjust +\\ +\bottomrule +\end{tabular}\par} +\smallskip + +Note: the value of +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure, +for making the difference obvious. +%\caption{行長調整}\label{fig-adj} +%\caption{Line adjustment}\label{fig-adj} +\end{figure} + + +%<*en> +... +% +%<*ja> +\pTeX では,行長調整において優先度の概念が存在しなかったため,図 +\ref{fig-adj}上段における半角分の半端は,図\ref{fig-adj}中段のように,鍵 +括弧周辺の空白と和文間空白(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}})の両方によって負担される.し +かし,「日本語組版処理の要件」\cite{jlreq}やJIS~X~4051~\cite{x4051}におい +ては,このような状況では半端は鍵括弧周辺の空白のみで負担し,その他の和文 +文字はベタ組で組まれる(図\ref{fig-adj}下段)ことになっている.この追加 +パッケージは\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き +の行長調整を提供する.詳細な仕様については\ref{sec-adjspec}を参照. + + +\texttt{luatexja-adjust.sty}は,以下の命令を提供する.これらはすべてグローバルに効力を発揮する. + +\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} +\item[\char92ltjdisableadjust] +優先順位付きの行長調整を無効化する. + +\item[\char92ltjenableadjust] +優先順位付きの行長調整を有効化する. + +\item[優先度設定……] + +\end{list} + + + + + +% + + + %\part{Implementations} %\part{実装} \label{part-imp} @@ -3314,12 +4727,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'(もしくは「級」)は日本の写植で用いられる単位である.したがって, この寸法レジスタの値を変更してはならない. % @@ -3331,7 +4744,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+ の別名である. % @@ -3393,18 +4806,18 @@ The amount of shifting the baseline of Japanese fonts in scaled point ($2^{-16}\ \attr{ltj@autospc} %<*en> -Whether the auto insertion of \Param{kanjiskip} is allowed at the node. +Whether the auto insertion of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is allowed at the node. % %<*ja> -そのノードで\Param{kanjiskip}の自動挿入が許されるかどうか. +そのノードで\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の自動挿入が許されるかどうか. % \attr{ltj@autoxspc} %<*en> -Whether the auto insertion of \Param{xkanjiskip} is allowed at the node. +Whether the auto insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed at the node. % %<*ja> -そのノードで\Param{xkanjiskip}の自動挿入が許されるかどうか. +そのノードで\Param{\hyperlink{fld:xks}{xkanjiskip}}の自動挿入が許されるかどうか. % \attr{ltj@icflag} @@ -3421,11 +4834,11 @@ assigned to this attribute: Glues from an italic correction (\verb+\/+). This distinction of origins of glues (from explicit \verb+\kern+, or from \verb+\/+) - is needed in the insertion process of \Param{xkanjiskip}. + is needed in the insertion process of \Param{\hyperlink{fld:xks}{xkanjiskip}}. % %<*ja> イタリック補正(\verb+\/+)によるグルー.このグルーの由来の区別(\verb+\kern+ か -\verb+\/+ か)は\Param{xkanjiskip}の挿入過程において必要になる. +\verb+\/+ か)は\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入過程において必要になる. % \item[\textit{packed} (2)] @@ -3438,7 +4851,7 @@ Penalties inserted for the word-wrapping process of Japanese characters (\emph{k 和文文字のワードラップ過程において挿入されたペナルティ(\emph{kinsoku}). % -\item[\textit{from\_jfm} (4)] +\item[\textit{from\_jfm} (6)] %<*en> Glues/kerns from JFM. % @@ -3446,39 +4859,40 @@ Glues/kerns from JFM. JFM由来のグルー/カーン. % -\item[\textit{line\_end} (5)] -%<*en> -Kerns for ... -% -%<*ja> -カーン ... -% +%%\item[\textit{line\_end} (5)] +%%%<*en> +%%Kerns for \ldots +%%% +%%%<*ja> +%%和文文字が行末にきたとき,行末との間に挿入されるカーンである. +%%% ぶら下げ組への応用 +%%% -\item[\textit{kanji\_skip} (6)] +\item[\textit{kanji\_skip} (9)] %<*en> -Glues for \Param{kanjiskip}. +Glues for \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}. % %<*ja> -\Param{kanjiskip}のグルー. +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}のグルー. % -\item[\textit{xkanji\_skip} (7)] +\item[\textit{xkanji\_skip} (10)] %<*en> -Glues for \Param{xkanjiskip}. +Glues for \Param{\hyperlink{fld:xks}{xkanjiskip}}. % %<*ja> -\Param{xkanjiskip}のグルー. +\Param{\hyperlink{fld:xks}{xkanjiskip}}のグルー. % -\item[\textit{processed} (8)] +\item[\textit{processed} (11)] %<*en> -Nodes which is already processed by ... +Nodes which is already processed by \ldots. % %<*ja> -... によって既に処理されたノード. +\LuaTeX-ja の内部処理によって既に処理されたノード. % -\item[\textit{ic\_processed} (9)] +\item[\textit{ic\_processed} (12)] %<*en> Glues from an italic correction, but also already processed. % @@ -3557,7 +4971,7 @@ Nodes for Japanese Characters which the callback process of % \item[30114] -Nodes for indicating beginning of a paragraph. +Nodes for indicating beginning of a paragraph. A paragraph which is started by \verb+\item+ in list-like environments has a horizontal box for its label before the actual contents. So \dots \end{description} @@ -3577,13 +4991,13 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s. %<*en> \LuaTeX-ja has its own stack system, and most parameters of \LuaTeX-ja are stored in it. To clarify the reason, imagine the parameter -\Param{kanjiskip} is stored by a skip, and consider the following +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is stored by a skip, and consider the following source: % %<*ja> \LuaTeX-jaは独自のスタックシステムを持ち,\LuaTeX-jaのほとんどのパラメータは これを用いて保持されている.その理由を明らかにするために, -\Param{kanjiskip}パラメータがスキップレジスタで保持されているとし, +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}パラメータがスキップレジスタで保持されているとし, 以下のコードを考えてみよう: % \begin{LTXexample} @@ -3594,16 +5008,16 @@ source: %<*en> As described in Subsection~\ref{ssec-param}, the only effective value of -\Param{kanjiskip} in an hbox is the latest value, so the value of -\Param{kanjiskip} which applied in the entire hbox should be 5\,pt. +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} in an hbox is the latest value, so the value of +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} which applied in the entire hbox should be 5\,pt. However, by the implementation method of \LuaTeX, this `5\,pt' cannot be known from any callbacks. In the \texttt{tex/packaging.w} (which is a file in the source of \LuaTeX), there are the following codes: % %<*ja> \ref{ssec-param}節で述べたように,ある水平ボックスの中で効力を持つ -\Param{kanjiskip}の値は最後に現れた値のみであり,したがってボックス全体に適用される -\Param{kanjiskip}は5\,ptであるべきである.しかし,\LuaTeX の実装のために, +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値は最後に現れた値のみであり,したがってボックス全体に適用される +\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}は5\,ptであるべきである.しかし,\LuaTeX の実装のために, この`5\,pt'はどのコールバックからも知ることはできない. \texttt{tex/packaging.w}(これは\LuaTeX のソースファイルである)の中に, 以下のコードがある: @@ -3641,6 +5055,7 @@ callback. %\paragraph{The method} %\paragraph{解決法} +%\paragraph{解决方法} %<*en> The code of stack system is based on that in a post of Dev-luatex mailing list\footnote{% @@ -3690,6 +5105,9 @@ group, then: $t$とすると: % \begin{itemize} +%<*zh> +\item +% %<*en> \item If there is no \textit{stack\_flag} node in the list of the hbox, then no assignment was occurred inside the hbox. Hence values of @@ -3747,9 +5165,11 @@ This problem is resolved by using %\section{Linebreak after Japanese Character} %\section{和文文字直後の改行} +%\section{日文字符后断行} \label{sec-lbreak} %\subsection{Reference: Behavior in \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, @@ -3802,36 +5222,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(無効文字)は上の図では省かれている. -% +\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 の入力処理部の状態遷移.} @@ -3841,6 +5297,7 @@ after `beginning/ending of a group' characters. %\subsection{Behavior in \LuaTeX-ja} %\subsection{\LuaTeX-jaの動作} +%\subsection{\LuaTeX-ja行为} %<*en> States in the input processor of \LuaTeX\ is the same as that of \TeX, and they can't be customized by any callbacks. Hence, we can only use @@ -3859,8 +5316,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': \[ @@ -3907,7 +5365,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 入力行は次の「正規表現」にマッチしている: \[ @@ -3943,21 +5402,23 @@ u %\section{Insertion of JFM glues, \Param{kanjiskip} and \Param{xkanjiskip}} %\section{JFMグルーの挿入,\Param{kanjiskip}と\Param{xkanjiskip}} +%\section{JFM的胶插入,\Param{kanjiskip}和\Param{xkanjiskip}} \label{sec-jfmglue} %\subsection{Overview} %\subsection{概要} +%\subsection{概要} -\LuaTeX-jaにおける和文処理グルーの挿入方法は,\pTeX のそれとは全く異なる. +\LuaTeX-jaにおける \textbf{JAglue} の挿入方法は,\pTeX のそれとは全く異なる. \pTeX では次のような仕様であった: \begin{itemize} \item JFMグルーの挿入は,和文文字を表すトークンを元に水平リストに(文字を表す)を 追加する過程で行われる. -\item \Param{xkanjiskip}の挿入は,水平ボックスへのパッケージングや行分割前に行われる. -\item \Param{kanjiskip}はノードとしては挿入されない.パッケージングや行分割の計算時に -「和文文字を表す2つのの間には\Param{kanjiskip}がある」ものとみなされる. +\item \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は,水平ボックスへのパッケージングや行分割前に行われる. +\item \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}はノードとしては挿入されない.パッケージングや行分割の計算時に +「和文文字を表す2つのの間には\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}がある」ものとみなされる. \end{itemize} しかし,\LuaTeX-jaでは,水平ボックスへのパッケージングや行分割前に全ての -\textbf{JAglue},即ちJFMグルー・\Param{xkanjiskip}・\Param{kanjiskip}の +\textbf{JAglue},即ちJFMグルー・\Param{\hyperlink{fld:xks}{xkanjiskip}}・\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の 3種類を一度に挿入することになっている.これは,\LuaTeX において欧文の合字・ カーニング処理がノードベースになったことに対応する変更である. @@ -3970,6 +5431,7 @@ u %\subsection{definition of a `cluster'} %\subsection{「クラスタ」の定義} +%\subsection{“cluster”定义} \def\OA{$\text{\sf O}_{\text{\sf A}}$} \def\OB{$\text{\sf O}_{\text{\sf B}}$} @@ -4148,7 +5610,7 @@ $\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$の算出は,\textbf{ \textit{id}が\textit{id\_pbox}であって$\mathit{Np}.\mathit{head}$が\textbf{JAchar}であるとき. \item[和文B] リスト中の水平ボックスの中身の先頭として出現した和文文字.和文Aとの違いは,これの前に -JFMグルーの挿入が行われない(\Param{xkanjiskip},~\Param{kanjiskip}は入り得る)ことである.\\ +JFMグルーの挿入が行われない(\Param{\hyperlink{fld:xks}{xkanjiskip}},~\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}は入り得る)ことである.\\ \textit{id}が\textit{id\_hlist}か\textit{id\_disc}であって$\mathit{Np}.\mathit{head}$が\textbf{JAchar}であるとき. \item[欧文] リスト中に直接/水平ボックスの中身として出現している欧文文字.次の3つの場合が該当: @@ -4233,24 +5695,59 @@ $g$は「文字コード\texttt{'boxbdd'}の文字」と\textit{Np}の間に入 まず,「右空白」にあたる量を算出する.通常はこれが,隣り合った2つの和文文字間に入る空白量となる. \begin{description} \item[JFM由来{[M]}] JFMの文字クラス指定によって入る空白を以下によって求める.この段階で空白量が未定義(未指定)だった場合, - デフォルト値\Param{kanjiskip}を採用することとなるので,次へ. + デフォルト値\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}を採用することとなるので,次へ. \begin{enumerate} \item もし両クラスタの間で\verb+\inhibitglue+が実行されていた場合(証としてwhatsitノードが自動挿入される), - 代わりに\Param{kanjiskip}が挿入されることとなる.次へ. + 代わりに\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}が挿入されることとなる.次へ. \item \textit{Nq}と\textit{Np}が同じJFM・同じ\texttt{jfmvar}キー・同じサイズの和文フォントであったならば, - 共通に使っているJFM内で挿入される空白(グルーかカーン)が決まっているか調べる. + 共通に使っているJFM内で挿入される空白(グルーかカーン)が決まっているか調べ,決まっていればそれを採用. \item 1.でも2.でもない場合は,\textit{Nq}と\textit{Np}が違うJFM/\texttt{jfmvar}/サイズである. この場合,まず \[ -\vcenter{\halign{\hfil$#:={}$&(\inhibitglue#\inhibitglue)\cr -gb&\textit{Nq}と「文字コードが{\tt'diffmet'}の文字」との間に入るグルー/カーン\cr -ga&「文字コードが{\tt'diffmet'}の文字」と\textit{Np}との間に入るグルー/カーン\cr +\vcenter{\halign{\hfil$#:={}$&\inhibitglue#\inhibitglue\cr +gb&(\textit{Nq}と「使用フォントが\textit{Nq}のそれと同じで,\hfil\cr +\omit&\quad 文字コードが\textit{Np}のそれの文字」との間に入るグルー/カーン)\hfil\cr +ga&(\inhibitglue 「使用フォントが\textit{Np}のそれと同じで,\hfil\cr +\omit&\quad 文字コードが\textit{Nq}のそれの文字」と\textit{Np}との間に入るグルー/カーン)\hfil\cr }} \] -として,左側由来・右側由来の空白(グルー/カーン)を(それぞれのJFMから)求める. -$\mathit{ga}$と$\mathit{gb}$のどちらか片方が未定義であるならば,定義されている側の値をそのまま採用する. -もし$\mathit{ga}$と$\mathit{gb}$が両方決まっているならば,両者の値を平均\footnote{\Param{differentjfm}パラメタの -値によって,「大きい方」「小さい方」「合計」に変えることができる.}した値を採用する. +として,前側の文字のJFMを使った時の空白(グルー/カーン)と,後側の文字のJFMを使った時のそれを求める. + +$\mathit{gb}$,~$\mathit{ga}$それぞれに対するの値を$d_b$,~$d_a$とする. +\begin{itemize} +\item +$\mathit{ga}$と$\mathit{gb}$の両方が未定義であるならば,JFM由来のグルーは挿入されず,\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}を採用することとなる.どちらか片方のみが未定義であるならば,次のステップでその未定義の方は長さ0のkernで,の値は0であるかのように扱われる. +\item +\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}の値が\texttt{pleft}, \texttt{pright}, \texttt{paverage}のとき, +の指定に従って比例配分を行う. +JFM由来のグルー/カーンは以下の値となる: +\[ + f\left(\frac{1-d_b}2\textit{gb} + \frac{1+d_b}2\textit{ga}, +\frac{1-d_a}2\textit{gb} + \frac{1+d_a}2\textit{ga}\right) +\] +ここで.$f(x,y)$は +\[ + f(x,y)=\begin{cases} +x&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{pleft};\\ +y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{pright};\\ +(x+y)/2&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{paverage}; +\end{cases}. +\] +\item +\Param{differentmet}がそれ以外の値の時は,の値は無視され,JFM由来のグルー/カーンは以下の値となる: +\[ + f(\textit{gb},\textit{ga}) +\] +ここで.$f(x,y)$は +\[ + f(x,y)=\begin{cases} +\min(x,y)&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{small};\\ +\max(x,y)&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{large};\\ +(x+y)/2&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{average};\\ +x+y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{both}; +\end{cases}. +\] +\end{itemize} \end{enumerate} 例えば, @@ -4269,37 +5766,38 @@ $\mathit{ga}$と$\mathit{gb}$のどちらか片方が未定義であるならば この場合,$p$と$q$の間は,実フォントが異なるにもかかわらず(2)の状況となる一方で, $q$と$r$の間は(実フォントが同じなのに)\texttt{jfmvar}キーの内容が異なるので(3)の状況となる. \item[\Param{kanjiskip}~{[K]}] 上の[M]において空白が定まらなかった場合, -\Param{kanjiskip}の値を以下で定め,それを「右空白」として採用する. +以下で定めた量「右空白」として採用する. この段階においては,\verb+\inhibitglue+は効力を持たないため, 結果として,2つの和文文字間には常に何らかのグルー/カーンが挿入されることとなる. \begin{enumerate} \item 両クラスタ(厳密には$\mathit{Nq}.\mathit{tail}$,$\mathit{Np}.\mathit{head}$)の中身の文字コードに対する \Param{autospacing}パラメタが両方ともfalseだった場合は,長さ0のglueとする. -\item ユーザ側から見た\Param{kanjiskip}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で -なければ,\Param{kanjiskip}パラメタの値を持つglueを採用する. -\item 2.でない場合は,\textit{Nq}, \textit{Np}で使われているJFMに指定されている\Param{kanjiskip}の値を用いる. +\item ユーザ側から見た\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で +なければ,\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}パラメタの値を持つglueを採用する. +\item 2.でない場合は,\textit{Nq}, \textit{Np}で使われているJFMに指定されている\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値を用いる. どちらか片方のクラスタだけが和文文字(\textsf{和文A}・\textsf{和文B})のときは,そちらのクラスタで使われている JFM由来の値だけを用いる.もし両者で使われているJFMが異なった場合は,上の[M]~3.と同様の方法を用いて調整する. \end{enumerate} \end{description} \paragraph{「左空白」の算出とそれに伴う補正} -次に,「左空白」にあたる量を算出する: -\begin{description} -\item[line-end~{[E]}] -\textit{Nq}と\textit{Np}の間で行分割が起きたときに, -\textit{Nq}と行末の間に入る空白である.ぶら下げ組の組版などに用いられることを期待している. -\begin{enumerate} -\item 既に算出した「右空白」がカーンである場合は,「左空白」は挿入されない. -\item 「右空白」がglueか未定義(長さ0のglueとみなす)の場合は,「左空白」は -\textit{Nq}と「文字コード\texttt{'lineend'}の文字」との間に入るカーンとして,JFMから決定される. -\item 2.で決まった「左空白」の長さが0でなければ,その分だけ先ほど算出した「右空白」の自然長を引く. -\end{enumerate} -\end{description} +「左空白」は過去のバージョンでは定義していたが,このバージョンでは挿入は一切行われない(機能自体削除している).しかし,仕様は流動的であり,将来復活する可能性もあるため,マニュアル中の記述は今のところ極力変更しない. +% 次に,「左空白」にあたる量を算出する: +% \begin{description} +% \item[line-end~{[E]}] +% \textit{Nq}と\textit{Np}の間で行分割が起きたときに, +% \textit{Nq}と行末の間に入る空白である.ぶら下げ組の組版などに用いられることを期待している. +% \begin{enumerate} +% \item 既に算出した「右空白」がカーンである場合は,「左空白」は挿入されない. +% \item 「右空白」がglueか未定義(長さ0のglueとみなす)の場合は,「左空白」は +% \textit{Nq}と「文字コード\texttt{'lineend'}の文字」との間に入るカーンとして,JFMから決定される. +% \item 2.で決まった「左空白」の長さが0でなければ,その分だけ先ほど算出した「右空白」の自然長を引く. +% \end{enumerate} +% \end{description} \paragraph{禁則用ペナルティの挿入} まず, \[ - a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{postbreakpenalty}の値}) -+(\text{\textit{Np}{\footnotemark}の文字に対する\Param{prebreakpenalty}の値}) + a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{\hyperlink{fld:postbp}{postbreakpenalty}}の値}) ++(\text{\textit{Np}{\footnotemark}の文字に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値}) \] とおく\footnotetext{厳密にはそれぞれ$\mathit{Nq}.\mathit{tail}$,$\mathit{Np}.\mathit{head}$.}. ペナルティは通常$[-10000,10000]$の整数値をとり,また$\pm 10000$は正負の無限大を意味することになっているが,この$a$の @@ -4332,29 +5830,30 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき \begin{table}[t] %\caption{Summary of JFM glues.} %\caption{JFM グルーの概要.} +%\caption{JFM胶总结。} \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} @@ -4400,7 +5899,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる. \begin{itemize} \item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる. -それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める. +それが失敗した場合は,\textsf{\Param{\hyperlink{fld:xks}{xkanjiskip}}~[X]}によって定める. \item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も同じ. \item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである. \end{itemize} @@ -4414,23 +5913,23 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \item そうでなければ, \textit{Nq}と「文字コードが{\tt'jcharbdd'}の文字」との間に入るグルー/カーンとして定まる. \end{enumerate} -\item[\Param{xkanjiskip}~{[X]}] +\item[\Param{\hyperlink{fld:xks}{xkanjiskip}}~{[X]}] この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように, -\Param{xkanjiskip}の値を以下で定め,それを「右空白」として採用する. +以下で定めた量を「右空白」として採用する. この段階で\verb+\inhibitglue+は効力を持たないのも同じである. \begin{enumerate} -\item 以下のいずれかの場合は,\Param{xkanjiskip}の挿入は抑止される.しかし,実際には行分割を許容するために,長さ0のglueを採用する: +\item 以下のいずれかの場合は,\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は抑止される.しかし,実際には行分割を許容するために,長さ0のglueを採用する: \begin{itemize} \item 両クラスタにおいて,それらの中身の文字コードに対する\Param{autoxspacing}パラメタが共にfalseである. -\item \textit{Nq}の中身の文字コードについて,「直後への\Param{xkanjiskip}の挿入」が禁止されている +\item \textit{Nq}の中身の文字コードについて,「直後への\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入」が禁止されている (つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが2以上). -\item \textit{Np}の中身の文字コードについて,「直前への\Param{xkanjiskip}の挿入」が禁止されている +\item \textit{Np}の中身の文字コードについて,「直前への\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入」が禁止されている (つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが偶数). \end{itemize} -\item ユーザ側から見た\Param{xkanjiskip}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で -なければ,\Param{xkanjiskip}パラメタの値を持つglueを採用する. +\item ユーザ側から見た\Param{\hyperlink{fld:xks}{xkanjiskip}}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で +なければ,\Param{\hyperlink{fld:xks}{xkanjiskip}}パラメタの値を持つglueを採用する. \item 2.でない場合は,\textit{Nq}, \textit{Np}(\textsf{和文A}/\textsf{和文B}なのは片方だけ) -で使われているJFMに指定されている\Param{xkanjiskip}の値を用いる. +で使われているJFMに指定されている\Param{\hyperlink{fld:xks}{xkanjiskip}}の値を用いる. \end{enumerate} \end{description} @@ -4439,7 +5938,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \textsf{和文A}のクラスタが逆になるので,\textsf{Boundary-A~[\OA]}の部分が変わるだけ. \begin{itemize} \item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる. -それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める. +それが失敗した場合は,\textsf{\Param{\hyperlink{fld:xks}{xkanjiskip}}~[X]}によって定める. \item \textit{Nq}が和文でないので,「左空白」は算出されない. \item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである. \end{itemize} @@ -4466,9 +5965,9 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ. \item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる. なお,$\mathit{Np}.\mathit{head}$は無意味であるから, -「$\mathit{Np}.\mathit{head}$に対する\Param{prebreakpenalty}の値」は0とみなされる.言い換えれば, +「$\mathit{Np}.\mathit{head}$に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値」は0とみなされる.言い換えれば, \[ - a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{postbreakpenalty}の値}). + a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{\hyperlink{fld:postbp}{postbreakpenalty}}の値}). \] \begin{description} \item[箱] \textit{Np}が\textsf{箱}であった場合は,両クラスタの間での行分割は @@ -4512,7 +6011,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow \overbrace{\Node{glue}{1\,pt}}^{\mathit{Np}} \] のような状況を考える. -このとき,$a$,即ち「あ」の\Param{postbreakpenalty}がいかなる値であっても, +このとき,$a$,即ち「あ」の\Param{\hyperlink{fld:postbp}{postbreakpenalty}}がいかなる値であっても, この2クラスタ間は最終的に \begin{equation} \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow @@ -4520,7 +6019,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \label{eq-gref} \end{equation} となり,$a$分のペナルティは挿入されないことに注意して欲しい. -\Param{postbreakpenalty}は($a$は)殆どの場合が非負の値と考えられ,そのような場合では +\Param{\hyperlink{fld:postbp}{postbreakpenalty}}は($a$は)殆どの場合が非負の値と考えられ,そのような場合では \eqref{eq-gref}と \[ \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow @@ -4541,7 +6040,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]} \item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる. $\mathit{Nq}.\mathit{tail}$は無意味なので, \[ - a:=(\text{\textit{Np}{\footnotemark}の文字に対する\Param{prebreakpenalty}の値}). + a:=(\text{\textit{Np}{\footnotemark}の文字に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値}). \] \begin{description} \item[箱] \textit{Nq}が\textsf{箱}の場合は,\textsf{P-allow~[PA]}を用いる. @@ -4566,7 +6065,7 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので, \item \textsf{和文B}と箱・グルー・カーンが隣接したとき(どちらが前かは関係ない),間にJFMグルー・ペナルティの挿入は一切しない. \item \textsf{和文B}と\textsf{和文B},また\textsf{和文B}と\textsf{欧文}とが隣接した時は,禁則用ペナルティ挿入処理は \textsf{P-suppress~[PS]}が用いられる. -\item \textsf{和文B}の文字に対する\Param{prebreakpenalty},~\Param{postbreakpenalty}の値は使われず,0として計算される. +\item \textsf{和文B}の文字に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}},~\Param{\hyperlink{fld:postbp}{postbreakpenalty}}の値は使われず,0として計算される. \end{itemize} @@ -4578,18 +6077,800 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので, \end{LTXexample} \begin{itemize} \item 1行目の\verb+\inhibitglue+は\textsf{Boundary-B~[\OB]}の処理のみを抑止するので,ピリオドと「A」の間には -\Param{xkanjiskip}(四分アキ)が入ることに注意. +\Param{\hyperlink{fld:xks}{xkanjiskip}}(四分アキ)が入ることに注意. \item 2行目のピリオドと「A」の間においては,前者が\textsf{和文B}となる(水平ボックスの中身の末尾として登場しているから)ので, -そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる. +そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{\hyperlink{fld:xks}{xkanjiskip}}が入ることとなる. \item 3行目では,ピリオドの属するクラスタは\textsf{和文A}である.これによって, ピリオドと「A」の間には\textsf{Boundary-B~[\OB]}由来の半角アキが入ることになる. \end{itemize} \section{psft} +... + +%\section{Patch for the \Pkg{listings} package} +%\section{Patch for the \Pkg{listings} package} +%\section{\Pkg{listings} パッケージへの対応} + +%<*en> +It is well-known that the \Pkg{listings} package outputs weird results +for Japanese input. +The \Pkg{listings} package makes most of letters active and assigns +output command for each letter \cite{listings}. +But Japanese characters are not included in these activated letters. +For \pTeX{} series, there is no method to make Japanese characters active; +a patch \Pkg{jlisting.sty} \cite{jlisting} resolves the problem forcibly. +% +%<*ja> +\Pkg{listings} パッケージが,そのままでは日本語をまともに出力できないこと +はよく知られている.きちんと整形して出力するために,\Pkg{listings}パッケー +ジは内部で「ほとんどの文字」をアクティブにし,各文字に対してその文字の出 +力命令を割り当てている \cite{listings}. +しかし,そこでアクティブにする文字の中に,和文文 +字がないためである.\pTeX 系列では,和文文字をアクティブにする手法がなく, +\Pkg{jlisting.sty} というパッチ\cite{jlisting}を用いることで無理やり解決していた. +% + +%<*en> +In \LuaTeX-ja, the problem is resolved by using \verb+process_input_buffer+ callback. +The callback function inserts the output command before each letter above U+0080. +This method can omits the process to make all Japanese characters active +(most of the activated characters are not used in many cases). +% +%<*ja> +\LuaTeX-jaでは,\verb+process_input_buffer+ コールバックを利用することで, +「各行に出現するU+0080以降の文字に対して,それらの出力命令を前置する」という方法をとっている. +これにより,(入力には使用されていないかもしれない)和文文字をもすべてアクティブ化する手間もなく, +見通しが良い実装になっている. +% + +%<*en> +If \Pkg{listings.sty} and \LuaTeX-ja were loaded, +then the patch \Pkg{lltjp-listings.sty} is loaded automatically at \verb+\begin{document}+. +% +%<*ja> +\LuaTeX-ja で利用される \Pkg{listings} パッケージへのパッチ \Pkg{lltjp-listings.sty} は, +\Pkg{listings.sty} と\LuaTeX-jaを読み込んでおけば, +\verb+\begin{document}+ の箇所において自動的に読み込まれるので,通常はあまり +意識する必要はない. +% + +%\paragraph{Class of characters} +%\paragraph{文字種} + +%<*en> +Roughly speaking, the \Pkg{listings} package processes input as follows: +% +%<*ja> +\Pkg{listings} パッケージの内部では,大雑把に言うと +% +\begin{enumerate} +%\item ... +%<*en> +\item Collects \textit{letters} and \textit{digits}, which can be used for the name of identifiers. +% +%<*ja> +\item 識別子として使える文字 (``letter'',~``digit'') たちを +集める. +% +%<*en> +\item When reading an \textit{other}, outputs the collected character string (with modification, if needed). +% +%<*ja> +\item letterでもdigitでもない文字が現れた時に,収集した文字列を(必要なら修飾して)出力する. +% +%<*en> +\item Collects \textit{others}. +% +%<*ja> +\item 今度は逆に,letterでない文字たちをletterが現れるまで集める. +% +%<*en> +\item When reading a \textit{letter} or a \textit{digit}, outputs the collected character string. +% +%<*ja> +\item letterが出現したら集めた文字列を出力する. +% +%<*en> +\item Turns back to 1. +% +%<*ja> +\item 1.に戻る. +% +\end{enumerate} +%<*en> +By the above process, line breaks inside of an identifier are blocked. +A flag \verb+\lst@ifletter+ indicates whether the previous character can be used +for the name of identifiers or not. +% +%<*ja> +という処理が行われている.これにより,識別子の途中では行分割が行われないようになっている. +直前の文字が識別子として使えるか否かは \verb+\lst@ifletter+ というフラグに格納されている. +% + +%<*en> +For Japanese characters, line breaks are permitted on both sides +except for parentheses, dashes, etc. +To process Japanese characters, +The pacth \Pkg{lltjp-listings.sty} introduces a new flag \verb+\lst@ifkanji+, which indicates +whether the previous character is Japanese character or not. +For illustration, we introduce the following classes of character: +% +%<*ja> +さて,日本語の処理である.殆どの和文文字の前後では行分割が可能であるが,その一方で +括弧類や音引きなどでは禁則処理が必要なことから,\Pkg{lltjp-listings.sty} では, +直前が和文文字であるかを示すフラグ \verb+\lst@ifkanji+ を新たに導入した. +以降,説明のために以下のように文字を分類する: +% +\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\\ +%Meaning&identifier char&other alphabet&most of Japanese char&open paren&close paren\\ +%意図&識別子中の文字&その他欧文文字&殆どの和文文字&開き括弧類&閉じ括弧類\\ +\bottomrule +\end{tabular} +\end{center} +%<*en> +Note that \textit{digits} in the \Pkg{listings} package can be Letter or +Other according to circumstances. +% +%<*ja> +なお,本来の\Pkg{listings} パッケージでの分類``digit''は, +出現状況によって,上の表のLetterとOtherのどちらにもなりうる. +また,KanjiとCloseは \verb+\lst@ifletter+ と \verb+\lst@ifkanji+ の値が一致しているが, +これは間違いではない. +% + +%<*en> +For example, let us consider the case an Open comes after a Letter. +Since an Open represents Japanese open parenthesis, +it is preferred to be permitted to insert line break after the Letter. +Therefore, the collected character string is output in this case. +% +%<*ja> +例えば,Letterの直後にOpenが来た場合を考える. +文字種Openは和文開き括弧類を想定しているので,Letterの直後では行分割が可能であることが望ましい. +そのため,この場合では,すでに収集されている文字列を出力することで行分割を許容するようにした. +% + +%<*en> +The following table summarizes $5\times 5=25$ cases: +% +%<*ja> +同じように,$5\times 5=25$通り全てについて書くと,次のようになる: +% +\begin{center} +\small +\begin{tabular}{llccccc} +\toprule +%<*en> +&&\multicolumn{4}{c}{Next}\\\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&collects&\multicolumn{3}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\ +&Other&outputs&collects&\multicolumn{2}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\ +Prev&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\ +&Open&\multicolumn{5}{c}{\hrulefill \ collects\ \hrulefill}\\ +&Close&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\ +% +%<*ja> +&&\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} +%In the above table, +%上の表において, +\begin{itemize} +%\item ... +%\item ``outputs'' means to output the collected character string (i.e., line breaking is permitted there). +%\item 「出力」は,それまでに集めた文字列を出力(≒ここで行分割可能)を意味する. + +%\item ``collects'' means to append the next character to the collected character string (i.e., line breaking is prohibited there). +%\item 「収集」は,後側の文字を,現在収集された文字列に追加(行分割不可)を意味する. +\end{itemize} + +%\paragraph{Classification of characters} +%\paragraph{和文文字扱いとなる文字} + +%<*en> +Characters are classified according to \Param{jacharrange} parameter (see Section \ref{ssec-setrange}): +% +%<*ja> +\Pkg{listings} パッケージにおいて和文文字と扱われる +(前に述べたKanji, Open,あるいは「閉じ括弧類」分類)か否かは, +通常の\textbf{JAchar}/\textbf{Alchar}の範囲の設定(\Param{jacharrange} パラメータ,\ref{ssec-setrange}節を参照)に従って行われる: +% +\begin{itemize} +%\item ... + +%\item \textbf{ALchars} above U+0080 are Letter. +%\item (U+0080以降の)\textbf{ALchar}は,すべてLetter扱いである. + +%\item \textbf{JAchars} are classified in the order as follows: +%\item (U+0080以降の)\textbf{JAchar}については,以下の順序に従って文字種を決める: +\begin{enumerate} +%\item ... +%\item Characters whose \Param{\hyperlink{fld:prebp}{prebreakpenalty}} is greater than or equal to 0 are Open. +%\item \Param{\hyperlink{fld:prebp}{prebreakpenalty}}が0以上の文字はOpen扱いである. + +%\item Characters whose \Param{\hyperlink{fld:postbp}{postbreakpenalty}} is greater than or equal to 0 are Close. +%\item \Param{\hyperlink{fld:postbp}{postbreakpenalty}}が0以上の文字はClose扱いである. + +%\item Characters that don't satisfy the above two conditions are Kanji. +%\item 上の2条件のどちらにも当てはまらなかった文字は,Kanji扱いである. +\end{enumerate} +\end{itemize} + +%<*en> +The width of halfwidth kana (U+FF61--U+FF9F) is same as the width of \textbf{ALchar}; +the width of the other \textbf{JAchars} is double the width of \textbf{ALchar}. +% +%<*ja> +なお,半角カナ(U+FF61--U+FF9F)以外の\textbf{JAchar}は欧文文字2文字分の幅をとるものとみなされる. +半角カナは欧文文字1文字分の幅となる. +% + +%<*en> +The classification process is executed every time a character appears in +listing environments. +% +%<*ja> +これらの文字種決定は,実際に \texttt{lstlisting} 環境などの内部で文字が出てくるたびに行われる. +% + +%<*ja> +\section{和文の行長補正方法} +\label{sec-adjspec} +\texttt{luatexja-adjust.sty} で提供される優先順位付きの行長調整の詳細を述 +べる.大まかに述べると,次のようになる. +\begin{itemize} +\item 通常の\TeX の行分割方法に従って,段落を行分割する.この段階では,行 + 長に半端が出た場合,その半端分は\Param{\hyperlink{fld:xks}{xkanjiskip}}, + \Param{\hyperlink{fld:kanjiskip}{kanjiskip}},JFMグルーの全てで(優先順位なく)負担される. +\item その後,\texttt{post\_linebreak\_filter} callbackを使い,\textbf{段 + 落中の各行ごとに},行末文字の位置を調整したり,優先度付きの行長調整 + を実現するためにグルーの伸縮度を調整する. +\texttt{luatexja-adjust.sty} の作用は,このcallbackを追加するだけであり, + この章の残りではcallbackでの処理について解説する. +\end{itemize} + +\paragraph{準備:合計伸縮量の計算} +グルーの伸縮度(\texttt{plus} や \texttt{minus} で指定されている値)には, +有限値の他に,\texttt{fi},\texttt{fil},\texttt{fill},\texttt{filll}と +いう4つの無限大レベル(後ろの方ほど大きい)があり,行の調整に +\texttt{fi} などの\textbf{無限大レベルの伸縮度が用いられている場合は,そ +の行に対しての処理を中止}する. + +よって,以降,問題にしている行の行長調整は伸縮度が有限長のグルーを用いて +行われているとして良い.まず,段落中の行中のグルーを +\begin{itemize} +\item 下のどれにも該当しないグルー +\item JFMグルー(優先度別にまとめられる) +\item 和欧文間空白(\Param{\hyperlink{fld:xks}{xkanjiskip}}) +\item 和文間空白(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}) +\end{itemize} +の$1+1+5+1=8$つに類別し,それぞれの種別ごとに許容されている伸縮度の合計を計算する. +また,行長と自然長との差の絶対値を計算し,それを\textit{total}とおく. + +\subsection{行末文字の位置調整} +まず,行末が文字クラス$n$の\textbf{Jachar}であった場合, +それを動かすことによって,\textbf{JAglue} が負担する調整量を少なくしようとする. +この行末文字の左右の移動可能量は,JFM中にある文字クラス$n$の定義の +\texttt{end\_stretch},~\texttt{end\_shrink}フィールドに全角単位の値として記述されている. + +例えば,行末文字が句点「。」であり,そこで用いられているJFM中に +\begin{verbatim} + [2] = { + chars = { '。', ... }, width = 0.5, ..., + end_stretch = 0.5, end_shrink = 0.5, + }, +\end{verbatim} +という指定があった場合,この行末の句点は +\begin{itemize} +\item 通常の\TeX の行分割処理で「半角以上の詰め」が行われていた場合, +この分の行中の\textbf{JAglue}の負担を軽減するため, +行末の句点を半角だけ右に移動する(ぶら下げ組を行う). +\item 通常の\TeX の行分割処理で「半角以上の空き」が行われていた場合, +逆に行末句点を半角左に移動させる(見た目的に全角取りとなる). +\item 以上のどちらでもない場合,行末句点の位置調整は行わない. +\end{itemize} +となる. + +行末文字を移動した場合,その分だけ\textit{total}の値を引いておく. + +\subsection{グルーの調整} +\textit{total}の分だけが,行中のグルーの伸縮度に応じて負担されることになる. +…… + +% + +%<*en> +\section{Advanced line-adjustment for Japanese characters} +\dots +% + + + \begin{thebibliography}{99} \addcontentsline{toc}{section}{\refname} \bibitem{texbytopic} Victor Eijkhout, \emph{\TeX\ by Topic, A \TeX nician's Reference}, Addison-Wesley, 1992. +\bibitem{listings} C.\ Heinz, B.\ Moses. The \textsf{Listings} Package. +\bibitem{jlisting} Thor Watanabe. Listings\ -\ MyTeXpert. \newblock +\url{http://mytexpert.sourceforge.jp/index.php?Listings} +\bibitem{min10} 乙部厳己,min10フォントについて. +\url{http://argent.shinshu-u.ac.jp/~otobe/tex/files/min10.pdf} +\bibitem{jlreq} W3C Japanese Layout Task Force~(ed), Requirements for Japanese Text Layout (W3C Working Group Note), 2011, 2012. \newblock +\url{http://www.w3.org/TR/jlreq/}% +% \\日本語訳の書籍版:W3C日本語組版タスクフォース(編),『W3C技術ノート 日本語組版処理の要件』,東京電機大学出版局,2012. +\bibitem{x4051} 日本工業規格(Japanese Industrial Standard) JIS~X~4051, +日本語文書の組版方法(Formatting rules for Japanese documents), 1993, 1995, 2004. \end{thebibliography} + +\newpage +\appendix +\batchmode +%<*!zh> +%\section{The category code of non-kanji characters defined in JIS~X~0213} +%\section{\LuaTeX-jaにおけるJIS~X~0213非漢字のcatcode} + +%<*en> +In these tables, the default catcode (\LuaTeX-ja) and kcatcode ((u)\pTeX) of non-kanji +characters defined in JIS~X~0213 from row 1 to row 13 is summarized. +Each character is printed as follows: +% +%<*ja> +ここでは,JIS~X~0213の非漢字部分(第1区〜第13区)のうち, +どの文字が(u)\pTeX や\LuaTeX-jaで制御綴内に使用可能かを表にしてまとめる. +各文字は +% +\begin{center} +\tt\fboxsep=1pt\fbox{\hbox to \zw{\gt あ\hss}}\,\scriptsize LUP +\end{center} +%<*ja> +のように表示しており,各文字は次の意味を持っている. +この表の生成は,JIS~X~0208の範囲内の文字については\verb+\jis+命令を使って行なっている. +% +%<*en> +The tables are generated by using \verb+\jis+ command for characters included in +JIS~X~0208. +Each character in the tables means: +% +\begin{itemize} +%<*en> +\item The background of a character regarded as \textbf{ALchar} in \LuaTeX-ja + is colored light blue. +% +%<*ja> +\item 背景が薄く青く塗られている文字は, +\LuaTeX-ja の標準で\textbf{ALchar}として認識されている文字である. +% + +%<*en> +\item The first letter {\tt L} means that the character is available for + the name of a control sequence in \XeTeX{} and \LuaTeX-ja (its catcode is 11). +% +%<*ja> +\item 1文字目の {\tt L} は,\XeTeX や\LuaTeX-jaにおいてこの文字が制御綴内に +使用可能(catcodeが11)であることを表している. +% + +%<*en> +\item The second letter {\tt U} means that the character is available for + the name of a control sequence in \upTeX{} (its kcatcode is 16 or 17). + \upTeX{} regards these characters as Japanese character. +% +%<*ja> +\item 2文字目の{\tt U} は,\upTeX においてこの文字が制御綴内に使用可能(kcatcodeは16,~17)であることを +表している.この範囲内では,\upTeX は標準で全文字を和文文字として扱うようである. +% + +%<*en> +\item The third letter {\tt P} means that the character is available for + the name of a control sequence in \pTeX{} (its kcatcode is 16 or 17). +% +%<*ja> +\item 3文字目の {\tt P} は,\pTeX においてこの文字が制御綴内に使用可能(kcatcodeは16,~17)であることを +表している. +% + +%<*en> +\item If the third letter is {\tt -} (or the character is printed in red), + the character is not included in JIS~X~0208. + Therefore, you can consider the character is not available in \pTeX. +% +%<*ja> +\item 3文字目が{\tt -}となっているもの(本体の文字も赤身がかっている)は, +JIS~X~0208にないため\pTeX では使用不能と考えて良いものである. +% + +%<*en> +\item The kana for bidakuon in row 4 and 5 are omitted. +% +%<*ja> +\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*{Row #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} + +\errorstopmode + +% +\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 +%