\documentclass{ltjarticle}
+\pdfgentounicode=1
+\pdfglyphtounicode{ff}{0066 0066}
+\pdfglyphtounicode{fi}{0066 0069}
+\pdfglyphtounicode{fl}{0066 006C}
+\pdfglyphtounicode{ffi}{0066 0066 0069}
+\pdfglyphtounicode{ffl}{0066 0066 006C}
\usepackage[twoside,left=23mm,width=170mm,right=17mm,top=25mm,height=231mm,bottom=32mm]{geometry}
-\usepackage{multicol}
-\usepackage{showexpl}
+\usepackage{amsmath,amssymb,xcolor,pict2e,multienum,amsthm,float,makecell,multicol,showexpl}
+\usepackage{hyperref}
+\hypersetup{%
+ backref,
+ unicode,
+ bookmarksnumbered,
+ bookmarksopen,
+ colorlinks,
+ allbordercolors=1 1 1,
+ allcolors=blue,
+ pdfauthor={LuaTeX-ja团队},
+ pdftitle={LuaTeX-ja宏包}
+}
+
\lstset{
basicstyle=\ttfamily\small, pos=o, breaklines=true,
\DeclareRobustCommand\rmfamily{\not@math@alphabet\rmfamily\mathrm\romanfamily\rmdefault\kanjifamily\songdefault\selectfont}
\DeclareRobustCommand\sffamily{\not@math@alphabet\sffamily\mathsf\romanfamily\sfdefault\kanjifamily\heidefault\selectfont}
\makeatother
+\def\postpartname{编}
\def\LuaTeX{Lua\TeX}
\def\pTeX{p\TeX}
\def\pLaTeX{p\LaTeX}
+\def\upTeX{up\TeX}
+\def\eTeX{$\varepsilon$-\TeX}
+\def\epTeX{$\varepsilon$-p\TeX}
+\title{\LuaTeX-ja宏包}
+\author{\LuaTeX-ja项目团队}
+\date{}
\begin{document}
-\section{\LuaTeX-ja的开发背景}
-\LuaTeX-ja是日本开发者北川弘典首倡的一个\LuaTeX的日文支持项目,该项目将\pTeX移植到了\LuaTeX,并做了一定的扩展,删除了一些不正常的特性。
-
-\LuaTeX-ja的项目开发者如下:北川弘典,前田一贵,八登崇之,黑木裕介,阿部纪行,山本宗宏,本田知亮,斋藤修三郎和马起园等。
-
-\LuaTeX-ja现在只能用于plain \TeX格式和\LaTeXe格式,尚不支持\TeX info和Con\TeX t格式。
-
-\LuaTeX-ja现在的代码实现依赖于\verb!luatexbase!以及\verb!luaotfload!等宏包,并且现在仅仅实现了横排,直排组版尚未实现。
-\section{一些约定}
+\maketitle
+\tableofcontents
+\part{用户手册}
+\section{引言}
+\LuaTeX-ja宏包是应用于\LuaTeX引擎上的高质量日语文档排版宏包。
+\subsection{开发背景}
+一般情况下,\TeX下的日语文档输出,是ASCII \pTeX(\TeX的一个扩展)及其衍生软件来完成的。
+\pTeX作为\TeX的一个扩展引擎,在生成高质量的日语文档时,规避了繁杂的宏编写。
+但是在和同时期的引擎相比之下,\pTeX的处境未免有些尴尬:\pTeX已经远远落后于\eTeX和pdf\TeX,此外也没有跟上计算机上对日文处理的演进(比如,UTF-8编码,TrueType字体,OpenType字体)。
+
+最近开发的\pTeX扩展,即\upTeX(Unicode下的\pTeX实现)和\epTeX(\pTeX和\eTeX的融合版本),虽然在部分情况上弥补了上述的差距,但是差距依然存在。
+
+不过,\LuaTeX的出现改变了整个状况。用户可以通过使用Lua语言的“callback”来调整\LuaTeX的内部处理机制。所以,没有必要去通过修改引擎的源代码来支持日文排版,相反,我们需要做的仅仅是编写其当处理callback的Lua脚本。
+\subsection{与\pTeX的差异所在}
+\LuaTeX-ja宏包在设计上,受\pTeX影响很大。最初开发的主要议题是实现\pTeX的特性。
+不过,{\bf\LuaTeX-ja不是简简单单的移植\pTeX,很多不自然的特征和现象都被移出了。}
+
+下面列举出了一些和\pTeX的差异:
+\begin{itemize}
+\item 一个日文字体是由三部分构成的元组:实际的字体(如小塚明朝,IPA明朝),日文字体测度(\textbf{JFM})和变体字串。
+\item \pTeX中,日文字符之后的断行并不允许(也不产生空格),其他在源码中的断行是可以随处允许的。不过,因为\LuaTeX的特殊关系,\LuaTeX-ja并没有这个功能。
+\item 插在日文字符和其他字符言之间的胶/出格(我们将此称为\textbf{JAglue})是重现实现的。
+ \begin{itemize}
+ \item 在\LuaTeX中,内部的字符处理是“基于node的”(例如:\verb!of{}fice!不会避免合字),
+ \textbf{JAglue}的插入处理,现在也是“基于node的”。
+ \item 此外,两个字符之间的node在断行时不起作用的(例如,\verb!\special!node),还有
+ 意大利体校正带来的出格在插入处理中也是被忽略的。
+ \item \textbf{警告:鉴于以上两点,在\pTeX中分割\textbf{JAglue}处理的多种方法不再生效。}
+ 明确地说,下列两种方法不再生效:
+ \begin{verbatim}
+ ちょ{}っと ちょ\/っと
+ \end{verbatim}
+ 如果想得到此种结果,请使用空盒子替代:
+ \begin{verbatim}
+ ちょ\hbox{}っと
+ \end{verbatim}
+ \item 处理过程中,两个在“真实”字体上具区别的日文字体可以被识别出来。
+ \end{itemize}
+\item 当下,\LuaTeX-ja并不支持直行排版。
+\end{itemize}
+\subsection{一些约定}
在本文档中,有下面一些约定:
\begin{itemize}
-\item 所有的CJK字符为\textbf{JAchar},所有的其他字符为\textbf{ALchar}
+\item 所有的日文字符为\textbf{JAchar},所有的其他字符为\textbf{ALchar}
\item primitive,该词在本文档中不仅表示\LuaTeX的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令
\item 所有的自然数从0开始
+\item 本文档中文文档是根据日文文档翻译并添加部分材料组织而成的,所以在大部分篇幅上还是主要依赖于日文原文档
\end{itemize}
-\section{安装使用}
-\subsection{\LuaTeX版本需求}
-\LuaTeX-ja需要使用版本号为大于0.65的\LuaTeX。如果用户使用的是\TeX Live2011或者Mac\TeX 2011以及最新版本的W32\TeX,都可以正常使用\LuaTeX-ja。
-\subsection{\LuaTeX-ja宏包安装}
+\subsection{关于本项目}
+\paragraph{项目wiki} 本项目wiki正在不断编写中。
+\begin{itemize}
+\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英文)
+\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日文)
+\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中文)
+\end{itemize}
+\paragraph{开发者}
+\begin{multienumerate}
+\def\labelenumi{$\bullet$}
+\mitemxxx{北川弘典}{前田一贵}{八登崇之}
+\mitemxxx{黒木裕介}{阿部纪行}{山本宗宏}
+\mitemxxx{本田知亮}{斋藤修三郎}{马起园}
+\end{multienumerate}
+\section{初次使用}
+\subsection{安装}
+在安装\LuaTeX-ja之前,请确认:
+\begin{itemize}
+\item \LuaTeX(版本号为大于0.65)和相关支持宏包。\\
+如果用户使用的是\TeX Live2011以及最新版本的W32\TeX,都可以不考虑此项。
+\item \LuaTeX-ja的源码:)
+\item \underline{\texttt{xunicode}}宏包,当前版本必须为\textit{v0.981(2011/09/09)}。\\
+如果你使用\underline{\texttt{fontspec}}宏包,\underline{\texttt{xunicode}}必须存在。但是请注意该包版本,其他版本可能不会正常工作。
+\end{itemize}
+安装方法如下:
\begin{enumerate}
-\item \LuaTeX-ja宏包的获取:
+\item 用下列诸多方法下载源码归档。当前,\LuaTeX-ja并无\textbf{稳定}版本。
\begin{itemize}
- \item 如果用户使用git,那么可以使用如下命令获取:\\
+ \item 从git中复制\\
\verb!$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git!
- \item 另外用户还可以直接下载master版本:\\
- \verb!$ wget http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz!
+ \item 下载\texttt{master}分支HEAD的\texttt{tar.gz}归档\\
+ \url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}
+ \item 现在\LuaTeX-ja已经包含于CTAN中(在\texttt{macros/luatex/generic/luatexja}文件夹)和W32\TeX中(\texttt{luatexja.tar.gz})。这些版本基于\texttt{master}版本。
\end{itemize}
\item 用户需要将获取的\LuaTeX-ja宏包的\verb!src/!放置到你所用的发行版中的\verb!TEXMFLOACL!树下\verb!tex/!文件夹(如果不存在,请建立)下即可,查询该环境变量需要使用:\\
\verb!$ kpeswhich -expand-var "$TEXMFLOCAL"!
\end{tabular}
\end{center}
\item 在数学模式下,所有的字符使用\verb!mc!字体族来排印
-%中文的C\TeX和xeCJK都没有进行此项设定,导致不能在数学模式下输入中文
\end{itemize}
上述使用的宏包,只满足了最小的日文环境设定需求,并为满足所有的日文排版需求。
\LuaTeX-ja宏包提供了两个文档类:\verb!jclasses!(\pLaTeX标准文档类)和\verb!jsclasses!(奥村晴彦)。用户可自行选择两种文档类。
-
-\subsection{中文排版设定}
-请先下载\verb!zh-classes!:
-\begin{verbatim}
-$ wget http://fandol-doc.googlecode.com/files/zh-classes.tar.xz
-\end{verbatim}
-
-该文档类是基于\verb!jclasses!文档的中文设定版。
-这个文档类需要你安装Adobe Reader并使用两款字体。
-值得注意的是,本文档类提供的两款字体并不嵌入,这首先是为了减轻文档大小,其次为了加快编译速度。
-这两款字体在你安装的中文版Adobe Reader的文件夹下。这两款字体设定如下:
-\begin{center}
- \begin{tabular}{cccc}
- \hline
- 字体&字体族&\verb!\mdseries!&\verb!\bfseries!\\
- \hline
- \textit{song}&\verb!song!&AdobeSongStd-Light&AdobeHeitiStd-Regular\\
- \textit{hei}&\verb!hei!&AdobeHeitiStd-Regular&AdobeHeitiStd-Regular\\
- \hline
- \end{tabular}
-\end{center}
-
-例如:
-\begin{verbatim}
-\documentclass{zh-article}
-\title{Lua\TeX测试}
-\author{某人甲}
-\begin{document}
-\maketitle
-Lua\TeX-ja中文测试。{\hei 测试}
-\end{document}
-\end{verbatim}
-
-我们在这里建议用户更改\textsf{zh-classes.dtx}文件中的相关代码来定制符合自己的文档类。
-但请注意,请将你更改后的文档类更名为你自己的自定义名称。
-这里给出一些常见的中文字体组合:
-\begin{center}
- \begin{tabular}{ccc}
- \hline
- 组合&宋体&黑体\\
- \hline
- Windows$^{(1)}$&SimSun&SimHei\\
- Windows$^{(2)}$&方正书宋&方正粗宋简体\\
- Mac OS X&STSong&STHeiti\\
- \hline
- \end{tabular}
-\end{center}
-%名称 SIL-Kai-Reg-Jian 全名 Kai Regular
-%名称 SimSun-ExtB 全名 SimSun-ExtB
-%名称 FangSong 全名 仿宋
-%名称 SimHei 全名 黑体
-%名称 STHeitiSC-Medium 全名 黑体-简 中等
-%名称 STFangsong 全名 华文仿宋
-%名称 STHeiti 全名 华文黑体
-%名称 STHupo 全名 华文琥珀
-%名称 STKaiti 全名 华文楷体
-%名称 STLiti 全名 华文隶书
-%名称 STSong 全名 华文宋体
-%名称 STXinwei 全名 华文新魏
-%名称 STXingkai 全名 华文行楷
-%名称 STZhongsong 全名 华文中宋
\subsection{fontspec}
在\LuaTeX-ja中,和\texttt{fontspec}共存的一个包为\texttt{luatexja-fontspec}。
这个包自动加载\texttt{fontspec}和\texttt{luatexja}宏包。
\end{verbatim}
当JFM包含“\textsf{kanjiskip}理想宽度”和/或“\textsf{xkanjiskip}理想宽度”数据时,上述设定产生作用。如果想用JFM中的数据,请设定\textsf{kanjiskip}或\textsf{xkanjiskip}为\verb!\maxdimen!。
-\subsection{\textsc{xkanjiskip}插入设定}
+\subsection{\textsf{xkanjiskip}插入设定}
并不是在所有的\textbf{JAchar}和\textbf{ALchar}周围插入\textsf{xkanjiskip}都是合适的。
比如,在开标点之后插入\textsf{xkanjiskip}并不合适[如,比较“(あ”和“(\hskip\ltjgetparameter{xkanjiskip}あ”]。
\LuaTeX-ja可以通过设定\textbf{JAchar}的\textsf{jaxspmode}以及\textbf{ALchar}的\textsf{alxspmode}来控制\textsf{xkanjiskip}在字符前后的插入。
\item {[TODO]}
\end{enumerate}
-\section{Lua\TeX-ja与Lua\TeX相关阅读材料}
-\begin{itemize}
-\item Lua\TeX官方主页:\verb!http://www.luatex.org!
-\item Lua\TeX\ SVN:\verb!http://foundry.supelec.fr/gf/project/luatex/!
-\item Lua\TeX:\verb!http://ja.wikipedia.org/wiki/LuaTeX!
-\item Lua\TeX-ja官方主页:\verb!http://en.sourceforge.jp/projects/luatex-ja/!
-\item p\TeX官方主页:\verb!http://ascii.asciimw.jp/pb/ptex/!
-\item Publishing \TeX:\verb!http://ja.wikipedia.org/wiki/PTeX!
-\item Vertical typesetting in \TeX:\verb!http://tug.org//TUGboat/Articles/tb11-3/tb29hamano.pdf!
-\item up\TeX官方主页:\verb!http://homepage3.nifty.com/ttk/comp/tex/uptex.html!
-\item “LuaTeX で日本語”:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=627!
-\item luajalayout宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luajalayout/!
-\item luafontcomp宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luafontcomp/!
-\item 思わずLuaでLaTeXしてみた:\verb!http://zrbabbler.sp.land.to/lualatexlua.html!
-\item luaums.sty:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=378!
-\item koTeXは日本語LuaTeXへの先導役になるか?:\\\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=485!
-\end{itemize}
+%\part{参考指南}
+%\section{字体测度和日文字体}
+%\subsection{\texttt{jfont}基本语句}
+%\subsection{\texttt{psft}前缀}
+%\subsection{JFM文件结构}
+%\subsection{数学字体族}
+%\subsection{Callbacks}
+%\part{实现细节}
+%\section{Lua\TeX-ja与Lua\TeX相关阅读材料}
+%\begin{itemize}
+%\item Lua\TeX官方主页:\verb!http://www.luatex.org!
+%\item Lua\TeX\ SVN:\verb!http://foundry.supelec.fr/gf/project/luatex/!
+%\item Lua\TeX:\verb!http://ja.wikipedia.org/wiki/LuaTeX!
+%\item Lua\TeX-ja官方主页:\verb!http://en.sourceforge.jp/projects/luatex-ja/!
+%\item p\TeX官方主页:\verb!http://ascii.asciimw.jp/pb/ptex/!
+%\item Publishing \TeX:\verb!http://ja.wikipedia.org/wiki/PTeX!
+%\item Vertical typesetting in \TeX:\verb!http://tug.org//TUGboat/Articles/tb11-3/tb29hamano.pdf!
+%\item up\TeX官方主页:\verb!http://homepage3.nifty.com/ttk/comp/tex/uptex.html!
+%\item “LuaTeX で日本語”:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=627!
+%\item luajalayout宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luajalayout/!
+%\item luafontcomp宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luafontcomp/!
+%\item 思わずLuaでLaTeXしてみた:\verb!http://zrbabbler.sp.land.to/lualatexlua.html!
+%\item luaums.sty:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=378!
+%\item koTeXは日本語LuaTeXへの先導役になるか?:\\\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=485!
+%\end{itemize}
\end{document}