📄 chinese-howto-7.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Linux Chinese HOWTO 中文版: 中文排版软体</TITLE>
<LINK HREF="Chinese-HOWTO-8.html" REL=next>
<LINK HREF="Chinese-HOWTO-6.html" REL=previous>
<LINK HREF="Chinese-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="Chinese-HOWTO-8.html">Next</A>
<A HREF="Chinese-HOWTO-6.html">Previous</A>
<A HREF="Chinese-HOWTO.html#toc7">Contents</A>
<HR>
<H2><A NAME="s7">7. 中文排版软体</A></H2>
<H2><A NAME="ss7.1">7.1 LaTeX + CJK</A>
</H2>
<P>TeX/LaTeX 是一套的幕後排版软体。其优秀的输出品质早已为广大的学术界朋友所喜爱及采用。
CJK 是一个 LaTeX2e 的巨集套件(macro package),能让你在 TeX 文件中使用 CJK (Chinese/Japanese/Korean) 的文字编码。
<P>你的系统必须先安装好 teTeX/LaTeX. 许多的 Linux 发行套件都已包含了 teTeX/LaTeX.
如果没有的话,你也可以自己装。请参考
<A HREF="http://sunsite.unc.edu/LDP/HOWTO/TeTeX-HOWTO.html">teTeX HOWTO</A> 的说明。
<P>
<H3>取得软体</H3>
<P>在下面地点取回 CJK 4.1.3
<BLOCKQUOTE>
<A HREF="ftp://nctuccca.edu.tw/Chinese/ifcss/software/tex/">ftp://nctuccca.edu.tw/Chinese/ifcss/software/tex/CJK-4.1.3.src.tar.gz</A></BLOCKQUOTE>
<P>在此取回你要的 TTF 字型:
<BLOCKQUOTE>
<A HREF="ftp://nctuccca.edu.tw/Chinese/ifcss/software/fonts/big5/ms-win/">ftp://nctuccca.edu.tw/Chinese/ifcss/software/fonts/big5/ms-win/</A></BLOCKQUOTE>
<P>
<H3>安装</H3>
<P>你必须知道你 teTeX/LaTeX 的安装目录 <CODE>$TEXMF</CODE>, 例如 <CODE>/usr/lib/texmf</CODE>.
我还假设你用的字型是 <CODE>ntu_kai.ttf</CODE>, 如果你用别的请自行对应。
<P>
<UL>
<LI>将你抓回来的字型
<A HREF="Chinese-HOWTO-11.html#ntuttf">解压缩</A> 後放到 <CODE>$TEXMF/fonts/truetype/chinese</CODE> 下。</LI>
<LI>解开 CJK-4.1.3.src.tar.gz, 将 <CODE>texinput</CODE> 子目录移至 <CODE>$TEXMF/tex/latex</CODE>, 改名为 <CODE>CJK</CODE>, 并建立字型目录。
<BLOCKQUOTE><CODE>
<PRE>
# cd 4_1.3/; mv ./texinput $TEXMF/tex/latex/CJK
# mkdir -p $TEXMF/fonts/tfm/chinese/ntukai
# mkdir $TEXMF/ttf2pk
# mkdir $TEXMF/hbf2gf
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>接下来这个可能是最难的步骤。将 <CODE>4_1.3/doc/teTeX</CODE> 目录下的 <CODE>*.diff</CODE> 以 <CODE>patch</CODE> 指令施加到这几个档案上:
<BLOCKQUOTE><CODE>
<PRE>
/usr/bin/MakeTeX*
$TEXMF/web2c/texmf.cnf
$TEXMF/fontname/special.map
</PRE>
</CODE></BLOCKQUOTE>
例如:
<BLOCKQUOTE><CODE>
<PRE>
# cd /usr/bin
# patch -s < 4_1.3/doc/teTeX/MakeTeXPK.diff
</PRE>
</CODE></BLOCKQUOTE>
由於 TeX 的版本众多,你的 <CODE>patch</CODE> 可能会失败。这样的话你就要自己手动地将失败的地方补上(失败的地方会记录在 <CODE>.rej</CODE> 中)。如果你不太了解 <CODE>patch</CODE> 运作的原理,最好请教一下有经验的人。
</LI>
<LI>编译及安装 <CODE>bg5conv</CODE>
<BLOCKQUOTE><CODE>
<PRE>
# cd 4_1.3/utils/Bg5conv; gcc -o bg5conv bg5conv.c
# chmod 755 bg5latex
# cp bg5conv bg5latex /usr/local/bin/
# gzip bg5conv.1; cp bg5conv.1.gz /usr/local/man/man1/
</PRE>
</CODE></BLOCKQUOTE>
由於含 BIG5 码的 TeX 文件中某些中文编码可能含有 <CODE>{</CODE>, <CODE>}</CODE>, <CODE>\</CODE> 等对 TeX 具有特殊含义的符号,<CODE>bg5conv</CODE> 能将这些编码转换为 TeX 能处理的形式。
</LI>
<LI>编译及安装 <CODE>ttf2pk</CODE>, 这是一个将 TrueType 字型转换为 TeX's pk 字型的工具。
<BLOCKQUOTE><CODE>
<PRE>
# cd 4_1.3/utils/ttf2pk/src
# make all OS=unix
# cp ttf2pk /usr/local/bin/
# cd ..
# cp config/ttf2pk.cfg $TEXMF/ttf2pk/
# gzip ttf2pk.1; cp ttf2pk.1.gz /usr/local/man/man1/
# cp c00kai.fd $TEXMF/tex/latex/CJK/Bg5/
# cp MakeTTFPK /usr/local/bin
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>如果你还想直印的话在 <CODE>$TEXMF/tex/latex/CJK/Bg5/</CODE> 上自己编一个 <CODE>c00kair.fd</CODE> 档:
<HR>
<PRE>
\def\fileversion{4.1.0}
\def\filedate{1996/11/20}
\ProvidesFile{c00kair.fd}[\filedate\space\fileversion]
% traditional Chinese characters in Big 5 encoding scheme.
% font shape: kai
% ntu_kai.ttf is Kai3 Shu1 (&quotmodel book")
\DeclareFontFamily{C00}{kair}{}
\DeclareFontShape{C00}{kair}{m}{n}{<-> CJK * ntukar}{}
\DeclareFontShape{C00}{kair}{bx}{n}{<-> CJKb * ntukar}{\CJKbold}
\endinput
</PRE>
<HR>
</LI>
<LI>执行 <CODE>texconfig</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
# texconfig rehash
# texconfig hyphen
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</UL>
<P>
<H3>测试</H3>
<P>
<UL>
<LI>横印测试:
<BLOCKQUOTE><CODE>
<PRE>
# cd 4_1.3/examples
# bg5latex Big5.tex (看看有没有产生 Big5.dvi ?)
# xdvi Big5.dvi (是否能看到中文? 当然你要先进 X Window)
# dvips Big5.dvi -o Big5.ps (转换成 PostScript 格式)
# ghostview Big5.ps (用 ghostview 观看)
# lpr Big5.ps (送到印表机,看看是否印出中文)
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>直印测试: 用 <CODE>examples</CODE> 目录中的 <CODE>Big5vert.tex</CODE> 来重覆上述过程。</LI>
</UL>
<P>
<H3>增加新字型</H3>
<P>例如,你想改用明体字型 <CODE>ntu_mm.ttf</CODE>
<P>
<UL>
<LI>将你的 TrueType 字型放在 <CODE>$TEXMF/fonts/truetype/chinese</CODE> 下。</LI>
<LI>在 <CODE>$TEXMF/ttf2pk/ttf2pk.cfg</CODE> 中增加两行:
<BLOCKQUOTE><CODE>
<PRE>
ntumm: -e Big5 $TEXMF/fonts/truetype/chinese/ntu_mm.ttf
ntummr: -r 1 -e Big5 $TEXMF/fonts/truetype/chinese/ntu_mm.ttf
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>建立 <CODE>c00ming.fd</CODE> 档:
<BLOCKQUOTE><CODE>
<PRE>
# cd 4_1.3/utils/ttf2pk
# cp c00ming.fd $TEXMF/tex/latex/CJK/Bg5/
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>再次执行 <CODE>texconfig</CODE>.</LI>
<LI>将 <CODE>4_1.3/examples/Big5.tex</CODE> 中的 kai 改为 ming, 重覆上面 <CODE>bg5latex</CODE>, <CODE>xdvi</CODE>, <CODE>dvips</CODE> 等测试看看结果正不正确。</LI>
<LI>如果要直印,同样重覆安装一节所述,建立 <CODE>c00mingr.fd</CODE> 如下,并将 <CODE>Big5vert.tex</CODE> 中的 kair 改为 mingr, 重覆测试过程。
<HR>
<PRE>
\def\fileversion{4.1.0}
\def\filedate{1996/11/20}
\ProvidesFile{c00kair.fd}[\filedate\space\fileversion]
\DeclareFontFamily{C00}{mingr}{}
\DeclareFontShape{C00}{mingr}{m}{n}{<-> CJK * ntummr}{}
\DeclareFontShape{C00}{mingr}{bx}{n}{<-> CJKb * ntummr}{\CJKbold}
\endinput
</PRE>
<HR>
</LI>
</UL>
<P>
<H3>建立 CJK 文件</H3>
<P>中文 CJK TeX 文件与一般 LaTeX 主要不同之处在於:
<UL>
<LI>所谓 LaTeX 的 preamble (\documentclass 至 \begin{document})区域中, 必须有 \usepackage{CJK} 这个命令,即必须载入 CJK.sty。 </LI>
<LI> 中文字必须在 CJK 或 CJK* 的中文环境中。</LI>
<LI>要变换字型可用 \CJKfamily 命令,如 \CJKfamily{fs} 将以下的字型改成仿宋字(当然 <CODE>fs</CODE> 这个字形名称必须定义在 <CODE>c00fs.fd</CODE> 中)。 </LI>
</UL>
下面是一个 CJK 文件的□例:
<HR>
<PRE>
\documentclass[12pt]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{Bg5}{kai}
\section{第一节}
\section{第二节}
中文段落、章节、图形、表格、参考文献、…等
...
\end{CJK*}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -