diff --git a/src/chap/app.A.install.tex b/src/chap/app.A.install.tex index 580fb39..e1d66c3 100644 --- a/src/chap/app.A.install.tex +++ b/src/chap/app.A.install.tex @@ -77,12 +77,12 @@ \section{安装和更新宏包}\label{sec:pkg-manager} tlmgr repository set http://.../CTAN/systems/texlive/tlnet % 指定更新源(CTAN)地址 tlmgr info % 查看宏包信息 - % 加 --list 选项可列出宏包的所有文件 + % 加 --list 参数可列出宏包的所有文件 \end{verbatim} \begin{verbatim} % MikTeX 命令行工具 mpm 的使用示例 -% 建议始终加 --admin 选项使用 +% 建议始终加 --admin 参数使用 mpm --admin --install % 安装某个宏包 mpm --admin --uninstall % 卸载某个宏包 mpm --admin --update % 更新所有宏包 diff --git a/src/chap/app.B.error.help.tex b/src/chap/app.B.error.help.tex index 5e9af70..ad4cf2d 100644 --- a/src/chap/app.B.error.help.tex +++ b/src/chap/app.B.error.help.tex @@ -47,6 +47,10 @@ \subsubsection{常见的 \LaTeX\ 错误信息} 使用了未定义的命令。拼写错误是原因之一,如把 \cmd{LaTeX} 写作 \cmd{Latex} 这样。 也有可能是没有调用某个宏包,但用了该宏包定义的命令。 +\item \LaTeXerror{! LaTeX error: Environment \ldots\ undefined.} + +使用了未定义的环境。 + \item \LaTeXerror{! Missing \$ inserted.} 缺少数学环境的符号 \texttt\$。多由于将数学符号用在公式之外而导致。 @@ -56,7 +60,7 @@ \subsubsection{常见的 \LaTeX\ 错误信息} \item \LaTeXerror{! File ended while scanning definition/use of \ldots} -这两个错误主要是由于漏写了包裹命令参数的花括号,导致识别参数时出现错误。许多编辑器的括号配对功能有助于检查和消除这类错误 +这两个错误主要是由于漏写了包裹命令参数的花括号,导致识别参数时出现错误。许多编辑器的括号配对功能有助于检查和消除这类错误。 这类错误还有可能是由于前一次编译中断导致 \texttt{.aux} 等辅助文件不完整,再次编译读入不完整的文件产生错误,办法是删除辅助文件并重新编译。 @@ -64,7 +68,7 @@ \subsubsection{常见的 \LaTeX\ 错误信息} \item \LaTeXerror{! Misplaced \cmd{noalign}.} -两个错误都与表格有关。 +两个错误信息都与表格有关。 \begin{itemize} \item 前者的字面意义是“一行中使用的列分隔符 \texttt\& 太多”,有时可能确实是 \texttt\& 的个数和列格式不匹配, 但多数情况是漏掉了行尾的 \crcmd\ 命令。 @@ -90,15 +94,15 @@ \subsubsection{常见的 \LaTeX\ 错误信息} \item \LaTeXerror{! LaTeX Error: Missing \cmd{begin}\marg*{document}.} -字面上是缺少 \cmd{begin}\marg*{docu\-ment},实际上往往是由于在 \cmd{begin}\marg*{docu\-ment} 之前(导言区)输入了文字。 +字面上是缺少 \cmd{begin}\marg*{docu\-ment},实际上往往是由于在 \cmd{begin}\marg*{docu\-ment} 之前(导言区)输入了文字或某些命令。 \item \LaTeXerror{! LaTeX Error: Cam be used only in preamble.} -与上一条相反,由于将必须用于导言区的命令放到了 \cmd{begin}\marg*{docu\-ment} 之后使用而产生。 +与上一条相反,由于将必须用于导言区的命令在 \cmd{begin}\marg*{docu\-ment} 之后使用而产生。 \item \LaTeXerror{! LaTeX Error: \cmd{begin}\marg*{\ldots} on input line \ldots\ ended by \cmd{end}\marg*{\ldots}.} -环境首尾不匹配。比如 \cmd{begin}\marg*{enumerate} 用了 \cmd{end}\marg*{itemize} 结尾。往往是由于漏写了 \cmd{begin} +环境首尾不匹配。比如 \cmd{begin}\marg*{enumerate} 用了 \cmd{end}\marg*{itemize} 结尾。或者也可能是由于漏写了 \cmd{begin} 或者 \cmd{end} 命令。 \item \LaTeXerror{! LaTeX Error: Option clash for package `\ldots'.} @@ -126,7 +130,7 @@ \subsubsection{常见的 \LaTeX\ 错误信息} \end{itemize} -\section{查看帮助文档}\label{sec:texdoc} +\section{查找帮助文档}\label{sec:texdoc} \index{texdoc@\texttt{texdoc} 工具} 无论是 \TeX\ Live 还是 Mik\TeX\ ,提供了一个命令行模式的程序 \texttt{texdoc}。 @@ -173,9 +177,9 @@ \subsection{文字、公式和符号}\label{subsec:text-math-symbols} \item[mathtools] 数学公式扩展宏包,提供了公式编号定制和更多的符号、矩阵等。 \item[amsfonts] \AmS\ 扩展符号的基础字体支持。 \item[amssymb] 在 \pkg{amsfonts} 基础上将 \AmS\ 扩展符号定义成命令。 - \item[bm] 提供将符号加粗的命令 \cmd{bm}。 + \item[bm] 提供将数学符号加粗的命令 \cmd{bm}。 \item[siunitx] 以国际单位规范排版物理量的单位。 - \item[mhchem] 排版化学公式。 + \item[mhchem] 排版化学式和方程式。 \item[tipa] 排版国际音标。 \end{pkglist} @@ -184,6 +188,7 @@ \subsection{排版元素}\label{subsec:pkg-elements} \begin{pkglist} \item[ulem] 提供排版可断行下划线的命令 \cmd{uline} 以及其它装饰文字的命令。 \item[endnote] 排版尾注。 + \item[marginnote] 改善的边注排版功能。 \item[multicol] 提供将内容自由分栏的 \env{multicols} 环境。 \item[multitoc] 生成多栏排版的目录。 \item[minitoc] 为章节生成独立的小目录。 @@ -192,20 +197,20 @@ \subsection{排版元素}\label{subsec:pkg-elements} \item[fancyvrb] 提供了代码排版环境 \env{Verbatim} 以及对版式的自定义。 \item[listings] 提供了排版关键字高亮的代码环境 \env{lst\-listing} 以及对版式的自定义。类似宏包有 \pkg{minted}。 \item[algorithmic] 一个简单的实现算法排版的宏包。如果要生成浮动体的话,需要搭配 \pkg{algorithm} 宏包使用。 - \item[algorithm2e] 较为复杂的、可定制的算法排版宏包。类似宏包有 \pkg{algorithmidx} 等。 + \item[algorithm2e] 较为复杂的、可定制的算法排版宏包。类似宏包有 \pkg{algorithmicx} 等。 \item[ntheorem] 定制定理环境。类似宏包包括 \pkg{theorem}、\pkg{thmtools}、\pkg{amsthm} 等。 \end{pkglist} \subsection{图表和浮动体}\label{subsec:pkg-tab-fig} \begin{pkglist} - \item[booktabs] 制作三线表。 + \item[booktabs] 排版三线表。 \item[array] 对表格列格式的扩展。 \item[tabularx] 提供 \env{tabularx} 环境排版定宽表格,支持自动计算宽度的 X 列格式。 \item[colortbl] 支持修改表格的行、列、单元格的颜色。 \item[multirow] 支持合并多行单元格。 \item[makecell] 支持在单元格里排版多行内容(嵌套一个单列的小表格)。 - \item[diagbox] 制作斜线表头。 + \item[diagbox] 排版斜线表头。 \item[longtable] 提供排版跨页长表格的 \env{longtable} 环境。 \item[ltxtable] 跨页长表格可使用 \env{tabularx} 的 X 列格式。 \item[tabu] 提供排版复杂格式表格的 \env{tabu} 环境。与 \pkg{longtable} 一同调用时,提供排版复杂格式跨页长表格的 \env{longtabu} 环境。 diff --git a/src/chap/chap.01.basics.tex b/src/chap/chap.01.basics.tex index a098add..480340c 100644 --- a/src/chap/chap.01.basics.tex +++ b/src/chap/chap.01.basics.tex @@ -334,7 +334,7 @@ \subsection{宏包}\label{subsec:packages} \footnote{使用多个宏包时指定选项,相当于给每个宏包指定同样的选项。如果有某个宏包不能识别某个选项,则会出错。}: \begin{verbatim} % 一次性载入三个排版表格常用的宏包 -\usepackage{tabularx,longtable,multirow} +\usepackage{tabularx,makecell,multirow} \end{verbatim} 附录 \ref{sec:pkg-list} 汇总了常用的一些宏包。我们在手册接下来的章节中,也会穿插介绍一些最常用的宏包的使用方法。 diff --git a/src/chap/chap.03.elements.tex b/src/chap/chap.03.elements.tex index 09f59db..1ecb64c 100644 --- a/src/chap/chap.03.elements.tex +++ b/src/chap/chap.03.elements.tex @@ -204,10 +204,9 @@ \section{脚注}\label{sec:footnote} “天地玄黄,宇宙洪荒。日月盈昃,辰宿列张。”\footnote{出自《千字文》。} \cmdindex{footnotemark,footnotetext} -有些情况下(比如在表格环境、盒子内)使用 \cmd{footnote} 并不能正确生成脚注。我们可以分两步进行, -先使用 \cmd{foot\-note\-mark} 为脚注计数,再在合适的位置用 \cmd{foot\-note\-text} 生成脚注。 +有些情况下(比如在表格环境、各种盒子内)使用 \cmd{footnote} 并不能正确生成脚注。我们可以分两步进行, +先使用 \cmd{foot\-note\-mark} 为脚注计数,再在合适的位置用 \cmd{foot\-note\-text} 生成脚注。比如: -比如: \begin{verbatim} \begin{tabular}{l} \hline @@ -694,10 +693,10 @@ \section{图片}\label{sec:figures} \LaTeX\ 本身不支持插图功能,需要由 \pkg{graphicx} 宏包辅助支持。 -使用 \texttt{latex + dvipdfmx} 编译命令时,调用 \pkg{graphicx} 宏包时要给定 \texttt{dvipdfmx} 选项% +使用 \texttt{latex + dvipdfmx} 编译命令时,调用 \pkg{graphicx} 宏包时要指定 \texttt{dvipdfmx} 选项% \footnote{早期常使用 \texttt{latex + dvips} 组合命令,后者将 \texttt{.dvi} 文件转为 \texttt{.ps} 文件(PostScript), 可进一步通过 \texttt{ps2pdf} 工具生成 PDF。\texttt{dvips} 和 \texttt{dvipdfmx} 在图形、颜色、超链接等功能的实现上有差别,而 \LaTeX\ 无法识别 -用户是用 \texttt{dvips} 还是 \texttt{dvipdfmx},所以要给定选项(缺省为 \texttt{dvips})。 +用户是用 \texttt{dvips} 还是 \texttt{dvipdfmx},所以要指定选项(缺省为 \texttt{dvips})。 \ref{sec:hyperlinks} 节中的 \pkg{hyperref} 宏包同理。};而使用 \texttt{pdflatex} 或 \texttt{xelatex} 命令编译时不需要。 读者可能听说过“\LaTeX\ 只能插入 \texttt{.eps} 格式的图片,需要把 \texttt{.jpg} 转成 \texttt{.eps} 格式”的观点。 @@ -742,11 +741,11 @@ \section{图片}\label{sec:figures} \graphicspath{{figures/}{logo/}} \end{verbatim} -\cmd{includegraphics} 命令的可选参数 \Arg{options} 支持 \Arg{key}=\Arg{value} 形式赋值,常用的选项如下: +\cmd{includegraphics} 命令的可选参数 \Arg{options} 支持 \Arg{key}=\Arg{value} 形式赋值,常用的参数如下: \begin{center} \begin{tabular}{lp{18em}} \hline - 选项 & 含义 \\ + 参数 & 含义 \\ \hline width=\Arg{width} & 将图片缩放到宽度为 \Arg{width} \\ height=\Arg{height} & 将图片缩放到高度为 \Arg{height} \\ @@ -823,7 +822,7 @@ \subsection{垂直盒子}\label{subsec:parbox} 其中 \Arg{align} 为盒子和周围文字的对齐情况(类似 \env{tabular} 环境); \Arg{height} 和 \Arg{inner-align} 设置盒子的高度和内容的对齐方式,类似水平盒子 \cmd{makebox} 的设置, -不过 \Arg{inner-align} 接受的选项是顶部 \texttt{t}、底部 \texttt{b}、居中 \texttt{c} 和分散对齐 \texttt{s}。 +不过 \Arg{inner-align} 接受的参数是顶部 \texttt{t}、底部 \texttt{b}、居中 \texttt{c} 和分散对齐 \texttt{s}。 \begin{example} 三字经:\parbox[t]{3em}% @@ -909,9 +908,9 @@ \section{浮动体}\label{sec:float} \pkgindex{float} -\pkg{float} 宏包为浮动体提供了 \texttt{H} 选项,不与 \texttt{htbp} 及 \texttt{!} 混用。使用 \texttt{H} 选项时, +\pkg{float} 宏包为浮动体提供了 \texttt{H} 位置参数,不与 \texttt{htbp} 及 \texttt{!} 混用。使用 \texttt{H} 位置参数时, 会取消浮动机制,将浮动体视为一般的盒子插入当前位置。这在一些特殊情况下很有用(如使用 \pkg{multicol} 宏包排版分栏内容的时候), -但尺寸过大的浮动体可能使得分页比较困呐。 +但尺寸过大的浮动体可能使得分页比较困难。 \subsection{浮动体的标题}\label{subsec:caption} diff --git a/src/chap/chap.04.math.tex b/src/chap/chap.04.math.tex index a4ff265..84ea847 100644 --- a/src/chap/chap.04.math.tex +++ b/src/chap/chap.04.math.tex @@ -417,7 +417,8 @@ \subsection{括号和定界符}\label{subsec:math-delims} \end{example} 使用 \cmd{big} 和 \cmd{bigg} 等命令的另外一个好处是:用 \cmd{left} 和 \cmd{right} 分界符包裹的公式块是不允许断行的 -(下文提到的 \env{array} 或者 \amsenv{aligned} 等环境视为一个公式块),而 \cmd{big} 和 \cmd{bigg} 不受限制。 +(下文提到的 \env{array} 或者 \amsenv{aligned} 等环境视为一个公式块),所以也不允许在多行公式里跨行使用, +而 \cmd{big} 和 \cmd{bigg} 等命令不受限制。 \section{多行公式}\label{sec:multi-eqns} diff --git a/src/chap/chap.05.style.tex b/src/chap/chap.05.style.tex index 604cc07..c7a44aa 100644 --- a/src/chap/chap.05.style.tex +++ b/src/chap/chap.05.style.tex @@ -287,15 +287,15 @@ \subsection{行距}\label{subsec:linespread} \cmd{linespread}\marg{factor} \end{command} -此处的行距,指的是基本行距(相当于 \cmd{fontsize} 命令的第二个参数)而不是字号大小。所以设置 1.5 倍行距的命令 \cmd{line\-spread}\marg*{1.5} -意味着最终行距为 1.8 倍的字号大小。 +这里的 \Arg{factor} 是在基础行距上而不是字号上乘以一个因子。大部分时候,默认的基础行距是 1.2 倍字号大小, +因此设置 1.5 倍行距的命令 \cmd{line\-spread}\marg*{1.5} 意味着最终行距为 1.8 倍的字号大小。 \cmdindex{selectfont} 如果不是在导言区全局修改,而想要局部地改变某个段落的行距,需要用 \cmd{select\-font} 命令使 \cmd{line\-spread} 命令的改动立即生效: \begin{example} {\linespread{2.0}\selectfont -The baseline skip is set to twice -the normal baseline skip. +The baseline skip is set to be +twice the normal baseline skip. Pay attention to the \verb|\par| command at the end. \par} @@ -431,7 +431,7 @@ \subsection{垂直间距}\label{subsec:vspace} \section{页面和分栏}\label{sec:page-columns} -我们不妨回顾一下第一章介绍的文档类属性。\LaTeX\ 允许你通过文档类选项控制纸张的大小(见表 \ref{tbl:ltx-options}), +我们不妨回顾一下第一章介绍的文档类属性。\LaTeX\ 允许你通过为文档类指定选项来控制纸张的大小(见表 \ref{tbl:ltx-options}), 包括 \texttt{a4paper}、\texttt{letterpaper}等等,并配合字号设置了适合的页边距。 \cmdindex{textheight,textwidth} @@ -558,7 +558,7 @@ \subsection{分栏}\label{subsec:columns} \pkgindex{float} \pkg{multicol} 宏包能够在一页之中切换单栏/多栏,也能处理跨页的分栏,且各栏的高度分布平衡。但代价是% \textbf{在 \env{multicols} 环境中无法正常使用 \env{table} 和 \env{figure} 等浮动体环境},它会直接让浮动体丢失。 -\env{multicols} 环境中只能用跨栏的 \env{table*} 和 \env{figure*} 环境,或者用 \pkg{float} 宏包提供的 \texttt{H} 选项固定浮动体的位置。 +\env{multicols} 环境中只能用跨栏的 \env{table*} 和 \env{figure*} 环境,或者用 \pkg{float} 宏包提供的 \texttt{H} 参数固定浮动体的位置。 \section{页眉页脚}\label{sec:pagestyle} diff --git a/src/chap/chap.06.spec.tex b/src/chap/chap.06.spec.tex index c5052a8..9825a61 100644 --- a/src/chap/chap.06.spec.tex +++ b/src/chap/chap.06.spec.tex @@ -56,8 +56,8 @@ \section{Introduction} \subsection{\hologo{BibTeX} 数据库}\label{subsec:bibtex-data} \index{bibtexdb@\protect\hologo{BibTeX} 数据库} -\hologo{BibTeX} 是最为流行的参考文献数据组织格式之一。它的出现让我们摆脱手写参考文献条目的麻烦。我们还可以通过参考文献格式的支持, -让同一份 \hologo{BibTeX} 数据库生成不同格式的参考文献列表。我们首先简单介绍 \hologo{BibTeX} 数据库,之后介绍如何将数据库利用在 \LaTeX\ 中。 +\hologo{BibTeX} 是最为流行的参考文献数据组织格式之一。它的出现让我们摆脱手写参考文献条目的麻烦。我们还可以通过参考文献样式的支持, +让同一份 \hologo{BibTeX} 数据库生成不同样式的参考文献列表。我们首先简单介绍 \hologo{BibTeX} 数据库,之后介绍如何将数据库利用在 \LaTeX\ 中。 \hologo{BibTeX} 数据库以 \texttt{.bib} 作为扩展名,其内容是若干个文献条目,每个条目的格式为: \begin{command} @@ -73,68 +73,103 @@ \subsection{\hologo{BibTeX} 数据库}\label{subsec:bibtex-data} 我们在此简单列举学术论文里使用较多的 \hologo{BibTeX} 文献条目格式: \begin{description} - \item[\texttt{article}] 学术论文,必需数据项有 author, title, journal, year; 可选数据项包括 volumn, issue, number, pages, doi 等; + \item[\texttt{article}] 学术论文,必需数据项有 author, title, journal, year; 可选数据项包括 volumn, number, pages, doi 等; \item[\texttt{book}] 书籍,必需数据项有 author/editor, title, publisher, year; 可选数据项包括 volumn/number, series, address 等; \item[\texttt{incollection}] 论文集中的一篇,必需数据项有 author, title, booktitle, publisher, year; 可选数据项包括 editor, volumn/number, chapter, pages, address 等; \item[\texttt{inbook}] 书中的一章,必需数据项有 author/editor, title, chapter/pages, publisher, year; 可选数据项包括 volumn/number, series, address 等。 \end{description} -源代码 \ref{code:bibtex-db} 示例了两条 \texttt{book} 类型的文献条目的写法。上述列表之外的文献条目格式请参考 \CTAN|biblio/bibtex/base/btxdoc.pdf|。 +例如 \texttt{article} 类别的参考文献数据条目写法如下: +\begin{verbatim} +@article{Alice13, + title = {Demostration of bibliography items}, + author = {A. Alice and B. Bob and C. Charlie and D. Danny}, + year = {2013}, + journal = {Journal of \TeX perts}, + volume = {36}, + number = {7}, + pages = {114-120}} +\end{verbatim} +所有类型的文献条目格式请参考 \CTAN|biblio/bibtex/base/btxdoc.pdf|。 多数时候,我们无需自己手写 \hologo{BibTeX} 文献条目。从 Google Scholar 或者期刊/数据库的网站上都能够导出 \hologo{BibTeX} 文献条目, 老牌的文献管理软件 EndNote 也支持生成 \hologo{BibTeX} 格式的数据库。开源软件 JabRef 甚至支持 \hologo{BibTeX} 文献条目的导入、导出和管理。 -\subsection{使用 \hologo{BibTeX} 排版参考文献}\label{subsec:bibtex-use} - -\index{bibtex@\protect\hologo{BibTeX} 工具} -现在我们来看如何利用 \hologo{BibTeX} 数据库生成参考文献和引用。 - -第一步:我们当然需要一份 \hologo{BibTeX} 数据库,假设数据库文件名为 \texttt{books.bib} (见源代码 \ref{code:bibtex-db}), -和我们的 \LaTeX\ 源代码\textbf{一般位于同一个目录下}。 +\subsection{\hologo{BibTeX} 样式}\label{subsec:bibtex-style} -\begin{sourcecode}[htp] -\begin{Verbatim} -@book{Lamport1994, - title = {{\LaTeX}: A Document Preparation System}, - author = {Lamport, L.}, - publisher = {Addison-Wesley}, - address = {Reading, Massachusetts}, - year = {1994}, - edition = {2nd} -} -@book{Mittelbach2004, - title = {The {\LaTeX} Companion}, - author = {Mittelbach, F. and Goossens, M. and - Braams, J. and Carlisle, D. and Rowley, C.}, - publisher = {Addison-Wesley}, - address = {Reading, Massachusetts}, - year = {2004}, - edition = {2nd} -} -\end{Verbatim} -\caption{\hologo{BibTeX} 数据库示例 \texttt{books.bib}。}\label{code:bibtex-db} -\end{sourcecode} +参考文献的写法在不同文献里千差万别,包括作者、标题、年份等各项的顺序和字体样式、文献在列表中的排序规则等。 +\hologo{BibTeX} 用样式(style)来管理参考文献的写法。\hologo{BibTeX} 提供了几个预定义的样式,如 plain, unsrt, alpha 等。 +如果使用期刊模板的话,可能会提供自用的样式。 +样式文件以 \texttt{.bst} 为扩展名。 \cmdindex{bibliographystyle} -第二步:在源代码中添加必要的命令。假设源代码的名称为 \texttt{demo.tex}(见 \ref{code:bibtex-demo})。首先需要的是在\textbf{导言区}设定参考文献的格式: +使用样式文件的方法是在源代码内(一般在导言区)使用 \cmd{biblio\-graphy\-style} 命令: \begin{command} \cmd{bibliographystyle}\marg{bst-name} \end{command} +这里 \Arg{bst-name} 为 \texttt{.bst} 样式文件的名称,\textbf{不要带 \texttt{.bst} 扩展名}。 -其中 \Arg{bst-name} 为格式文件的名称。\hologo{BibTeX} 提供了几个预定义的格式,如 plain, unsrt, alpha 等。 -一些学术论文的模板会提供自有的格式文件,以 \texttt{.bst} 作为扩展名,同样和 \LaTeX\ 源代码\textbf{放在同一个目录下}。 +我们以 \ref{subsec:bibtex-data} 小节给出的数据条目为例,使用 \cmd{biblio\-graphy\-style} 命令选择不同的参考文献样式, +效果大致如表 \ref{tbl:bibtex-style} 所示。 -\cmdindex{cite,nocite} -其次就是在正文中引用参考文献了。\hologo{BibTeX} 程序在生成参考文献列表的时候,通常只列出你用 \cmd{cite} 命令引用的那些。 -如果需要列出没有被引用的文献,则需要 \cmd{nocite}\marg{citation} 命令;而 \cmd{nocite}\marg*{*} 则让所有未引用的参考文献都列出。 +\begin{table}[htp] +\caption{\hologo{BibTeX} 样式的排版效果。}\label{tbl:bibtex-style} +\hrule +\begin{trivlist}\item\relax +\textbf{plain}\\{} +[1] A.~Alice, B.~Bob, C.~Charlie, and D.~Danny. +\newblock Demostration of bibliography items. +\newblock {\em Journal of \TeX perts}, 36(7):114--120, 2013. + +\medskip +\textbf{alpha}\\{} +[ABCD13] A.~Alice, B.~Bob, C.~Charlie, and D.~Danny. +\newblock Demostration of bibliography items. +\newblock {\em Journal of \TeX perts}, 36(7):114--120, 2013. + +\medskip +\textbf{amsplain}(\AmS\ 文档类 \textsf{amsart} 等配套的样式)\\{} +[1] A.~Alice, B.~Bob, C.~Charlie, and D.~Danny, \emph{Demostration of bibliography + items}, Journal of \TeX perts \textbf{36} (2013), no.~7, 114--120. + +\medskip +\textbf{elsarticle-num}(Elsevier 提供的 \textsf{elsarticle} 文档类配套的样式)\\{} +[1] A.~Alice, B.~Bob, C.~Charlie, D.~Danny, Demostration of bibliography items, + Journal of \TeX perts 36~(7) (2013) 114--120. + +\medskip +\textbf{IEEEtran}(\textsf{IEEEtran} 模板配套的样式)\\{} +[1] A.~Alice, B.~Bob, C.~Charlie, and D.~Danny, ``Demostration of bibliography + items,'' \emph{Journal of \TeX perts}, vol.~36, no.~7, pp. 114--120, 2013. +\end{trivlist} +\hrule +\end{table} + +\subsection{使用 \hologo{BibTeX} 排版参考文献}\label{subsec:bibtex-use} + +\index{bibtex@\protect\hologo{BibTeX} 工具} +现在我们来看如何利用 \hologo{BibTeX} 数据库生成参考文献和引用。 -\cmdindex{bibliography} +第一步:我们当然需要一份 \hologo{BibTeX} 数据库,假设数据库文件名为 \texttt{books.bib}, +和我们的 \LaTeX\ 源代码\textbf{一般位于同一个目录下}。 + +第二步:在源代码中添加必要的命令。假设源代码的名称为 \texttt{demo.tex}(见 \ref{code:bibtex-demo})。 +\begin{enumerate} +\item \cmdindex{bibliographystyle} +首先需要使用命令 \cmd{bibliographystyle} 设定参考文献的格式。 + +\item \cmdindex{cite,nocite} +其次,在正文中引用参考文献。\hologo{BibTeX} 程序在生成参考文献列表的时候,通常只列出用了 \cmd{cite} 命令引用的那些。 +如果需要列出未被引用的文献,则需要 \cmd{nocite}\marg{citation} 命令;而 \cmd{nocite}\marg*{*} 则让所有未被引用的文献都列出。 + +\item \cmdindex{bibliography} 再次,在你需要列出参考文献的位置,使用 \cmd{biblio\-graphy} 命令代替 \env{the\-biblio\-graphy} 环境: \begin{command} \cmd{bibliography}\marg{bib-name} \end{command} 其中 \Arg{bib-name} 是 \hologo{BibTeX} 数据库的文件名,\textbf{不要带 \texttt{.bib} 扩展名}。 +\end{enumerate} \begin{sourcecode}[htp] \begin{Verbatim} @@ -142,8 +177,8 @@ \subsection{使用 \hologo{BibTeX} 排版参考文献}\label{subsec:bibtex-use} \bibliographystyle{plain} \begin{document} \section{Some words} -Some excellent books, for example, \cite{Lamport1994} -and \cite{Mittelbach2004} \ldots +Some excellent books, for example, \cite{citation1} +and \cite{citation2} \ldots \bibliography{books} \end{document} @@ -163,10 +198,10 @@ \section{Some words} 整个过程使用的命令如下(可以略去扩展名): \begin{verbatim} -pdflatex demo +xelatex demo bibtex demo -pdflatex demo -pdflatex demo +xelatex demo +xelatex demo \end{verbatim} 使用 \texttt{latex + dvipdfmx} 命令编译时,则 \texttt{dvipdfmx} 命令放在最后,相当于先后使用 @@ -175,7 +210,7 @@ \section{Some words} \subsection{\pkg{natbib} 宏包}\label{subsec:natbib} \pkgindex{natbib} -时下许多学术期刊比较喜欢使用人名——年份的引用方式,形如(\emph{Alice et~al.}, 2005)。 +时下许多学术期刊比较喜欢使用人名——年份的引用方式,形如(\emph{Alice et~al.}, 2013)。 \pkg{natbib} 宏包提供了对这种“自然”引用方式的处理。 \cmdindex[natbib]{citep,citet} @@ -185,7 +220,7 @@ \subsection{\pkg{natbib} 宏包}\label{subsec:natbib} \cmd{citet}\marg{citation} \end{command} -它们分别生成形如(\emph{Alice et~al.}, 2005) 和 \emph{Alice et~al.}(2005) 的人名——年份引用。 +它们分别生成形如(\emph{Alice et~al.}, 2013) 和 \emph{Alice et~al.} (2013) 的人名——年份引用。 \pkg{natbib} 宏包同样也支持数字引用,并且支持将引用的序号压缩,例如: \begin{verbatim} @@ -193,7 +228,7 @@ \subsection{\pkg{natbib} 宏包}\label{subsec:natbib} \end{verbatim} 调用 \pkg{natbib} 宏包时指定以上选项后,连续引用多篇文献时,会生成形如 (3-7) 的引用而不是 (3, 4, 5, 6, 7)。 -\pkg{natbib} 宏包还有更多选项和用法,比如默认的引用是用小括号包裹的,可以为宏包添加 \texttt{square} 选项改为中括号; +\pkg{natbib} 宏包还有更多选项和用法,比如默认的引用是用小括号包裹的,可指定 \texttt{square} 选项改为中括号; 再比如 \cmd{citep} 命令也支持可选参数,为引用前后都添加额外内容。这里不再赘述,请参考 \pkg{natbib} 宏包的帮助文档。 \section{索引和 makeindex 工具}\label{sec:index} @@ -222,7 +257,7 @@ \subsection{使用 makeindex 工具的方法}\label{subsec:makeidx} 第三步,编译过程: \begin{enumerate} - \item 首先用 \texttt{pdflatex} 等命令编译源代码 \texttt{demo.tex}。编译过程中产生索引记录文件 \texttt{demo.idx}; + \item 首先用 \texttt{xelatex} 等命令编译源代码 \texttt{demo.tex}。编译过程中产生索引记录文件 \texttt{demo.idx}; \item 用 makeindex 程序处理 \texttt{demo.idx},生成用于排版的索引列表文件 \texttt{demo.ind}; \item 再次编译源代码 \texttt{demo.tex},正确生成索引列表。 \end{enumerate} @@ -272,7 +307,7 @@ \subsection{索引项的写法}\label{subsec:index-entry} \end{tabular} \end{table} -读者可以钻研一下下面给出的一个较为复杂的,结合多级索引、索引格式、页码格式等的示例。但在自己使用时, +读者可以钻研一下以下给出的一个较为复杂的,结合多级索引、索引格式、页码格式等的用法示例。但在自己使用时, 最好还是遵循“简单的就是最好的”原则,尽量使用表 \ref{tbl:index-entry} 中的写法。 \begin{verbatim} Test index. @@ -419,7 +454,7 @@ \subsection{\pkg{hyperref} 宏包}\label{subsec:hyperref} 而 \texttt{pdflatex} 或 \texttt{xelatex} 命令下不需要。 \cmdindex[hyperref]{hypersetup} -\pkg{hyperref} 宏包提供了命令 \cmd{hypersetup} 配置各种选项,或者也可以作为宏包选项,在调用宏包时使用: +\pkg{hyperref} 宏包提供了命令 \cmd{hypersetup} 配置各种参数,或者也可以作为宏包选项,在调用宏包时指定: \begin{command} \cmd{hypersetup}\marg*{\Arg{option1},\Arg{option2}=\marg*{value},\ldots} \\ \cmd{usepackage}\oarg*{\Arg{option1},\Arg{option2}=\marg*{value},\ldots}\marg*{hyperref} @@ -427,10 +462,10 @@ \subsection{\pkg{hyperref} 宏包}\label{subsec:hyperref} \begin{table}[htp] \centering -\caption{\pkg{hyperref} 宏包提供的设置。}\label{tbl:hyperref-settings} +\caption{\pkg{hyperref} 宏包提供的参数设置。}\label{tbl:hyperref-settings} \begin{tabular}{lcp{19.5em}} \hline - 选项 & 默认值 & \multicolumn{1}{c}{含义} \\ + 参数 & 默认值 & \multicolumn{1}{c}{含义} \\ \hline \texttt{colorlinks=}\Arg{true\textnormal|false} & \textit{false} & 设置为 \textit{true} 为链接文字带颜色,反之加上带颜色的边框 \\ @@ -445,9 +480,9 @@ \subsection{\pkg{hyperref} 宏包}\label{subsec:hyperref} \texttt{bookmarksnumbered=}\Arg{true\textnormal|false} & \textit{false} & 书签是否带章节编号 \\ \texttt{CJKbookmarks=}\Arg{true\textnormal|false} - & \textit{false} & 使用 \pkg{CJK} 宏包/ GBK 编码排版中文时必须指定的选项, + & \textit{false} & 使用 \pkg{CJK} 宏包/ GBK 编码排版中文时必须设定的参数, 在第一次编译后需要将生成的 \texttt{.out} 文件用工具处理编码 \\ - \texttt{unicode} & & 使用 \pkg{CJKutf8} 宏包/ UTF-8 编码排版中文时必须指定的选项 \\ + \texttt{unicode} & & 使用 \pkg{CJKutf8} 宏包/ UTF-8 编码排版中文时必须设定的参数 \\ \hline \texttt{pdftitle=}\Arg{string} & 空 & 标题 \\ @@ -495,8 +530,8 @@ \subsection{超链接}\label{subsec:url-href} \cmd{hyperref}\oarg{label}\marg{text} \end{command} -默认的超链接在文字外边加上一个带颜色的方框(在打印 PDF 时边框不会打印),可指定 \texttt{color\-links} 选项修改为将文字本身加上颜色, -或指定 \texttt{pdf\-border} 选项的参数;\texttt{hide\-links} 选项则令超链接既不变色也不加框。 +默认的超链接在文字外边加上一个带颜色的边框(在打印 PDF 时边框不会打印),可指定 \texttt{color\-links} 参数修改为将文字本身加上颜色, +或修改 \texttt{pdf\-border} 参数调整边框宽度以“去掉”边框;\texttt{hide\-links} 参数则令超链接既不变色也不加边框。 \begin{verbatim} \hypersetup{hidelinks} % or: @@ -535,7 +570,7 @@ \section{质能公式 \texorpdfstring{$E=mc^2$}{E=mc\textasciicircum 2}} \subsection{PDF 文档属性}\label{subsec:pdf-settings} -\pkg{hyperref} 宏包还提供了一些选项用于改变 PDF 文档的属性,部分见表 \ref{tbl:hyperref-settings}。 +\pkg{hyperref} 宏包还提供了一些参数用于改变 PDF 文档的属性,部分见表 \ref{tbl:hyperref-settings}。 \endinput \ No newline at end of file diff --git a/src/chap/chap.07.graphic.tex b/src/chap/chap.07.graphic.tex index 8512d0f..2e2b398 100644 --- a/src/chap/chap.07.graphic.tex +++ b/src/chap/chap.07.graphic.tex @@ -127,7 +127,7 @@ \subsection{\TikZ\ 坐标和路径}\label{subsec:tikz-path} \end{example} \begin{itemize} - \item 网格、函数图像,网格可用 \texttt{step} 选项控制网格大小,函数图像用 \texttt{domain} 选项控制定义域: + \item 网格、函数图像,网格可用 \texttt{step} 参数控制网格大小,函数图像用 \texttt{domain} 参数控制定义域: \end{itemize} \begin{example} \begin{tikzpicture}