-
Notifications
You must be signed in to change notification settings - Fork 5
/
chapitreB.tex
159 lines (115 loc) · 8.94 KB
/
chapitreB.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
\chapter{概要手册}
在本章,你可以找到关于\LaTeX 扩展的``散装''信息:一个足够完整的列表。这个列表列举了围绕在你的源文件周围的辅助文件。接下来,本章会包含\textsf{Emacs}的卓越模块——Auc\TeX 的简要解释。最后,针对那些有幸使用UNIX环境工作的人,本章末尾带有与拼写检查器\textsf{Aspell}协同工作的\textsf{Emacs}配置。
\section{扩展}
正如前言所说,\TeX 和\LaTeX 都是\emph{开放}系统。围绕着\LaTeX 内核,有相当数量的标准包建起了该系统的基础。然而,所有的用户都可以为\LaTeX 添加不同的功能,来让它进化。因此,我们搜寻了一批扩展[extension;也可以按英文称为包(\emph{package})]格式或文档类型格式的工具。一些工具已经称为了标准,``所有''工具都可以在\LaTeX 发行版(参见第8章)的服务器或私人页面上下载,其他的则随论文征集或其他作者指南提供。
在这里,我们为你提供一个``标准''包的列表,并且邀请你去参阅通常随包附带的相关文档。注意,CTAN(\wz{http://www.ctan.org})提供了包目录项的参考。
% TODO 缺三角
\begin{packages}
\item[french]用于将文档``法文化''。避免在词和双标点之间打断句子。同时提供若干围绕法文排版的指令(参见第7章)。
\item[amsmath]用于制作完美的数学式和方程的包。
\item[array]改善\dm{tabular}的使用。
\item[hhline]扩展\LaTeX 基础表格的边线。
\item[fancyhdr]用于定制页眉和页脚。请看看本书的页眉和页脚。
\item[varioref]提供指令\verb+\vref+,用于取代\verb+\ref+,根据跳转阅读的提示语和目的位置的相对关系添加``下一页''``第12页''或空白等格式。
\item[ifthen]提供两种\emph{控制结构},即``if then else''和``do while''。这使得稍微复杂些的指令成为可能。
\item[chapterbib]用于在各章末插入参考文献。
\item[overcite]将参考文献标注为上标。
\item[bibunits]用于生成多个单位组成的参考文献。
\item[fancybox]提供4种\verb+\fbox+的变体,即\shadowbox{\verb+\shadowbox+}、\doublebox{\verb+\doublebox+}、\ovalbox{\verb+\ovalbox+}、\Ovalbox{\verb+\Ovalbox+}。
\item[algorithms]以可浮动或不可浮动的环境格式展示代码。
\item[geometry]用于以一种足够灵活的方式修改边距和页面上大部分相关尺寸。
\item[url]用于以URL格式展示网址,其中的断字``以最佳方式''处理。
\item[fancyvrb]提供了环境\dm{verbatim}的改进版本。
\end{packages}
\section{辅助文件}
如下列表展示了你可以在磁盘中源文件旁找到的文件。这些文件的扩展名都由3个字母组成,具体如下\jz{
一些包(例如\textsf{minitoc}和类\textsf{lettre})可以创建它们自己的辅助文件,本列表不涵盖这些情况
}:
\begin{ficaux}
\item[tex]\LaTeX 源文件;
\item[aux]\LaTeX 用于解析引用等内容的辅助文件;
\item[log]跟踪文件[fichier de trace;英文成为\emph{日志文件(log file)}];
\item[dvi]\emph{设备无关(device independant)}文件,根据使用场景可以用于显示或打印;
\item[toc]包含目录的文件(代表\emph{table of contents});
\item[lof]包含图列表的文件(代表\emph{list of figure});
\item[lot]包含表格列表的文件;
\item[bib]包含的参考文献入口的\bib 源文件;
\item[bbl]包含参考文献的文件,可以由\bib 生成;
\item[blg]\bib 的跟踪文件;
\item[idx]未经筛选的索引入口文件;
\item[ind]包含索引的文件,通常由\textsf{makeindex}生成;
\item[ilg]\textsf{makeindex}跟踪文件;
\item[sty]包含更改版式或支持特定工具的指令的定义的文件。
\item[cls]定义文档类型的文件。
\end{ficaux}
在将\LaTeX 文档归档时,不同的文件可以有不同的处理方式。
\begin{description}
\item[可以删除的文件]所有的辅助文件、\emph{log}文件,以及目录文件和图表列表文件都可以删除。
\item[同样可以删除的文件]\dm{ddl}文件(如果你可以从\dm{bib}文件借助\bib 生成它)。索引文件通常同样可以删除,因为它们原则上是\textsf{makeindex}生成的。\dm{dvi}文件同样不是必需的,因为我们认为你已经有\LaTeX 源文件了。
\item[需要保留的文件]\LaTeX 源文件和你定义的所有必需的风格文件(\dm{sty}和\dm{cls}文件)都需要保留。但如果你已经知道如何定义文档类型了,那么这个建议可能有点蠢……
\end{description}
\section{Auc\TeX }
Auc\TeX 是\textsf{Emacs}的一个模块,它简化了\LaTeX 文件的录入。我们打开带有扩展名\dm{.tex}、\dm{.sty}或\dm{.cls}的文件时,它会自动加载。Auc\TeX 可以为我们提供3大类功能:
\begin{enumerate}
\item 源文件的排版(颜色、缩进等);
\item 用于插入指令和环境的快捷键;
\item 编译。
\end{enumerate}
\subsection{源文件的排版}
在C和C++的缓冲区,颜色和键\textsf{tab}扮演相同的角色。我们可以注意到,\fbox{\dm{M-q}}可以将段落``排版'',也就是自动将段落打断成长度相近的若干行。
\subsection{快捷键}
\subsubsection{字体}
\fbox{\dm{C-c C-f}}[代表切换字体(\underline{C}hanger \underline{F}ont)]后接以下内容:
\begin{itemize}
\item \fbox{\dm{C-e}},可以插入\verb+\emph{}+;
\item \fbox{\dm{C-b}},可以插入\verb+\textbf{}+;
\item \fbox{\dm{C-t}},可以插入\verb+\texttt{}+;
\item \fbox{\dm{C-s}},可以插入\verb+\textsl{}+;
\item \fbox{\dm{C-c}},可以插入\verb+\textsc{}+;
\item ……
\end{itemize}
\subsubsection{节}
\fbox{\dm{C-c C-s}}可以插入节(\underline{S}ection),并要求你提供其层级、标题,以及在微型缓冲区中的标签。%TODO 啥?以及它这个奇怪的快捷键代表啥
\subsubsection{指令和环境}
\fbox{\dm{M-Tab}}可以补全当前的名称(\emph{英:automatic completion})。
\fbox{\dm{C-c RET}}插入一条指令。
\fbox{\dm{C-c C-e}}插入一个环境(\underline{E}nvironnement)\jz{
对于语法可被Auc\TeX 识别的某些环境和某些指令,则需要提供一些细节(参数值、图例、表格的形式……)。
}。
\fbox{\dm{C-u C-c C-e}}更改一个环境。
\fbox{\dm{C-c ]}}插入缺失的\verb+\end+来关闭一格环境。
\subsection{编译}
使用\fbox{\dm{C-c C-c}}可以尝试遵循文档编译的流程,根据情况运行\LaTeX 、\bib 或\textsf{xdvi}……同样需要注意,使用Auc\TeX 可以管理主文件的机制(参见6.4节)。为此,则需要在\textsf{Emacs}中打开新文件时输入主文件的文件名。相反,则需要通过以下方式耐心地向Auc\TeX 解释哪个文件是主文件:
\dmhmake{M-x TeX-master-file-ask}\textrm{ 或 }\textsf{C-c\_}%啥?以及这个字体其实要换成Helvetica
你同样需要输入主文件的文件名。这样一来,在你通过\fbox{\dm{C-c C-c}}在``子''文档上执行编译时,将作用于\emph{主}文件。
\subsection{Aspell}
\textsf{Aspell}是一个多语种拼写纠正工具,可以与万能的文本编辑器\textsf{Emacs}对接。若要在\textsf{Emacs}中使用它,需要掌握两条指令:
\dmhmake{M-x ispell-change-dictionary}
以上指令用于选择字典语言(法文\dm{francais}或英文\dm{english});
\dmhmake{M-x ispell-buffer}
以上指令可以在缓冲区开启一次纠错过程。我们也可以借助以下指令检查单独的词的拼写:
\dmhmake{M-xispell-word}\textrm{或 }\textsf{M-\$}
\begin{exclamation}
在我写下这行文字时,发行版Debian配置Emacs默认不是用程序Aspell。因此,需要在你的\dm{.emacs}文件中添加以下代码行:
\begin{dmd}
(setq-default ispell-program-name "aspell")
\end{dmd}
\end{exclamation}
尤其实用的是,我们可以通过配置程序\textsf{Aspell},来明确地要求它忽略或不忽略\LaTeX 指令的参数。例如,我们可以跳过不含有法文的指令中的参数。这样一来,如果我们定义了以下指令:
\begin{dmd}
\begin{verbatim}
\newcommand{\bidule}[2]{% 接受2个参数的指令
... }\end{verbatim}
\end{dmd}
只需要在其文件\verb+~/.aspell.conf+中编写如下内容,即可要求\textsf{Aspell}验证第二个参数(\dm{P})而忽略第一个参数的内容(\dm{p}):
\begin{dmd}
add-tex-command bidule pP
\end{dmd}
若要同时忽略两个参数,则需要编写如下内容:
\begin{dmd}
add-tex-command bidule pp
\end{dmd}
最后,\textsf{Emacs}也提供了单词纠错的``飞打''(à la volée)\jz{
有些人会称``随词''(\textsl{译注}:原文为à la ouôrde,其中ouôrde即模仿英文word的发音)……
}模式,我们可以通过以下指令来设定该模式是否激活:
\dmhmake{M-x flyspell-mode}