📄 ctextemp_ctex-faq.tex
字号:
\faqurl{ftp://ftp.ctex.org/CTAN/systems/win32/miktex/setup/setup.exe}
然后执行~setup.exe,在其提供的站点列表中选择合适的网站(~\href{ftp://ftp.ctex.org}{\CTeX{}
FTP}~是列表中唯一的中国大陆网站),按照程序提示即可完成下载。
\Question[Q-search-ctan]{哪里能找到我想要的宏包?}{0.3}{0.3}
CTAN~(见~\Qref{Q-info-ctan}~)可以说几乎收罗了世界上绝大多数的~\TeX{}~相关软件、文档,并保持更新,
为广大用户提供了方便。虽然~CTAN~的目录结构很有规则,并不算太难找,
但对于许多对其目录结构不熟悉的人来说,还是一个问题。
特别是很多初学者,经常找不到想要的东西。
CTAN~提供了一个搜索引擎
~\faqurl{http://www.ctan.org/search/?action=/index.html}
通过它,你可以确定你需要的文件在~CTAN~目录中的相对位置,
然后就可以在任何一个~CTAN~镜像中下载了。~CTAN~在全世界有几十个镜像服务器,
每日同步更新,本站的~FTP~也是其中之一。你可以从搜索引擎提供的列表中挑选
一个离你最近服务器下载。
注意一点:不同的镜像服务器存放~CTAN~的根目录可能不同。例如,~\CTeXFTP~是在
\begin{prompt}
/CTAN/
\end{prompt}
目录下。把搜索引擎的结果加到这个目录后面,就是这个文件在我们的~FTP~上的路径了。
\Question[Q-upgrade-miktex]{如何升级现有的~\MiKTeX{}?}{0.1}{0.1}
无论是~\CTeX{}~中文套装包含的~\MiKTeX{}~还是单独安装的~\MiKTeX{}~
都可以使用以下方法升级(只适用于~\MiKTeX{} 2.2~以后版本)
运行开始菜单中~\MiKTeX{}~组中的~\MiKTeX{} Update
Wizard,在其中提供的站点列表中选择合适的网站,
则程序会自动完成下载所需的文件并升级。也可以使用安装时的程序~setup.exe~
把最新的内容下载到你的硬盘上以后,再运行~\MiKTeX{} Update Wizard~
并选择从本地~(local folder)~升级。
\Question[Q-install-package]{我下载了一些新的宏包,该如何安装到我的系统中去?}{0.1}{0.3}
如果你得到的宏包已经是编译过的,也就是已经有~\texttt{.sty}~或者~\texttt{.cls}~文件,
你只需把这些文件放在
\begin{prompt}
localtexmf\tex\latex\
\end{prompt}
下的某个子目录中,可以自己建一个。然后你还要让~\TeX{}~系统知道这个新的宏包的存在,
你需要刷新系统的文件名数据库(见~\Qref{Q-newbie-fndb}~)。现在你可以使用这个宏包了。
你也可以把这些宏包文件和你的~\TeX{}~源文件放在同一目录下,
这种情况下你不需要刷新系统的文件名数据库,但只有同一个目录下的文件可以使用这些宏包。
如果你拿到的是宏包的源文件,一般来说都包含两个文件:一个扩展名为~\texttt{.ins},
另一个扩展名为~\texttt{.dtx}。
此外,通常会有一个~\texttt{readme.txt}~对宏包进行简要的说明。你应该先阅读这个文件,
接着对~\texttt{.ins}~文件运行~\LaTeX{}~命令,这会产生一个或者数个~\texttt{.sty}~
文件以及其它相关文件。然后参照上面的方法结合宏包说明文件的要求,把生成的文件加入你的
~\TeX{}~系统中。你还可以直接对~\texttt{.dtx}~文件运行~\LaTeX{}~从中产生宏包的帮助文档。
更详细的说明可以参见~lshort \cite{lshort-cn}。
\section{新手入门}
\Question[Q-newbie-install]{我是新手,该如何开始?}{0.3}{0.3}
首先,我们建议你至少阅读一些简单的教材,例如~lshort~中文版~\cite{lshort-cn}~,
对~\LaTeX{}~有一个基本的了解。
在安装系统方面,如果你不需要中文支持,可以安装~\MiKTeX{}~或者~\fpTeX{}~,
如果需要用到中文,建议使用~\CTeX{}~中文套装来学习使用。否则,光是中文的设置
安装就可能使你焦头烂额。在~Linux~下,你可以使用~\teTeX{}~。
在安装完系统以后,先输入一个最简单的例子(英文的例子参见~\Qref{Q-newbie-example}~,
中文的例子参见~\Qref{Q-chinese-cctexample}~和~\Qref{Q-chinese-cjkexample}~)
来看看系统是否正确安装了。之后你就可以开始使用了。
如果遇到问题,建议使用一个尽可能简单的例子来测试你的问题,否则的话,
在一个复杂文件里排除错误会花掉你很多的精力。
而且由于大的文档上下文的命令互相影响,会使得调试变得困难,特别是对初学者来说。
如果你使用的是别人的模板,那么遇到问题最好的解决办法就是问模板的作者,请求他的帮助。
如果是一般的问题,你可以到~\CTeXBBS~或者其他国内外的~\TeX{}~网站上请求帮助。
在~\CTeXWWW~上你可以找到这些网络链接。
\Question[Q-newbie-example]{能否举一个简单的英文排版例子?}{0.1}{0.2}
\begin{code}
\documentclass{article}
\begin{document}
This is a test file.
\end{document}
\end{code}
这个例子需要保存为~\texttt{.tex}~后缀的文件,然后用~\LaTeX{}~编译,
生成的~DVI~文件可以用~DVI~浏览器进行查看或者用~dvips~转换成~\PS~文件。
假设文件名是~\texttt{test.ctx}~,生成~\PS~文件的完整编译过程是:
\begin{prompt}
latex test
dvips test
\end{prompt}
\Question[Q-newbie-editors]{用什么编辑工具来编辑~\LaTeX{}~文件?}{0.3}{0.3}
\LaTeX{}~文件是标准的文本文件,任何一个文本编辑工具都可以编辑~\LaTeX{}~文件。
但是有些编辑器针对~\LaTeX{}~文件作了设置和优化,例如增加可以直接调用~\LaTeX{}~
编译程序的菜单或者按钮,使得你可以更方便的进行编辑、编译工作。
在~Windows~中对~\LaTeX{}~支持最好的是~WinEdt~,针对~\MiKTeX{}~和~\fpTeX{}~都有
预制好的菜单和工具条按钮,安装完就可以使用。~WinEdt~还可以通过工具条输入许多数学符号,
免去了记忆的烦恼。在各种细节上,例如项目管理、彩色关键字、括号匹配等等,
~WinEdt~对~\LaTeX{}~的支持都很完善,你可以在使用中慢慢发掘他的强大功能。
还有一部分用户喜欢使用~UltraEdit~和~Editplus~,这两个都是功能强大的通用编辑工具,
你可以针对~\LaTeX{}~定制菜单和工具条。缺点就是这些都要你自己动手,在一些细的方面,
也没有~WinEdt~考虑得周到,毕竟不是专门针对~\LaTeX{}~的编辑器。
此外,还有一些其他的编辑器,如~WinTeX~、~TeXnicCenter~等,如果你感兴趣,
可以一一尝试,挑一个自己喜欢的来编辑~\LaTeX{}~文件。
在~Linux/Unix~下,我们推荐使用~vi~或者~Emacs~作为~\LaTeX{}~编辑器。
\Question[Q-info-preamble]{什么是~\faqindex{导言区}~(\faqindex{preamble})~?}{0.2}{0.2}
\LaTeX{}~文档的标准结构是
\begin{code}
\documentclass{article}
...
\begin{document}
...
\end{document}
...
\end{code}
在~\verb|\begin{document}|~和~\verb|\end{document}|~之间的是我们的正文部分。
而在~\verb|\documentclass{article}|~和~\verb|\begin{document}|~之间的部分,
通常用于定义一些全局命令和参数,这个部分就称为{\it
导言区},英文是~{\it preamble}~。
在~\verb|\end{document}|~之后的部分会被~\LaTeX{}~完全忽略,
可以用来写一些关于文档的注释,或者暂时不想包含到正文中去的内容,
也有人把它叫做~postamble~,因为它和导言区~(preamble)~处在完全相对的位置。
\Question[Q-newbie-fndb]{什么是文件名数据库?怎么刷新?}{0.1}{0.1}
\TeX{}~系统通过这个数据库记录了所需要的各种文件的名字和具体目录位置。
每次你往系统中添加文件后,都要记得刷新这个数据库,
否则~\TeX{}~有可能找不到需要的文件。
刷新文件名数据库的具体命令取决于你使用的~\TeX{}~系统。~\teTeX{}~和~\fpTeX{}~的命令是
\begin{prompt}
texhash
\end{prompt}
\MiKTeX{}~用户可以在~Dos~窗口中输入以下命令
\begin{prompt}
initexmf --update-fndb
\end{prompt}
或者使用~\MiKTeX{}~提供的图形界面工具~\MiKTeX{}
Options。在开始菜单中找到~\MiKTeX{}
Options,打开点击~General~页上的~Refresh Now~按钮即可。
\section{中文支持}
\Question[Q-chinese-cctcjk]{比较一下~CJK~与~CCT~的优缺点?}{0.1}{0.1}
CJK~比~CCT~的优越之处有以下几点:
\begin{enumerate}
\item~字体定义采用~\LaTeX{} NFSS~标准,生成的~DVI~文件不必像~CCT~那样
需要用~patchdvi~处理后才能预览和打印。而且一般~GB~编码的文件也不必进行
预处理就可直接用~\LaTeX{}~命令进行编译。
\item~可使用多种~TrueType~字体和~Type1~字体,生成的~PDF~文件更清楚、漂亮。
\item~能同时在文章中使用多种编码的文字,如中文简体、繁体、日文、韩文等。
\end{enumerate}
当然,~CCT~在一些细节上,如字体可用中文字号,字距、段首缩进等更符合中文的习惯。
而~CJK~就没有针对中文习惯指定特殊的排版标准。
目前,~CCT~的作者已经推出了最新版的~CCT,可以使用~CJK~的字库,从而也避免了预处理
和~patchdvi~的过程,使用更方便,排版效果更美观了。最新版的~CCT~可以在
~\faqurl{ftp://ftp.cc.ac.cn/pub/cct/}
下载,或者使用~\CTeX{}~提供的工具~\CTeX{}-CS~升级。
\Question[Q-chinese-cctexample]{能否举一个简单的~CCT~中文排版例子?}{0.2}{0.2}
一个简单的老版本~CCT~格式的例子是:
\begin{code}
\documentclass{cctart}
\begin{document}
\kaishu 这是中文楷体字。
\end{document}
\end{code}
这个例子需要保存为~\texttt{.ctx}~后缀的文件,然后用~cct~命令进行预处理,生成同名
~\texttt{.tex}~文件。再用~\LaTeX{}~编译,生成的~DVI~文件需要~patchdvi~进行处理后
才能用~DVI~浏览器进行查看或者用~dvips~转换成~\PS~文件。
假设文件名是~\texttt{test.ctx}~,完整的编译过程是:
\begin{prompt}
cct test
latex test
patchdvi -r600x600 -b test.dvi temp.dvi
del test.dvi
ren temp.dvi test.dvi
dvips test
\end{prompt}
新版的~CCT~除了保留原来的处理方式以外,增加了两种新的处理方式。
第一种是用~\TeX{}~的处理来代替原来的~cct.exe~的预处理。
这种方式的源文件和老的文件相同,但是不用再存成~\texttt{.ctx}~为后缀的文件,
也不用~cct~命令进行预处理。除此之外,其余和老的处理方式基本相同。
第二种处理方式是采用~CJK~的中文字库,需要在系统中安装好~CJK~字库。
与第一种方式的主要区别就在于去掉了~patchdvi~处理~DVI~文件的需要。
使用上,是在~\cmd{documentclass}~命令中加上参数~CJK~。
具体的例子如下:
\begin{code}
\documentclass[CJK]{cctart}
\begin{document}
\kaishu
这是中文楷体字。
\end{document}
\end{code}
这个例子可以象英文文档一样的编译(见~\Qref{Q-newbie-example}~)得到正确的输出。
\Question[Q-chinese-cjkexample]{能否举一个简单的~CJK~中文排版例子?}{0.1}{0.2}
在安装好~CJK~的系统中,下面这个例子可以象英文文档一样的编译
(见~\Qref{Q-newbie-example}~)得到正确的输出。
\begin{code}
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GBK}{kai}
这是中文楷体字。
\end{CJK*}
\end{document}
\end{code}
\Question[Q-chinese-cjkindent]{在~CJK~中如何使段首缩进两个中文字符宽度?}{0.1}{0.1}
在~CJK~环境中使用命令
\begin{latexcmd}
\cmd{CJKindent}
\end{latexcmd}
\Question[Q-chinese-cjkglue]{在~CJK~中如何调整汉字的间距?}{0.3}{0.3}
CJK~会在两个汉字之间插入一个~\cmd{CJKglue}~,因此我们修改~\cmd{CJKglue}~的定义
就可以调整汉字的间距。用法是
\begin{latexcmd}
\cmd{renewcommand}\marg{\cmd{CJKglue}}\marg{\cmd{hskip} \parg{b} plus \parg{p} minus \parg{m}}
\end{latexcmd}
其中~\parg{b}~、~\parg{p}~和~\parg{m}~都是~\TeX{}~长度,如~0.05pt~。执行以上命令后,
汉字的标准间距就是~\parg{b}~,在需要的时候向上向下调整,调整幅度分别不超过~\parg{p}~
和~\parg{m}~。
CJK~的缺省值是~\verb|\hskip 0pt plus 0.08\baselineskip|~。
\Question[Q-chinese-cjkstar]{\env{CJK}~和~\env{CJK*}~有何不同?}{0.3}{0.3}
\pkg{CJK}~宏包有两种不同的处理方式。一个是
\begin{code}
\begin{CJK}....
...
\end{CJK}
\end{code}
称为~\env{CJK}~模式;另一个是
\begin{code}
\begin{CJK*}....
...
\end{CJK*}
\end{code}
称为~\env{CJK*}~模式。两个模式的区别在于~\env{CJK*}~会忽略~CJK~字符之间
的空格,这是我们中文的习惯。而~\env{CJK}~则使用英文的习惯,即词之间保留空格,
当然如果空格多于一个,~\TeX{}~也会忽略多余的空格。
两种方式各有利弊。首先来看~\env{CJK}~模式,它的好处是符合~\TeX{}~的英文处理习惯,
无需对空格进行额外处理,坏处是不符合中文习惯。一个经常发生的问题就是,
由于~\TeX{}~将分行符也视为空格,因此就造成中文字符间产生多余的空格,
使得排版结果很难看。解决方法是在行尾加上注释字符~\%~来告诉~\TeX{}~
忽略两行间的分行符。\emph{因此,我们不建议使用~\env{CJK}~模式。}
\env{CJK*}~模式由于自动忽略中文字符之间的所有空格,因此没有上面的这种副作用。
但是这也带来了另一方面的问题,就是如果想在中文字符中间加入空格就必须加以保护,
避免被忽略。加保护的方法是在空格前面加上~\bs~字符。实际上~\env{CJK*}~模式
忽略中文字符后面的空格,因此中文后面如果接着英文,必须加上保护的空格~\verb|\ |~
或者~\verb|~|~符号,否则可能造成断行错误(参见~\Qref{Q-chinese-linebreak}~)。
两种模式还可以通过命令互相转换,使用
\begin{latexcmd}
\cmd{CJKnospace}
\end{latexcmd}
则进入~\env{CJK*}~模式,用
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -