summaryrefslogtreecommitdiff
path: root/info/lshort
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-08-03 03:01:12 +0000
committerNorbert Preining <norbert@preining.info>2020-08-03 03:01:12 +0000
commite5053aca346b6b429f77806ea89e37d67da94b29 (patch)
tree49b473636d2663448ca7031ae9eb6b3b28b06f3d /info/lshort
parent1498fd91bffe57cfb36b3164ea5237cff0915559 (diff)
CTAN sync 202008030301
Diffstat (limited to 'info/lshort')
-rw-r--r--info/lshort/chinese/README-zh.md16
-rw-r--r--info/lshort/chinese/README.md17
-rw-r--r--info/lshort/chinese/lshort-zh-cn.pdfbin1049683 -> 1452490 bytes
-rw-r--r--info/lshort/chinese/src/INSTRUCTIONS.md36
-rw-r--r--info/lshort/chinese/src/app.A.install.tex137
-rw-r--r--info/lshort/chinese/src/chap.02.text.tex380
-rw-r--r--info/lshort/chinese/src/chap/app.A.install.tex137
-rw-r--r--info/lshort/chinese/src/chap/app.B.error.help.tex (renamed from info/lshort/chinese/src/app.B.error.help.tex)72
-rw-r--r--info/lshort/chinese/src/chap/biblio.tex (renamed from info/lshort/chinese/src/biblio.tex)56
-rw-r--r--info/lshort/chinese/src/chap/chap.01.basics.tex (renamed from info/lshort/chinese/src/chap.01.basics.tex)260
-rw-r--r--info/lshort/chinese/src/chap/chap.02.text.tex357
-rw-r--r--info/lshort/chinese/src/chap/chap.03.elements.tex (renamed from info/lshort/chinese/src/chap.03.elements.tex)170
-rw-r--r--info/lshort/chinese/src/chap/chap.04.math.tex (renamed from info/lshort/chinese/src/chap.04.math.tex)153
-rw-r--r--info/lshort/chinese/src/chap/chap.05.style.tex (renamed from info/lshort/chinese/src/chap.05.style.tex)222
-rw-r--r--info/lshort/chinese/src/chap/chap.06.spec.tex (renamed from info/lshort/chinese/src/chap.06.spec.tex)77
-rw-r--r--info/lshort/chinese/src/chap/chap.07.graphic.tex (renamed from info/lshort/chinese/src/chap.07.graphic.tex)127
-rw-r--r--info/lshort/chinese/src/chap/chap.08.custom.tex (renamed from info/lshort/chinese/src/chap.08.custom.tex)64
-rw-r--r--info/lshort/chinese/src/chap/fdl.tex (renamed from info/lshort/chinese/src/fdl.tex)0
-rw-r--r--info/lshort/chinese/src/chap/preface.contrib.tex (renamed from info/lshort/chinese/src/preface.contrib.tex)20
-rw-r--r--info/lshort/chinese/src/chap/preface.overview.tex58
-rw-r--r--info/lshort/chinese/src/chap/sec.symbol.table.tex (renamed from info/lshort/chinese/src/sec.symbol.table.tex)107
-rw-r--r--info/lshort/chinese/src/chap/titlepage.tex (renamed from info/lshort/chinese/src/titlepage.tex)6
-rw-r--r--info/lshort/chinese/src/lshort-zh-cn-style.sty46
-rw-r--r--info/lshort/chinese/src/lshort-zh-cn.tex36
-rw-r--r--info/lshort/chinese/src/make.bat66
-rw-r--r--info/lshort/chinese/src/preface.overview.tex58
26 files changed, 1416 insertions, 1262 deletions
diff --git a/info/lshort/chinese/README-zh.md b/info/lshort/chinese/README-zh.md
index cb8b69d041..eda9fdcecc 100644
--- a/info/lshort/chinese/README-zh.md
+++ b/info/lshort/chinese/README-zh.md
@@ -1,4 +1,4 @@
-# 中文版 lshort,6.01 版
+# 中文版 lshort,6.02 版
## 许可证
@@ -12,8 +12,9 @@
### 手动编译
-在 src 目录下按照以下顺序编译:
-```
+在 `src` 目录下按照以下顺序编译:
+
+```sh
xelatex lshort-zh-cn
makeindex -s lshort-zh-cn.ist lshort-zh-cn
xelatex lshort-zh-cn
@@ -24,14 +25,15 @@ xelatex lshort-zh-cn
### 使用脚本和 Makefile 编译
-Linux 下提供了 GNU make 可用的 Makefile,使用 GNU make 的顺序为:
-```
+对于 GNU/Linux 或 macOS 用户,我们提供了 GNU make 所需的 Makefile,在 `src` 目录下执行以下命令进行编译:
+
+```sh
make
make install
```
-Windows 下在 src 目录提供批处理脚本 `make.bat`,双击执行编译。
+对于 Windows 用户,我们也在 `src` 目录提供了批处理脚本 `make.bat`,双击进行编译。
### 使用 latexmk 编译
-在 src 目录下提供了供 `latexmk` 构建工具使用的配置文件 `latexmkrc`。在 src 目录下执行 `latexmk` 命令进行编译,完成后将 PDF 文件移动到根目录。 \ No newline at end of file
+在 `src` 目录下有可供 `latexmk` 构建工具使用的配置文件 `latexmkrc`。在 `src` 目录下执行 `latexmk` 命令进行编译,完成后将 PDF 文件移动到根目录。
diff --git a/info/lshort/chinese/README.md b/info/lshort/chinese/README.md
index ecfe6062ca..a6de7cfc1d 100644
--- a/info/lshort/chinese/README.md
+++ b/info/lshort/chinese/README.md
@@ -1,4 +1,4 @@
-# The Not So Short Introduction To LaTeX (Chinese Edition), v6.01
+# The Not So Short Introduction To LaTeX (Chinese Edition), v6.02
## License
@@ -6,6 +6,7 @@ This document is distributed under the **GNU Free Documentation License, version
For detailed information, see the section entitled 'GNU Free Documentation License' in the document, or the source code file `fdl.tex`.
## Preparation for typesetting
+
Update `ctex` and `xeCJK` (and all the packages they rely on) in your TeX distritusion. And make sure you've installed
all the other packages used in `lshort-zh-cn-style.sty` and updated them to the newest version.
@@ -13,8 +14,9 @@ all the other packages used in `lshort-zh-cn-style.sty` and updated them to the
### Manually typesetting
-In 'src' directory, typeset the source code in the following order:
-```
+In `src` directory, typeset the source code in the following order:
+
+```sh
xelatex lshort-zh-cn
makeindex -s lshort-zh-cn.ist lshort-zh-cn
xelatex lshort-zh-cn
@@ -25,14 +27,15 @@ If typesetting succeeds and the target PDF document is made correctly, then move
### Using scripts and Makefile
-For GNU/Linux and OS/X users, we provide Makefile in the 'src' directory. Use GNU make tool in the following order:
-```
+For GNU/Linux and macOS users, we provide Makefile in the `src` directory. Use GNU make tool in the following order:
+
+```sh
make
make install
```
-For Windows users, we also provide a batch file `make.bat` in the 'src' directory, which you can double-click to do the typesetting.
+For Windows users, we also provide a batch file `make.bat` in the `src` directory, which you can double-click to do the typesetting.
### Using latexmk
-We also provide `latexmkrc` configuration file for building with `latexmk` tool. Run the command `latexmk` in `src` directory for typesetting, then move the PDF document to the root directory. \ No newline at end of file
+We also provide `latexmkrc` configuration file for building with `latexmk` tool. Run the command `latexmk` in `src` directory for typesetting, then move the PDF document to the root directory.
diff --git a/info/lshort/chinese/lshort-zh-cn.pdf b/info/lshort/chinese/lshort-zh-cn.pdf
index b8c28394a7..291e308034 100644
--- a/info/lshort/chinese/lshort-zh-cn.pdf
+++ b/info/lshort/chinese/lshort-zh-cn.pdf
Binary files differ
diff --git a/info/lshort/chinese/src/INSTRUCTIONS.md b/info/lshort/chinese/src/INSTRUCTIONS.md
index fa493e575a..a441c6470b 100644
--- a/info/lshort/chinese/src/INSTRUCTIONS.md
+++ b/info/lshort/chinese/src/INSTRUCTIONS.md
@@ -1,35 +1,44 @@
# 中文版 lshort 代码用到的命令
-### 约定俗成的习惯
+## 约定俗成的习惯
-1. 命令后面用 `\␣` 加空格,如 `\LaTeX\␣`,不用 `\LaTeX{}␣`。
-2. 每章的 `\chapter` 命令后手动给 `.los` 目录写间距:
+1. 在控制序列后面显式加空格时使用空分组 `{}`,如 `\LaTeX{} 命令`。
+2. TeX 专有术语尽量使用 `\hologo` 宏排版。
+3. 每章的 `\chapter` 命令后手动给 `.los` 目录写间距:
```
\addtocontents{los}{\protect\addvspace{10pt}}
```
-### 命令和环境
+## LaTeX 术语的表示方式
+### 命令和环境名称
+
+用 `\cmd` 和 `\env` 命令生成命令名 `\cmdname` / 环境名 `envname`,以等宽字体排版:
```
\cmd{cmdname}
\env{envname}
```
-生成命令名 \cmdname / 环境 envname,等宽字体。cmdname 参数不要带斜杠。
+`cmdname` 参数不要带斜杠。名称内在必要的时候添加 `\-` 控制分词。
+
+### 宏包和文档类名称
+用 `\pkg` 和 `\cls` 命令生成宏包和文档类的名称,以无衬线字体排版。
```
\pkg{pkgname}
\cls{clsname}
```
-生成宏包和文档类的名称(无衬线字体)。
+### 命令参数
+
+用 `\marg` 命令生成必选参数,用 `\oarg` 命令生成可选参数:
```
\marg{argument}
\marg*{argument}
\oarg{argument}
\oarg*{argument}
```
-命令的必选参数/可选参数,分别为参数自动包裹大括号和中括号。不带星号的版本生成 meta 形式的 &lt;*argument*&gt;。
+生成的参数自动包裹大括号和中括号。不带星号的版本生成 meta 形式的 &lt;*argument*&gt;。
```
\Arg{argument}
@@ -42,12 +51,15 @@
> `\cmd{usepackage}\oarg*{\Arg{key1}=\Arg{value1},\ldots}\marg{pkgname}`
+### 其它
+
+CTAN 资源的链接使用以下命令:
```
\CTAN|link|
```
-生成 CTAN 资源的链接。参数 link 为链接的子目录名称,如 systems/win32/miktex,macros/contrib/... 等。
+参数 `link` 为链接的子目录名称,如 `systems/win32/miktex`,`macros/contrib/...` 等。
-### 索引
+## 索引
```
\cmdindex{cmdname}
@@ -55,8 +67,8 @@
\envindex{envname}
\envindex[pkgname]{envname}
```
-命令和环境的索引项。LaTeX 基本命令用不带可选参数的形式;宏包/文档类的命令在可选参数里指定宏包名称。
-cmdname 和 envname 可写多个命令和环境名,以逗号分隔(唯一例外的是 `\,` 命令)。
+命令和环境的索引项。TeX 原始命令、LaTeX 内核和标准文档类命令用不带可选参数的形式;宏包/文档类的命令在可选参数里指定宏包名称。
+`cmdname` 和 `envname` 可写多个命令和环境名,以逗号分隔(唯一例外的是 `\,` 命令)。
```
\pkgindex{pkgname}
@@ -82,7 +94,7 @@ cmdname 和 envname 可写多个命令和环境名,以逗号分隔(唯一例
```
汉字索引项,通过拼音参与排序。
-### 排版元素
+## 排版元素
```
\demowidth{length}
diff --git a/info/lshort/chinese/src/app.A.install.tex b/info/lshort/chinese/src/app.A.install.tex
deleted file mode 100644
index 27a4ca2ca5..0000000000
--- a/info/lshort/chinese/src/app.A.install.tex
+++ /dev/null
@@ -1,137 +0,0 @@
-\chapter{安装 \protect\TeX\ 发行版}\label{app:install}
-
-\begin{intro}
-高德纳的 \TeX\ 程序开发于 20 世纪 80 年代,那时候电子计算机的运算能力有限,\TeX\ 还是大型服务器上的玩物。
-而如今个人计算机完全能够胜任排版的工作,并催生了用于个人计算机的工具集合—— \TeX\ 发行版的发展。
-
-本章会简单介绍如何安装 \TeX\ 发行版,以及保持发行版的内容紧跟最新。后者非常重要,
-因为 \LaTeX\ 宏包是不断更新换代的。
-\end{intro}
-
-\section{\protect\TeX\ 发行版简介}\label{sec:dists}
-
-一个\textbf{\TeX\ 发行版}是 \TeX\ 排版引擎、支持排版的文件(基本格式、\LaTeX\ 宏包、字体等)以及一些辅助工具的集合。
-各式各样的 \TeX\ 发行版经过十多年的发展,大浪淘沙,现今的两个主流发行版为:
-\begin{itemize}
- \item \textbf{\TeX\ Live}\par
- \TeX\ Live 由类 UNIX 系统上的 te\TeX\ 发展并取而代之,最终成为跨平台的 \TeX\ 发行版。
- \TeX\ Live 自 2011 年起以年份作为发行版的版本号,保持了一年一更的频率。
-
- Mac\TeX\ 是 macOS(OS X)系统下的一个定制化的 \TeX\ Live 版本,与 \TeX\ Live 同步更新。
-
- \item \textbf{Mik\TeX}\par
- Mik\TeX\ 是主要用于 Windows 平台的一个稳定发展的 \TeX\ 发行版。
- 中国的 \LaTeX\ 用户应该对“C\TeX\ 套装”比较熟悉,它是一个经过本地化配置的 Mik\TeX 。
-\end{itemize}
-
-\TeX\ Live 和 Mik\TeX\ 都集成了一个简单的 \LaTeX\ 源代码编辑器 \TeX works(Mac\TeX\ 则集成了类似的 \TeX shop)。
-用户在安装完毕后,可直接使用 \TeX works 编写和编译 \LaTeX\ 源代码。
-
-\subsection{安装发行版}\label{subsec:install-dists}
-
-\subsubsection{\TeX\ Live}
-
-\TeX\ Live 的光盘镜像发布于 \url{http://www.tug.org/texlive/}%
-\footnote{Linux 发行版的软件源也提供 \TeX\ Live 的安装,不过不够完整,更新也不是很及时。建议直接从镜像安装。}。
-下载镜像到本地,挂载到虚拟光驱,或者用压缩工具解压后,在其根目录有几个用于安装的脚本:
-\begin{itemize}
- \item 用于 Windows 的批处理文件:
- \begin{itemize}
- \item \texttt{install-tl-windows.bat} 双击启动图形界面安装程序(简单安装);
- \item \texttt{install-tl-advanced.bat} 双击启动图形界面安装程序(定制安装);
- \item 在命令提示符中输入 \texttt{install-tl-windows.bat -no-gui} 启动文本界面安装程序。
- \end{itemize}
- \item 用于 Linux 的 Perl 脚本 \texttt{install-tl} :
- \begin{itemize}
- \item \texttt{install-tl} 启动文本界面安装程序;
- \item \texttt{install-tl -gui=wizard} 启动图形界面安装程序(简单安装);
- \item \texttt{install-tl -gui=peritk} 启动图形界面安装程序(定制安装)。
- \end{itemize}
-\end{itemize}
-另外也可以下载在线安装程序 \texttt{install-tl.zip},包含以上所有安装脚本。安装过程中会从 CTAN 软件源下载所有组件。
-
-Linux 下 \TeX\ Live 安装完毕后,一般还需要在 root 权限下进行以下操作,使得 \hologo{XeLaTeX} 能正确通过 \pkg{fontspec}
-等宏包使用字体\footnote{\url{http://www.tug.org/texlive/doc/texlive-zh-cn/texlive-zh-cn.pdf},%
-可用 \texttt{texdoc texlive-zh-cn} 在本地打开。}:
-\begin{enumerate}
- \item 将 \texttt{texlive-fontconfig.conf} 文件复制到 \texttt{/etc/fonts/conf.d/09-texlive.conf}。
- \item 运行 \texttt{fc-cache -fsv}。
-\end{enumerate}
-
-\subsubsection{Mik\TeX}
-从 Mik\TeX\ 官网 \url{http://www.miktex.org/} 下载名为 \texttt{basic-miktex-***.exe} 的 Windows 安装程序包。
-下载后直接双击打开,按照程序的提示进行安装即可。
-
-\section{安装和更新宏包}\label{sec:pkg-manager}
-
-\TeX\ Live 提供了图形界面的宏包管理器 \TeX\ Live Manager 用于安装和更新宏包,而 Mik\-\TeX\ 也提供了管理器
-Mik\-\TeX\ Package Manager。用户可直接打开程序,进行宏包的安装和更新
-(Mik\-\TeX\ Package Manager 有普通权限和管理员权限的版本,建议总是使用管理员权限的版本)。
-
-两者也可以通过各自的命令行工具安装和更新宏包:
-\begin{verbatim}
-% TeX Live 命令行工具 tlmgr 的使用示例
-% 安装/卸载宏包
-tlmgr install <package-name>
-tlmgr remove <package-name>
-% 更新所有宏包(包括 tlmgr 本身)
-tlmgr update --all --self
-% 列出所有可更新的宏包
-tlmgr update --list
-% 指定更新源地址
-% <CTAN mirrors> 形如 https://mirrors.tuna.tsinghua.edu.cn/CTAN
-tlmgr repository set <CTAN mirrors>/systems/texlive/tlnet
-% 查看宏包信息,加 --list 参数可列出宏包的所有文件
-tlmgr info <package-name>
-\end{verbatim}
-
-\begin{verbatim}
-% MikTeX 命令行工具 mpm 的使用示例
-% 建议始终加 --admin 参数使用
-% 安装/卸载宏包
-mpm --admin --install <package-name>
-mpm --admin --uninstall <package-name>
-% 更新所有宏包
-mpm --admin --update
-% 列出所有可更新的宏包
-mpm --admin --find-updates
-% 指定更新源地址
-mpm --admin --set-repository=<CTAN mirrors>/systems/win32/miktex/tm/packages
-% 查看宏包信息
-mpm --admin --print-package-info <package-name>
-\end{verbatim}
-
-\TeX\ Live 默认安装所有宏包,而 Mik\TeX\ 的安装程序只包含了 \LaTeX\ 的一些基本宏包。从 \TeX\ Live 的光盘镜像和 Mik\-\TeX\ 的安装包体积可见一斑。
-默认情况下,编译过程中如果遇到宏包未安装而报错的情况下,Mik\TeX\ 会弹出一个对话框,让用户可以选择临时安装宏包,安装成功后继续编译。
-
-\subsection{手动安装宏包}\label{subsec:pkg-manual-install}
-
-\textbf{\textcolor{red}{如非万不得已,尽量不要手动安装宏包}}。绝大多数宏包都已打包到 \TeX\ Live 和 Mik\TeX\ 两大发行版的安装源,
-可用宏包管理器安装。如果你知道某个宏包的名称,但不确定是否在发行版中已打包,可在 CTAN 中搜索。
-
-如果确实有手动安装宏包的需要,本小节的内容将有所帮助。在手动安装之前,有必要了解一下 \TeX\ 目录结构(\TeX\ Directory Structure, TDS)。
-它是 \TeX\ 发行版中宏包、字体、帮助文档等文件的组织结构。TDS 有时也称为 TEXMF 树,取 \TeX$+$\hologo{METAFONT} 之意。
-
-以 \TeX\ Live 为例,假设系统的 TEXMF 树根目录为 \nolinkurl{C:\\texlive\\2015\\texmf-dist},其下有很多子目录,仅举几例:
-\begin{description}
- \item[\texttt{tex/latex}] \LaTeX\ 宏包。
- \item[\texttt{doc/latex}] \LaTeX\ 宏包的帮助文档。
- \item[\texttt{source/latex}] \LaTeX\ 宏包的源代码。
- \item[\texttt{bibtex}] \hologo{BibTeX} 工具相关文件,许多宏包配套的 \hologo{BibTeX} 格式文件位于子目录 \texttt{bst} 中。
- \item[\texttt{fonts/tfm}] \TeX\ 使用的字体文件,TFM 格式。
- \item[\texttt{fonts/type1}] PostScript 字体文件(Type1),PFB 格式。
- \item[\texttt{fonts/opentype}] OpenType 格式的字体文件。
-\end{description}
-
-需要手动安装的宏包,一般已经按照上述目录结构打包完成。手动安装时,尽量不要拷贝到系统的 TEXMF 树,而是拷贝到发行版提供的用户 TEXMF 树,如
-\TeX Live 的 \nolinkurl{C:\\texlive\\texmf-local}。安装完成后,还需\textbf{刷新 \TeX\ 发行版的文件名数据库},令新安装的宏包文件能够被系统找到。
-\TeX\ Live 用户须在 Windows 命令行或者 Linux 终端执行命令:
-\begin{verbatim}
-mktexlsr
-\end{verbatim}
-Mik\TeX\ 用户的命令为:
-\begin{verbatim}
-initexmf --update-fndb
-\end{verbatim}
-
-\endinput \ No newline at end of file
diff --git a/info/lshort/chinese/src/chap.02.text.tex b/info/lshort/chinese/src/chap.02.text.tex
deleted file mode 100644
index 55b43be44c..0000000000
--- a/info/lshort/chinese/src/chap.02.text.tex
+++ /dev/null
@@ -1,380 +0,0 @@
-\chapter{用 \LaTeX\ 排版文字}\label{chap:text}
-\addtocontents{los}{\protect\addvspace{10pt}}
-
-\begin{intro}
-文字是排版的基础。在介绍 \LaTeX\ 支持的各种文档元素之前,首先应当了解一下如何在 \LaTeX\ 源代码中输入并排版文字,
-尤其是(西文中的)标点符号、连字符、重音等一些细节。
-
-本文的开头首先介绍了中文的支持方式。随着 \LaTeX\ 和底层 \TeX\ 引擎的发展,旧方式(CCT、CJK 等)日渐退出舞台,
-xelatex 编译命令配合 \cls{xeCJK} 或 \cls{ctex} 宏包的方式成为主流。
-\end{intro}
-
-\section{语言文字和编码}\label{sec:encoding}
-
-\pinyinindex{bianma}{编码}
-\LaTeX\ 源代码为文本文件,而文本文件的一个至关重要的性质是它的编码。在此用尽量短的篇幅介绍一下。
-
-\subsection{ASCII 编码}\label{subsec:ascii}
-
-\index{bianma@编码!ASCII}
-计算机的基本存储单位是字节(byte),每个字节为八位(8-bit),范围用十六进制写作 0x00-0xFF。
-ASCII (美国通用信息交换码)使用 0x00-0x7F 对文字编码,也就是 7-bit,能够表示 QWERTY 键盘上能够输入的拉丁字母、数字和符号。
-
-由于 \TeX\ 最初面向英语文档的排版,ASCII 编码完全够用,而早期版本的 \TeX\ 也只支持 7-bit 和 ASCII。
-要排版西欧语系中带重音的字符,就必须用到后文所叙述的重音命令,如 M\"obius 必须输入 \texttt{M\char`\\"obius}。
-
-\subsection{扩展编码}\label{subsec:ext-encoding}
-
-在 ASCII 之后,各种语言文字都发展了自己的编码,比如西欧语言的 Latin-1,日本的 Shift-JIS,中国大陆的 GB2312-80 和 GBK 等。
-它们之中的绝大多数都向下兼容 ASCII,因此无论是在哪种编码下,\TeX\ 以及 \LaTeX\ 的命令和符号都能用。
-
-\index{bianma@编码!Latin-1}
-\pkgindex{inputenc}
-\TeX\ 从 3.0 版开始支持 8-bit,能够处理源代码里编码处于 0x80-0xFF 范围的字符。
-西欧(拉丁字母)、俄语系(西里尔字母)等语言的编码方案刚好能够利用 0x80-0xFF 这个范围,处理起来较为方便。
-\texttt{latex} 命令及 \texttt{pdflatex} 命令下,这些编码的处理由 \pkg{inputenc} 宏包支持。
-比如将源代码保存为 Latin-1 编码,并在导言区调用宏包:
-\begin{verbatim}
-\usepackage[latin1]{inputenc}
-\end{verbatim}
-接下来,M\"obius 就直接可以通过(用适当输入法)输入 \texttt{M\"obius} 得到了。
-
-\index{bianma@编码!GBK}
-GBK 等编码是多字节编码,ASCII 字符为一个字节,汉字等非 ASCII 字符为两个字节,这就需要借助一些宏包进行较为复杂的判断和处理。
-\pkg{CJK} 宏包就是用于处理中、日、韩等多字节编码的语言文字的宏包。但 \pkg{CJK} 宏包的使用非常不方便,笔者不再推荐直接使用。
-
-\subsection{UTF-8 编码}\label{subsec:utf8}
-
-\index{bianma@编码!UTF-8}
-Unicode 是一个多国字符的集合,覆盖了几乎全球范围内的语言文字。UTF-8 是 Unicode 的一套编码方案,
-一个字符可以由一个到四个字节编码,其中单字节字符兼容 ASCII 编码。
-
-\pkgindex{inputenc}
-\texttt{latex} 命令及 \texttt{pdflatex} 命令下可以使用 \pkg{inputenc} 宏包支持 UTF-8 编码:
-\begin{verbatim}
-\usepackage[utf8]{inputenc}
-\end{verbatim}
-
-\texttt{xelatex} 和 \texttt{lualatex} 命令原生支持 UTF-8 编码,而且也\textbf{不适用 \pkg{inputenc} 宏包}。将 \texttt{.tex} 源代码保存为 UTF-8 编码,
-并借助 \pkg{fontspec} 宏包(见 \ref{subsec:fontspec} 小节)调用适当的字体,就可以在源代码中输入任意语言的文字。
-但各个语言(印地语、阿拉伯语等)的特殊排版要求需要更多的宏包支持,如 \pkg{babel}、 \pkg{polyglossia} 等。
-
-\section{排版中文}\label{sec:chinese}
-
-\subsection{\pkg{xeCJK} 宏包}\label{subsec:xeCJK}
-
-用 \LaTeX\ 排版中文的一大难题是中文字体的处理。\TeX\ 使用的字体格式仅支持不超过 256 个字符,
-旧式的中文排版方案如 \pkg{CJK} 宏包往往需要复杂的预处理,将中文字体拆分成数百个小字体,非常麻烦%
-\footnote{现在的 \texttt{pdflatex} 以及 \texttt{latex} + \texttt{dvipdfmx} 命令通过字体映射的方式支持直接使用中文字体,不需要经过预处理,
-但仍然是不方便新手操作的。}。
-
-\index{xelatex@\texttt{xelatex} 命令}
-\pkgindex{xeCJK}
-\texttt{xelatex} 命令支持直接使用系统安装的 TrueType (\texttt{.ttf}) / OpenType (\texttt{.otf}) 等格式的字体,加上对 UTF-8 编码的原生支持,
-免去了预处理字体的麻烦。在此基础上的 \pkg{xeCJK} 宏包更进一步完善了排版中文的一些细节,比如中英文之间插入空隙、
-中文行尾的回车不引入空格、标点符号不出现在行首,等等。
-
-\pkg{xeCJK} 宏包支持用简单的命令配置中文字体。举一个在 Windows 下使用 \pkg{xeCJK} 的例子(设置字体的命令详见 \ref{subsec:CJKfont} 小节),
-源代码须保存为 UTF-8 编码,并使用 \texttt{xelatex} 命令编译:
-\begin{verbatim}
-\documentclass{article}
-\usepackage{xeCJK}
-\setCJKmainfont{SimSun}
-\begin{document}
-中文\LaTeX{}排版。
-\end{document}
-\end{verbatim}
-
-\subsection{\pkg{ctex} 宏包和文档类}\label{subsec:ctex}
-
-\pkgindex{ctex}
-\clsindex{ctexart,ctexbook,ctexrep}
-\pkg{ctex} 宏包和文档类是对 \pkg{CJK} 和 \pkg{xeCJK} 等宏包的进一步封装。\pkg{ctex} 文档类包括
-\cls{ctexart} / \cls{ctexrep} / \cls{ctexbook},是对 \LaTeX\ 的三个标准文档类的封装,对 \LaTeX\ 的排版样式做了许多调整,
-以切合中文排版风格。最新版本的 \pkg{ctex} 宏包/文档类甚至能够根据操作系统自动配置字体。比如上述例子可进一步简化为:
-\begin{verbatim}
-\documentclass{ctexart}
-\begin{document}
-中文\LaTeX{}排版。
-\end{document}
-\end{verbatim}
-
-虽然 \pkg{ctex} 宏包和文档类保留了对 GBK 编码以及 \texttt{latex} + \texttt{dvipdfmx}、\texttt{pdflatex} 等旧的编译命令的支持,
-笔者建议在使用 \pkg{ctex} 宏包和文档类时总是将源代码保存为 UTF-8 编码,用 \texttt{xelatex} 命令编译。
-
-\section{\LaTeX\ 中的字符}\label{sec:text-symbols}
-
-\subsection{空格和分段}\label{subsec:spaces}
-
-\LaTeX\ 源代码中,空格键和 Tab 键输入的空白字符视为“空格”。
-连续的若干个空白字符视为一个空格。一行开头的空格忽略不计。
-
-\cmdindex{par}
-行末的回车视为一个空格;但连续两个回车,也就是空行,会将文字分段。多个空行被视为一个空行。
-也可以在行末使用 \cmd{par} 命令分段。
-\begin{example}
-Several spaces equal one.
- Front spaces are ignored.
-
-An empty line starts a new
-paragraph.\par
-A \verb|\par| command also
-starts a new line.
-\end{example}
-
-\subsection{注释}\label{subsec:comments}
-
-\index{^^e@\texttt\% (\textit{注释})}
-\LaTeX\ 用 \texttt\% 字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,
-行末的回车也不引入空格。
-\begin{example}
-This is an % short comment
-% ---
-% Long and organized
-% comments
-% ---
-example: Comments do not bre%
-ak a word.
-\end{example}
-
-\subsection{特殊字符}\label{subsec:special-chars}
-
-以下字符在 \LaTeX\ 里有特殊用途,如 \texttt\% 表示注释, \texttt\$、\texttt\textasciicircum 、\texttt\_ 等用于排版数学公式,
-\texttt\& 用于排版表格,等等。直接输入这些字符得不到对应的符号,还往往会出错:
-\begin{verbatim}
-# $ % & { } _ ^ ~ \
-\end{verbatim}
-
-如果想要输入以上符号,需要使用以下带反斜线的形式输入:
-\begin{example}
-\# \$ \% \& \{ \} \_
-\^{} \~{} \textbackslash
-\end{example}
-
-事实上这些带反斜线的形式就是 \LaTeX\ 命令。\cmd{\textasciicircum} 和 \cmd{\textasciitilde}
-两个命令是需要带参数的,如果不加一对花括号(空参数),就将后面的字符作为参数,形成重音效果(详见 \ref{subsec:accents} 节)。
-\crcmd\ 被直接定义成了手动换行的命令,输入反斜杠就只好用 \cmd{text\-back\-slash}。
-
-\subsection{连字}\label{subsec:ligatures}
-
-西文排版中经常会出现连字(Ligatures),常见的有 ff / fi / fl / ffi / ffl{}。
-\begin{example}
-It's difficult to find \ldots .\\
-It's dif{}f{}icult to f{}ind \ldots .
-\end{example}
-
-\subsection{标点符号}\label{subsec:punct}
-
-中文的标点符号(绝大多数为非 ASCII 字符)使用中文输入法输入即可,一般不需要过多留意。
-而在英文标点符号上,有许多需要留意的地方。
-
-\subsubsection{引号}
-
-\index{biaodianfuhao@标点符号!`@\protect\verb+`+ (\textit{前引号} `)}
-\index{biaodianfuhao@标点符号!``@\protect\verb+'+ (\textit{后引号} ')}
-\index{biaodianfuhao@标点符号!'@\protect\verb+``+ (\textit{前双引号} ``)}
-\index{biaodianfuhao@标点符号!''@\protect\verb+''+ (\textit{后双引号} '')}
-\LaTeX\ 的单引号 ` ' 用 \texttt` 和 \texttt' 输入;双引号 `` '' 用 \verb|``| 和 \verb|''| 输入
-(虽然 \texttt" 也能表示双引号,但没有合适的单个符号用来表示前双引号,所以不常用在正文)。
-\begin{example}
-``Please press the `x' key.''
-\end{example}
-
-\subsubsection{连字号和破折号}
-
-\index{biaodianfuhao@标点符号!-@\protect\verb+-+ (\textit{连字号} -)}
-\index{biaodianfuhao@标点符号!--@\protect\verb+--+ (\textit{短破折号} --)}
-\index{biaodianfuhao@标点符号!---@\protect\verb+---+ (\textit{长破折号} ---)}
-\LaTeX\ 中有三种长度的“横线”可用:连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash)。
-它们分别有不同的用途:连字号 - 用来组成复合词;短破折号 -- 用来连接数字表示范围;长破折号 --- 用来连接单词,与中文语境中的破折号用法类似。
-\begin{example}
-daughter-in-law, X-rated\\
-pages 13--67\\
-yes---or no?
-\end{example}
-
-\subsubsection{省略号}
-
-\index{biaodianfuhao@标点符号!ldots@\cmd{ldots} (\textit{省略号} \ldots)}
-\index{biaodianfuhao@标点符号!dots@\cmd{dots} (\textit{省略号} \dots)|see{\cmd{ldots}}}
-\LaTeX\ 提供了命令 \cmd{ldots} 来生成省略号,相对于直接输入三个点的方式更为合理。
-\cmd{ldots} 和 \cmd{dots} 是两个等效的命令。
-\begin{example}
-one, two, three, \ldots one hundred.
-\end{example}
-
-\subsubsection{波浪号}
-
-我们在 \ref{subsec:special-chars} 小节中了解了 \cmd{\textasciitilde} 命令,它可以用来输入波浪号,
-但位置靠顶端(\cmd{\textasciitilde} 命令主要用作重音,参考下一小节)。西文中较少将波浪号作为标点符号使用,通常使用中文的全角波浪号(~)。
-
-\subsection{特殊西文符号与重音}\label{subsec:accents}
-
-\pinyinindex{zhongyin}{重音}
-\LaTeX\ 支持用命令输入各种西欧语言的特殊符号和重音:
-\begin{example}
-H\^otel, na\"\i ve, \'el\`eve,\\
-sm\o rrebr\o d, !`Se\ norita!,\\
-Sch\"onbrunner Schlo\ss{}
-Stra\ss e
-\end{example}
-
-更多可用的符号和重音见表 \ref{tbl:accents}。注意与 \ref{subsec:math-accents} 小节的数学重音区分开来。
-
-\def\TSYM #1{#1 & \texttt{\string#1}}
-\def\TACC #1#2{#1{#2} & \texttt{\string#1#2}} % accents using a control character
-\def\TTACC #1#2{#1{#2} & \texttt{\string#1 #2}} % accents using a control word
-\def\WTACC #1#2{#1{#2} & \texttt{\string#1\{#2\}}} % multi-letter accents
-\begin{table}[htp]
-\centering
-\caption{\LaTeX\ 文本中的重音和特殊字符。} \label{tbl:accents}
-\begin{tabular}{*4{cl}}
- \hline
- \TACC{\`}{o} & \TACC{\'}{o} & \TACC{\^}{o} & \TACC{\~}{o} \\
- \TACC{\=}{o} & \TACC{\.}{o} & \TACC{\"}{o} & \TTACC{\r}{o}\\
- \TTACC{\u}{o} & \TTACC{\v}{o} & \TTACC{\H}{o} & \TTACC{\c}{o} \\
- \TTACC{\d}{o} & \TTACC{\b}{o} & \WTACC{\t}{oo} \\[6pt]
- \TSYM{\oe} & \TSYM{\OE} & \TSYM{\ae} & \TSYM{\AE} \\
- \TSYM{\aa} & \TSYM{\AA} & \TSYM{\ss} \\[6pt]
- \TSYM{\o} & \TSYM{\O} & \TSYM{\l} & \TSYM{\L} \\
- \TSYM{\i} & \TSYM{\j} & !` & \verb|!`| & ?` & \verb|?`| \\
- \hline
-\end{tabular}
-\begin{quote}\footnotesize%
-前四行实际上都是带一个参数的命令。\cmd{\textasciicircum}\texttt{o} 也可以写作
-\cmd{\textasciicircum}\marg*{o},以此类推。
-\end{quote}
-\end{table}
-
-\subsection{其它符号}\label{subsec:text-misc}
-
-\symindex{dag,ddag,P,S,copyright,pounds}
-\symindex{textasteriskcentered,textperiodcentered,textbullet,textregistered,texttrademark}
-\LaTeX\ 预定义了其它一些文本模式的符号,部分符号可参考表 \ref{tbl:general-syms}。
-\begin{example}
-\P{} \S{} \dag{} \ddag{}
-\copyright{} \pounds{}
-
-\textasteriskcentered
-\textperiodcentered
-\textbullet
-
-\textregistered{} \texttrademark
-\end{example}
-
-更多的符号多由特定的宏包支持。参考文献 \cite{symbols} 搜集了所有在 \TeX\ 发行版中可用的符号,使用时要留意每个符号所依赖的宏包。
-
-\subsection{\LaTeX\ 标志}\label{subsec:latex-mark}
-
-\cmdindex{TeX,LaTeX,LaTeXe}
-我们见到的所有错落有致的 \LaTeX\ 标志都是由以下命令输入的:
-\begin{center}
-\begin{tabular}{*{2}{l}}
- \hline
- \TeX & \cmd{TeX} \\
- \LaTeX & \cmd{LaTeX} \\
- \LaTeXe & \cmd{LaTeXe} \\
- \hline
-\end{tabular}
-\end{center}
-
-\section{文字强调}\label{sec:emph}
-
-强调文字的方法,要么是添加下划线等装饰物,要么是改变文字的字体。
-
-\cmdindex{underline}
-\LaTeX\ 定义了 \cmd{underline} 命令用来为文字添加下划线:
-\begin{example}
-An \underline{underlined} text.
-\end{example}
-
-\pkgindex{ulem}
-\cmdindex[ulem]{uline}
-\cmd{underline} 命令生成下划线的样式比较机械,不同的单词可能生成高低各异的下划线,并且无法换行。
-\pkg{ulem} 宏包解决了这一问题,它提供的 \cmd{uline} 命令能够轻松生成自动换行的下划线:
-\begin{example}
-An example of \uline{some
-long and underlined words.}
-\end{example}
-
-\cmdindex{emph}
-\cmd{emph} 命令用来将文字变为斜体以示强调。如果在本身已经用 \cmd{emph} 命令强调的文字内部嵌套使用 \cmd{emph} 命令,
-内部则使用直立体文字:
-\begin{example}
-Some \emph{emphasized words,
-including \emph{double-emphasized}
-words}, are shown here.
-\end{example}
-
-如果需要用其它字体表示强调,可参考后文的 \ref{subsec:fontshape} 小节。
-
-\section{断行和断页}\label{sec:break}
-
-\LaTeX\ 将文字段落在合适的位置进行断行,尽可能做到每行的宽度一致,并且单词间距匀称。
-文字段落和公式、图表等内容从上到下顺序排布,并在合适的位置断页,分割成匀称的页面。
-在绝大多数时候,我们无需自己操心断行和断页。但偶尔会遇到需要手工调整的地方。
-
-\subsection{单词间距和断行}\label{subsec:interword}
-
-在西文排版实践中,断行的位置尽可能选取在两个单词之间,也就是用户在源文件中输入的“空格”%
-\footnote{中文排版实现汉字间断行,则需要宏包(如 \pkg{xeCJK} 等)或排版引擎(如 upLaTeX)的支持。}。
-这个“空格”通常生成一个间距,它会根据行宽和上下文自动调整,文字密一些的地方,单词间距就略窄,反之略宽。
-
-\index{~@\texttt\textasciitilde\ (\textit{不断行空格})}
-我们可以使用字符 \texttt\textasciitilde 在合适的位置插入一个不会断行的空格(高德纳称之为 tie,“带子”),
-通常用在英文人名、图表名称等场景:
-\begin{example}
-Fig.~2a \\
-Donale~E. Knuth
-\end{example}
-
-\subsection{手动断行和断页}\label{subsec:manual-break}
-
-\index{\@\crcmd\ (\textit{换行})} \cmdindex{newline}
-如果我们确实需要手动断行,可使用如下命令:
-\begin{command}
-\crcmd \oarg{length} \\
-\cmd{newline}
-\end{command}
-
-它们有两点区别:一是 \crcmd\ 可以带可选参数 \Arg{length},用于在换行处向下增加垂直间距(见 \ref{subsec:vspace} 小节),
-而 \cmd{newline} 不带可选参数;二是 \crcmd\ 也在表格、公式等地方用于分行,而 \cmd{newline} 只用于文本段落中。
-
-\cmdindex{newpage,clearpage}
-断页的命令有两个:
-\begin{command}
-\cmd{newpage} \quad or \quad \cmd{clearpage}
-\end{command}
-
-通常情况下两个命令都能起到另起一页的作用,但有一些区别:一是在双栏排版中 \cmd{newpage} 只起到另起一栏的作用;二是涉及到浮动体的排版上行为不同。
-后文的 \ref{sec:float} 节以及 \ref{subsec:columns} 小节会更详细地介绍相关内容。
-
-\cmdindex{linebreak,nolinebreak}
-有时候我们不满足于 \LaTeX\ 默认的断行和断页位置,需要进行微调,就要用以下命令告诉 \LaTeX\ 哪些地方适合断页,哪些地方不适合:
-\begin{command}
-\cmd{linebreak}\oarg{n} \quad \cmd{nolinebreak}\oarg{n} \\
-\cmd{pagebreak}\oarg{n} \quad \cmd{nopagebreak}\oarg{n}
-\end{command}
-
-以上命令都带一个可选参数,用数字 \Arg{n} 代表适合/不适合的程度,取值范围为 0-4,不带可选参数时,缺省为 4。
-比如 \cmd{linebreak}\texttt{[3]} 意味着此处在断行时优先考虑;\cmd{nopagebreak} 或 \cmd{nopagebreak}\texttt{[4]}
-意味着禁止在此处断页。
-
-以上命令适合给出优先考虑断行断页/禁止断行断页的位置,但不适合直接拿来断行或断页,使用 \cmd{newline} 或 \cmd{newpage} 等是更好的选择%
-\footnote{\cmd{newline} 和 \cmd{newpage} 会在断行/断页位置正确添加空白,但 \cmd{linebreak} 和 \cmd{pagebreak} 不能,
-它们的强行断行/断页会导致 \LaTeX\ 报 \texttt{Underfull \cmd{hbox}} 等警告。}。
-
-\subsection{断词}\label{subsec:hyphen}
-
-如果 \LaTeX\ 遇到了很长的英文单词,仅在单词之间的位置断行无法生成宽度匀称的行时,就要考虑从单词中间断开。
-对于绝大部分单词,\LaTeX\ 能够找到合适的断词位置,在断开的行尾加上连字符 \char\hyphenchar\font 。
-
-\index{-@\cmd{-} (\textit{断词})}
-如果一些单词没能自动断词,我们可以在单词内手动使用 \cmd{-} 命令指定断词的位置:
-\begin{example}
-I think this is: su\-per\-cal\-%
-i\-frag\-i\-lis\-tic\-ex\-pi\-%
-al\-i\-do\-cious.
-\end{example}
-
-\endinput
diff --git a/info/lshort/chinese/src/chap/app.A.install.tex b/info/lshort/chinese/src/chap/app.A.install.tex
new file mode 100644
index 0000000000..81f5b5b1d3
--- /dev/null
+++ b/info/lshort/chinese/src/chap/app.A.install.tex
@@ -0,0 +1,137 @@
+\chapter{安装 \protect\TeX{} 发行版}\label{app:install}
+
+\begin{intro}
+高德纳的 \TeX{} 程序开发于 20 世纪 80 年代,那时候电子计算机的运算能力有限,\TeX{} 还是大型服务器上的玩物。
+而如今个人计算机完全能够胜任排版的工作,并催生了用于个人计算机的工具集合—— \TeX{} 发行版的发展。
+
+本章会简单介绍如何安装 \TeX{} 发行版,以及保持发行版的内容紧跟最新。后者非常重要,
+因为 \LaTeX{} 宏包是不断更新换代的。
+\end{intro}
+
+\section{\protect\TeX{} 发行版简介}\label{sec:dists}
+
+一个\textbf{\TeX{} 发行版}是 \TeX{} 排版引擎、支持排版的文件(基本格式、\LaTeX{} 宏包、字体等)以及一些辅助工具的集合。
+各式各样的 \TeX{} 发行版经过十多年的发展,大浪淘沙,现今的两个主流发行版为:
+\begin{itemize}
+ \item \textbf{\hologo{TeXLive}}\par
+ \hologo{TeXLive} 由类 UNIX 系统上的 \hologo{teTeX} 发展并取而代之,最终成为跨平台的 \TeX{} 发行版。
+ \hologo{TeXLive} 自 2011 年起以年份作为发行版的版本号,保持了一年一更的频率。
+
+ \hologo{MacTeX} 是 macOS(OS X)系统下的一个定制化的 \hologo{TeXLive} 版本,与 \hologo{TeXLive} 同步更新。
+
+ \item \textbf{\hologo{MiKTeX}}\par
+ \hologo{MiKTeX} 是主要用于 Windows 平台的一个稳定发展的 \TeX{} 发行版。
+ 在中国大陆曾经发行过“\hologo{CTeX} 套装”,它是一个经过本地化配置的 \hologo{MiKTeX},不过其配置较为过时,也不再有更新支持,使用起来可能有诸多问题,现已不推荐使用。
+\end{itemize}
+
+\hologo{TeXLive} 和 \hologo{MiKTeX} 都集成了一个简单的 \LaTeX{} 源代码编辑器 TeXworks(\hologo{MacTeX} 则集成了类似的 TeXShop)。
+用户在安装完毕后,可直接使用 TeXworks 编写和编译 \LaTeX{} 源代码。
+
+\subsection{安装发行版}\label{subsec:install-dists}
+
+\subsubsection{\hologo{TeXLive}}
+
+\hologo{TeXLive} 的光盘镜像发布于 \url{http://www.tug.org/texlive/}%
+\footnote{Linux 发行版的软件源也提供 \hologo{TeXLive} 的安装,不过不够完整,更新也不是很及时。建议直接从镜像安装。}。
+下载镜像到本地,挂载到虚拟光驱,或者用压缩工具解压后,在其根目录有几个用于安装的脚本:
+\begin{itemize}
+ \item 用于 Windows 的批处理文件:
+ \begin{itemize}
+ \item \texttt{install-tl-windows.bat} 双击启动图形界面安装程序(简单安装);
+ \item \texttt{install-tl-advanced.bat} 双击启动图形界面安装程序(定制安装);
+ \item 在命令提示符中输入 \texttt{install-tl-windows.bat -no-gui} 启动文本界面安装程序。
+ \end{itemize}
+ \item 用于 Linux 的 Perl 脚本 \texttt{install-tl} :
+ \begin{itemize}
+ \item \texttt{install-tl} 启动文本界面安装程序;
+ \item \texttt{install-tl -gui=wizard} 启动图形界面安装程序(简单安装);
+ \item \texttt{install-tl -gui=peritk} 启动图形界面安装程序(定制安装)。
+ \end{itemize}
+\end{itemize}
+另外也可以下载在线安装程序 \texttt{install-tl.zip},包含以上所有安装脚本。安装过程中会从 CTAN 软件源下载所有组件。
+
+Linux 下 \hologo{TeXLive} 安装完毕后,一般还需要在 root 权限下进行以下操作,使得 \hologo{XeLaTeX} 能正确通过 \pkg{fontspec}
+等宏包使用字体\footnote{\url{http://www.tug.org/texlive/doc/texlive-zh-cn/texlive-zh-cn.pdf},%
+可用 \texttt{texdoc texlive-zh-cn} 在本地打开。}:
+\begin{enumerate}
+ \item 将 \texttt{texlive-fontconfig.conf} 文件复制到 \texttt{/etc/fonts/conf.d/09-texlive.conf}。
+ \item 运行 \texttt{fc-cache -fsv}。
+\end{enumerate}
+
+\subsubsection{\hologo{MiKTeX}}
+从 \hologo{MiKTeX} 官网 \url{http://www.miktex.org/} 下载名为 \texttt{basic-miktex-***.exe} 的 Windows 安装程序包。
+下载后直接双击打开,按照程序的提示进行安装即可。
+
+\section{安装和更新宏包}\label{sec:pkg-manager}
+
+\hologo{TeXLive} 和 \hologo{MiKTeX} 分别提供了图形界面的宏包管理器 \hologo{TeXLive} Manager 和
+\hologo{MiKTeX} Package Manager,用于安装、管理和更新宏包。一般情况下,直接在图形界面的工具下按提示操作即可
+(\hologo{MiKTeX} Package Manager 有普通权限和管理员权限的版本,建议总是使用管理员权限的版本)。
+
+两者也可以通过各自的命令行工具安装和更新宏包:
+\begin{verbatim}
+% TeX Live 命令行工具 tlmgr 的使用示例
+% 安装/卸载宏包
+tlmgr install <package-name>
+tlmgr remove <package-name>
+% 更新所有宏包(包括 tlmgr 本身)
+tlmgr update --all --self
+% 列出所有可更新的宏包
+tlmgr update --list
+% 指定更新源地址
+% <CTAN mirrors> 形如 https://mirrors.tuna.tsinghua.edu.cn/CTAN
+tlmgr repository set <CTAN mirrors>/systems/texlive/tlnet
+% 查看宏包信息,加 --list 参数可列出宏包的所有文件
+tlmgr info <package-name>
+\end{verbatim}
+
+\begin{verbatim}
+% MiKTeX 命令行工具 mpm 的使用示例
+% 建议始终加 --admin 参数使用
+% 安装/卸载宏包
+mpm --admin --install <package-name>
+mpm --admin --uninstall <package-name>
+% 更新所有宏包
+mpm --admin --update
+% 列出所有可更新的宏包
+mpm --admin --find-updates
+% 指定更新源地址
+mpm --admin --set-repository=<CTAN mirrors>/systems/win32/miktex/tm/packages
+% 查看宏包信息
+mpm --admin --print-package-info <package-name>
+\end{verbatim}
+
+\hologo{TeXLive} 默认安装所有宏包,而 \hologo{MiKTeX} 的安装程序只包含了 \LaTeX{} 的一些基本宏包。从 \hologo{TeXLive} 的光盘镜像和 \hologo{MiKTeX} 的安装包体积可见一斑。
+默认情况下,编译过程中如果遇到宏包未安装而报错的情况下,\hologo{MiKTeX} 会弹出一个对话框,让用户可以选择临时安装宏包,安装成功后继续编译。
+
+\subsection{手动安装宏包}\label{subsec:pkg-manual-install}
+
+\textbf{\textcolor{red}{如非万不得已,尽量不要手动安装宏包}}。绝大多数宏包都已打包到 \hologo{TeXLive} 和 \hologo{MiKTeX} 两大发行版的安装源,
+可用宏包管理器安装。如果用户知道某个宏包的名称,但不确定是否在发行版中已打包,可在 CTAN 中搜索。
+
+如果确实有手动安装宏包的需要,本小节的内容将有所帮助。在手动安装之前,有必要了解一下 \TeX{} 目录结构(\TeX{} Directory Structure, TDS)。
+它是 \TeX{} 发行版中宏包、字体、帮助文档等文件的组织结构。TDS 有时也称为 TEXMF 树,取 \TeX$+$\hologo{METAFONT} 之意。
+
+以 \hologo{TeXLive} 为例,假设系统的 TEXMF 树根目录为 \nolinkurl{C:\\texlive\\2020\\texmf-dist},其下有很多子目录,仅举几例:
+\begin{description}
+ \item[\texttt{tex/latex}] \LaTeX{} 宏包。
+ \item[\texttt{doc/latex}] \LaTeX{} 宏包的帮助文档。
+ \item[\texttt{source/latex}] \LaTeX{} 宏包的源代码。
+ \item[\texttt{bibtex}] \hologo{BibTeX} 工具相关文件,许多宏包配套的 \hologo{BibTeX} 格式文件位于子目录 \texttt{bst} 中。
+ \item[\texttt{fonts/tfm}] \TeX{} 使用的字体文件,TFM 格式。
+ \item[\texttt{fonts/type1}] PostScript 字体文件(Type1),PFB 格式。
+ \item[\texttt{fonts/opentype}] OpenType 格式的字体文件。
+\end{description}
+
+需要手动安装的宏包,一般已经按照上述目录结构打包完成。手动安装时,尽量不要拷贝到系统的 TEXMF 树,而是拷贝到发行版提供的用户 TEXMF 树,如
+\hologo{TeXLive} 的 \nolinkurl{C:\\texlive\\texmf-local}。安装完成后,还需\textbf{刷新 \TeX{} 发行版的文件名数据库},令新安装的宏包文件能够被系统找到。
+\hologo{TeXLive} 用户须在 Windows 命令行或者 Linux 终端执行命令:
+\begin{verbatim}
+mktexlsr
+\end{verbatim}
+\hologo{MiKTeX} 用户的命令为:
+\begin{verbatim}
+initexmf --update-fndb
+\end{verbatim}
+
+\endinput
diff --git a/info/lshort/chinese/src/app.B.error.help.tex b/info/lshort/chinese/src/chap/app.B.error.help.tex
index d96c53ed03..fb14d48bb3 100644
--- a/info/lshort/chinese/src/app.B.error.help.tex
+++ b/info/lshort/chinese/src/chap/app.B.error.help.tex
@@ -1,13 +1,13 @@
\chapter{排除错误、寻求帮助}\label{chap:error-helps}
\begin{intro}
-\LaTeX\ 入门用户总会为两大问题头疼:我写的代码到底哪里出错了?如果想要实现某种用法该怎么办?
-本章首先总结了常见的 \LaTeX\ 错误及应对的办法。
+\LaTeX{} 入门用户总会为两大问题头疼:我写的代码到底哪里出错了?如果想要实现某种用法该怎么办?
+本章首先总结了常见的 \LaTeX{} 错误及应对的办法。
\end{intro}
-\section{\LaTeX\ 错误}\label{sec:errors}
+\section{\LaTeX{} 错误}\label{sec:errors}
-当我们用排版引擎编译 \LaTeX\ 代码时,命令行的窗口(终端)会显示大量信息(\TeX works 等编辑器会有一个区域显示这些信息)。
+当我们用排版引擎编译 \LaTeX{} 代码时,命令行的窗口(终端)会显示大量信息(TeXworks 等编辑器会有一个区域显示这些信息)。
当编译过程中出现错误时,信息将会停止在出错的地方,等待我们接下来的操作。
比如说我们有一个明显出错的例子:
@@ -27,7 +27,7 @@ l.3 Test \LaTEx
这种错误信息分两部分,前一部分提示了错误的信息,后一部分指出了错误发生的行号,
以及通过错落的文字告知发生错误的命令所在位置。如上错误显示 \cmd{LaTEx} 位置发生了错误,错误信息是“未定义的控制序列”,
-意思是 \cmd{LaTEx} 是 \TeX\ 编译器无法识别的一个命令,很显然是我们把 \cmd{LaTeX} 的大小写写错了。
+意思是 \cmd{LaTEx} 是 \TeX{} 编译器无法识别的一个命令,很显然是我们把 \cmd{LaTeX} 的大小写写错了。
\subsubsection{处理方式}
@@ -35,9 +35,9 @@ l.3 Test \LaTEx
将``Test and it's friends.''排版出来。但这个例子过于简单,有些复杂的代码中,有可能会由于一个小问题导致一连串的错误。
此时可以选择按 \textbf{S/R/Q} 选择跳过接下来的所有错误,或者按 \textbf{X} 直接退出编译,将源代码中的错误修改后重新编译。
-\subsubsection{常见的 \LaTeX\ 错误信息}
+\subsubsection{常见的 \LaTeX{} 错误信息}
-笔者在此总结一些经常发生、问题比较明确的 \LaTeX\ 错误:
+笔者在此总结一些经常发生、问题比较明确的 \LaTeX{} 错误:
\long\def\LaTeXerror#1{\begingroup\color{red}\bfseries\ttfamily{}#1\endgroup}
@@ -47,7 +47,7 @@ l.3 Test \LaTEx
使用了未定义的命令。拼写错误是原因之一,如把 \cmd{LaTeX} 写作 \cmd{Latex} 这样。
也有可能是没有调用某个宏包,但用了该宏包定义的命令。
-\item \LaTeXerror{! LaTeX error: Environment \ldots\ undefined.}
+\item \LaTeXerror{! LaTeX error: Environment ... undefined.}
使用了未定义的环境。
@@ -56,9 +56,9 @@ l.3 Test \LaTEx
缺少数学环境的符号 \texttt\$。多由于将数学符号用在公式之外而导致。
\item \LaTeXerror{Runaway argument? \\
- ! Paragraph ended before \ldots\ was complete.}
+ ! Paragraph ended before ... was complete.}
-\item \LaTeXerror{! File ended while scanning definition/use of \ldots}
+\item \LaTeXerror{! File ended while scanning definition/use of ...}
这两个错误主要是由于漏写了包裹命令参数的花括号,导致识别参数时出现错误。许多编辑器的括号配对功能有助于检查和消除这类错误。
@@ -71,8 +71,8 @@ l.3 Test \LaTEx
两个错误信息都与表格有关。
\begin{itemize}
\item 前者的字面意义是“一行中使用的列分隔符 \texttt\& 太多”,有时可能确实是 \texttt\& 的个数和列格式不匹配,
- 但多数情况是漏掉了行尾的 \crcmd\ 命令。
- \item 后者常出现于漏掉了行尾的 \crcmd\ 命令而接着使用 \cmd{hline} 命令画横线的时候。
+ 但多数情况是漏掉了行尾的 \crcmd{} 命令。
+ \item 后者常出现于漏掉了行尾的 \crcmd{} 命令而接着使用 \cmd{hline} 命令画横线的时候。
\end{itemize}
\item \LaTeXerror{! LaTeX Error: Lonely \cmd{item}-{}-perhaps a missing list environment.}
@@ -82,9 +82,9 @@ l.3 Test \LaTEx
两个错误信息都与列表环境和 \cmd{item} 命令有关。前者意味着在没有使用列表环境的情况下用了 \cmd{item};
后者则相反,是在列表环境中漏了 \cmd{item}。
-\item \LaTeXerror{! I can't find file `\ldots'.}
+\item \LaTeXerror{! I can't find file `...'.}
-\item \LaTeXerror{! LaTeX Error: File `\ldots' not found.}
+\item \LaTeXerror{! LaTeX Error: File `...' not found.}
两个错误都意味着缺少文件。
\begin{itemize}
@@ -96,22 +96,22 @@ l.3 Test \LaTEx
字面上是缺少 \cmd{begin}\marg*{docu\-ment},实际上往往是由于在 \cmd{begin}\marg*{docu\-ment} 之前(导言区)输入了文字或某些命令。
-\item \LaTeXerror{! LaTeX Error: Cam be used only in preamble.}
+\item \LaTeXerror{! LaTeX Error: Can be used only in preamble.}
与上一条相反,由于将必须用于导言区的命令在 \cmd{begin}\marg*{docu\-ment} 之后使用而产生。
-\item \LaTeXerror{! LaTeX Error: \cmd{begin}\marg*{\ldots} on input line \ldots\ ended by \cmd{end}\marg*{\ldots}.}
+\item \LaTeXerror{! LaTeX Error: \cmd{begin}\marg*{...} on input line ... ended by \cmd{end}\marg*{...}.}
环境首尾不匹配。比如 \cmd{begin}\marg*{enumerate} 用了 \cmd{end}\marg*{itemize} 结尾。或者也可能是由于漏写了 \cmd{begin}
或者 \cmd{end} 命令。
-\item \LaTeXerror{! LaTeX Error: Option clash for package `\ldots'.}
+\item \LaTeXerror{! LaTeX Error: Option clash for package `...'.}
以\textbf{不同选项}重复调用宏包造成冲突。有可能是因为其它宏包内部事先调用了这个宏包,用户再次带选项调用而导致冲突。
解决问题的办法是去掉重复调用的宏包。如果宏包允许的话,尽量使用其定义的命令改变设置,减少宏包选项的使用。
-\item \LaTeXerror{! LaTeX Error: Command \ldots\ already defined, \\
- or name \cmd{end}\ldots\ illegal \ldots}
+\item \LaTeXerror{! LaTeX Error: Command ... already defined, \\
+ or name \cmd{end}... illegal ...}
使用 \cmd{newcommand} 或 \cmd{newenvironment} 定义已有的命令/环境时产生的错误。如果自己确实作了定义,可考虑用
\cmd{re\-new\-command} 或 \cmd{re\-new\-environment} 定义;如果是宏包定义的命令产生了这个错误,则属于隐性的宏包冲突。
@@ -120,11 +120,11 @@ l.3 Test \LaTEx
用户可尝试查找引起冲突的宏包的帮助文档。详尽的手册里通常会告知用户这个宏包应当在某个宏包的前面/后面调用,或者不能与某个宏包一起调用。
如果是模板调用了大量宏包导致冲突,可联系模板的作者解决。
-\item \LaTeXerror{! LaTeX Error: Unknown option `\ldots' for package `\ldots'.}
+\item \LaTeXerror{! LaTeX Error: Unknown option `...' for package `...'.}
调用宏包时指定了不能被其识别的选项。此时应该查找宏包的帮助文档来解决问题。
-\item \LaTeXerror{! Package `\ldots' error: \ldots}
+\item \LaTeXerror{! Package `...' error: ...}
宏包或文档类自定义的错误,由于不正确地使用宏包里的命令而导致。此时应该查找宏包的帮助文档来解决问题。
@@ -133,25 +133,25 @@ l.3 Test \LaTEx
\section{查找帮助文档}\label{sec:texdoc}
\index{texdoc@\texttt{texdoc} 工具}
-无论是 \TeX\ Live 还是 Mik\TeX\ ,提供了一个命令行模式的程序 \texttt{texdoc}。
+无论是 \hologo{TeXLive} 还是 \hologo{MiKTeX},提供了一个命令行模式的程序 \texttt{texdoc}。
比如对 \ref{subsec:fancyhdr} 小节的 \pkg{fancyhdr} 宏包感兴趣,这时在 Windows 命令提示符或者 Linux 终端输入以下命令,
则会弹出宏包的帮助文档 \texttt{fancyhdr.pdf}:
\begin{verbatim}
texdoc fancyhdr
\end{verbatim}
-除了宏包的帮助文档外,\TeX\ 发行版还包括了各类有用的文档,有一部分在参考文献中给出。
+除了宏包的帮助文档外,\TeX{} 发行版还包括了各类有用的文档,有一部分在参考文献中给出。
-如果不熟悉命令行工具的话,\TeX\ Live 提供了一个图形界面的程序 TeXdoc GUI。打开后,可以看到程序里的许多按钮,分别代表某一类的帮助文档。
+如果不熟悉命令行工具的话,\hologo{TeXLive} 提供了一个图形界面的程序 TeXdoc GUI。打开后,可以看到程序里的许多按钮,分别代表某一类的帮助文档。
除此之外,点击 File Search 弹出搜索框,输入想要搜索的宏包和文件并按回车键,TeXdoc GUI 会弹出它搜索到的所有结果,可点击任意一项来打开文档。
-当然对于初学者,有一个现实而棘手的问题:\textbf{某个命令到底是 \LaTeX\ 自有的,还是哪个宏包提供的?}
-很遗憾地说,除了通过慢慢积累、熟悉较多宏包之外,没有很方便的办法解决这个问题,因为 \LaTeX\ 的宏包实在太丰富了。
+当然对于初学者,有一个现实而棘手的问题:\textbf{某个命令到底是 \LaTeX{} 自有的,还是哪个宏包提供的?}
+很遗憾地说,除了通过慢慢积累、熟悉较多宏包之外,没有很方便的办法解决这个问题,因为 \LaTeX{} 的宏包实在太丰富了。
本手册末尾的索引给出了所有在本手册见到的命令和环境,其中哪些命令和环境需要调用哪个宏包才能使用,一目了然。但是这个索引远远不够。
解决这个问题有几点可行的办法:
\begin{enumerate}
- \item 查询一些综述性的资料,如总结所有 \LaTeX\ 自带命令的文档 \cite{latex2e}、\LaTeX\ 符号大全 \cite{symbols} 等;
+ \item 查询一些综述性的资料,如总结所有 \LaTeX{} 自带命令的文档 \cite{latex2e}、\LaTeX{} 符号大全 \cite{symbols} 等;
\item 在互联网上搜索自己不清楚的命令;
\item 在论坛上提问求助有经验的人。
\end{enumerate}
@@ -161,10 +161,10 @@ texdoc fancyhdr
\def\pkglabel#1{\makebox[60pt][l]{\pkg{#1}}}
\newenvironment{pkglist}%
{\list{}{%
- \labelwidth=60pt
- \itemindent=0pt
- \leftmargin=60pt
- \labelsep=0pt
+ \labelwidth=60pt
+ \itemindent=0pt
+ \leftmargin=60pt
+ \labelsep=0pt
\let\makelabel\pkglabel}}%
{\endlist}
@@ -173,10 +173,10 @@ texdoc fancyhdr
\subsection{文字、公式和符号}\label{subsec:text-math-symbols}
\begin{pkglist}
- \item[amsmath] \AmS\ 数学公式扩展。
+ \item[amsmath] \hologo{AmS} 数学公式扩展。
\item[mathtools] 数学公式扩展宏包,提供了公式编号定制和更多的符号、矩阵等。
- \item[amsfonts] \AmS\ 扩展符号的基础字体支持。
- \item[amssymb] 在 \pkg{amsfonts} 基础上将 \AmS\ 扩展符号定义成命令。
+ \item[amsfonts] \hologo{AmS} 扩展符号的基础字体支持。
+ \item[amssymb] 在 \pkg{amsfonts} 基础上将 \hologo{AmS} 扩展符号定义成命令。
\item[bm] 提供将数学符号加粗的命令 \cmd{bm}。
\item[siunitx] 以国际单位规范排版物理量的单位。
\item[mhchem] 排版化学式和方程式。
@@ -200,7 +200,7 @@ texdoc fancyhdr
\item[algorithm2e] 较为复杂的、可定制的算法排版宏包。类似宏包有 \pkg{algorithmicx} 等。
\item[ntheorem] 定制定理环境。类似宏包包括 \pkg{theorem}、\pkg{thmtools}、\pkg{amsthm} 等。
\item[mdframed] 排版可自动断页的带边框文字段落,提供边框样式的定制功能。
- \item[tcolorbox] 以 \TikZ\ 为基础提供排版样式丰富的彩色盒子的功能。
+ \item[tcolorbox] 以 \hologo{TikZ} 为基础提供排版样式丰富的彩色盒子的功能。
\end{pkglist}
\subsection{图表和浮动体}\label{subsec:pkg-tab-fig}
@@ -243,4 +243,4 @@ texdoc fancyhdr
\item[lettrine] 生成段落首字母大写的效果。
\end{pkglist}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/biblio.tex b/info/lshort/chinese/src/chap/biblio.tex
index 124b5d1902..76f6fc7a80 100644
--- a/info/lshort/chinese/src/biblio.tex
+++ b/info/lshort/chinese/src/chap/biblio.tex
@@ -1,17 +1,17 @@
\begin{thebibliography}{20}
-\item[\S] {\bfseries \LaTeX\ 经典书籍:}
+\item[\S] {\bfseries \LaTeX{} 经典书籍:}
-\bibitem{manual} Leslie Lamport.
+\bibitem{manual} Leslie Lamport.
\newblock \emph{\LaTeX: A Document Preparation System}, 2nd edition.
\newblock Addison-Wesley, Reading, Massachusetts, 1994, ISBN~0-201-52983-1.
-\bibitem{companion} Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley.
- \newblock \emph{The \LaTeX\ Companion}, 2nd edition.
+\bibitem{companion} Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley.
+ \newblock \emph{The \LaTeX{} Companion}, 2nd edition.
\newblock Addison-Wesley, Reading, Massachusetts, 2004, ISBN~0-201-36299-6.
-\bibitem{graphicscompanion} Michel Goossens, Sebastian Rahtz and Frank Mittelbach.
- \newblock \emph{The \LaTeX\ Graphics Companion}, 2nd edition.
+\bibitem{graphicscompanion} Michel Goossens, Sebastian Rahtz and Frank Mittelbach.
+ \newblock \emph{The \LaTeX{} Graphics Companion}, 2nd edition.
\newblock Addison-Wesley, Reading, Massachusetts, 1997, ISBN~0-301-50892-0.
\bibitem{guide2latex} Helmut Kopka and Patrick~W. Daly,
@@ -19,37 +19,37 @@
\newblock Addison-Wesley, Reading, Massachusetts, 2004, ISBN~0-321-17385-6.
\bibitem{leoliu} 刘海洋.
- \newblock \emph{\LaTeX\ 入门}.
+ \newblock \emph{\LaTeX{} 入门}.
\newblock 电子工业出版社, 北京, 2013, ISBN~978-7-121-20208-7.
-\item[\S] {\bfseries \TeX\ 经典书籍,介绍底层的命令和排版方式,有志深入学习 \LaTeX\ 者或参与宏包开发者必读。有一些书籍已经开放网络资源:}
-\bibitem{texbook} Donald~E. Knuth.
+\item[\S] {\bfseries \TeX{} 经典书籍,介绍底层的命令和排版方式,有志深入学习 \LaTeX{} 者或参与宏包开发者必读。有一些书籍已经开放网络资源:}
+\bibitem{texbook} Donald~E. Knuth.
\newblock \emph{The \TeX book}, Volume~A of \textit{Computers and Typesetting}, 2nd edition.
\newblock Addison-Wesley, Reading, Massachusetts, 1984, ISBN~0-201-13448-9.
\bibitem{impatient} Paul Abrahams, Kathryn A. Hargreaves, Karl Berry.
- \newblock \emph{\TeX\ for the impatient}, 2nd edition.
+ \newblock \emph{\TeX{} for the impatient}, 2nd edition.
\newblock Addison-Wesley, Reading, Massachusetts, 1984, ISBN~0-201-51375-7. \\
\CTAN|info/impatient/book.pdf| (\texttt{texdoc impatient})
-\bibitem{texbytopic} Victor Eijkhout.
- \newblock \emph{\TeX\ by Topic, A \TeX nician's Reference}.
+\bibitem{texbytopic} Victor Eijkhout.
+ \newblock \emph{\TeX{} by Topic, A \TeX nician's Reference}.
\newblock Addison-Wesley, Reading, Massachusetts, 1992, ISBN~0-201-56882-9. \\
\CTAN|info/texbytopic/TeXbyTopic.pdf| (\texttt{texdoc texbytopic})
-\item[\S] {\bfseries \TeX\ 发行版内置的资源(除宏包帮助手册之外的一些文档),
+\item[\S] {\bfseries \TeX{} 发行版内置的资源(除宏包帮助手册之外的一些文档),
可以在本地使用 \texttt{texdoc} 命令查找,也可以在 CTAN 上找到:}
\bibitem{usrguide} \LaTeX3 Project Team.
- \newblock \emph{\LaTeXe\ for authors}.\\
+ \newblock \emph{\LaTeXe{} for authors}.\\
\CTAN|macros/latex/doc/usrguide.pdf| (\texttt{texdoc usrguide})
\bibitem{clsguide} \LaTeX3 Project Team.
- \newblock \emph{\LaTeXe\ for class and package writers}. \\
+ \newblock \emph{\LaTeXe{} for class and package writers}. \\
\CTAN|macros/latex/doc/clsguide.pdf| (\texttt{texdoc clsguide})
\bibitem{fntguide} \LaTeX3 Project Team.
- \newblock \emph{\LaTeXe\ font selection}. \\
+ \newblock \emph{\LaTeXe{} font selection}. \\
\CTAN|macros/latex/doc/fntguide.pdf| (\texttt{texdoc fntguide})
\bibitem{latex2e} Karl Berry, Jim Hefferon, Vincent Bela\"{\i}che.
@@ -57,47 +57,47 @@
\CTAN|info/latex2e-help-texinfo/latex2e.pdf| (\texttt{texdoc latex2e})
\bibitem{uk-tex-faq} The UK TeX users group (TUG).
- \newblock \emph{The UK TeX FAQ}.
+ \newblock \emph{The UK TeX FAQ}.
\newblock HTML version on \url{https://texfaq.org/}. \\
\CTAN|help/uk-tex-faq/newfaq.pdf| (\texttt{texdoc faq})
\bibitem{l2tabu} J\"{u}rgen Fenn.
- \newblock \emph{An essential guide to \LaTeXe\ usage: Obsolete commands and packages} (English translation). \\
+ \newblock \emph{An essential guide to \LaTeXe{} usage: Obsolete commands and packages} (English translation). \\
\CTAN|info/l2tabu/english/l2tabuen.pdf| (\texttt{texdoc l2tabuen})
\bibitem{symbols} Scott Pakin.
- \newblock \emph{The Comprehensive \LaTeX\ Symbol List}. \\
+ \newblock \emph{The Comprehensive \LaTeX{} Symbol List}. \\
\CTAN|info/symbols/comprehensive/symbols-a4.pdf| (\texttt{texdoc symbols-a4})
\bibitem{cheatsheet} Winston Chang.
- \newblock \emph{\LaTeXe\ Cheat Sheet}. \\
+ \newblock \emph{\LaTeXe{} Cheat Sheet}. \\
\CTAN|info/latexcheat/latexcheat/latexsheet.pdf| (\texttt{texdoc latexcheat})
\item[\S] {\bfseries CTAN 上的其它网络资源:}
\bibitem{catalogue} Graham Williams.
- \newblock \emph{The \TeX\ Catalogue (Preface CTAN Edition)}.\\
+ \newblock \emph{The \TeX{} Catalogue (Preface CTAN Edition)}.\\
\CTAN|help/Catalogue/catalogue.html|
\bibitem{survey} Stephen~G. Hartke.
- \newblock \emph{A Survey of Free Math Fonts for \TeX\ and \LaTeX}.\\
+ \newblock \emph{A Survey of Free Math Fonts for \TeX{} and \LaTeX}.\\
\CTAN|info/Free_Math_Font_Survey/survey.pdf|
\item[\S] {\bfseries 其它网络渠道可获得的资源:}
\bibitem{fontcatalogue} Palle J{\o}rgensen.
- \newblock \emph{The \LaTeX\ font catalogue}, a font catalogue of \LaTeX\ font packages.\\
+ \newblock \emph{The \LaTeX{} font catalogue}, a font catalogue of \LaTeX{} font packages.\\
\url{http://www.tug.dk/FontCatalogue/}
-\bibitem{ltxprimer} Indian \TeX\ users group.
- \newblock \emph{\LaTeX\ Tutorials: A primer}. \\
+\bibitem{ltxprimer} Indian \TeX{} users group.
+ \newblock \emph{\LaTeX{} Tutorials: A primer}. \\
\url{http://www.tug.org/twg/mactex/tutorials/ltxprimer-1.0.pdf}
\bibitem{lnotes} 黄新刚.
- \newblock \emph{雷太赫排版系统简介(\LaTeX\ Notes)}, 第二版. \\
- \url{http://dralpha.altervista.org/zh/tech/lnotes2.pdf} \\
+ \newblock \emph{雷太赫排版系统简介(\LaTeX{} Notes)}, 第二版. \\
+ \url{https://github.com/huangxg/lnotes/raw/master/lnotes2.pdf} \\
(旧版可用 \texttt{texdoc latex-notes-zh-cn})
\end{thebibliography}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/chap.01.basics.tex b/info/lshort/chinese/src/chap/chap.01.basics.tex
index 5a1bf17a8b..ef0471b0f6 100644
--- a/info/lshort/chinese/src/chap.01.basics.tex
+++ b/info/lshort/chinese/src/chap/chap.01.basics.tex
@@ -1,9 +1,9 @@
-\chapter{\LaTeX\ 的基本概念}\label{chap:basics}
+\chapter{\LaTeX{} 的基本概念}\label{chap:basics}
\addtocontents{los}{\protect\addvspace{10pt}}
\begin{intro}
-欢迎使用 \LaTeX{}!本章开头用简短的篇幅介绍了 \LaTeX\ 的来源,
-然后介绍了 \LaTeX\ 源代码的写法,如何编译 \LaTeX\ 源代码生成文档,以及理解接下来的章节所必须的一些知识。
+欢迎使用 \LaTeX{}!本章开头用简短的篇幅介绍了 \LaTeX{} 的来源,
+然后介绍了 \LaTeX{} 源代码的写法,编译 \LaTeX{} 源代码生成文档的方法,以及理解接下来的章节的一些必要知识。
\end{intro}
\section{概述}\label{sec:intro}
@@ -12,63 +12,92 @@
\index{Knuth@Knuth, Donald E. (\textit{高德纳})}
\index{TeX@\TeX}
-\TeX\ 是高德纳 (Donald E.~Knuth) 开发的、以排版文字和数学公式为目的的软件\cite{texbook}。
-1977 年,正在编写著作《计算机程序设计艺术》的高德纳,意图扭转排版质量每况愈下的状况,以免影响他的出书,
-于是开始开发 \TeX{},以发掘当时开始用于出版工业的数字印刷设备的潜力。
-\TeX\ 排版引擎发布于 1982 年,在 1989 年又加以改进以更好地支持 8-bit 字符和多语言排版。
-\TeX\ 以其卓越的稳定性、跨平台、几乎没有 bug 而著称。\TeX\ 的版本号不断趋近于 $\pi$,当前为 3.141592653。
+\TeX{} 是高德纳 (Donald E.~Knuth) 为排版文字和数学公式而开发的软件\cite{texbook}。
+1977 年,正在编写《计算机程序设计艺术》的高德纳意识到每况愈下的排版质量将影响其著作的发行,
+为扭转这种状况,他着手开发 \TeX{},发掘当时刚刚用于出版工业的数字印刷设备的潜力。
+1982 年,高德纳发布 \TeX{} 排版引擎,而后在 1989 年又为更好地支持 8-bit 字符和多语言排版而予以改进。
+\TeX{} 以其卓越的稳定性、跨平台能力和几乎没有 bug 的特性而著称。
+它的版本号不断趋近于 $\pi$,当前为 3.14159265。
-\TeX\ 读作 ``Tech'' ,其中 ``ch'' 的发音类似于 ``h'' ,与汉字“泰赫”的发音相近。\TeX\ 的拼写来自希腊词语
-τεχνική (technique,技术) 的开头几个字母。在 ASCII 字符环境,\TeX\ 写作 \texttt{TeX}。
+\TeX{} 读作 ``Tech'',与汉字“泰赫”的发音相近,其中 ``ch'' 的发音类似于 ``h''。\TeX{} 的拼写来自希腊词语
+τεχνική (technique,技术) 开头的几个字母,在 ASCII 字符环境中写作 \texttt{TeX}。
\subsection{\LaTeX}\label{subsec:latex}
\index{LaTeX@\LaTeX}
\index{LaTeX2e@\LaTeXe}
-\LaTeX\ 是一种格式(format)。为免误会,初次接触这一概念的读者可以粗略地将 \LaTeX\ 理解成是对 \TeX\ 的一层封装。
-\LaTeX\ 使用 \TeX\ 程序作为自己的排版引擎。
-\LaTeX\ 最初的设计目标是分离内容与格式,以便作者能够无需关注版式设计,只需专注与内容创作就能得到高质量排版的作品。
-最初的开发者是 Leslie Lamport 博士\cite{manual},当前 \LaTeX\ 由 \LaTeX 3 工作组%
-\footnote{\url{https://www.latex-project.org}}维护。
+\LaTeX{} 是一种使用 \TeX{} 程序作为排版引擎的格式(format),可以粗略地将它理解成是对 \TeX{} 的一层封装。
+\LaTeX{} 最初的设计目标是分离内容与格式,以便作者能够专注于内容创作而非版式设计,并能以此得到高质量排版的作品。
+\LaTeX{} 起初由 Leslie Lamport 博士\cite{manual}开发,目前由 \LaTeX 3 工作组%
+\footnote{\url{https://www.latex-project.org}}进行维护。
-\LaTeX\ 读作 ``Lah-tech'' 或者 ``Lay-tech'' ,与汉字“拉泰赫”或“雷泰赫”的发音相近。\LaTeX\ 在 ASCII 字符环境写作 \texttt{LaTeX}。
-当前的 \LaTeX\ 版本为 \LaTeXe ,意思是超出了第二版,但还远未没达到第三版,在 ASCII 字符环境写作 \texttt{LaTeX2e}。
+\LaTeX{} 读作 ``Lah-tech'' 或者 ``Lay-tech'',与汉字“拉泰赫”或“雷泰赫”的发音相近,在 ASCII 字符环境写作 \texttt{LaTeX}。
+\LaTeXe{} 是 \LaTeX{} 的当前版本,意思是超出了第二版,但还远未达到第三版,在 ASCII 字符环境写作 \texttt{LaTeX2e}。
-\subsection{\LaTeX\ 的优缺点}\label{subec:advs}
+\subsection{\LaTeX{} 的优缺点}\label{subec:advs}
-经常有人喜欢对比 \LaTeX\ 和以 Microsoft Office Word 为代表的“所见即所得”%
+经常有人喜欢对比 \LaTeX{} 和以 Microsoft Office Word 为代表的“所见即所得”%
(What You See Is What You Get)字处理工具。
-这种对比是没有意义的,因为 \TeX\ 是一个排版引擎,\LaTeX\ 是其封装,而 Word 是字处理工具。
+这种对比是没有意义的,因为 \TeX{} 是一个排版引擎,\LaTeX{} 是其封装,而 Word 是字处理工具。
二者的设计目标不一致,也各自有自己的适用范围。
-不过,这里仍旧总结 \LaTeX\ 的一些优点:
+不过,这里仍旧总结 \LaTeX{} 的一些优点:
\begin{itemize}
\item 具有专业的排版输出能力,产生的文档看上去就像“印刷品”一样。
\item 具有方便而强大的数学公式排版能力,无出其右者。
\item 绝大多数时候,用户只需专注于一些组织文档结构的基础命令,无需(或很少)操心文档的版面设计。
\item 很容易生成复杂的专业排版元素,如脚注、交叉引用、参考文献、目录等。
- \item 强大的可扩展性。世界各地的人开发了数以千计的 \LaTeX\ 宏包用于补充和扩展 \LaTeX\ 的功能。
- 本手册附录中的 \ref{sec:pkg-list} 小节可见一瞥。更多的宏包参考 \textit{The \LaTeX\ companion}\cite{companion}。
- \item 能够促使用户写出结构良好的文档——而这也是 \LaTeX\ 存在的初衷。
- \item \LaTeX\ 和 \TeX\ 及相关软件是跨平台、免费、开源的。
+ \item 强大的可扩展性。世界各地的人开发了数以千计的 \LaTeX{} 宏包用于补充和扩展 \LaTeX{} 的功能。
+ 本手册附录中的 \ref{sec:pkg-list} 小节可见一瞥。更多的宏包参考 \textit{The \LaTeX{} companion}\cite{companion}。
+ \item 能够促使用户写出结构良好的文档——而这也是 \LaTeX{} 存在的初衷。
+ \item \LaTeX{} 和 \TeX{} 及相关软件是跨平台、免费、开源的。
无论用户使用的是 Windows,macOS(OS X),GNU/Linux 还是 FreeBSD 等操作系统,都能轻松获得和使用这一强大的排版工具,并且获得稳定的输出。
\end{itemize}
-\LaTeX\ 的缺点也是显而易见的:
+\LaTeX{} 的缺点也是显而易见的:
\begin{itemize}
\item 入门门槛高。本手册的副标题叫做 “\pageref{lshort-minutes}~分钟了解 \LaTeXe ”,
实际上 \pageref{lshort-minutes} 是本手册正文部分(包括附录)的页数。如果你以平均一页一分钟的速度看完了本手册,
你只是粗窥门径而已,离学会它还很远。
- \item 不容易排查错误。\LaTeX\ 作为一个依靠编写代码工作的排版工具,其使用的宏语言比 C++ 或 Python 等程序设计语言在错误排查方面困难得多。
+ \item 不容易排查错误。\LaTeX{} 作为一个依靠编写代码工作的排版工具,其使用的宏语言比 C++ 或 Python 等程序设计语言在错误排查方面困难得多。
它虽然能够提示错误,但不提供调试的机制,有时错误提示还很难理解。
- \item 不容易定制样式。\LaTeX\ 提供了一个基本上良好的样式,为了让用户不去关注样式而专注于文档结构。
- 但如果想要改进 \LaTeX\ 生成的文档样式则是十分困难。
+ \item 不容易定制样式。\LaTeX{} 提供了一个基本上良好的样式,为了让用户不去关注样式而专注于文档结构。
+ 但如果想要改进 \LaTeX{} 生成的文档样式则是十分困难。
\item 相比“所见即所得”的模式有一些不便,为了查看生成文档的效果,用户总要不停地编译。
\end{itemize}
+\subsection{命令行基础}
+
+\LaTeX{} 和 \TeX{} 及相关软件大多仅提供了命令行接口,而不像 Word、Adobe InDesign 一样有图形用户界面。
+命令行程序的结构往往比较简单,它们接受用户输入,读取相关文件,进行一些操作和运算后输出目标文件,
+有时还会将提示信息、运行结果显示在屏幕上。在 Windows 系统上,如需进入命令行,可在开始菜单中搜索
+“命令提示符”,也可在“运行”窗口中输入 \texttt{cmd} 打开;Linux 或 macOS 等 *nix %
+\footnote{类 Unix 操作系统,包含 Linux、macOS(OS X)。}
+系统中可搜索“Terminal”打开终端。部分系统也提供了一些快捷方式,具体请参考相关手册。
+
+与常规软件类似,命令行程序也都是可执行程序,在 Windows 上后缀名为 \texttt{.exe},而在类 Unix 系统上
+则需要带有 \texttt{x} 权限。在大多数命令行环境中,系统会根据\textbf{环境变量} \texttt{PATH} 中存储
+的路径来搜索可供执行的程序。因此在运行之前,需确保 \LaTeX 、\TeX{} 及相关程序所在路径已包含在
+\texttt{PATH} 中。
+
+在命令行中运行程序时,需要先输入程序名,其后可加一系列用空格分隔的参数,并按下 Enter 键执行。
+一般情况下,命令行程序执行完毕会自行退出。若遇到错误或中断,可输入 Ctrl+C 以强制结束。
+
+使用命令行程序输入、输出文件时,需确保文件路径正确。通常需要先切换到文件所在目录,再执行有关程序。
+切换路径可以执行
+\begin{command}
+\verb|cd| \Arg{path}
+\end{command}
+注意 \Arg{path} 中的多级目录在 Windows 系统上使用反斜线 \verb|\| 分隔,而在类 Unix 系统上使用正斜线
+\verb|/| 分隔。如果 \Arg{path} 中带有空格,则需加上引号 \verb|"|。此外,在 Windows 系统上如果要切换
+到其他分区,还需加上 \verb|/d| 选项,例如 \verb|cd /d "C:\Program Files (x86)\"|。
+
+许多用户会使用 TeXworks 或 TeXstudio 等编辑器来编写 \LaTeX{} 文档。这些编辑器提供的编译功能,
+实际上只是对特定命令行程序的封装,而并非魔法。
+
\section{第一次使用 \LaTeX}\label{sec:run}
-源代码~\ref{code:hello-world}~是一份最短的 \LaTeX\ 源代码示例。
+源代码~\ref{code:hello-world}~是一份最短的 \LaTeX{} 源代码示例。
\begin{sourcecode}[htp]
\begin{Verbatim}
@@ -77,45 +106,64 @@
``Hello world!'' from \LaTeX.
\end{document}
\end{Verbatim}
-\caption{\LaTeX\ 的一个最简单的源代码示例。}\label{code:hello-world}
+\caption{\LaTeX{} 的一个最简单的源代码示例。}\label{code:hello-world}
\end{sourcecode}
这里首先介绍如何编译使用这份源代码,在后续小节中再介绍源代码的细节。
-
-你可以将这份源代码保存为~\texttt{helloworld.tex},而后编译。具体来说:
+你可以将这份源代码保存为 \texttt{helloworld.tex},而后编译。具体来说:
\begin{itemize}
- \item 如果使用 \TeX works! 或 \TeX studio 等编辑器,你可以使用编辑器提供的“编译”按钮
- 或者“排版”按钮。建议将编译命令设置为 “XeLaTeX”。
- \item 如果使用命令行方式进行编译,则需打开 Windows 命令提示符或者 Linux / macOS(OS X)的终端,在源代码所在的目录下输入命令:
+ \item 如果使用 TeXworks 或 TeXstudio 等编辑器,你可以使用编辑器提供的“编译”按钮或者“排版”
+ 按钮。建议使用 \hologo{pdfLaTeX} 或 \hologo{XeLaTeX} 作为默认的编译方式(不同编译方式的差别,
+ 见~\ref{sec:concepts}~节)。
+ \item 如果使用命令行方式进行编译,则需打开 Windows 命令提示符或者 *nix 的终端,
+ 在源代码所在的目录下输入:
+\begin{verbatim}
+pdflatex helloworld
+\end{verbatim}
+或者
\begin{verbatim}
xelatex helloworld
\end{verbatim}
\end{itemize}
-如果编译成功,可以在~\texttt{helloworld.tex}~所在的目录,
-看到生成的 \texttt{helloworld.pdf} 以及一些其它文件。
+如果编译成功,可以在 \texttt{helloworld.tex} 所在目录看到生成的 \texttt{helloworld.pdf} 以及一些其它文件。
+
+源代码~\ref{code:hello-world-chinese}~是在 \LaTeX{} 排版中文的一个最简示例。
+编译的方式与上一份源代码相同,但需使用 \hologo{XeLaTeX} 编译方式%
+\footnote{注意两个问题:1. 文档保存为 UTF-8 编码;2. 某些发行版需要补充安装较多宏包(如 \hologo{MiKTeX})。}。
+中文支持的详细内容见 \ref{sec:chinese} 节。
+
+\begin{sourcecode}[htp]
+ \begin{Verbatim}
+ \documentclass{ctexart}
+ \begin{document}
+ “你好,世界!” 来自 \LaTeX{} 的问候。
+ \end{document}
+ \end{Verbatim}
+ \caption{在\LaTeX{} 中排版中文的最简源代码示例。}\label{code:hello-world-chinese}
+\end{sourcecode}
-\section{\LaTeX\ 命令和代码结构}\label{sec:src}
+\section{\LaTeX{} 命令和代码结构}\label{sec:src}
-\LaTeX\ 的源代码为文本文件。这些文本除了文字本身,还包括各种命令,
+\LaTeX{} 的源代码为文本文件。这些文本除了文字本身,还包括各种命令,
用在排版公式、划分文档结构、控制样式等等不同的地方。
-\subsection{\LaTeX\ 命令和环境}\label{subsec:cmds}
+\subsection{\LaTeX{} 命令和环境}\label{subsec:cmds}
-\index{LaTeX macro@\LaTeX\ 命令}
-\LaTeX\ 中命令\footnote{也叫作控制序列(control sequence)。}以反斜线 \texttt{\textbackslash} 开头,为以下两种形式之一:
+\index{LaTeX macro@\LaTeX{} 命令}
+\LaTeX{} 中命令\footnote{也叫作控制序列(control sequence)。}以反斜线 \texttt{\textbackslash} 开头,为以下两种形式之一:
\begin{itemize}
\item 反斜线和后面的一串字母,如 \cmd{LaTeX}。它们以任意非字母符号(空格、数字、标点等)为界限。
\item 反斜线和后面的单个非字母符号,如 \cmd{\$}。
\end{itemize}
-要注意 \LaTeX\ 命令是\textbf{对大小写敏感}的,比如输入 \cmd{LaTeX} 命令可以生成错落有致的 \LaTeX\ 字母组合,
+要注意 \LaTeX{} 命令是\textbf{对大小写敏感}的,比如输入 \cmd{LaTeX} 命令可以生成错落有致的 \LaTeX{} 字母组合,
但输入 \cmd{Latex} 或者 \cmd{LaTex} 什么都得不到,还会报错;它们与 \cmd{LaTeX} 是不同的命令。
-字母形式的 \LaTeX\ 命令忽略其后的所有连续空格。
+字母形式的 \LaTeX{} 命令忽略其后的所有连续空格。
如果要人为引入空格,需要在命令后面加一对花括号阻止其忽略空格%
\footnote{另外也可以在命令后面紧跟一个 \cmd{\textvisiblespace} 命令(反斜线加空格),代表插入一个间距。
-比如 \cmd{TeX}\cmd{\textvisiblespace}\texttt{user} 的输出效果就是 \TeX\ user。}:
+比如 \cmd{TeX}\cmd{\textvisiblespace}\texttt{user} 的输出效果就是 \TeX{} user。}:
\begin{example}
Shall we call ourselves
\TeX users
@@ -124,18 +172,18 @@ or \TeX{} users?
\end{example}
\pinyinindex{canshu}{参数}
-一些 \LaTeX\ 命令可以接收一些参数,参数的内容会影响命令的效果。
-\LaTeX\ 的参数分为可选参数和必选参数。
+一些 \LaTeX{} 命令可以接收一些参数,参数的内容会影响命令的效果。
+\LaTeX{} 的参数分为可选参数和必选参数。
可选参数以方括号 \texttt[ 和 \texttt] 包裹;必选参数一般以花括号 \texttt\{ 和 \texttt\} 包裹%
\footnote{以单个字符作为命令的参数时,可以不加括号。例如,在数学环境下,
\cmd{frac}\texttt{12} 和 \cmd{frac}\texttt{\{1\}\{2\}} 的效果是一样的。}。
还有些命令可以带一个星号 \texttt*,带星号和不带星号的命令效果有一定差异。
初次接触这些概念时,可以粗略地把星号看作一种特殊的可选参数。
-\index{LaTeX environment@\LaTeX\ 环境}
+\index{LaTeX environment@\LaTeX{} 环境}
\cmdindex{begin,end}
-\LaTeX\ 中还包括\textbf{环境},用以令一些效果在局部生效,或是生成特殊的文档元素。
-\LaTeX\ 环境的用法为一对命令 \cmd{begin} 和 \cmd{end}:
+\LaTeX{} 中还包括\textbf{环境},用以令一些效果在局部生效,或是生成特殊的文档元素。
+\LaTeX{} 环境的用法为一对命令 \cmd{begin} 和 \cmd{end}:
\begin{command}
\cmd{begin}\marg{environment name}\oarg{optional arguments}\marg{mandatory arguments} \\
\ldots \\
@@ -144,61 +192,61 @@ or \TeX{} users?
其中 \Arg{environment name} 为环境名,\cmd{begin} 和 \cmd{end} 中填写的环境名应当一致。
类似命令,\marg{mandatory arguments} 和 \oarg{optional arguments} 为环境所需的必选和可选参数。
-\LaTeX\ 环境可能需要一个或多个必选/可选参数,也可能完全不需要参数。
+\LaTeX{} 环境可能需要一个或多个必选/可选参数,也可能完全不需要参数。
部分环境允许嵌套使用。
\pinyinindex{fenzu}{分组}
-有些命令(如 \cmd{bfseries})会对其后所有内容产生作用。若要限制其作用范围,则需要使用\textbf{分组}。\LaTeX\ 使用一对花括号 \texttt\{ 和 \texttt\} 作为分组,在分组中使用的命令被限制在分组内,不会影响到分组外的内容%
+有些命令(如 \cmd{bfseries})会对其后所有内容产生作用。若要限制其作用范围,则需要使用\textbf{分组}。
+\LaTeX{} 使用一对花括号 \verb|{| 和 \verb|}| 作为分组,在分组中使用的命令被限制在分组内,不会影响到分组外的内容%
\footnote{个别命令在分组内仍然会产生全局作用,例如第 \ref{sec:counters} 节介绍的 \cmd{setcounter} 等命令。}。
-上文提到的 \LaTeX\ 环境隐含了一个分组,在环境中的命令被包裹在分组内。
+上文提到的 \LaTeX{} 环境隐含了一个分组,在环境中的命令被包裹在分组内。
\ref{subsec:fontshape} 和 \ref{subsec:fontsize} 小节中介绍的修改字体和字号的命令用法,即属此类。
-\subsection{\LaTeX\ 源代码结构}\label{subsec:struct}
+\subsection{\LaTeX{} 源代码结构}\label{subsec:struct}
\cmdindex{documentclass}
-\pinyinindex{wendanglei}{文档类}
-\LaTeX\ 源代码以一个 \cmd{document\-class} 命令作为开头,它指定了文档使用的\textbf{文档类}:
-\begin{verbatim}
-\documentclass{...}
-\end{verbatim}
-\cmd{document\-class} 命令有一个可选参数。可选参数会传递给相应的文档类,作为文档类的参数(见 \ref{subsec:classes})。
-
\envindex{document}
+\pinyinindex{wendanglei}{文档类}
+\pinyinindex{hongbao}{宏包}
+\LaTeX{} 源代码以一个 \cmd{document\-class} 命令作为开头,它指定了文档使用的\textbf{文档类}。
\env{document} 环境当中的内容是文档正文。
+
+\cmdindex{usepackage}
+\pinyinindex{daoyanqu}{导言区}
+在 \cmd{documentclass} 和 \cmd{begin}\marg*{document} 之间的位置称为\textbf{导言区}。
+在导言区中一般会使用 \cmd{use\-package} 命令调用\textbf{宏包},还会进行文档的全局设置。
\begin{verbatim}
+\documentclass{...} % ... 为某文档类
+% 导言区
\begin{document}
-\section{...}
-正文内容……
+% 正文内容
\end{document}
+% 此后内容会被忽略
\end{verbatim}
-\pinyinindex{daoyanqu}{导言区}
-在 \cmd{documentclass} 和 \cmd{begin}\marg*{document} 之间的位置称为\textbf{导言区}。
-在导言区中一般会使用 \cmd{use\-package} 调用宏包,以及会进行对文档的全局设置。
-
-\section{\LaTeX\ 宏包和文档类}\label{sec:latex-pkgs}
+\section{\LaTeX{} 宏包和文档类}\label{sec:latex-pkgs}
本节将仔细解释在 \ref{subsec:struct} 小节中出现的宏包和文档类的概念以及详细用法。
\subsection{文档类}\label{subsec:classes}
\pinyinindex{wendanglei}{文档类}
-文档类规定了 \LaTeX\ 源代码所要生成的文档的性质——普通文章、书籍、演示文稿、个人简历等等。\LaTeX\ 源代码的开头须用
-\cmd{document\-class}指定文档类:
+\textbf{文档类}规定了 \LaTeX{} 源代码所要生成的文档的性质——普通文章、书籍、演示文稿、
+个人简历等等。\LaTeX{} 源代码的开头须用\cmd{document\-class}指定文档类:
\begin{command}
\cmd{documentclass}\oarg{options}\marg{class-name}
\end{command}
\clsindex{article,book,report}
\clsindex{ctexart,ctexrep,ctexbook}
-其中 \Arg{class-name} 为文档类的名称,如 \LaTeX\ 提供的 \cls{article}, \cls{book}, \cls{report},
+其中 \Arg{class-name} 为文档类的名称,如 \LaTeX{} 提供的 \cls{article}, \cls{book}, \cls{report},
在其基础上派生的一些文档类如支持中文排版的 \cls{ctexart} / \cls{ctexbook} / \cls{ctexrep},
或者有其它功能的一些文档类,如 \cls{moderncv} / \cls{beamer} 等。
-\LaTeX\ 提供的基础文档类见表 \ref{tbl:ltx-classes},其中前三个习惯上称为“标准文档类”。
+\LaTeX{} 提供的基础文档类见表 \ref{tbl:ltx-classes},其中前三个习惯上称为“标准文档类”。
\begin{table}[htp]
\centering
-\caption{\LaTeX\ 提供的基础文档类。}\label{tbl:ltx-classes}
+\caption{\LaTeX{} 提供的基础文档类}\label{tbl:ltx-classes}
\begin{tabular}{lp{30em}}
\hline
\cls{article} & 文章格式的文档类,广泛用于科技论文、报告、说明文档等。\\
@@ -220,7 +268,7 @@ or \TeX{} users?
\documentclass[11pt,twoside,a4paper]{article}
\end{verbatim}
-\LaTeX\ 的三个标准文档类可指定的选项包括:
+\LaTeX{} 的三个标准文档类可指定的选项包括:
\begin{description}
\item[\texttt{10pt, 11pt, 12pt}] \quad 指定文档的基本字号。默认为 \texttt{10pt}。
\item[\texttt{a4paper, letterpaper, \ldots}] \quad 指定纸张大小,默认为美式信纸 \texttt{letterpaper} ($8.5\times11$英寸)。
@@ -244,7 +292,7 @@ or \TeX{} users?
\cmdindex{usepackage}
\pinyinindex{hongbao}{宏包}
\pinyinindex{xuanxiang}{选项(宏包/文档类)}
-在使用 \LaTeX\ 时,时常需要依赖一些扩展来增强或补充 \LaTeX\ 的功能,比如排版复杂的表格、插入图片、增加颜色甚至超链接等等。
+在使用 \LaTeX{} 时,时常需要依赖一些扩展来增强或补充 \LaTeX{} 的功能,比如排版复杂的表格、插入图片、增加颜色甚至超链接等等。
这些扩展称为\textbf{宏包}。调用宏包的方法非常类似调用文档类的方法:
\begin{command}
\cmd{usepackage}\oarg{options}\marg{package-name}
@@ -262,7 +310,7 @@ or \TeX{} users?
在使用宏包和文档类之前,一定要首先确认它们是否安装在你的计算机中,否则 \cmd{use\-package} 等命令会报错误。
详见附录 \ref{sec:pkg-manager}。
-宏包(包括前面所说的文档类)可能定义了许多命令和环境,或者修改了 \LaTeX\ 已有的命令和环境。
+宏包(包括前面所说的文档类)可能定义了许多命令和环境,或者修改了 \LaTeX{} 已有的命令和环境。
它们的用法说明记在相应宏包和文档类的帮助文档。在 Windows 命令提示符或者 Linux 终端下输入命令可查阅相应文档:
\begin{command}
\texttt{texdoc} \Arg{pkg-name}
@@ -270,12 +318,12 @@ or \TeX{} users?
其中 \Arg{pkg-name} 是宏包或者文档类的名称。更多获得帮助的方法见附录 \ref{sec:texdoc}。
-\section{\LaTeX\ 用到的文件一览}\label{sec:latex-files}
+\section{\LaTeX{} 用到的文件一览}\label{sec:latex-files}
-除了源代码文件 \texttt{.tex} 以外,我们在使用 \LaTeX\ 时还可能接触到各种格式的文件。
-本节简单介绍一下在使用 \LaTeX\ 时能够经常见到的文件。
+除了源代码文件 \texttt{.tex} 以外,我们在使用 \LaTeX{} 时还可能接触到各种格式的文件。
+本节简单介绍一下在使用 \LaTeX{} 时能够经常见到的文件。
-每个宏包和文档类都是带特定扩展名的文件,除此之外也有一些文件出现于 \LaTeX\ 模板中:
+每个宏包和文档类都是带特定扩展名的文件,除此之外也有一些文件出现于 \LaTeX{} 模板中:
\begin{description}
\item[\texttt{.sty}] 宏包文件。宏包的名称与文件名一致。
\item[\texttt{.cls}] 文档类文件。文档类名称与文件名一致。
@@ -283,18 +331,19 @@ or \TeX{} users?
\item[\texttt{.bst}] \hologo{BibTeX} 用到的参考文献格式模板。详见 \ref{subsec:bibtex-use} 小节。
\end{description}
-\LaTeX\ 在编译过程中除了生成 \texttt{.dvi} 或 \texttt{.pdf} 格式的文档外\footnote{\hologo{XeLaTeX} 还可能生成 \texttt{.xdv} 文件。},还可能会生成相当多的辅助文件和日志。
+\LaTeX{} 在编译过程中除了生成 \texttt{.dvi} 或 \texttt{.pdf} 格式的文档外%
+\footnote{\hologo{XeLaTeX} 还可能生成 \texttt{.xdv} 文件。},还可能会生成相当多的辅助文件和日志。
一些功能如交叉引用、参考文献、目录、索引等,需要先通过编译生成辅助文件,
-然后再次编译时读入辅助文件得到正确的结果,所以复杂的 \LaTeX\ 源代码可能要编译多次:
+然后再次编译时读入辅助文件得到正确的结果,所以复杂的 \LaTeX{} 源代码可能要编译多次:
\begin{description}
\item[\texttt{.log}] 排版引擎生成的日志文件,供排查错误使用。
- \item[\texttt{.aux}] \LaTeX\ 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等。
- \item[\texttt{.toc}] \LaTeX\ 生成的目录记录文件。
- \item[\texttt{.lof}] \LaTeX\ 生成的图片目录记录文件。
- \item[\texttt{.lot}] \LaTeX\ 生成的表格目录记录文件。
+ \item[\texttt{.aux}] \LaTeX{} 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等。
+ \item[\texttt{.toc}] \LaTeX{} 生成的目录记录文件。
+ \item[\texttt{.lof}] \LaTeX{} 生成的图片目录记录文件。
+ \item[\texttt{.lot}] \LaTeX{} 生成的表格目录记录文件。
\item[\texttt{.bbl}] \hologo{BibTeX} 生成的参考文献记录文件。
\item[\texttt{.blg}] \hologo{BibTeX} 生成的日志文件。
- \item[\texttt{.idx}] \LaTeX\ 生成的供 makeindex 处理的索引记录文件。
+ \item[\texttt{.idx}] \LaTeX{} 生成的供 makeindex 处理的索引记录文件。
\item[\texttt{.ind}] makeindex 处理 \texttt{.idx} 生成的用于排版的格式化索引文件。
\item[\texttt{.ilg}] makeindex 生成的日志文件。
\item[\texttt{.out}] \pkg{hyperref} 宏包生成的 PDF 书签记录文件。
@@ -307,27 +356,30 @@ or \TeX{} users?
可参考源代码 \ref{code:book-struct} 的写法。
\cmdindex{include}
-\LaTeX\ 提供了命令 \cmd{include} 用来在源代码里插入文件:
+\LaTeX{} 提供了命令 \cmd{include} 用来在源代码里插入文件:
\begin{command}
\cmd{include}\marg{filename}
\end{command}
\Arg{filename} 为文件名,如果和要编译的主文件不在一个目录中,则要加上相对或绝对路径,例如:
\begin{verbatim}
\include{chapters/a.tex} % 相对路径
-\include{/home/Bob/file.tex} % Linux/macOS 绝对路径
+\include{/home/Bob/file.tex} % *nix (包含 Linux、macOS(OS X))绝对路径
\include{D:/file.tex} % Windows 绝对路径,用正斜线
\end{verbatim}
\Arg{filename} 可以不带扩展名,此时默认扩展名为 \texttt{.tex}。
\cmdindex{input}
-值得注意的是 \cmd{include} 在读入 \Arg{filename} 之前会另起一页。有的时候我们并不需要这样,而是用 \cmd{input} 命令,它纯粹是把文件里的内容插入:
+值得注意的是 \cmd{include} 在读入 \Arg{filename} 之前会另起一页。有的时候我们并不需要这样,而是用
+\cmd{input} 命令,它纯粹是把文件里的内容插入:
\begin{command}
\cmd{input}\marg{filename}
\end{command}
+特别要注意的是,使用 \cmd{include} 和 \cmd{input} 命令载入的文件名\textbf{一定不要加空格},否则通常会出错。
+
\cmdindex{includeonly}
-另外 \LaTeX\ 提供了一个 \cmd{includeonly} 命令来组织文件,用于\textbf{导言区},指定只载入某些文件:
+另外 \LaTeX{} 提供了一个 \cmd{includeonly} 命令来组织文件,用于\textbf{导言区},指定只载入某些文件:
\begin{command}
\cmd{includeonly}\marg*{\Arg{filename1},\Arg{filename2},\ldots}
\end{command}
@@ -336,7 +388,7 @@ or \TeX{} users?
\pkgindex{syntonly}
最后介绍一个实用的工具宏包 \pkg{syntonly}。加载这个宏包后,在导言区使用 \cmd{syntaxonly} 命令,
-可令 \LaTeX\ 编译后不生成 DVI 或者 PDF 文档,只排查错误,编译速度会快不少:
+可令 \LaTeX{} 编译后不生成 DVI 或者 PDF 文档,只排查错误,编译速度会快不少:
\begin{verbatim}
\usepackage{syntonly}
\syntaxonly
@@ -344,7 +396,7 @@ or \TeX{} users?
如果想生成文档,则用 \texttt\% 注释掉 \cmd{syntaxonly} 命令即可。
-\section{\LaTeX\ 和 \TeX\ 相关的术语和概念}\label{sec:concepts}
+\section{\LaTeX{} 和 \TeX{} 相关的术语和概念}\label{sec:concepts}
\pinyinindex{paibanyinqing}{排版引擎}
\index{pdfTeX@\hologo{pdfTeX}}
@@ -352,22 +404,22 @@ or \TeX{} users?
在本章的最后有必要澄清几个概念:
\begin{description}
\item[引擎] 全称为排版引擎,是编译源代码并生成文档的程序,如 \hologo{pdfTeX}、\hologo{XeTeX} 等。有时也称为编译器。
- \item[格式] 是定义了一组命令的代码集。\LaTeX\ 就是最广泛应用的一个格式,高德纳本人还编写了一个简单的 plain \TeX\ 格式,
+ \item[格式] 是定义了一组命令的代码集。\LaTeX{} 就是最广泛应用的一个格式,高德纳本人还编写了一个简单的 \hologo{plainTeX} 格式,
没有定义诸如 \cmd{document\-class} 和 \cmd{section} 等等命令。
\item[编译命令] 是实际调用的、结合了引擎和格式的命令。如 \texttt{xelatex} 命令是结合 \hologo{XeTeX}
- 引擎和 \LaTeX\ 格式的一个编译命令。
+ 引擎和 \LaTeX{} 格式的一个编译命令。
\end{description}
常见的引擎、格式和编译命令的关系总结于表 \ref{tbl:engine-format-command}。
\begin{table}[htp]
\centering
- \caption{\TeX\ 引擎、格式及其对应的编译命令。}
+ \caption{\TeX{} 引擎、格式及其对应的编译命令。}
\label{tbl:engine-format-command}
\begin{tabular}{cccc}
\hline
- & \textbf{文档格式} & \textbf{plain \TeX\ 格式} & \textbf{\LaTeX\ 格式} \\
+ & \textbf{文档格式} & \textbf{\hologo{plainTeX} 格式} & \textbf{\LaTeX{} 格式} \\
\hline
- \TeX\ 引擎 & DVI & \texttt{tex} & N/A \\
+ \TeX{} 引擎 & DVI & \texttt{tex} & N/A \\
\hologo{pdfTeX} 引擎 & DVI & \texttt{etex} & \texttt{latex} \\
& PDF & \texttt{pdftex} & \texttt{pdflatex} \\
\hologo{XeTeX} 引擎 & PDF & \texttt{xetex} & \texttt{xelatex} \\
@@ -376,8 +428,8 @@ or \TeX{} users?
\end{tabular}
\end{table}
-\texttt{latex} 编译命令和 \LaTeX\ 格式往往容易混淆,在讨论关于 \LaTeX\ 的时候需要明确。
-为避免混淆,本手册中的 \LaTeX\ 一律指的是\textbf{格式},\textbf{编译命令}则用等宽字体 \texttt{latex} 表示。
+\texttt{latex} 编译命令和 \LaTeX{} 格式往往容易混淆,在讨论关于 \LaTeX{} 的时候需要明确。
+为避免混淆,本手册中的 \LaTeX{} 一律指的是\textbf{格式},\textbf{编译命令}则用等宽字体 \texttt{latex} 表示。
在此介绍一下几个编译命令的基本特点:
\begin{description}
@@ -388,12 +440,12 @@ or \TeX{} users?
\item[\texttt{pdflatex}]
底层调用的引擎也是 \hologo{pdfTeX},可以直接生成 \texttt{pdf} 格式的文档。
\item[\texttt{xelatex}]
- 底层调用的引擎是 \hologo{XeTeX},支持 UTF-8 编码和 TrueType / OpenType 字体。
+ 底层调用的引擎是 \hologo{XeTeX},支持 UTF-8 编码和对 TrueType / OpenType 字体的调用。
当前较为方便的中文排版解决方案基于 \texttt{xelatex},详见 \ref{sec:chinese} 节。
\item[\texttt{lualatex}]
底层调用的引擎是 \hologo{LuaTeX},这个引擎在 \hologo{pdfTeX} 引擎基础上发展而来,
- 除了支持 UTF-8 编码和 TrueType / OpenType 字体外,还支持通过 Lua 语言扩展 \TeX\ 的功能。
- \texttt{lualatex} 编译命令下的中文排版支持需要借助 \pkg{luatex-ja} 宏包。
+ 除了支持 UTF-8 编码和对 TrueType / OpenType 字体的调用外,还支持通过 Lua 语言扩展 \TeX{} 的功能。
+ \texttt{lualatex} 编译命令下的中文排版支持需要借助 \pkg{luatexja} 宏包。
\end{description}
\endinput
diff --git a/info/lshort/chinese/src/chap/chap.02.text.tex b/info/lshort/chinese/src/chap/chap.02.text.tex
new file mode 100644
index 0000000000..f0233642b6
--- /dev/null
+++ b/info/lshort/chinese/src/chap/chap.02.text.tex
@@ -0,0 +1,357 @@
+\chapter{用 \LaTeX{} 排版文字}\label{chap:text}
+\addtocontents{los}{\protect\addvspace{10pt}}
+
+\begin{intro}
+文字是排版的基础。本章主要介绍如何在 \LaTeX{} 中输入各种文字符号,包括标点符号、连字符、重音等,以及控制文字断行和断页的方式。
+
+本章简要介绍了在 \LaTeX{} 中排版中文的方法。随着 \LaTeX{} 和底层 \TeX{} 引擎的发展,旧方式(CCT、\pkg{CJK} 等)日渐退出舞台,
+\texttt{xelatex} 和 \texttt{lualatex} 编译命令配合 \cls{ctex} 宏包 / 文档类的方式成为当前的主流中文排版支持方式。
+\end{intro}
+
+\section{语言文字和编码}\label{sec:encoding}
+
+\pinyinindex{bianma}{编码}
+\LaTeX{} 源代码为文本文件,而文本文件的一个至关重要的性质是它的编码。在此用尽量短的篇幅介绍一下。
+
+\subsection{ASCII 编码}\label{subsec:ascii}
+
+\index{bianma@编码!ASCII}
+计算机的基本存储单位是字节(byte),每个字节为八位(8-bit),范围用十六进制写作 \texttt{0x00}--\texttt{0xFF}。
+ASCII (美国通用信息交换码)使用 \texttt{0x00}--\texttt{0x7F} 对文字编码,也就是 7-bit,覆盖了基本的拉丁字母、数字和符号,以及一些不可打印的控制字符(如换行符、制表符等)。
+
+由于 \TeX{} 最初设计用于排版以英文为主的西文文档,ASCII 编码完全够用,因而早期版本的 \TeX{} 只支持 7-bit 和 ASCII 编码。
+排版扩展拉丁字符必须使用后文所述的各种符号和重音命令,如 M\"obius 必须通过输入 \verb|M\"obius| 得到。
+
+\subsection{扩展编码}\label{subsec:ext-encoding}
+
+在 ASCII 之后,各种语言文字都发展了自己的编码,比如西欧语言的 Latin-1、日本的 Shift-JIS、中国大陆的 GB 2312--80 和 GBK 等。
+它们中的绝大多数都向下兼容 ASCII,因此无论是在哪种编码下,\TeX{} 以及 \LaTeX{} 的命令和符号都能用。
+
+\index{bianma@编码!Latin-1}
+\pkgindex{inputenc}
+\TeX{} 从 3.0 版开始支持 8-bit,能够处理编码在 \texttt{0x80}--\texttt{0xFF} 范围内的字符。
+西欧(拉丁字母)、俄语系(西里尔字母)等语言文字的编码方案大都利用了 \texttt{0x80}--\texttt{0xFF} 这个范围,
+处理起来较为方便。使用 \texttt{latex} 或 \texttt{pdflatex} 编译命令时,对源代码的编码处理由 \pkg{inputenc} 宏包支持。
+比如将源代码保存为 Latin-1 编码,并在导言区调用 \pkg{inputenc} 宏包并指定 \texttt{latin1} 选项后,M\"obius 这样的词语就可以直接通过(用适当输入法)输入 \texttt{M\"obius} 得到了。
+
+\index{bianma@编码!GBK}
+用于汉字的 GBK 等编码是多字节编码,ASCII 字符为一个字节,汉字等非 ASCII 字符为两个字节,使用
+\texttt{latex} 或 \texttt{pdflatex} 编译命令时需要借助一些宏包进行较为复杂的判断和处理。早期排版中文须使用 \pkg{CJK} 宏包,它是一个用于处理中、日、韩等东亚语言文字编码和字体配置的宏包。但 \pkg{CJK} 宏包的使用非常不方便,目前已不再推荐直接使用。
+
+\subsection{UTF-8 编码}\label{subsec:utf8}
+
+\index{bianma@编码!UTF-8}
+Unicode 是一个多国字符的集合,覆盖了几乎全球范围内的语言文字。UTF-8 是 Unicode 的一套编码方案,
+一个字符由一个到四个字节编码,其中单字节字符的编码与 ASCII 编码兼容。
+
+现行版本的 \LaTeX{} 使用 UTF-8 作为默认编码%
+\footnote{在 2018 年 4 月之前,需要调用 \pkg{inputenc} 宏包并指定 \texttt{utf8} 选项才能使用 UTF-8 编码。}。
+将使用拉丁字母的文档保存为 UTF-8 编码后,可以用 \texttt{pdflatex} 直接编译,比如:
+
+\begin{verbatim}
+\documentclass{article}
+\begin{document}
+Français Português Español Føroyskt
+\end{document}
+\end{verbatim}
+
+但是非拉丁字母仍然无法直接在 \LaTeX{} 中使用,如西里尔字母(俄文)、希腊字母、阿拉伯字母以及东亚文字等。
+
+\pkgindex{fontspec,babel,polyglossia}
+较为现代的 \TeX{} 引擎,如 \hologo{XeTeX} 和 \hologo{LuaTeX},它们均原生支持 UTF-8 编码。
+使用 \texttt{xelatex} 和 \texttt{lualatex} 排版时,将源代码保存为 UTF-8 编码,并借助
+\pkg{fontspec} 宏包(见 \ref{subsec:fontspec} 小节)调用适当的字体,原则上就可以在源代码中输入任意语言的文字。
+注意此时\textbf{不再适用 \pkg{inputenc} 宏包}。但一些复杂语言(如印地语、阿拉伯语等)的排版需要考虑到断词规则、文字方向、标点禁则等诸多细节,因此需要更多的宏包支持,如 \pkg{babel}、 \pkg{polyglossia} 等,此处不再涉及。
+
+\section{排版中文}\label{sec:chinese}
+
+\pkgindex{xeCJK,luatexja}
+用 \LaTeX{} 排版中文需要解决两方面问题,一方面是对中文字体的支持,另一方面是对中文排版中的一些细节的处理,包括在汉字之间控制断行、标点符号的禁则(如句号、逗号不允许出现在行首)、中英文之间插入间距等。\pkg{CJK} 宏包对中文字体的支持比较麻烦,已经不再推荐直接使用。
+\hologo{XeTeX} 和 \hologo{LuaTeX} 除了直接支持 UTF-8 编码外,还支持直接调用 TrueType / OpenType 格式的字体。\pkg{xeCJK} 及 \pkg{luatexja} 宏包则在此基础上封装了对汉字排版细节的处理功能。
+
+\pkgindex{ctex}
+\clsindex{ctexart,ctexbook,ctexrep}
+\pkg{ctex} 宏包和文档类\footnote{\hologo{CTeX} 还经常用来指一个过时的 \TeX{} 发行版,注意与这里的 \pkg{ctex} 宏包和文档类区分。}%
+进一步封装了 \pkg{CJK}、\pkg{xeCJK}、\pkg{luatexja} 等宏包,使得用户在排版中文时不用再考虑排版引擎等细节。\pkg{ctex} 宏包本身用于配合各种文档类排版中文,而 \pkg{ctex} 文档类对 \LaTeX{} 的标准文档类进行了封装,对一些排版根据中文排版习惯做了调整,包括 \cls{ctexart} / \cls{ctexrep} / \cls{ctexbook}。
+\pkg{ctex} 宏包和文档类能够识别操作系统和 \TeX{} 发行版中安装的中文字体,因此基本无需额外配置即可排版中文文档。下面举一个使用 \pkg{ctex} 文档类排版中文的最简例子:
+
+\begin{verbatim}
+\documentclass{ctexart}
+\begin{document}
+在\LaTeX{}中排版中文。
+汉字和English单词混排,通常不需要在中英文之间添加额外的空格。
+当然,为了代码的可读性,加上汉字和 English 之间的空格也无妨。
+汉字换行时不会引入多余的空格。
+\end{document}
+\end{verbatim}
+
+\index{xelatex@\texttt{xelatex} 命令}
+\index{lualatex@\texttt{lualatex} 命令}
+注意源代码须保存为 UTF-8 编码,并使用 \texttt{xelatex} 或 \texttt{lualatex} 命令编译。
+虽然 \pkg{ctex} 宏包和文档类保留了对 GBK 编码以及 \texttt{latex} 和 \texttt{pdflatex} 编译命令的兼容,
+笔者建议在使用 \pkg{ctex} 宏包和文档类时总是将源代码保存为 UTF-8 编码,用 \texttt{xelatex} 或 \texttt{lualatex} 命令编译。
+
+\section{\LaTeX{} 中的字符}\label{sec:text-symbols}
+
+\subsection{空格和分段}\label{subsec:spaces}
+
+\LaTeX{} 源代码中,空格键和 Tab 键输入的空白字符视为“空格”。
+连续的若干个空白字符视为一个空格。一行开头的空格忽略不计。
+
+\cmdindex{par}
+行末的换行符视为一个空格;但连续两个换行符,也就是空行,会将文字分段。多个空行被视为一个空行。
+也可以在行末使用 \cmd{par} 命令分段。
+\begin{example}
+Several spaces equal one.
+ Front spaces are ignored.
+
+An empty line starts a new
+paragraph.\par
+A \verb|\par| command does
+the same.
+\end{example}
+
+\subsection{注释}\label{subsec:comments}
+
+\index{^^e@\texttt\% (\textit{注释})}
+\LaTeX{} 用 \texttt\% 字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,
+行末的换行符也不引入空格。
+\begin{example}
+This is an % short comment
+% ---
+% Long and organized
+% comments
+% ---
+example: Comments do not bre%
+ak a word.
+\end{example}
+
+\subsection{特殊字符}\label{subsec:special-chars}
+
+以下字符在 \LaTeX{} 里有特殊用途,如 \texttt\% 表示注释, \texttt\$、\texttt\textasciicircum 、\texttt\_ 等用于排版数学公式,
+\texttt\& 用于排版表格,等等。直接输入这些字符得不到对应的符号,还往往会出错:
+\begin{verbatim}
+# $ % & { } _ ^ ~ \
+\end{verbatim}
+
+如果想要输入以上符号,需要使用以下带反斜线的形式输入,类似编程语言里的“转义”符号:
+\begin{example}
+\# \$ \% \& \{ \} \_
+\^{} \~{} \textbackslash
+\end{example}
+
+这些“转义”符号事实上是一些 \LaTeX{} 命令。其中 \cmd{\textasciicircum} 和 \cmd{\textasciitilde}
+两个命令需要一个参数,加一对花括号的写法相当于提供了空的参数,否则它们可能会将后面的字符作为参数,形成重音效果(详见 \ref{subsec:accents} 节)。
+\crcmd{} 被直接定义成了手动换行的命令,输入反斜线就需要用 \cmd{text\-back\-slash}。
+
+\subsection{连字}\label{subsec:ligatures}
+
+西文排版中经常会出现连字(ligatures),常见的有 ff / fi / fl / ffi / ffl{}。
+\begin{example}
+It's difficult to find \ldots\\
+It's dif{}f{}icult to f{}ind \ldots
+\end{example}
+
+\subsection{标点符号}\label{subsec:punct}
+
+中文的标点符号(绝大多数为非 ASCII 字符)使用中文输入法输入即可,一般不需要过多留意。
+而输入西文标点符号时,有不少地方需要留意。
+
+\subsubsection{引号}
+
+\index{biaodianfuhao@标点符号!`@\protect\verb+`+ (\textit{前引号} `)}
+\index{biaodianfuhao@标点符号!``@\protect\verb+'+ (\textit{后引号} ')}
+\index{biaodianfuhao@标点符号!'@\protect\verb+``+ (\textit{前双引号} ``)}
+\index{biaodianfuhao@标点符号!''@\protect\verb+''+ (\textit{后双引号} '')}
+\LaTeX{} 中单引号 ` ' 分别用 \verb|`| 和 \verb|'| 输入;双引号 `` 和 '' 分别用 \verb|``| 和 \verb|''| 输入
+(\verb|"| 可以输入后双引号,但没有直接输入前双引号的字符,习惯上用 \verb|''| 输入以和 \verb|``| 更好地对应)。
+\begin{example}
+``Please press the `x' key.''
+\end{example}
+
+\subsubsection{连字号和破折号}
+
+\index{biaodianfuhao@标点符号!-@\protect\verb+-+ (\textit{连字号} -)}
+\index{biaodianfuhao@标点符号!--@\protect\verb+--+ (\textit{短破折号} --)}
+\index{biaodianfuhao@标点符号!---@\protect\verb+---+ (\textit{长破折号} ---)}
+\LaTeX{} 中有三种长度的“横线”可用:连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash)。
+它们分别有不同的用途:连字号 - 用来组成复合词;短破折号 -- 用来连接数字表示范围;长破折号 --- 用来连接单词,语义上类似中文的破折号。
+\begin{example}
+daughter-in-law, X-rated\\
+pages 13--67\\
+yes---or no?
+\end{example}
+
+\subsubsection{省略号}
+
+\index{biaodianfuhao@标点符号!ldots@\cmd{ldots} (\textit{省略号} \ldots)}
+\index{biaodianfuhao@标点符号!dots@\cmd{dots} (\textit{省略号} \dots)|see{\cmd{ldots}}}
+\LaTeX{} 提供了 \cmd{ldots} 命令表示省略号,相对于直接输入三个点的方式更为合理。
+\cmd{dots} 与 \cmd{ldots} 命令等效。
+\begin{example}
+one, two, three, \ldots one hundred.
+\end{example}
+
+\subsubsection{波浪号}
+
+我们在 \ref{subsec:special-chars} 小节中了解了 \cmd{\textasciitilde} 命令,它可以用来输入波浪号,
+但位置靠顶端(\cmd{\textasciitilde} 命令主要用作重音,参考下一小节)。西文中较少将波浪号作为标点符号使用,在中文环境中一般直接使用全角波浪号(~)。
+
+\subsection{拉丁文扩展与重音}\label{subsec:accents}
+
+\pinyinindex{zhongyin}{重音}
+\LaTeX{} 支持用命令输入西欧语言中使用的各种拉丁文扩展字符,主要为带重音的字母:
+\begin{example}
+H\^otel, na\"\i ve, \'el\`eve,\\
+sm\o rrebr\o d, !`Se\ norita!,\\
+Sch\"onbrunner Schlo\ss{}
+Stra\ss e
+\end{example}
+
+更多可用的符号和重音见表 \ref{tbl:accents}。注意与 \ref{subsec:math-accents} 小节的数学重音区分开来。
+
+\def\TSYM #1{#1 & \texttt{\string#1}}
+\def\TACC #1#2{#1{#2} & \texttt{\string#1#2}} % accents using a control character
+\def\TTACC #1#2{#1{#2} & \texttt{\string#1 #2}} % accents using a control word
+\def\WTACC #1#2{#1{#2} & \texttt{\string#1\{#2\}}} % multi-letter accents
+\begin{table}[htp]
+\centering
+\caption{\LaTeX{} 文本中的重音和特殊字符} \label{tbl:accents}
+\begin{tabular}{*4{cl}}
+ \hline
+ \TACC{\`}{o} & \TACC{\'}{o} & \TACC{\^}{o} & \TACC{\~}{o} \\
+ \TACC{\=}{o} & \TACC{\.}{o} & \TACC{\"}{o} & \TTACC{\r}{o}\\
+ \TTACC{\u}{o} & \TTACC{\v}{o} & \TTACC{\H}{o} & \TTACC{\c}{o} \\
+ \TTACC{\d}{o} & \TTACC{\b}{o} & \WTACC{\t}{oo} \\[6pt]
+ \TSYM{\oe} & \TSYM{\OE} & \TSYM{\ae} & \TSYM{\AE} \\
+ \TSYM{\aa} & \TSYM{\AA} & \TSYM{\ss} \\[6pt]
+ \TSYM{\o} & \TSYM{\O} & \TSYM{\l} & \TSYM{\L} \\
+ \TSYM{\i} & \TSYM{\j} & !` & \verb|!`| & ?` & \verb|?`| \\
+ \hline
+\end{tabular}
+\begin{quote}\footnotesize%
+前四行实际上都是带一个参数的命令。\cmd{\textasciicircum}\texttt{o} 也可以写作
+\cmd{\textasciicircum}\marg*{o},以此类推。
+\end{quote}
+\end{table}
+
+\subsection{其它符号}\label{subsec:text-misc}
+
+\symindex{dag,ddag,P,S,copyright,pounds}
+\symindex{textasteriskcentered,textperiodcentered,textbullet,textregistered,texttrademark}
+\LaTeX{} 预定义了其它一些文本模式的符号,部分符号可参考表 \ref{tbl:general-syms}。
+\begin{example}
+\P{} \S{} \dag{} \ddag{}
+\copyright{} \pounds{}
+
+\textasteriskcentered
+\textperiodcentered
+\textbullet
+
+\textregistered{} \texttrademark
+\end{example}
+
+更多的符号多由特定的宏包支持。参考文献 \cite{symbols} 搜集了所有在 \TeX{} 发行版中可用的符号,使用时要留意每个符号所依赖的宏包。
+
+\subsection{\LaTeX{} 标志}\label{subsec:latex-mark}
+
+\cmdindex{TeX,LaTeX,LaTeXe}
+我们见到的所有错落有致的 \LaTeX{} 标志都是由以下命令输入的:
+\begin{center}
+\begin{tabular}{*{2}{l}}
+ \hline
+ \TeX & \cmd{TeX} \\
+ \LaTeX & \cmd{LaTeX} \\
+ \LaTeXe & \cmd{LaTeXe} \\
+ \hline
+\end{tabular}
+\end{center}
+
+\section{断行和断页}\label{sec:break}
+
+\LaTeX{} 将文字段落在合适的位置进行断行,尽可能做到每行的疏密程度匀称,单词间距不会过宽或过窄。
+文字段落和公式、图表等内容从上到下顺序排布,并在合适的位置断页,分割成匀称的页面。
+在绝大多数时候,我们无需自己操心断行和断页。但偶尔会遇到需要手工调整的地方。
+
+\subsection{单词间距}\label{subsec:interword}
+
+在西文排版实践中,断行的位置优先选取在两个单词之间,也就是在源代码中输入的“空格”%
+\footnote{中文排版实现汉字间断行,则需要宏包(如 \pkg{xeCJK} 等)或特殊的排版引擎(如 up\LaTeX{})的支持。}。
+“空格”本身通常生成一个间距,它会根据行宽和上下文自动调整,文字密一些的地方,单词间距就略窄,反之略宽。
+
+\index{~@\texttt\textasciitilde\ (\textit{不断行空格})}
+文字在单词间的“空格”处断行时,“空格”生成的间距随之舍去。
+我们可以使用字符 \texttt\textasciitilde 输入一个不会断行的空格(高德纳称之为 tie,“带子”),
+通常用在英文人名、图表名称等上下文环境:
+\begin{example}
+Fig.~2a \\
+Donald~E. Knuth
+\end{example}
+
+\subsection{手动断行和断页}\label{subsec:manual-break}
+
+\index{\@\crcmd{} (\textit{换行})} \cmdindex{newline}
+如果我们确实需要手动断行,可使用如下命令:
+\begin{command}
+\crcmd \oarg{length} \qquad
+\crcmd*\oarg{length} \\
+\cmd{newline}
+\end{command}
+
+它们有两点区别:一是 \crcmd{} 可以带可选参数 \Arg{length},用于在断行处向下增加垂直间距(见 \ref{subsec:vspace} 小节),
+而 \cmd{newline} 不带可选参数;二是 \crcmd{} 也在表格、公式等地方用于换行,而 \cmd{newline} 只用于文本段落中。
+带星号的 \crcmd{} 表示禁止在断行处分页。
+
+\begin{example}
+另外需要注意的是,使用 \verb|\\|
+断行命令 \\ 不会令内容另起一段,
+而是在段落中直接开始新的一行。
+\end{example}
+
+\cmdindex{newpage,clearpage}
+断页的命令有两个:
+\begin{command}
+\cmd{newpage} \\
+\cmd{clearpage}
+\end{command}
+
+通常情况下两个命令都起到另起一页的作用,区别在于:第一,在双栏排版模式中 \cmd{newpage} 起到另起一栏的作用,\cmd{clearpage} 则能够另起一页;第二,在涉及到浮动体的排版上行为不同。
+后文的 \ref{sec:float} 节以及 \ref{subsec:columns} 小节会更详细地介绍相关内容。
+
+\cmdindex{linebreak,nolinebreak}
+有时候我们不满足于 \LaTeX{} 默认的断行和断页位置,需要进行微调,可以用以下命令告诉 \LaTeX{} 哪些地方适合断行或断页,哪些地方不适合:
+\begin{command}
+\cmd{linebreak}\oarg{n} \quad \cmd{nolinebreak}\oarg{n} \\
+\cmd{pagebreak}\oarg{n} \quad \cmd{nopagebreak}\oarg{n}
+\end{command}
+
+以上命令都带一个可选参数,用数字 \Arg{n} 代表适合/不适合的程度,取值范围为 0--4,不带可选参数时,缺省为 4。
+比如 \cmd{linebreak} 或者 \cmd{linebreak}\texttt{[4]} 意味着此处需要强行断行;\cmd{nopagebreak} 或 \cmd{nopagebreak}\texttt{[4]}
+意味着禁止在此处断页。
+
+以上命令适合给出优先考虑断行断页/禁止断行断页的位置,但不适合直接拿来断行或断页,使用 \cmd{newline} 或 \cmd{newpage} 等命令是更好的选择。
+因为 \cmd{newline} 和 \cmd{newpage} 会在断行/断页位置填充适当的间距,但 \cmd{linebreak} 和 \cmd{pagebreak} 不能,使用
+这些命令强行断行/断页可能会制造出糟糕的排版效果,并导致 \LaTeX{} 报 \texttt{Underfull \cmd{hbox}} 等警告。
+
+\begin{example}
+使用 \verb|\newline| 断行的效果
+\newline
+与使用 \verb|\linebreak| 断行的效果
+\linebreak
+进行对比。
+\end{example}
+
+\subsection{断词}\label{subsec:hyphen}
+
+如果 \LaTeX{} 遇到了很长的英文单词,仅在单词之间的“空格”处断行无法生成疏密程度匀称的段落时,就会考虑从单词中间断开。
+对于绝大多数单词,\LaTeX{} 能够找到合适的断词位置,在断开的行尾加上连字符 \char\hyphenchar\font 。
+
+\index{-@\cmd{-} (\textit{断词})}
+如果一些单词没能自动断词,我们可以在单词内手动使用 \cmd{-} 命令指定断词的位置:
+\begin{example}
+I think this is: su\-per\-cal\-%
+i\-frag\-i\-lis\-tic\-ex\-pi\-%
+al\-i\-do\-cious.
+\end{example}
+
+\endinput
diff --git a/info/lshort/chinese/src/chap.03.elements.tex b/info/lshort/chinese/src/chap/chap.03.elements.tex
index 95f4d86556..4d289d43e3 100644
--- a/info/lshort/chinese/src/chap.03.elements.tex
+++ b/info/lshort/chinese/src/chap/chap.03.elements.tex
@@ -25,7 +25,7 @@
\cmd{subparagraph}\marg{title}
\end{command}
其中 \cmd{chapter} \textbf{只在 \cls{book} 和 \cls{report} 文档类有定义}。这些命令生成章节标题,并能够自动编号。
-除此之外 \LaTeX\ 还提供了 \cmd{part} 命令,用来将整个文档分割为大的分块,但不影响 \cmd{chapter} 或 \cmd{section} 等的编号。
+除此之外 \LaTeX{} 还提供了 \cmd{part} 命令,用来将整个文档分割为大的分块,但不影响 \cmd{chapter} 或 \cmd{section} 等的编号。
上述命令除了生成带编号的标题之外,还向目录中添加条目,并影响页眉页脚的内容(详见 \ref{sec:pagestyle} 节)。每个命令有两种变体:
\begin{itemize}
@@ -43,13 +43,13 @@
对此的详细解释和调整方法见 \ref{subsec:latex-counts} 小节。
\pkgindex{titlesec}
-\LaTeX\ 及标准文档类并未提供为 \cmd{section} 等章节命令定制格式的功能,这一功能由 \pkg{titlesec} 宏包提供。详情请参考宏包的帮助文档。
+\LaTeX{} 及标准文档类并未提供为 \cmd{section} 等章节命令定制格式的功能,这一功能由 \pkg{titlesec} 宏包提供。详情请参考宏包的帮助文档。
\subsection{目录}\label{sec:toc}
\cmdindex{tableofcontents}
\pkgindex{tocbibind,tocloft,titletoc}
-在 \LaTeX\ 中生成目录非常容易,只需在合适的地方使用命令:
+在 \LaTeX{} 中生成目录非常容易,只需在合适的地方使用命令:
\begin{command}
\cmd{tableofcontents}
\end{command}
@@ -89,33 +89,38 @@
\cmdindex{include}
以上三个命令还可和 \cmd{appendix} 命令结合,生成有前言、正文、附录、后记四部分的文档。
-源代码 \ref{code:book-struct} 结合 \ref{sec:latex-multi-files} 节的 \cmd{include} 命令和其它一些命令示意了一份完整的文档结构。
+源代码 \ref{code:book-struct} 结合 \ref{sec:latex-multi-files} 节的 \cmd{include} 命令
+和其它一些命令示意了一份完整的文档结构。
\begin{sourcecode}[htp]
\begin{Verbatim}
-\documentclass[...]{book}
+\documentclass{book}
+
% 导言区,加载宏包和各项设置,包括参考文献、索引等
-\usepackage{...}
-\usepackage{makeidx}
-\makeindex
-\bibliographystyle{...}
+\usepackage{makeidx} % 调用 makeidx 宏包,用来处理索引
+\makeindex % 开启索引的收集
+\bibliographystyle{plain} % 指定参考文献样式为 plain
\begin{document}
-\frontmatter
-\maketitle % 标题页
-\include{preface} % 前言章节 preface.tex
+
+\frontmatter % 前言部分
+\maketitle % 标题页
+\include{preface} % 前言章节 preface.tex
\tableofcontents
-\mainmatter
-\include{chapter1} % 第一章 chapter1.tex
-\include{chapter2} % 第二章 chapter2.tex
+
+\mainmatter % 正文部分
+\include{chapter1} % 第一章 chapter1.tex
+\include{chapter2} % 第二章 chapter2.tex
...
-\appendix
-\include{appendixA} % 附录 A appendixA.tex
+\appendix % 附录
+\include{appendixA} % 附录 A appendixA.tex
...
-\backmatter
-\include{prologue} % 后记 prologue.tex
-\bibliography{...} % 利用 BibTeX 工具生成参考文献
-\printindex % 利用 makeindex 工具生成索引
+
+\backmatter % 后记部分
+\include{prologue} % 后记 prologue.tex
+\bibliography{books} % 利用 BibTeX 工具从数据库文件 books.bib 生成参考文献
+\printindex % 利用 makeindex 工具生成索引
+
\end{document}
\end{Verbatim}
\caption{\cls{book} 文档类的文档结构示例。}\label{code:book-struct}
@@ -125,14 +130,14 @@
\cmdindex{title,author,date,today}
\cmdindex{thanks,and}
-\LaTeX\ 支持生成简单的标题页。首先需要给定标题和作者等信息:
+\LaTeX{} 支持生成简单的标题页。首先需要给定标题和作者等信息:
\begin{command}
\cmd{title}\marg{title} \quad
\cmd{author}\marg{author} \quad
\cmd{date}\marg{date}
\end{command}
其中前两个命令是必须的(不用 \cmd{title} 会报错;不用 \cmd{author} 会警告),\cmd{date} 命令可选。
-\LaTeX\ 还提供了一个 \cmd{today} 命令自动生成当前日期,\cmd{date} 默认使用 \cmd{today}。
+\LaTeX{} 还提供了一个 \cmd{today} 命令自动生成当前日期,\cmd{date} 默认使用 \cmd{today}。
在 \cmd{title}、\cmd{author} 等命令内可以使用 \cmd{thanks} 命令生成标题页的脚注,用 \cmd{and} 隔开多个人名。
\cmdindex{maketitle}
@@ -148,7 +153,7 @@
\author{ Mary\thanks{E-mail:*****@***.com}
\and Ted\thanks{Corresponding author}
\and Louis}
-\date{\today}
+\date{\today}
\end{Verbatim}
\bigskip
\makeatletter
@@ -171,14 +176,14 @@
Louis
\end{tabular}\par}%
\vskip 1em%
- {\large September 10, 2015}%
+ {\large \csname CTEX@todayold\endcsname}%
\end{minipage}
\makeatother
-\caption{\LaTeX\ 默认的标题页示例和效果。}\label{code:titlepage}
+\caption{\LaTeX{} 默认的标题页示例和效果。}\label{code:titlepage}
\end{sourcecode}
\envindex{titlepage}
-\LaTeX\ 标准类还提供了一个简单的 \env{titlepage} 环境,生成不带页眉页脚的一页。用户可以在这个环境中使用各种排版元素自由发挥,
+\LaTeX{} 标准类还提供了一个简单的 \env{titlepage} 环境,生成不带页眉页脚的一页。用户可以在这个环境中使用各种排版元素自由发挥,
生成自定义的标题页以替代 \cmd{maketitle} 命令。甚至可以利用 \env{titlepage} 环境重新定义 \cmd{maketitle}:
\begin{verbatim}
\renewcommand{\maketitle}{\begin{titlepage}
@@ -188,14 +193,14 @@
事实上,为标准文档类指定了 \texttt{titlepage} 选项以后,使用 \cmd{maketitle} 命令生成的标题页就是一个 \env{titlepage} 环境。
-以上是 \LaTeX\ 标准文档类的标题页相关命令用法。在各种文档模板中经常有自定义的标题页,
+以上是 \LaTeX{} 标准文档类的标题页相关命令用法。在各种文档模板中经常有自定义的标题页,
有可能需要除了 \cmd{title} 和 \cmd{author} 以外的命令给定信息,用法也可能与标准文档类的不一致
(甚至有些模板可能没有定义 \env{titlepage} 等环境)。使用文档模板前\textbf{一定要仔细阅读文档模板的帮助文档}。
\section{交叉引用}\label{sec:crossref}
\cmdindex{label}
-交叉引用是 \LaTeX\ 强大的自动排版功能的体现之一。在能够被交叉引用的地方,如章节、公式、图表、定理等位置使用 \cmd{label} 命令:
+交叉引用是 \LaTeX{} 强大的自动排版功能的体现之一。在能够被交叉引用的地方,如章节、公式、图表、定理等位置使用 \cmd{label} 命令:
\begin{command}
\cmd{label}\marg{label-name}
\end{command}
@@ -285,7 +290,7 @@ page~\pageref{sec:this}.''
\envindex{enumerate,itemize}
\cmdindex{item}
-\LaTeX\ 提供了基本的有序和无序列表环境 \env{enumerate} 和 \env{itemize},两者的用法很类似,都用 \cmd{item} 标明每个列表项。
+\LaTeX{} 提供了基本的有序和无序列表环境 \env{enumerate} 和 \env{itemize},两者的用法很类似,都用 \cmd{item} 标明每个列表项。
\env{enumerate} 环境会自动对列表项编号。
\begin{command}
\cmd{begin}\marg*{enumerate} \\
@@ -297,7 +302,7 @@ page~\pageref{sec:this}.''
列表可以嵌套使用,最多嵌套四层。
\begin{example}
\begin{enumerate}
- \item An item.
+ \item An item.
\begin{enumerate}
\item A nested item.\label{itref}
\item[*] A starred item.
@@ -358,7 +363,7 @@ page~\pageref{sec:this}.''
\end{enumerate}
\end{example}
-默认的列表间距比较宽,\LaTeX\ 本身也未提供方便的定制功能,可用 \pkg{enumitem} 宏包定制各种列表间距。
+默认的列表间距比较宽,\LaTeX{} 本身也未提供方便的定制功能,可用 \pkg{enumitem} 宏包定制各种列表间距。
\pkg{enumitem} 宏包还提供了对列表标签、引用等的定制。有兴趣的读者可参考其帮助文档。
\subsection{对齐环境}\label{subsec:flush}
@@ -412,7 +417,7 @@ Right-aligned text paragraph.
\subsection{引用环境}\label{subsec:quote}
\envindex{quote,quotation}
-\LaTeX\ 提供了两种引用的环境:\env{quote} 用于引用较短的文字,首行不缩进;\env{quotation} 用于引用若干段文字,首行缩进。
+\LaTeX{} 提供了两种引用的环境:\env{quote} 用于引用较短的文字,首行不缩进;\env{quotation} 用于引用若干段文字,首行缩进。
引用环境较一般文字有额外的左右缩进。
\begin{example}
Francis Bacon says:
@@ -438,8 +443,8 @@ Knowledge is power.
\begin{example}
Rabindranath Tagore's short poem:
\begin{verse}
-Beauty is truth's smile
-when she beholds her own face in
+Beauty is truth's smile
+when she beholds her own face in
a perfect mirror.
\end{verse}
\end{example}
@@ -455,7 +460,7 @@ a perfect mirror.
\envindex{verbatim}
有时我们需要将一段代码原样转义输出,这就要用到代码环境 \env{verbatim},它以等宽字体排版代码,回车和空格也分别起到换行和空位的作用;
-带星号的版本更进一步将空格显示成 \textvisiblespace 。
+带星号的版本更进一步将空格显示成“\textvisiblespace”。
\begin{example}
\begin{verbatim}
#include <iostream>
@@ -498,24 +503,25 @@ for (int i=0; i<4; ++i)
\section{表格}\label{sec:tabular}
\pinyinindex{biaoge}{表格|(}
-\LaTeX\ 里排版表格不如 Word 等所见即所得的工具简便和自由,不过对于不太复杂的表格来讲,完全能够胜任。
+\LaTeX{} 里排版表格不如 Word 等所见即所得的工具简便和自由,不过对于不太复杂的表格来讲,完全能够胜任。
\envindex{tabular}
\cmdindex{hline}
\index{&@\texttt\& (\textit{单元格/对齐})}
-\index{\@\crcmd\ (\textit{换行})}
+\index{\@\crcmd{} (\textit{换行})}
排版表格最基本的 \env{tabular} 环境用法为:
\begin{command}
-\cmd{begin}\marg*{tabular}\marg{column-spec}\\
+\cmd{begin}\marg*{tabular}\oarg{align}\marg{column-spec}\\
\Arg{item1} \texttt\& \Arg{item2} \texttt\& \ldots\ \crcmd \\
\cmd{hline} \\
\Arg{item1} \texttt\& \Arg{item2} \texttt\& \ldots\ \crcmd \\
\cmd{end}\marg*{tabular}
\end{command}
其中 \Arg{column-spec} 是列格式标记,在接下来的内容将仔细介绍;\texttt\& 用来分隔单元格;
-\crcmd\ 用来换行;\cmd{hline} 用来在行与行之间绘制横线。
+\crcmd{} 用来换行;\cmd{hline} 用来在行与行之间绘制横线。
-直接使用 \env{tabular} 环境的话,会\textbf{和周围的文字混排}。\env{tabular} 环境可带一个可选参数控制垂直对齐(默认是垂直居中):
+直接使用 \env{tabular} 环境的话,会\textbf{和周围的文字混排}。此时可用一个可选参数 \Arg{align} 控制垂直对齐:
+\verb|t| 和 \verb|b| 分别表示按按表格顶部、底部对齐,其他参数或省略不写(默认)表示居中对齐。
\begin{example}
\begin{tabular}{|c|}
center-\\ aligned \\
@@ -528,14 +534,14 @@ for (int i=0; i<4; ++i)
\end{tabular} tabulars.
\end{example}
-但是通常情况下我们不这么用,\env{tabular} 环境一般会放置在 \env{table} 浮动体环境中,并用 \cmd{caption} 命令加标题。
+但是通常情况下 \env{tabular} 环境很少与文字直接混排,而是会放在 \env{table} 浮动体环境中,并用 \cmd{caption} 命令加标题。
\subsection{列格式}\label{subsec:tabular-cols}
\env{tabular} 环境使用 \Arg{column-spec} 参数指定表格的列数以及每列的格式。基本的列格式见表 \ref{tbl:table-column-spec}。
\begin{table}[htp]
\centering
-\caption{\LaTeX\ 表格列格式。}\label{tbl:table-column-spec}
+\caption{\LaTeX{} 表格列格式}\label{tbl:table-column-spec}
\begin{tabular}{*{2}{l}}
\hline
\textbf{列格式} & \textbf{说明} \\
@@ -551,7 +557,7 @@ for (int i=0; i<4; ++i)
\begin{example}
\begin{tabular}{lcr|p{6em}}
\hline
- left & center & right
+ left & center & right
& par box with fixed width\\
L & C & R & P \\
\hline
@@ -571,7 +577,7 @@ for (int i=0; i<4; ++i)
\end{tabular}
\end{example}
-另外 \LaTeX\ 还提供了简便的将格式参数重复的写法 \texttt*\marg{n}\marg{column-spec},比如以下两种写法是等效的:
+另外 \LaTeX{} 还提供了简便的将格式参数重复的写法 \texttt*\marg{n}\marg{column-spec},比如以下两种写法是等效的:
\begin{verbatim}
\begin{tabular}{|c|c|c|c|c|p{4em}|p{4em}|}
\begin{tabular}{|*{5}{c|}*{2}{p{4em}|}}
@@ -591,14 +597,14 @@ for (int i=0; i<4; ++i)
辅助格式甚至支持插入 \cmd{centering} 等命令改变 \texttt{p} 列格式的对齐方式,
一般还要加额外的命令 \cmd{array\-back\-slash} 以免出错%
-\footnote{\cmd{centering} 等对齐命令会破坏表格环境里 \crcmd\ 换行命令的定义,
+\footnote{\cmd{centering} 等对齐命令会破坏表格环境里 \crcmd{} 换行命令的定义,
\cmd{array\-back\-slash} 用来恢复之。如果不加 \cmd{array\-back\-slash} 命令,
-也可以用 \cmd{tabular\-newline} 命令代替原来的 \crcmd\ 实现表格换行。}:
+也可以用 \cmd{tabular\-newline} 命令代替原来的 \crcmd{} 实现表格换行。}:
\begin{example}
\begin{tabular}
{>{\centering\arraybackslash}p{9em}}
\hline
- Some center-aligned long text. \\
+ Some center-aligned long text. \\
\hline
\end{tabular}
\end{example}
@@ -612,17 +618,17 @@ for (int i=0; i<4; ++i)
\hline
pos & \txt & \txt & \txt \\
\hline
-\end{tabular}
+\end{tabular}
\end{example}
\subsection{列宽}\label{subsec:colwidth}
-在控制列宽方面,\LaTeX\ 表格有着明显的不足:\texttt{l/c/r} 格式的列宽是由文字内容的自然宽度决定的,
+在控制列宽方面,\LaTeX{} 表格有着明显的不足:\texttt{l/c/r} 格式的列宽是由文字内容的自然宽度决定的,
而 \texttt{p} 格式给定了列宽却不好控制对齐(可用 \pkg{array} 宏包的辅助格式),
更何况列与列之间通常还有间距,所以直接生成给定总宽度的表格并不容易。
\envindex{tabular*}
-\LaTeX\ 本身提供了 \env{tabular*} 环境用来排版定宽表格,但是不太方便使用,
+\LaTeX{} 本身提供了 \env{tabular*} 环境用来排版定宽表格,但是不太方便使用,
比如要用到 \texttt{@} 格式插入额外命令,令单元格之间的间距为 \cmd{fill},但即使这样仍然有瑕疵:
\begin{example}
\begin{tabular*}{14em}%
@@ -680,7 +686,7 @@ for (int i=0; i<4; ++i)
\subsection{合并单元格}\label{subsec:tabular-multicol}
-\LaTeX\ 是一行一行排版表格的,横向合并单元格较为容易,由 \cmd{multi\-column} 命令实现:
+\LaTeX{} 是一行一行排版表格的,横向合并单元格较为容易,由 \cmd{multi\-column} 命令实现:
\begin{command}
\cmd{multicolumn}\marg{n}\marg{column-spec}\marg{item}
\end{command}
@@ -710,7 +716,7 @@ for (int i=0; i<4; ++i)
\begin{example}
\begin{tabular}{ccc}
\hline
- \multirow{2}{*}{Item} &
+ \multirow{2}{*}{Item} &
\multicolumn{2}{c}{Value} \\
\cline{2-3}
& First & Second \\ \hline
@@ -720,7 +726,7 @@ for (int i=0; i<4; ++i)
\subsection{嵌套表格}\label{subsec:tabular-embed}
-相对于合并单元格,拆分单元格对于 \LaTeX\ 来说并非易事。在单元格中嵌套一个小表格可以起到“拆分单元格”的效果。
+相对于合并单元格,拆分单元格对于 \LaTeX{} 来说并非易事。在单元格中嵌套一个小表格可以起到“拆分单元格”的效果。
在以下的例子中,注意要用 \cmd{multi\-column} 命令配合 \texttt{@\{\}} 格式把单元格的额外边距去掉,使得嵌套的表格线能和外层的表格线正确相连:
\begin{example}
@@ -729,7 +735,7 @@ for (int i=0; i<4; ++i)
a & b & c \\ \hline
a & \multicolumn{1}{@{}c@{}|}
{\begin{tabular}{c|c}
- e & f \\ \hline
+ e & f \\ \hline
e & f \\
\end{tabular}}
& c \\ \hline
@@ -753,7 +759,7 @@ for (int i=0; i<4; ++i)
\subsection{行距控制}\label{subsec:tabular-colht}
\cmdindex{arraystretch}
-\LaTeX\ 生成的表格看起来通常比较紧凑。修改参数 \cmd{array\-stretch} 可以得到行距更加宽松的表格
+\LaTeX{} 生成的表格看起来通常比较紧凑。修改参数 \cmd{array\-stretch} 可以得到行距更加宽松的表格
(相关命令参考 \ref{subsec:newcmd} 小节):
\begin{example}
\renewcommand\arraystretch{1.8}
@@ -764,8 +770,8 @@ for (int i=0; i<4; ++i)
\end{tabular}
\end{example}
-\index{\@\crcmd\ (\textit{换行})}
-另一种增加间距的办法是给换行命令 \crcmd\ 添加可选参数,在这一行下面加额外的间距,适合用于在行间不加横线的表格:
+\index{\@\crcmd{} (\textit{换行})}
+另一种增加间距的办法是给换行命令 \crcmd{} 添加可选参数,在这一行下面加额外的间距,适合用于在行间不加横线的表格:
\begin{example}
\begin{tabular}{c}
\hline
@@ -776,7 +782,7 @@ for (int i=0; i<4; ++i)
\end{example}
但是这种换行方式的存在导致了一个缺陷——\textbf{表格的首个单元格不能直接使用中括号 \texttt{[]}},
-否则 \crcmd\ 往往会将下一行的中括号当作自己的可选参数,因而出错。如果要使用中括号,应当放在花括号 \marg*{} 里面。
+否则 \crcmd{} 往往会将下一行的中括号当作自己的可选参数,因而出错。如果要使用中括号,应当放在花括号 \marg*{} 里面。
或者也可以选择将换行命令写成 \crcmd\texttt{[0pt]}。
\pinyinindex{biaoge}{表格|)}
@@ -785,22 +791,22 @@ for (int i=0; i<4; ++i)
\pkgindex{graphicx}
-\LaTeX\ 本身不支持插图功能,需要由 \pkg{graphicx} 宏包辅助支持。
+\LaTeX{} 本身不支持插图功能,需要由 \pkg{graphicx} 宏包辅助支持。
使用 \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{ps2pdf} 工具生成 PDF。\texttt{dvips} 和 \texttt{dvipdfmx} 在图形、颜色、超链接等功能的实现上有差别,而 \LaTeX{} 无法识别
用户是用 \texttt{dvips} 还是 \texttt{dvipdfmx},所以要指定选项(缺省为 \texttt{dvips})。
\ref{sec:hyperlinks} 节中的 \pkg{hyperref} 宏包同理。};而使用 \texttt{pdflatex} 或 \texttt{xelatex} 命令编译时不需要。
-读者可能听说过“\LaTeX\ 只能插入 \texttt{.eps} 格式的图片,需要把 \texttt{.jpg} 转成 \texttt{.eps} 格式”的观点。
-\LaTeX\ 发展到今天,这个观点早已过时。事实上不同的编译命令支持的图片格式范围各异,见表 \ref{tbl:figure-format}。
+读者可能听说过“\LaTeX{} 只能插入 \texttt{.eps} 格式的图片,需要把 \texttt{.jpg} 转成 \texttt{.eps} 格式”的观点。
+\LaTeX{} 发展到今天,这个观点早已过时。事实上不同的编译命令支持的图片格式范围各异,见表 \ref{tbl:figure-format}。
这个表格也能解答诸如“为什么 \texttt{.eps} 格式图片在 \texttt{pdflatex} 编译命令下出错”之类的问题。本表格也再一次说明,使用
\texttt{xelatex} 命令是笔者最推荐的方式。
\begin{table}[htp]
\centering
-\caption{各种编译方式支持的主流图片格式。}\label{tbl:figure-format}
+\caption{各种编译方式支持的主流图片格式}\label{tbl:figure-format}
\begin{tabular}{*{3}{l}}
\hline
\textbf{格式} & \textbf{矢量图} & \textbf{位图} \\
@@ -813,8 +819,8 @@ for (int i=0; i<4; ++i)
\hline
\end{tabular}
\begin{quote}\footnotesize
-注:在较新的 \TeX\ 发行版中,\texttt{latex + dvipdfmx} 和 \texttt{pdf\-latex} 命令可不依赖宏包,支持原来需要宏包扩展的图片格式
-(但 \texttt{pdf\-latex} 命令仍不支持除 \texttt{.jpg} 和 \texttt{.png} 以外的位图)。
+注:在较新的 \TeX{} 发行版中,\texttt{latex + dvipdfmx} 和 \texttt{pdf\-latex} 命令可不依赖宏包,支持原来需要宏包扩展的图片格式
+(但 \texttt{pdf\-latex} 命令仍不支持 \texttt{.bmp} 格式的位图)。
\end{quote}
\end{table}
@@ -825,8 +831,8 @@ for (int i=0; i<4; ++i)
\end{command}
\cmdindex[graphicx]{graphicspath}
-其中 \Arg{filename} 为图片文件名,与使用 \cmd{include} 命令类似,文件名有时需要使用相对路径或绝对路径(见 \ref{sec:latex-multi-files} 节)。
-图片文件的扩展名可写可不写。
+其中 \Arg{filename} 为图片文件名,与 \cmd{include} 命令的用法类似,文件名可能需要用相对路径或绝对路径表示(见 \ref{sec:latex-multi-files} 节)。
+图片文件的扩展名一般可不写。另外一定要注意,\textbf{文件名里既不要有空格(类似 \cmd{include}),也不要有多余的英文点号},否则宏包在解析文件名的过程中会出错。
另外 \pkg{graphicx} 宏包还提供了 \cmd{graphics\-path} 命令,用于声明一个或多个图片文件存放的目录,
使用这些目录里的图片时可不用写路径:
@@ -838,7 +844,7 @@ for (int i=0; i<4; ++i)
\cmd{includegraphics} 命令的可选参数 \Arg{options} 支持 \Arg{key}=\Arg{value} 形式赋值,常用的参数如下:
\begin{table}[htp]
\centering
-\caption{\cmd{includegraphics} 命令的可选参数。}\label{tbl:graphics-options}
+\caption{\cmd{includegraphics} 命令的可选参数}\label{tbl:graphics-options}
\begin{tabular}{lp{18em}}
\hline
\textbf{参数} & \textbf{含义} \\
@@ -853,10 +859,10 @@ for (int i=0; i<4; ++i)
\section{盒子}\label{sec:box}
-盒子是 \LaTeX\ 排版的基础单元,虽然解释上去有些抽象:每一行是一个盒子,
+盒子是 \LaTeX{} 排版的基础单元,虽然解释上去有些抽象:每一行是一个盒子,
里面的文字从左到右依次排列;每一页也是一个盒子,各行文字从上到下依次排布……颇有一些活字印刷术的味道。
-不管如何,\LaTeX\ 提供了一些命令让我们生成一些有特定用途的盒子。
+不管如何,\LaTeX{} 提供了一些命令让我们生成一些有特定用途的盒子。
\subsection{水平盒子}\label{subsec:mbox}
@@ -908,7 +914,7 @@ for (int i=0; i<4; ++i)
\cmdindex{parbox}
\envindex{minipage}
-如果需要排版一个文字可以换行的盒子,\LaTeX\ 提供了两种方式:
+如果需要排版一个文字可以换行的盒子,\LaTeX{} 提供了两种方式:
\begin{command}
\cmd{parbox}\oarg{align}\oarg{height}\oarg{inner-align}\marg{width}\marg*{\ldots} \\[0.5ex]
\cmd{begin}\marg*{minipage}\oarg{align}\oarg{height}\oarg{inner-align}\marg{width} \\
@@ -949,7 +955,7 @@ for (int i=0; i<4; ++i)
\cmd{rule}\oarg{raise}\marg{width}\marg{height}
\end{command}
\begin{example}
-Black \rule{12pt}{4pt} box.
+Black \rule{12pt}{4pt} box.
Upper \rule[4pt]{6pt}{8pt} and
lower \rule[-4pt]{6pt}{8pt} box.
@@ -960,10 +966,10 @@ A \rule[-.4pt]{3em}{.4pt} line.
\section{浮动体}\label{sec:float}
内容丰富的文章或者书籍往往包含许多图片和表格等内容。这些内容的尺寸往往太大,导致分页困难。
-\LaTeX\ 为此引入了浮动体的机制,令大块的内容可以脱离上下文,放置在合适的位置。
+\LaTeX{} 为此引入了浮动体的机制,令大块的内容可以脱离上下文,放置在合适的位置。
\envindex{figure,table}
-\LaTeX\ 预定义了两类浮动体环境 \env{figure} 和 \env{table}。习惯上 \env{figure} 里放图片,\env{table} 里放表格,
+\LaTeX{} 预定义了两类浮动体环境 \env{figure} 和 \env{table}。习惯上 \env{figure} 里放图片,\env{table} 里放表格,
但并没有严格限制,可以在任何一个浮动体里放置文字、公式、表格、图片等等任意内容。
以 \env{table} 环境的用法举例,\env{figure} 同理:
@@ -977,7 +983,7 @@ A \rule[-.4pt]{3em}{.4pt} line.
\env{table} 和 \env{figure} 浮动体的默认设置为 \texttt{tbp}。
\begin{table}[htp]
\centering
-\caption{浮动体的位置参数。}\label{tbl:float-placement}
+\caption{浮动体的位置参数}\label{tbl:float-placement}
\begin{tabular}{*{2}{l}}
\hline
\textbf{参数} & \textbf{含义} \\
@@ -990,7 +996,7 @@ A \rule[-.4pt]{3em}{.4pt} line.
\hline
\end{tabular}
\begin{quote}\footnotesize
-注 1:排版位置的选取与参数里符号的顺序无关,\LaTeX\ 总是以 \texttt{h-t-b-p} 的优先级顺序决定浮动体位置。
+注 1:排版位置的选取与参数里符号的顺序无关,\LaTeX{} 总是以 \texttt{h-t-b-p} 的优先级顺序决定浮动体位置。
也就是说 \texttt{[!htp]} 和 \texttt{[ph!t]} 没有区别。\par
注 2:限制包括浮动体个数(除单独成页外,默认每页不超过 3 个浮动体,其中顶部不超过 2 个,底部不超过 1 个)
以及浮动体空间占页面的百分比(默认顶部不超过 70\%,底部不超过 30\%)。
@@ -998,7 +1004,7 @@ A \rule[-.4pt]{3em}{.4pt} line.
\end{table}
\envindex{table*,figure*}
-双栏排版环境下,\LaTeX\ 提供了 \env{table*} 和 \env{figure*} 环境用来排版跨栏的浮动体。
+双栏排版环境下,\LaTeX{} 提供了 \env{table*} 和 \env{figure*} 环境用来排版跨栏的浮动体。
它们的用法与 \env{table} 和 \env{figure} 一样,不同之处为双栏的 \Arg{placement} 参数只能用 \texttt{tp} 两个位置。
\cmdindex{clearpage}
@@ -1040,14 +1046,14 @@ A \rule[-.4pt]{3em}{.4pt} line.
\subsection{并排和子图表}\label{subsec:subfig}
我们时常有在一个浮动体里面放置多张图的用法。最简单的用法就是直接并排放置,
-也可以通过分段或者换行命令 \crcmd\ 排版多行多列的图片。以下为示意代码,效果大致如图 \ref{fig:parallel-fig} 所示。
+也可以通过分段或者换行命令 \crcmd{} 排版多行多列的图片。以下为示意代码,效果大致如图 \ref{fig:parallel-fig} 所示。
\begin{verbatim}
\begin{figure}[htbp]
\centering
\includegraphics[width=...]{...}
\qquad
\includegraphics[width=...]{...} \\[..pt]
- \includegraphics[width=...]{...}
+ \includegraphics[width=...]{...}
\caption{...}
\end{figure}
\end{verbatim}
@@ -1077,7 +1083,7 @@ A \rule[-.4pt]{3em}{.4pt} line.
\centering
\includegraphics[width=...]{...}
\caption{...}
- \end{minipage}
+ \end{minipage}
\end{figure}
\end{verbatim}
@@ -1136,4 +1142,4 @@ A \rule[-.4pt]{3em}{.4pt} line.
\caption{使用 \pkg{subfig} 宏包的 \cmd{subfloat} 命令排版子图。}\label{fig:subfig}
\end{figure}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/chap.04.math.tex b/info/lshort/chinese/src/chap/chap.04.math.tex
index 2c0f6fcf35..75212c440a 100644
--- a/info/lshort/chinese/src/chap.04.math.tex
+++ b/info/lshort/chinese/src/chap/chap.04.math.tex
@@ -2,20 +2,23 @@
\addtocontents{los}{\protect\addvspace{10pt}}
\begin{intro}
-准备好了!本章将见识到 \LaTeX\ 闻名的强项——排版数学公式。当然你得注意了,本章的内容只是一点皮毛,
+准备好了!本章将见识到 \LaTeX{} 闻名的强项——排版数学公式。当然你得注意了,本章的内容只是一点皮毛,
虽然对大多数人来说已经够用了,但是如果不能解决你的问题的话也不要大惊小怪,求助于搜索引擎或者有经验的人不失为一个好办法。
\end{intro}
\DeclareRobustCommand*\amscmd[1]{\textcolor{blue}{\cmd{#1}}}
\DeclareRobustCommand*\amsenv[1]{\textcolor{blue}{\env{#1}}}
-\section{\AmS\ 宏集}\label{sec:ams-bundle}
+\section{\hologo{AmS} 宏集}\label{sec:ams-bundle}
\pkgindex{amsmath,amsfonts,amssymb,amsthm}
-在介绍数学公式排版之前,简单介绍一下 \AmS\ 宏集。\AmS\ 宏集合是美国数学学会(American Mathematical Society)提供的对
-\LaTeX\ 原生的数学公式排版的扩展,其核心是 \pkg{amsmath} 宏包,对多行公式的排版提供了有力的支持。
-此外,\pkg{amsfonts} 宏包以及基于它的 \pkg{amssymb} 宏包提供了丰富的数学符号;\pkg{amsthm} 宏包扩展了 \LaTeX\ 定理证明格式。
+在介绍数学公式排版之前,简单介绍一下 \hologo{AmS} 宏集。\hologo{AmS} 宏集合是美国数学学会(American Mathematical Society)提供的对
+\LaTeX{} 原生的数学公式排版的扩展,其核心是 \pkg{amsmath} 宏包,对多行公式的排版提供了有力的支持。
+此外,\pkg{amsfonts} 宏包以及基于它的 \pkg{amssymb} 宏包提供了丰富的数学符号;\pkg{amsthm} 宏包扩展了 \LaTeX{} 定理证明格式。
-本章介绍的许多命令和环境依赖于 \pkg{amsmath} 宏包。这些命令和环境将以\textcolor{blue}{蓝色}示意。
+本章介绍的许多命令和环境依赖于 \pkg{amsmath} 宏包,这些命令和环境将以\textcolor{blue}{蓝色}示意。以下示例都假定了导言区中写有
+\begin{verbatim}
+\usepackage{amsmath}
+\end{verbatim}
\section{公式排版基础}\label{sec:math-basics}
@@ -34,7 +37,7 @@ $a^2 + b^2 = c^2$.
\envindex{equation}
\cmdindex{label,ref,nonumber}
\cmdindex[amsmath]{eqref,tag,notag}
-单独成行的\textbf{行间公式}在 \LaTeX\ 里由 \env{equation} 环境包裹。
+单独成行的\textbf{行间公式}在 \LaTeX{} 里由 \env{equation} 环境包裹。
\env{equation} 环境为公式自动生成一个编号,这个编号可以用 \cmd{label} 和 \cmd{ref} 生成交叉引用,
\pkg{amsmath} 的 \amscmd{eqref} 命令甚至为引用自动加上圆括号;还可以用 \amscmd{tag} 命令手动修改公式的编号,
或者用 \amscmd{notag} 命令取消为公式编号(与之基本等效的命令是 \cmd{nonumber})。
@@ -63,7 +66,7 @@ or
\envindex{displaymath}
\envindex[amsmath]{equation*}
如果需要直接使用不带编号的行间公式,则将公式用命令 \cmd{[} 和 \cmd{]} 包裹%
-\footnote{\TeX\ 原生排版行间公式的方法是用一对 \texttt{\$\$} 符号包裹,不过无法通过指定 \texttt{fleqn} 选项控制左对齐,
+\footnote{\TeX{} 原生排版行间公式的方法是用一对 \texttt{\$\$} 符号包裹,不过无法通过指定 \texttt{fleqn} 选项控制左对齐,
与上下文之间的间距也不好调整,故不太推荐使用。},
与之等效的是 \env{displaymath} 环境。有的人更喜欢 \amsenv{equation*} 环境,体现了带星号和不带星号的环境之间的区别。
@@ -102,12 +105,13 @@ In display:
\pinyinindex{shuxuemoshi}{数学模式}
\cmdindex[amsmath]{text}
-当你使用 \texttt\$ 开启行内公式输入,或是使用 \cmd{[} 命令、\env{equation} 环境时,\LaTeX\ 就进入了\textbf{数学模式}。
+当用户使用 \texttt\$ 开启行内公式输入,或是使用 \cmd{[} 命令、\env{equation} 环境时,\LaTeX{} 就进入了\textbf{数学模式}。
数学模式相比于文本模式有以下特点:
\begin{enumerate}
\item 数学模式中输入的空格被忽略。数学符号的间距默认由符号的性质(关系符号、运算符等)决定。
需要人为引入间距时,使用 \cmd{quad} 和 \cmd{qquad} 等命令。详见 \ref{sec:math-space} 节。
- \item \textbf{不允许有空行(分段)}。行间公式中也无法用 \crcmd\ 命令手动换行。排版多行公式需要用到 \ref{sec:multi-eqns} 节介绍的各种环境。
+ \item \textbf{不允许有空行(分段)}。行间公式中也无法用 \crcmd{} 命令手动换行。排版多行公式需要用到
+ \ref{sec:multi-eqns} 节介绍的各种环境。
\item 所有的字母被当作数学公式中的变量处理,字母间距与文本模式不一致,也无法生成单词之间的空格。
如果想在数学公式中输入正体的文本,简单情况下可用 \ref{subsec:math-alpha} 小节中提供的 \cmd{mathrm} 命令。
或者用 \pkg{amsmath} 提供的 \amscmd{text} 命令%
@@ -125,7 +129,7 @@ x\in\mathbb{R}$
\def\msym#1{$\csname #1\endcsname$ (\cmd{#1})}
\pkgindex{amssymb}
-本节我们将接触到形形色色的数学符号,它们是 \LaTeX\ 卓越的数学公式排版能力的基础。\LaTeX\ 默认提供了常用的数学符号,
+本节我们将接触到形形色色的数学符号,它们是 \LaTeX{} 卓越的数学公式排版能力的基础。\LaTeX{} 默认提供了常用的数学符号,
\pkg{amssymb} 宏包提供了一些次常用的符号。大多数常用的数学符号都能在本章末尾的 \ref{sec:math-tables} 节列出的各个表格里查到。
更多符号可查阅参考文献\cite{symbols}。
@@ -151,8 +155,8 @@ $a_1 + a_2 + \cdots + a_n$
\index{^@\texttt\textasciicircum\ (\textit{数学上标})}
\index{_@\texttt\textunderscore\ (\textit{数学下标})}
-在 \LaTeX\ 中用 \texttt\textasciicircum 和 \texttt\textunderscore 标明上下标。注意上下标的内容(子公式)一般需要\textbf{用花括号包裹},
-否则上下标只对后面的一个符号起作用。
+在 \LaTeX{} 中用 \texttt\textasciicircum 和 \texttt\textunderscore 标明上下标。
+注意上下标的内容(子公式)一般需要\textbf{用花括号包裹},否则上下标只对后面的一个符号起作用。
\begin{example}
$p^3_{ij} \qquad
m_\mathrm{Knuth}\qquad
@@ -206,14 +210,14 @@ Pascal's rule is
\subsection{关系符}\label{subsec:math-rel}
\msymindex{ne,ge,le,approx,equiv,propto,sim}
-\LaTeX\ 常见的关系符号除了可以直接输入的 $=$,$>$,$<$,其它符号用命令输入,常用的有不等号 \msym{ne}、
+\LaTeX{} 常见的关系符号除了可以直接输入的 $=$,$>$,$<$,其它符号用命令输入,常用的有不等号 \msym{ne}、
大于等于号 \msym{ge} 和小于等于号 \msym{le}%
\footnote{倾斜的关系符号 \msym{leqslant} 和 \msym{geqslant} 由 \pkg{amssymb} 提供,见表 \ref{tbl:ams-rel}。}、
约等号 \msym{approx}、等价 \msym{equiv}、正比 \msym{propto}、相似 \msym{sim} 等等。
更多符号命令可参考表 \ref{tbl:math-rel} 以及表 \ref{tbl:ams-rel}。
\mathindex{stackrel}
-\LaTeX\ 还提供了自定义二元关系符的命令 \cmd{stackrel},用于将一个符号叠加在原有的二元关系符之上:
+\LaTeX{} 还提供了自定义二元关系符的命令 \cmd{stackrel},用于将一个符号叠加在原有的二元关系符之上:
\begin{example}
\[
f_n(x) \stackrel{*}{\approx} 1
@@ -223,7 +227,7 @@ f_n(x) \stackrel{*}{\approx} 1
\subsection{算符}\label{subsec:math-op}
\msymindex{times,div,cdot,pm,mp}
-\LaTeX\ 中的算符大多数是二元算符,除了直接用键盘可以输入的 $+$、$-$、$*$、$/$,其它符号用命令输入,
+\LaTeX{} 中的算符大多数是二元算符,除了直接用键盘可以输入的 $+$、$-$、$*$、$/$,其它符号用命令输入,
常用的有乘号 \msym{times}、 除号 \msym{div}、点乘 \msym{cdot}、加减号 \msym{pm} / \msym{mp} 等等。
更多符号命令可参考表 \ref{tbl:math-op} 以及表 \ref{tbl:ams-op}。
@@ -231,12 +235,12 @@ f_n(x) \stackrel{*}{\approx} 1
\msym{nabla} 和 \msym{partial} 也是常用的算符,虽然它们不属于二元算符。
\pinyinindex{shuxuehanshu}{数学函数}
-\LaTeX\ 将数学函数的名称作为一个算符排版,字体为直立字体。其中有一部分符号在上下位置可以书写一些内容作为条件,
+\LaTeX{} 将数学函数的名称作为一个算符排版,字体为直立字体。其中有一部分符号在上下位置可以书写一些内容作为条件,
类似于后文所叙述的巨算符。
\begin{table}[htp]
\centering
-\caption{\LaTeX\ 作为算符的函数名称一览。}\label{tbl:math-functions}
+\caption{\LaTeX{} 作为算符的函数名称一览}\label{tbl:math-functions}
\begin{tabular}{*{5}{p{5em}}}
\hline
\multicolumn{5}{c}{\textbf{不带上下限的算符}} \\
@@ -262,15 +266,15 @@ f_n(x) \stackrel{*}{\approx} 1
\]
\end{example}
-\mathindex{pmod,bmod}
-对于求模表达式,\LaTeX\ 提供了 \cmd{pmod} 和 \cmd{bmod} 命令,前者相当于一个二元运算符,后者作为同余表达式的后缀:
+\mathindex{bmod,pmod}
+对于求模表达式,\LaTeX{} 提供了 \cmd{bmod} 和 \cmd{pmod} 命令,前者相当于一个二元运算符,后者作为同余表达式的后缀:
\begin{example}
$a\bmod b \\
x\equiv a \pmod{b}$
\end{example}
\cmdindex[amsmath]{DeclareMathOperator}
-如果表 \ref{tbl:math-functions} 中的算符不够用的话,\pkg{amsmath} 允许用户用 \amscmd{Declare\-Math\-Operator}
+如果表 \ref{tbl:math-functions} 中的算符不够用的话,\pkg{amsmath} 允许用户用 \amscmd{Declare\-Math\-Operator}
定义自己的算符,其中带星号的命令定义带上下限的算符:
\begin{verbatim}
\DeclareMathOperator{\argh}{argh}
@@ -286,7 +290,7 @@ $a\bmod b \\
\msymindex{int,oint,sum,prod}
积分号 \msym{int}、求和号 \msym{sum} 等符号称为\textbf{巨算符}。巨算符在行内公式和行间公式的大小和形状有区别。
\begin{example}
-In text:
+In text:
$\sum_{i=1}^n \quad
\int_0^{\frac{\pi}{2}} \quad
\oint_0^{\frac{\pi}{2}} \quad
@@ -299,10 +303,10 @@ In display:
\end{example}
\mathindex{limits,nolimits}
-巨算符的上下标位置可由 \cmd{limits} 和 \cmd{nolimits} 控制,前者令巨算符类似 $\lim$ 或求和算符 $\sum$,上下标位于上下方;
+巨算符的上下标位置可由 \cmd{limits} 和 \cmd{nolimits} 调整,前者令巨算符类似 $\lim$ 或求和算符 $\sum$,上下标位于上下方;
后者令巨算符类似积分号,上下标位于右上方和右下方。
\begin{example}
-In text:
+In text:
$\sum\limits_{i=1}^n \quad
\int\limits_0^{\frac{\pi}{2}} \quad
\prod\limits_\epsilon $ \\
@@ -314,7 +318,7 @@ In display:
\cmdindex[amsmath]{substack}
\envindex[amsmath]{subarray}
-\pkg{amsmath} 宏包还提供了 \amscmd{substack},能够在下限位置书写多行表达式;\amsenv{subarray}
+\pkg{amsmath} 宏包还提供了 \amscmd{substack},能够在下限位置书写多行表达式;\amsenv{subarray}
环境更进一步,令多行表达式可选择居中 (c) 或左对齐 (l):
\begin{example}
\[
@@ -346,7 +350,7 @@ $\hat{\mathbf{e}_x} \quad
\waccindex{overline,underline}
\waccindex{widehat,overrightarrow}
-\LaTeX\ 也能为多个字符加重音,包括直接画线的 \cmd{overline} 和 \cmd{underline} 命令(可叠加使用)、宽重音符号 \cmd{widehat}、
+\LaTeX{} 也能为多个字符加重音,包括直接画线的 \cmd{overline} 和 \cmd{underline} 命令(可叠加使用)、宽重音符号 \cmd{widehat}、
表示向量的箭头 \cmd{overrightarrow} 等。后两者详见表 \ref{tbl:math-accents} 和 \ref{tbl:math-arrow-accents} 等。
\begin{example}
$0.\overline{3} =
@@ -379,7 +383,7 @@ _\text{meaning of life} = 42$
\subsection{括号和定界符}\label{subsec:math-delims}
-\LaTeX\ 提供了多种括号和定界符表示公式块的边界,如小括号 $()$、中括号 $[]$、
+\LaTeX{} 提供了多种括号和定界符表示公式块的边界,如小括号 $()$、中括号 $[]$、
大括号 $\{\}$(\cmd{\{} \cmd{\}})、尖括号 $\langle \rangle$ (\cmd{langle} \cmd{rangle})等。
更多的括号/定界符命令见表 表 \ref{tbl:math-delims} 和 \ref{tbl:math-large-delims}。
\begin{example}
@@ -388,7 +392,7 @@ ${a,b,c} \neq \{a,b,c\}$
\mathindex{left,right}
\mathindex{right}
-使用 \cmd{left} 和 \cmd{right} 命令可令括号(定界符)的大小可变,在行间公式中常用。\LaTeX\ 会自动根据括号内的公式大小决定定界符大小。
+使用 \cmd{left} 和 \cmd{right} 命令可令括号(定界符)的大小可变,在行间公式中常用。\LaTeX{} 会自动根据括号内的公式大小决定定界符大小。
\cmd{left} 和 \cmd{right} 必须成对使用。需要使用单个定界符时,另一个定界符写成 \cmd{left.} 或 \cmd{right.}。
\begin{example}
\[1 + \left(\frac{1}{1-x^{2}}
@@ -400,7 +404,7 @@ ${a,b,c} \neq \{a,b,c\}$
\mathindex{big,bigg,Big,Bigg}
\mathindex{bigl,biggl,Bigl,Biggl}
\mathindex{bigr,biggr,Bigr,Biggr}
-有时我们不满意于 \LaTeX\ 为我们自动调节的定界符大小。这时我们还可以用 \cmd{big}、\cmd{bigg} 等命令生成固定大小的定界符。
+有时我们不满意于 \LaTeX{} 为我们自动调节的定界符大小。这时我们还可以用 \cmd{big}、\cmd{bigg} 等命令生成固定大小的定界符。
更常用的形式是类似 \cmd{left} 的 \cmd{bigl}、\cmd{biggl} 等,以及类似 \cmd{right} 的 \cmd{bigr}、\cmd{biggr} 等
(\cmd{bigl} 和 \cmd{bigr} 不必成对出现)。
\begin{example}
@@ -425,7 +429,7 @@ $\bigl( \Bigl( \biggl( \Biggl( \quad
\envindex[amsmath]{multline}
\pkg{amsmath} 宏包的 \amsenv{multline} 环境提供了书写折行长公式的方便环境。
-它允许用 \crcmd\ 折行,将公式编号放在最后一行。
+它允许用 \crcmd{} 折行,将公式编号放在最后一行。
多行公式的首行左对齐,末行右对齐,其余行居中。
\begin{example}
\begin{multline}
@@ -447,7 +451,7 @@ a + b + c + d + e + f
\pinyinindex{duohanggongshi}{多行公式|(}
更多的情况是,我们需要罗列一系列公式,并令其按照等号对齐。
-读者可能阅读过其它手册或者资料,知道 \LaTeX\ 提供了 \env{eqnarray} 环境。它按照等号左边——等号——等号右边呈三列对齐,
+读者可能阅读过其它手册或者资料,知道 \LaTeX{} 提供了 \env{eqnarray} 环境。它按照等号左边——等号——等号右边呈三列对齐,
但等号周围的空隙过大,加上公式编号等一些 bug,目前已不推荐使用\footnote{\url{http://tug.org/pracjourn/2006-4/madsen/madsen.pdf}}。
\envindex[amsmath]{align}
@@ -462,7 +466,7 @@ a & = b + c \\
\cmdindex[amsmath]{notag}
\amsenv{align} 环境会给每行公式都编号。我们仍然可以用 \amscmd{notag} 去掉某行的编号。
-在以下的例子,为了对齐加号,我们将分隔符放在等号右边,这时需要给等号后添加一对括号 \texttt\{\texttt\} 以产生正常的间距:
+在以下的例子,为了对齐等号,我们将分隔符放在右侧,并且此时需要在等号后添加一对括号 \texttt\{\texttt\} 以产生正常的间距:
\begin{example}
\begin{align}
a ={} & b + c \\
@@ -477,7 +481,7 @@ a ={} & b + c \\
\begin{example}
\begin{align}
a &=1 & b &=2 & c &=3 \\
-d &=-1 & e &=-2 & f &=-5
+d &=-1 & e &=-2 & f &=-5
\end{align}
\end{example}
@@ -513,8 +517,8 @@ l + m &= n
\end{example}
\envindex[amsmath]{split}
-\amsenv{split} 环境和 \amsenv{aligned} 环境用法类似,也用于和 \env{equation} 环境套用,区别是 \amsenv{split} 只能将每行的一个公式分两栏,
-\amsenv{aligned} 允许每行多个公式多栏。
+\amsenv{split} 环境和 \amsenv{aligned} 环境用法类似,也用于和 \env{equation} 环境套用,
+区别是 \amsenv{split} 只能将每行的一个公式分两栏,\amsenv{aligned} 允许每行多个公式多栏。
\pinyinindex{duohanggongshi}{多行公式|)}
@@ -522,7 +526,7 @@ l + m &= n
\envindex{array}
\index{&@\texttt\& (\textit{单元格/对齐})}
-为了排版二维数组,\LaTeX\ 提供了 \env{array} 环境,用法与 \env{tabular} 环境极为类似,也需要定义列格式,并用 \crcmd\ 换行。
+为了排版二维数组,\LaTeX{} 提供了 \env{array} 环境,用法与 \env{tabular} 环境极为类似,也需要定义列格式,并用 \crcmd{} 换行。
数组可作为一个公式块,在外套用 \cmd{left}、\cmd{right} 等定界符:
\begin{example}
\[ \mathbf{X} = \left(
@@ -651,11 +655,11 @@ f(x)g(y) \diff x \diff y \\
\mathindex{mathrm,mathsf,mathtt,mathit,mathbf,mathcal,mathnormal}
\cmdindex[amssymb]{mathbb,mathfrak}
\cmdindex[mathrsfs]{mathscr}
-\LaTeX\ 允许一部分数学符号切换字体,主要是拉丁字母、数字等等。
+\LaTeX{} 允许一部分数学符号切换字体,主要是拉丁字母、数字、大写希腊字母以及重音符号等。
表 \ref{tbl:math-fonts} 给出了切换字体的命令。某一些命令需要字体宏包的支持。
\begin{example}
-$\mathcal{R} \quad \mathfrak{R}
-\quad \mathbb{R}$
+$\mathcal{R} \quad \mathfrak{R}
+\quad \mathbb{R}$
\[\mathcal{L}
= -\frac{1}{4}F_{\mu\nu}F^{\mu\nu}\]
$\mathfrak{su}(2)$ and
@@ -664,7 +668,7 @@ $\mathfrak{so}(3)$ Lie algebra
\begin{table}[htp]
\centering
-\caption{数学字母字体。} \label{tbl:math-fonts}
+\caption{数学字母字体} \label{tbl:math-fonts}
\begin{tabular}{*{3}{l}}
\hline
\textbf{示例} & \textbf{命令} & \textbf{依赖的宏包}\\
@@ -675,24 +679,27 @@ $\mathit{ABCDE abcde 1234}$ & \cmd{mathit}\marg*{\ldots} & \\
$\mathbf{ABCDE abcde 1234}$ & \cmd{mathbf}\marg*{\ldots} & \\
$\mathsf{ABCDE abcde 1234}$ & \cmd{mathsf}\marg*{\ldots} & \\
$\mathtt{ABCDE abcde 1234}$ & \cmd{mathtt}\marg*{\ldots} & \\
-$\CMcal{ABCDE}$ & \cmd{mathcal}\marg*{\ldots} & 只大写字母 \\
+$\CMcal{ABCDE}$ & \cmd{mathcal}\marg*{\ldots} & 仅提供大写字母 \\
\hline
-$\EuScript{ABCDE}$ & \cmd{mathcal}\marg*{\ldots} & \pkg{eucal},只大写字母 \\
-$\mathscr{ABCDE}$ & \cmd{mathscr}\marg*{\ldots} & \pkg{mathrsfs},只大写字母\\
+$\EuScript{ABCDE}$ & \cmd{mathcal}\marg*{\ldots} & \pkg{eucal} 仅提供大写字母 \\
+$\mathscr{ABCDE}$ & \cmd{mathscr}\marg*{\ldots} & \pkg{mathrsfs} 仅提供大写字母\\
$\mathfrak{ABCDE abcde 1234}$ & \cmd{mathfrak}\marg*{\ldots} & \pkg{amssymb} 或 \pkg{eufrak} \\
-$\mathbb{ABCDE}$ & \cmd{mathbb}\marg*{\ldots} & \pkg{amssymb},只大写字母 \\
+$\mathbb{ABCDE}$ & \cmd{mathbb}\marg*{\ldots} & \pkg{amssymb} 仅提供大写字母 \\
\hline
\end{tabular}
\end{table}
+\pkgindex{unicode-math}
+如果需要为所有的数学符号切换字体,则需要直接调用数学字体宏包(见 \ref{subsec:font-pkgs} 小节)。在 \texttt{xelatex} 或者 \texttt{lualatex} 编译命令下,还可以使用基于 \pkg{fontspec} 宏包的 \pkg{unicode-math} 宏包配置 Unicode 数学字体,详见 \ref{subsec:unicode-math} 小节。
+
\subsection{数学符号的尺寸}\label{subsec:math-styles}
\mathindex{displaystyle,textstyle,scriptstyle,scriptscriptstyle}
数学符号按照符号排版的位置规定尺寸,从大到小包括行间公式尺寸、行内公式尺寸、上下标尺寸、次级上下标尺寸。
-除了字号有别之外,行间和行内公式尺寸下的巨算符也使用不一样的大小。\LaTeX\ 为每个数学尺寸指定了一个切换的命令,见 \ref{tbl:math-size}。
+除了字号有别之外,行间和行内公式尺寸下的巨算符也使用不一样的大小。\LaTeX{} 为每个数学尺寸指定了一个切换的命令,见 \ref{tbl:math-size}。
\begin{table}[htp]
\centering
-\caption{数学符号尺寸。}\label{tbl:math-size}
+\caption{数学符号尺寸}\label{tbl:math-size}
\begin{tabular}{lll}
\hline
\textbf{命令} & \textbf{尺寸} & \textbf{示例} \\
@@ -705,11 +712,11 @@ $\mathbb{ABCDE}$ & \cmd{mathbb}\marg*{\ldots} & \pkg{amssymb}
\end{tabular}
\end{table}
-例如行间公式的分式内,分子分母使用行内公式尺寸,巨算符采用行内尺寸的形式。对比一下分子分母使用 \cmd{display\-style} 命令与否的区别:
+我们通过以下示例对比行间公式和行内公式的区别。在分式中,分子分母默认为行内公式尺寸,示例中将分母切换到行间公式尺寸:
\begin{example}
\[
-P = \frac
- {\sum_{i=1}^n (x_i- x)(y_i- y)}
+r = \frac
+ {\sum_{i=1}^n (x_i- x)(y_i- y)}
{\displaystyle \left[
\sum_{i=1}^n (x_i-x)^2
\sum_{i=1}^n (y_i-y)^2
@@ -719,11 +726,11 @@ P = \frac
\subsection{加粗的数学符号}\label{subsec:math-bold}
-在 \LaTeX\ 中为符号切换数学字体并不十分自由,只能通过 \cmd{mathbf} 等有限的命令切换字体。比如想得到粗斜体的符号,就没有现成的命令%
-\footnote{国内使用粗斜体符号表示矢量,见 GB3102-11.93。};再比如 \cmd{mathbf} 只能改变拉丁字母,希腊字母就没有用。
+在 \LaTeX{} 中为符号切换数学字体并不十分自由,只能通过 \cmd{mathbf} 等有限的命令切换字体。比如想得到粗斜体的符号,就没有现成的命令%
+\footnote{国内使用粗斜体符号表示矢量,见 GB 3102.11--93。};再比如 \cmd{mathbf} 只能改变拉丁字母和大写希腊字母,小写希腊字母就没有用。
\cmdindex{boldmath}
-\LaTeX\ 提供了一个命令 \cmd{boldmath} 令用户可以将整套数学字体切换为粗体版本。但这个命令\textbf{只能在公式外使用}:
+\LaTeX{} 提供了一个命令 \cmd{boldmath} 令用户可以将整套数学字体切换为粗体版本(前提是数学字体宏包本身支持粗体符号)。但这个命令\textbf{只能在公式外使用}:
\begin{example}
$\mu, M \qquad
\mathbf{\mu}, \mathbf{M}$
@@ -740,23 +747,23 @@ $\mu, M \qquad
\pkgindex{bm}
\cmdindex[bm]{bm}
-然而定界符、巨算符等一些符号本身没有粗体版本,\amscmd{boldsymbol} 也得不到粗体。
-\LaTeX\ 工具宏集之一的 \pkg{bm} 宏包可以用 \cmd{bm} 命令生成“伪粗体”,一定程度上解决了不带粗体版本的符号的问题。这里不做过多介绍,
+然而在许多数学字体宏包中,定界符、巨算符等一些符号本身没有粗体版本,\amscmd{boldsymbol} 也得不到粗体。
+\LaTeX{} 工具宏集之一的 \pkg{bm} 宏包可以用 \cmd{bm} 命令生成“伪粗体”,作为粗体符号的一个解决方案。这里不做过多介绍,
详情请参考 \pkg{bm} 宏包的帮助文档。
\section{定理环境}\label{sec:theorems}
-\subsection{\LaTeX\ 原始的定理环境}\label{subsec:latex-theorems}
+\subsection{\LaTeX{} 原始的定理环境}\label{subsec:latex-theorems}
\cmdindex{newtheorem}
-使用 \LaTeX\ 排版数学和其他科技文档时,会接触到大量的定理、证明等内容。
-\LaTeX\ 提供了一个基本的命令 \cmd{newtheorem} 提供定理环境的定义:
+使用 \LaTeX{} 排版数学和其他科技文档时,会接触到大量的定理、证明等内容。
+\LaTeX{} 提供了一个基本的命令 \cmd{newtheorem} 提供定理环境的定义:
\begin{command}
\cmd{newtheorem}\marg{theorem environment}\marg{title}\oarg{section-level} \\
\cmd{newtheorem}\marg{theorem environment}\oarg{counter}\marg{title}
\end{command}
-\Arg{theorem environment} 为定理环境的名称。原始的\LaTeX\ 里\textbf{没有现成的定理环境},
+\Arg{theorem environment} 为定理环境的名称。原始的\LaTeX{} 里\textbf{没有现成的定理环境},
不加定义而直接使用很可能会出错。\Arg{title} 是定理环境的标题(“定理”,“公理”等)。
定理的序号由两个可选参数之一决定,它们\textbf{不能同时使用}:
@@ -775,24 +782,24 @@ The light speed in vacuum
is $299,792,458\,\mathrm{m/s}$.
\end{mythm}
\begin{mythm}[Energy-momentum relation]
-The relationship of energy,
-momentum and mass is
+The relationship of energy,
+momentum and mass is
\[E^2 = m_0^2 c^4 + p^2 c^2\]
-where $c$ is the light speed
+where $c$ is the light speed
described in theorem \ref{thm:light}.
\end{mythm}
\end{example}
\subsection{\pkg{amsthm} 宏包}\label{subsec:amsthm}
-\LaTeX\ 默认的定理环境格式为粗体标签、斜体正文、定理名用小括号包裹。如果需要修改格式,
+\LaTeX{} 默认的定理环境格式为粗体标签、斜体正文、定理名用小括号包裹。如果需要修改格式,
则要依赖其它的宏包,如 \pkg{amsthm}、\pkg{ntheorem} 等等。本小节简单介绍一下 \pkg{amsthm} 的用法。
\pkgindex{amsthm}
\cmdindex[amsthm]{theoremstyle}
\pkg{amsthm} 提供了 \cmd{theo\-rem\-style} 命令支持定理格式的切换,
在用 \cmd{new\-theo\-rem} 命令定义定理环境之前使用。
-\pkg{amsthm} 预定义了三种格式用于 \cmd{theo\-rem\-style}:\texttt{plain} 和 \LaTeX\ 原始的格式一致;
+\pkg{amsthm} 预定义了三种格式用于 \cmd{theo\-rem\-style}:\texttt{plain} 和 \LaTeX{} 原始的格式一致;
\texttt{defi\-ni\-tion} 使用粗体标签、正体内容;\texttt{remark} 使用斜体标签、正体内容。
另外 \pkg{amsthm} 还支持用带星号的 \cmd{new\-theo\-rem*} 定义不带序号的定理环境:
@@ -827,7 +834,7 @@ statement.\end{jury}
\envindex[amsthm]{proof}
\pkg{amsthm} 还提供了一个 \env{proof} 环境用于排版定理的证明过程。\env{proof} 环境末尾
-自动加上一个 \qedsymbol\ 证毕符号:
+自动加上一个 \qedsymbol{} 证毕符号:
\begin{example}
\begin{proof}
For simplicity, we use
@@ -839,8 +846,8 @@ That's it.
\end{example}
\cmdindex[amsthm]{qedhere}
-如果行末是一个不带编号的公式,\qedsymbol\ 符号会另起一行,
-这时可使用 \cmd{qedhere} 命令将 \qedsymbol\ 符号放在公式末尾:
+如果行末是一个不带编号的公式,\qedsymbol{} 符号会另起一行,
+这时可使用 \cmd{qedhere} 命令将 \qedsymbol{} 符号放在公式末尾:
\begin{example}
\begin{proof}
For simplicity, we use
@@ -850,10 +857,10 @@ E=mc^2 \qedhere
\end{proof}
\end{example}
-\cmd{qedhere} 对于 \amsenv{align*} 等命令也有效:
+\cmd{qedhere} 对于 \amsenv{align*} 等环境也有效:
\begin{example}
\begin{proof}
-Assuming $\gamma
+Assuming $\gamma
= 1/\sqrt{1-v^2/c^2}$, then
\begin{align*}
E &= \gamma m_0 c^2 \\
@@ -863,7 +870,7 @@ p &= \gamma m_0v \qedhere
\end{example}
在使用带编号的公式时,建议最好\textbf{不要在公式末尾使用} \cmd{qedhere} 命令。
-对带编号的公式使用 \cmd{qedhere} 命令会使 \qedsymbol\ 符号放在一个难看的位置,紧贴着公式:
+对带编号的公式使用 \cmd{qedhere} 命令会使 \qedsymbol{} 符号放在一个难看的位置,紧贴着公式:
\begin{example}
\begin{proof}
For simplicity, we use
@@ -873,10 +880,10 @@ E=mc^2.\qedhere
\end{proof}
\end{example}
-在 \amsenv{align} 等环境中使用 \cmd{qedhere} 命令会使 \qedsymbol\ 盖掉公式的编号;使用 \env{equation} 嵌套 \amsenv{aligned} 等环境时,
-\cmd{qedhere} 命令会将 \qedsymbol\ 直接放在公式后。这些位置都不太正常。
+在 \amsenv{align} 等环境中使用 \cmd{qedhere} 命令会使 \qedsymbol{} 盖掉公式的编号;使用 \env{equation} 嵌套
+\amsenv{aligned} 等环境时,\cmd{qedhere} 命令会将 \qedsymbol{} 直接放在公式后。这些位置都不太正常。
-证毕符号 \qedsymbol\ 本身被定义在命令 \cmd{qedsymbol} 中,如果有使用实心符号作为证毕符号的需求,需要自行用 \cmd{re\-new\-comm\-and}
+证毕符号 \qedsymbol{} 本身被定义在命令 \cmd{qedsymbol} 中,如果有使用实心符号作为证毕符号的需求,需要自行用 \cmd{re\-new\-comm\-and}
命令修改(用法见 \ref{subsec:newcmd} 小节)\footnote{注意,这个改法\textbf{只对 \pkg{amsthm} 宏包适用}。
其它宏包如 \pkg{ntheorem} 等须参考帮助文档里提供的修改方法。}。
我们可以利用在 \ref{subsec:rules} 小节介绍的标尺盒子来生成一个适当大小的“实心矩形”:
@@ -891,4 +898,4 @@ E=mc^2 \qedhere
\end{proof}
\end{example}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/chap.05.style.tex b/info/lshort/chinese/src/chap/chap.05.style.tex
index 20a39c10e3..460dd7c81c 100644
--- a/info/lshort/chinese/src/chap.05.style.tex
+++ b/info/lshort/chinese/src/chap/chap.05.style.tex
@@ -3,13 +3,13 @@
\begin{intro}
至此你已经基本学会排版内容丰富的文档,标题、目录、章节、公式、列表、图片、表格等等应有尽有。但是你可能已经有点不甘心了,
-因为似乎你排版出来的文档是千篇一律的模样——\LaTeX\ 默认的字体、单调的页眉页脚、不太令你满意的页边距,等等。
-本章的内容将带你一览如何修改 \LaTeX\ 的排版样式。
+因为似乎你排版出来的文档是千篇一律的模样——\LaTeX{} 默认的字体、单调的页眉页脚、不太令你满意的页边距,等等。
+本章的内容将带你一览如何修改 \LaTeX{} 的排版样式。
\end{intro}
\section{字体和字号}\label{sec:font}
-\LaTeX\ 根据文档的逻辑结构(章节、脚注等)来选择默认的字体样式以及字号。
+\LaTeX{} 根据文档的逻辑结构(章节、脚注等)来选择默认的字体样式以及字号。
需要更改字体样式或字号的话,可以使用表 \ref{tbl:fonts} 和表 \ref{tbl:sizes} 中列出的命令。
\begin{example}
{\small The small and
@@ -18,35 +18,35 @@
{\itshape Italy}.}
\end{example}
-\LaTeXe\ 相比于较早的 \LaTeX\ 版本(2.09版或更早)在字体样式和字号的设定上有很大改进,令字体的各种属性相互独立(“正交”),
+\LaTeXe{} 相比于较早的 \LaTeX{} 版本(2.09版或更早)在字体样式和字号的设定上有很大改进,令字体的各种属性相互独立(“正交”),
用户可以改变字体的大小,而仍然保留字体原有的粗体或者斜体的特性。
\subsection{字体样式}\label{subsec:fontshape}
\pinyinindex{ziti}{字体}
\pinyinindex{fenzu}{分组}
-\LaTeX\ 提供了两组修改字体的命令,见表 \ref{tbl:fonts}。其中诸如 \cmd{bfseries} 形式的命令将会影响之后所有的字符,
+\LaTeX{} 提供了两组修改字体的命令,见表 \ref{tbl:fonts}。其中诸如 \cmd{bfseries} 形式的命令将会影响之后所有的字符,
如果想要让它在局部生效,需要用花括号\textbf{分组},也就是写成 \marg*{\cmd{bfseries}\ \Arg{some text}} 这样的形式;
对应的 \cmd{textbf} 形式带一个参数,只改变参数内部的字体,更为常用。
-在公式中,直接使用 \cmd{textbf} 等命令不会起效,甚至报错。\LaTeX\ 已有修改数学字体的命令,详见 \ref{subsec:math-alpha} 小节。
+在公式中,直接使用 \cmd{textbf} 等命令不会起效,甚至报错。\LaTeX{} 提供了修改数学字母样式的命令,如 \cmd{mathbf} 等,详见 \ref{subsec:math-alpha} 小节。
\begin{table}[htp]
-\caption{字体命令。} \label{tbl:fonts}
+\caption{字体命令} \label{tbl:fonts}
\centering
\begin{tabular}{*{4}{l}}
\hline
-\cmd{rmfamily}\cmdindex{rmfamily} & \cmd{textrm}\cmdindex{textrm}\marg*{\ldots} & \textrm{roman} & 衬线字体(罗马体)\\
-\cmd{sffamily}\cmdindex{sffamily} & \cmd{textsf}\cmdindex{textsf}\marg*{\ldots} & \textsf{sans serif} & 无衬线字体 \\
-\cmd{ttfamily}\cmdindex{ttfamily} & \cmd{texttt}\cmdindex{texttt}\marg*{\ldots} & \texttt{typewriter} & 等宽字体 \\[\medskipamount]
-\cmd{mdseries}\cmdindex{mdseries} & \cmd{textmd}\cmdindex{textmd}\marg*{\ldots} & \textrm{medium} & 正常粗细(中等) \\
-\cmd{bfseries}\cmdindex{bfseries} & \cmd{textbf}\cmdindex{textbf}\marg*{\ldots} & \textbf{bold face} & 粗体 \\[\medskipamount]
-\cmd{upshape}\cmdindex{upshape} & \cmd{textup}\cmdindex{textup}\marg*{\ldots} & \textup{upright} & 直立体 \\
-\cmd{itshape}\cmdindex{itshape} & \cmd{textit}\cmdindex{textit}\marg*{\ldots} & \textit{italic} & 意大利斜体 \\
-\cmd{slshape}\cmdindex{slshape} & \cmd{textsl}\cmdindex{textsl}\marg*{\ldots} & \textsl{slanted} & 倾斜体 \\
-\cmd{scshape}\cmdindex{scshape} & \cmd{textsc}\cmdindex{textsc}\marg*{\ldots} & \textsc{Small Caps} & 小字母大写 \\[\medskipamount]
-\cmd{em}\cmdindex{em} & \cmd{emph}\cmdindex{emph}\marg*{\ldots} & \emph{emphasized} & 强调,默认斜体 \\
-\cmd{normalfont}\cmdindex{normalfont} & \cmd{textnormal}\cmdindex{textnormal}\marg*{\ldots} & \textnormal{normal font} & 默认字体 \\
+\cmd{rmfamily}\cmdindex{rmfamily} & \cmd{textrm}\cmdindex{textrm}\marg*{\ldots} & \textrm{roman} & 衬线字体(罗马体)\\
+\cmd{sffamily}\cmdindex{sffamily} & \cmd{textsf}\cmdindex{textsf}\marg*{\ldots} & \textsf{sans serif} & 无衬线字体 \\
+\cmd{ttfamily}\cmdindex{ttfamily} & \cmd{texttt}\cmdindex{texttt}\marg*{\ldots} & \texttt{typewriter} & 等宽字体 \\[\medskipamount]
+\cmd{mdseries}\cmdindex{mdseries} & \cmd{textmd}\cmdindex{textmd}\marg*{\ldots} & \textrm{medium} & 正常粗细(中等) \\
+\cmd{bfseries}\cmdindex{bfseries} & \cmd{textbf}\cmdindex{textbf}\marg*{\ldots} & \textbf{bold face} & 粗体 \\[\medskipamount]
+\cmd{upshape}\cmdindex{upshape} & \cmd{textup}\cmdindex{textup}\marg*{\ldots} & \textup{upright} & 直立体 \\
+\cmd{itshape}\cmdindex{itshape} & \cmd{textit}\cmdindex{textit}\marg*{\ldots} & \textit{italic} & 意大利斜体 \\
+\cmd{slshape}\cmdindex{slshape} & \cmd{textsl}\cmdindex{textsl}\marg*{\ldots} & \textsl{slanted} & 倾斜体 \\
+\cmd{scshape}\cmdindex{scshape} & \cmd{textsc}\cmdindex{textsc}\marg*{\ldots} & \textsc{Small Caps} & 小型大写字母 \\[\medskipamount]
+\cmd{em}\cmdindex{em} & \cmd{emph}\cmdindex{emph}\marg*{\ldots} & \emph{emphasized} & 强调,默认斜体 \\
+\cmd{normalfont}\cmdindex{normalfont} & \cmd{textnormal}\cmdindex{textnormal}\marg*{\ldots} & \textnormal{normal font} & 默认字体 \\
\hline
\end{tabular}
\end{table}
@@ -58,7 +58,7 @@
\begin{table}[htp]
\centering
-\caption{字号。} \label{tbl:sizes}
+\caption{字号} \label{tbl:sizes}
\begin{tabular}{ll}
\hline
\cmd{tiny}\cmdindex{tiny} & \tiny tiny font \\
@@ -81,7 +81,7 @@
\begin{table}[htp]
\centering
-\caption{标准文档类中的字号大小。}\label{tbl:ptsizes}
+\caption{标准文档类中的字号大小}\label{tbl:ptsizes}
\begin{tabular}{*{4}{l}}
\hline
\textbf{字号} & \textbf{10pt 选项(默认)} & \textbf{11pt 选项} & \textbf{12pt 选项} \\
@@ -107,7 +107,7 @@ He likes {\LARGE large and
\end{example}
\cmdindex{fontsize}
-\LaTeX\ 还提供了一个基础的命令 \cmd{fontsize} 用于设定任意大小的字号:
+\LaTeX{} 还提供了一个基础的命令 \cmd{fontsize} 用于设定任意大小的字号:
\begin{command}
\cmd{fontsize}\marg{size}\marg{base line-skip}
\end{command}
@@ -121,8 +121,8 @@ He likes {\LARGE large and
\subsection{选用字体宏包}\label{subsec:font-pkgs}
至此已经介绍了如何改变字体样式如粗体、斜体等等,以及如何改变字号,
-但你依然用着 \LaTeX\ 默认的那套、由高德纳设计制作的 Computer Modern 字体。
-有的人可能很喜欢 Times、Palatino,或者更好看的字体。这些字体样式的自由设置在 \LaTeX\ 里还不太容易。
+但你依然用着 \LaTeX{} 默认的那套、由高德纳设计制作的 Computer Modern 字体。
+有的人可能很喜欢 Times / Palatino,或者更好看的字体。这些字体样式的自由设置在 \LaTeX{} 里还不太容易。
幸好大部分时候,许多字体宏包为我们完成了整套配置,我们可以在调用宏包之后,照常使用 \cmd{bfseries} 或 \cmd{ttfamily} 等我们熟悉的命令。
表 \ref{tbl:font-pkgs} 列出了较为常用的字体宏包,其中相当多的宏包还配置了数学字体,或者文本、数学字体兼而有之。
@@ -130,10 +130,10 @@ He likes {\LARGE large and
\subsection{字体编码}\label{subsec:font-encs}
-字体编码对于 \LaTeX\ 用户来讲是一个比较晦涩的概念。它规定了一个字体里包含的符号,并将若干符号用 \LaTeX\ 命令定义。
-注意字体编码并不与我们在 \ref{subsec:ascii} 等小节叙述的 ASCII 编码等一一对应。
+字体编码对于 \LaTeX{} 用户来讲是一个比较晦涩的概念。它规定了一个字体里包含的符号,并将若干符号用 \LaTeX{} 命令定义。
+注意字体编码与我们在 \ref{subsec:ascii} 等小节叙述的 ASCII 编码等并非一一对应。
-常见的正文字体编码有 \texttt{OT1} 和 \texttt{T1} 等。\LaTeX\ 默认使用兼容 plain \TeX\ 的 \texttt{OT1} 编码,使用起来有诸多限制:
+常见的正文字体编码有 \texttt{OT1} 和 \texttt{T1} 等。\LaTeX{} 默认使用兼容 \hologo{plainTeX} 的 \texttt{OT1} 编码,使用起来有诸多限制:
高德纳在设计 Computer Modern 字体时认为一些符号,如大于号、小于号等,原则上都应该在公式里出现,所以在正文字体里这些符号所在的位置被其它符号所占据
(\texttt{OT1} 字体编码、\cmd{rmfamily} 和 \cmd{sffamly} 字体族下, \texttt< 和 \texttt> 排版\ !` 和\ ?` 两个倒立的标点符号,
正常的大于号和小于号可用命令 \cmd{textgreater} 和 \cmd{textless} 输入;\cmd{ttfamily} 字体族下是正常的大于号和小于号)。
@@ -145,13 +145,13 @@ He likes {\LARGE large and
\cmd{usepackage}\oarg*{T1}\marg*{fontenc}
\end{command}
-\pkg{fontenc} 宏包是用来配合传统的 \LaTeX\ 字体的,如表 \ref{tbl:font-pkgs} 中的一些传统字体宏包。如果使用 \texttt{xelatex} 编译方式,
+\pkg{fontenc} 宏包是用来配合传统的 \LaTeX{} 字体的,如表 \ref{tbl:font-pkgs} 中的一些传统字体宏包。如果使用 \texttt{xelatex} 编译方式,
并使用 \pkg{fontspec} 宏包调用 \texttt{ttf} 或 \texttt{otf} 格式字体,就不要再使用 \pkg{fontenc} 宏包。
使用表 \ref{tbl:font-pkgs} 中的字体宏包之前最好查看一下宏包的帮助文档,了解使用方法和注意事项。
\begin{table}[!p]
\centering\small
-\caption{常见的 \LaTeX\ 字体宏包。}\label{tbl:font-pkgs}
+\caption{常见的 \LaTeX{} 字体宏包}\label{tbl:font-pkgs}
\begin{tabular}{lp{30em}}
\hline
\multicolumn{2}{c}{\textbf{文本 / 数学字体搭配的宏包}} \\
@@ -173,7 +173,7 @@ He likes {\LARGE large and
\pkg{mathdesign} & 配合 Charter / Garamond / Utopia 正文字体的数学字体宏包 \\
\hline
\multicolumn{2}{c}{\textbf{文本字体宏包}} \\
- \multicolumn{2}{l}{\footnotesize 以下字体包括传统的 \LaTeX\ 字体格式以及 TrueType / OpenType 格式。} \\
+ \multicolumn{2}{l}{\footnotesize 以下字体包括传统的 \LaTeX{} 字体格式以及 TrueType / OpenType 格式。} \\
\hline
\pkg{cm-unicode} & Computer Modern 风格的 Unicode 字体,支持多种西方语言 \\
\pkg{dejavu} & DejaVu 开源字体 \\
@@ -194,20 +194,23 @@ He likes {\LARGE large and
\end{tabular}
\end{table}
-\subsection{使用 \pkg{fontspec} 宏包更改字体 (\texttt{xelatex})}\label{subsec:fontspec}
+\subsection{使用 \pkg{fontspec} 宏包更改字体}\label{subsec:fontspec}
\index{xelatex@\texttt{xelatex} 命令}
-\texttt{xelatex} 编译命令能够支持直接调用系统和 \TeX\ 发行版中的 \texttt{.ttf} 或 \texttt{.otf} 格式字体%
-\footnote{Linux 下的 \TeX\ Live 为了令 \hologo{XeTeX} 使用 OpenType 字体,需要额外的配置。详见附录 \ref{app:install}。}。相比于上一小节,我们有了更多修改字体的余地。
+\index{lualatex@\texttt{lualatex} 命令}
+\texttt{xelatex} 和 \texttt{lualatex} 编译命令能够支持直接调用系统和 \TeX{} 发行版中的 \texttt{.ttf} 或 \texttt{.otf} 格式字体%
+\footnote{Linux 下的 \hologo{TeXLive} 为了令 \hologo{XeTeX} 使用 OpenType 字体,需要额外的配置。详见附录 \ref{app:install}。}。
+相比于前文介绍的字体宏包,我们有了更多自由修改字体的余地。
\pkgindex{fontspec}
\cmdindex[fontspec]{setmainfont,setsansfont,setmonofont}
-\texttt{xelatex} 命令下支持用户调用字体的宏包是 \pkg{fontspec}。宏包提供了几个设置全局字体的命令,设置 \cmd{rmfamily} 等对应命令的默认字体%
-\footnote{新版本 \pkg{fontspec} 的命令支持(并且推荐)把必选参数 \Arg{font name} 放在可选参数 \Arg{font features} 的前面。}:
+\texttt{xelatex} 和 \texttt{lualatex} 命令下支持用户调用字体的宏包是 \pkg{fontspec}。
+宏包提供了几个设置全局字体的命令,设置 \cmd{rmfamily} 等对应命令的默认字体%
+\footnote{旧版本 \pkg{fontspec} 的命令把必选参数 \Arg{font name} 放在可选参数 \Arg{font features} 的后面。新版本目前兼容旧版本的用法,但推荐使用新版本的用法。}:
\begin{command}
-\cmd{setmainfont}\oarg{font features}\marg{font name} \\
-\cmd{setsansfont}\oarg{font features}\marg{font name} \\
-\cmd{setmonofont}\oarg{font features}\marg{font name}
+\cmd{setmainfont}\marg{font name}\oarg{font features} \\
+\cmd{setsansfont}\marg{font name}\oarg{font features} \\
+\cmd{setmonofont}\marg{font name}\oarg{font features}
\end{command}
其中 \Arg{font name} 使用字体的文件名(带扩展名)或者字体的英文名称。\Arg{font features} 用来手动配置对应的粗体或斜体
,比如为 Windows 下的无衬线字体 Arial 配置粗体和斜体(通常情况下自动检测并设置对应的粗体和斜体,无需手动指定):
@@ -217,22 +220,97 @@ He likes {\LARGE large and
\Arg{font features} 还能配置字体本身的各种特性,这里不再赘述,感兴趣的读者请参考 \pkg{fontspec} 宏包的帮助文档。
需要注意的是:\pkg{fontspec} 宏包会覆盖数学字体设置。需要调用表 \ref{tbl:font-pkgs} 中列出的一些数学字体宏包时,
-应当在调用 \pkg{fontspec} 宏包时指定 \texttt{no-math} 选项。\pkg{fontspec} 宏包可能被其它宏包或文档类(如 \pkg{xeCJK}、\pkg{ctex} 文档类)自动调用时,
+应当在调用 \pkg{fontspec} 宏包时指定 \texttt{no-math} 选项。\pkg{fontspec} 宏包可能被其它宏包或文档类(如 \pkg{ctex} 文档类)自动调用时,
则在文档开头的 \cmd{document\-class} 命令里指定 \texttt{no-math} 选项。
-\subsection{使用 \pkg{xeCJK} 宏包更改中文字体}\label{subsec:CJKfont}
+\subsection{在 \pkg{ctex} 宏包或文档类中更改中文字体}\label{subsec:CJKfont}
-\pkgindex{xeCJK}
-\cmdindex[xeCJK]{setCJKmainfont,setCJKsansfont,setCJKmonofont}
-前文已经介绍过的 \pkg{xeCJK} 宏包使用了和 \pkg{fontspec} 宏包非常类似的语法设置中文字体:
+\pkgindex{xeCJK,ctex}
+\cmdindex[xeCJK,ctex]{setCJKmainfont,setCJKsansfont,setCJKmonofont}
+前文已经介绍过的 \pkg{ctex} 宏包或文档类提供了和 \pkg{fontspec} 宏包非常类似的语法设置中文字体%
+\footnote{使用 \texttt{xelatex} 编译时,这几个命令实际上由 \pkg{xeCJK} 宏包提供;
+使用 \texttt{lualatex} 编译时,则是由 \pkg{ctex} 宏包或文档类对 \pkg{luatexja} 宏包提供的类似命令进行额外封装。}:
\begin{command}
-\cmd{setCJKmainfont}\oarg{font features}\marg{font name} \\
-\cmd{setCJKsansfont}\oarg{font features}\marg{font name} \\
-\cmd{setCJKmonofont}\oarg{font features}\marg{font name}
+\cmd{setCJKmainfont}\marg{font name}\oarg{font features} \\
+\cmd{setCJKsansfont}\marg{font name}\oarg{font features} \\
+\cmd{setCJKmonofont}\marg{font name}\oarg{font features}
\end{command}
由于中文字体少有对应的粗体或斜体,\Arg{font features} 里多用其他字体来配置,
-比如将宋体对应的 \texttt{BoldFont} 配置为黑体,而 \texttt{ItalicFont} 配置为楷体。
+比如在 Windows 中设定基本字体为宋体,并设定对应的 \texttt{BoldFont} 为黑体, \texttt{ItalicFont} 为楷体:
+\begin{verbatim}
+\setCJKmainfont{SimSun}[BoldFont=SimHei, ItalicFont=KaiTi]
+\end{verbatim}
+
+\subsection{使用 \pkg{unicode-math} 宏包配置 Unicode 数学字体}\label{subsec:unicode-math}
+
+\pkgindex{unicode-math}
+\cmdindex[unicode-math]{setmathfont}
+Unicode 数学字体是一类 OpenType 字体,包含了 Unicode 字符集中的数学符号部分,字体中也设定了数学公式排版所需的一些参数。在 \texttt{xelatex} 或者 \texttt{lualatex} 编译命令下,借助 \pkg{unicode-math} 宏包可以调用 Unicode 数学字体配置数学公式的字体风格。
+
+在导言区使用 \cmd{usepackage}\marg*{unicode-math} 后,使用 \cmd{setmathfont} 命令即可:
+\begin{command}
+\cmd{setmathfont}\marg{font name}\oarg{font features}
+\end{command}
+
+绝大多数时候,只需要给定字体名称 \Arg{font name} 即可。由于篇幅所限,在此不介绍可选参数 \Arg{font feature} 涉及的配置,有兴趣的读者请参考宏包的帮助文档。
+
+Unicode 数学字体相比于正文字体的选择余地不多。表 \ref{tbl:uni-math-fonts} 给出了较为常用的 Unicode 数学字体。
+
+\begin{table}[htp]
+\centering\small
+\caption{常用 Unicode 数学字体。}
+\label{tbl:uni-math-fonts}
+\begin{tabular}{llp{20em}}
+\hline
+\textbf{数学字体名称} & \textbf{配套正文字体名称} & \textbf{备注}\\
+\hline
+\multicolumn{3}{c}{开源字体,发布于 CTAN} \\
+\hline
+\texttt{Latin Modern Math} & \texttt{Latin Modern} & 基于 Computer Modern 风格 \\
+\texttt{STIX Math} & \texttt{STIX} & Times 风格 \\
+\texttt{XITS Math} & \texttt{XITS} & 基于 STIX,Times 风格,有粗体 XITS Math Bold 可用 \\
+\texttt{TeX Gyre Pagella Math} & \texttt{TeX Gyre Pagella} & Palatino 风格 \\
+\texttt{TeX Gyre Termes Math} & \texttt{TeX Gyre Termes} & Times 风格 \\
+\texttt{Libertinus Math} & \texttt{Libertinus} & Linux Libertine 风格 \\
+\texttt{Fira Math} & \texttt{Fira Sans} & 无衬线数学字体 \\
+\hline
+\multicolumn{3}{c}{商业字体} \\
+\hline
+\texttt{Cambria Math} & \texttt{Cambria} & 较新版本的微软 Office 预装数学字体 \\
+\texttt{Lucida Bright Math OT} & \texttt{Lucida Bright OT} & 须购买商业授权 \\
+\texttt{Minion Math} & \texttt{Minion Pro} & 须购买商业授权 \\
+\hline
+\end{tabular}
+\end{table}
+
+\section{文字装饰和强调}\label{sec:emphasize}
+
+强调文字的方法,或者是添加下划线等装饰物,或者是改变文字的字体。
+
+\cmdindex{underline}
+\LaTeX{} 定义了 \cmd{underline} 命令用来为文字添加下划线:
+\begin{example}
+An \underline{underlined} text.
+\end{example}
+
+\pkgindex{ulem}
+\cmdindex[ulem]{uline}
+\cmd{underline} 命令生成下划线的样式不够灵活,不同的单词可能生成高低各异的下划线,并且无法换行。
+\pkg{ulem} 宏包提供了更灵活的解决方案,它提供的 \cmd{uline} 命令能够轻松生成自动换行的下划线:
+\begin{example}
+An example of \uline{some
+long and underlined words.}
+\end{example}
+
+\cmdindex{emph}
+前一节介绍了 \cmd{emph} 命令,它将文字变为斜体以示强调,而如果在已强调的文字中嵌套使用 \cmd{emph} 命令,
+命令内则使用直立体文字:
+\begin{example}
+Some \emph{emphasized words,
+including \emph{double-emphasized}
+words}, are shown here.
+\end{example}
\section{段落格式和间距}\label{sec:par-lengths}
@@ -246,7 +324,7 @@ He likes {\LARGE large and
\begin{table}[htp]
\centering
-\caption{\TeX\ / \LaTeX\ 中的长度单位。}\label{tbl:length-unit}
+\caption{\TeX{} / \LaTeX{} 中的长度单位}\label{tbl:length-unit}
\begin{tabular}{ll}
\hline
\texttt{pt}\unitindex{pt} & 点阵宽度,1/72.27\texttt{in} \\
@@ -262,13 +340,13 @@ He likes {\LARGE large and
\end{table}
在一些情况下还会用到可伸缩的“弹性长度”,如 \texttt{12pt plus 2pt minus 3pt}
-表示基础长度为 \texttt{12pt},可以伸展到 \texttt{14pt} ,也可以收缩到 \texttt{9pt}。
+表示基础长度为 \texttt{12pt},可以伸展到 \texttt{14pt},也可以收缩到 \texttt{9pt}。
也可只定义 \texttt{plus} 或者 \texttt{minus} 的部分,如 \texttt{0pt plus 5pt}。
长度的数值还可以用长度变量本身或其倍数来表达,如 \texttt{2.5}\cmd{parindent} 等。
\cmdindex{newlength,setlength,addtolength}
-\LaTeX\ 预定义了大量的长度变量用于控制版面格式。如页面宽度和高度、首行缩进、段落间距等。
+\LaTeX{} 预定义了大量的长度变量用于控制版面格式。如页面宽度和高度、首行缩进、段落间距等。
如果需要自定义长度变量,需使用如下命令:
\begin{command}
\cmd{newlength}\marg*{\cmd{\Arg{length command}}}
@@ -334,16 +412,18 @@ But remember I am a liar.}\par
它们和设置行距的命令一样,在分段时生效。
\cmdindex{indent,noindent}
+控制段落缩进的命令为:
+
\begin{command}
\cmd{indent} \\
\cmd{noindent}
\end{command}
-\LaTeX\ 默认在段落开始时缩进,长度为用上述命令设置的 \cmd{parindent}。如果你在某一段不想使用缩进,可使用某一段开头使用
-\cmd{noindent} 命令。相反地,\cmd{indent} 命令强制开启一段首行缩进的段落。多个 \cmd{indent} 命令可以累加缩进量。
+\LaTeX{} 默认在段落开始时缩进,长度为用上述命令设置的 \cmd{parindent}。如果需要在某一段不缩进,可在段落开头使用
+\cmd{noindent} 命令。相反地,\cmd{indent} 命令强制开启一段首行缩进的段落。在段落开头使用多个 \cmd{indent} 命令可以累加缩进量。
\pkgindex{indentfirst}
-\LaTeX\ 还默认\textbf{在 \cmd{chapter}、\cmd{section} 等章节标题命令之后的第一段不缩进}%
+\LaTeX{} 还默认\textbf{在 \cmd{chapter}、\cmd{section} 等章节标题命令之后的第一段不缩进}%
\footnote{\pkg{ctex} 宏包和文档类默认按照中文习惯保持标题后第一段的首行缩进。}。
如果不习惯这种设定,可以调用 \pkg{indent\-first} 宏包,令第一段的首行缩进照常。
@@ -356,14 +436,14 @@ But remember I am a liar.}\par
\subsection{水平间距}\label{subsec:hspace}
\cmdindex{hspace}
-\LaTeX 默认为将单词之间的“空格”转化为水平间距。如果需要在文中手动插入额外的水平间距,可使用 \cmd{hspace} 命令:
+\LaTeX{} 默认为将单词之间的“空格”转化为水平间距。如果需要在文中手动插入额外的水平间距,可使用 \cmd{hspace} 命令:
\begin{example}
This\hspace{1.5cm}is a space
of 1.5 cm.
\end{example}
\cmdindex{hspace*}
-\cmd{hspace} 命令生成的水平间距如果位于一行的开头或末尾,则有可能因为断行而被“吞掉”。可使用 \cmd{hspace*} 命令代替 \cmd{hspace} 命令
+\cmd{hspace} 命令生成的水平间距如果位于一行的开头或末尾,则有可能因为断行而被舍弃。可使用 \cmd{hspace*} 命令代替 \cmd{hspace} 命令
得到不会因断行而消失的水平间距。
\cmdindex{stretch,fill}
@@ -394,7 +474,7 @@ nor\qquad mal\\
\subsection{垂直间距}\label{subsec:vspace}
-在页面中,段落、章节标题、行间公式、列表、浮动体等元素之间的间距是 \LaTeX\ 预设的。比如 \cmd{parskip} ,默认设置为 \texttt{0pt plus 1pt}。
+在页面中,段落、章节标题、行间公式、列表、浮动体等元素之间的间距是 \LaTeX{} 预设的。比如 \cmd{parskip},默认设置为 \texttt{0pt plus 1pt}。
\cmdindex{vspace,vspace*}
如果我们想要人为地增加段落之间的垂直间距,可以在两个段落之间的位置使用 \cmd{vspace} 命令:
@@ -408,8 +488,8 @@ Another paragraph.
\cmd{vspace} 命令生成的垂直间距在一页的顶端或底端可能被“吞掉”,类似 \cmd{hspace} 在一行的开头和末尾那样。
对应地,\cmd{vspace*} 命令产生不会因断页而消失的垂直间距。\cmd{vspace} 也可用 \cmd{stretch} 设置无限延伸的垂直长度。
-\index{\@\crcmd\ (\textit{换行})}
-在段落内的两行之间增加垂直间距,一般通过给断行命令 \crcmd\ 加可选参数,如 \crcmd\texttt{[6pt]} 或 \crcmd\texttt{*[6pt]}。
+\index{\@\crcmd{} (\textit{换行})}
+在段落内的两行之间增加垂直间距,一般通过给断行命令 \crcmd{} 加可选参数,如 \crcmd\texttt{[6pt]} 或 \crcmd\texttt{*[6pt]}。
\cmd{vspace} 也可以在段落内使用,区别在于 \cmd{vspace} 只引入垂直间距而不断行:
\begin{example}
Use command \verb|\vspace{12pt}|
@@ -418,11 +498,11 @@ between lines in a paragraph.
Or you can use \verb|\\[12pt]|
to \\[12pt] add vertical space,
-but it also breaks the paragraph.
+but it also breaks the line.
\end{example}
\cmdindex{bigskip,medskip,smallskip}
-另外 \LaTeX\ 还提供了\cmd{bigskip}, \cmd{medskip}, \cmd{smallskip} 来增加预定义长度的垂直间距。
+另外 \LaTeX{} 还提供了\cmd{bigskip}, \cmd{medskip}, \cmd{smallskip} 来增加预定义长度的垂直间距。
\begin{example}
\parbox[t]{3em}{TeX\par TeX}
\parbox[t]{3em}{TeX\par\smallskip TeX}
@@ -432,7 +512,7 @@ but it also breaks the paragraph.
\section{页面和分栏}\label{sec:page-columns}
-我们不妨回顾一下第一章介绍的文档类属性。\LaTeX\ 允许用户通过为文档类指定选项来控制纸张的大小(见 \ref{subsec:classes} 小节),
+我们不妨回顾一下第一章介绍的文档类属性。\LaTeX{} 允许用户通过为文档类指定选项来控制纸张的大小(见 \ref{subsec:classes} 小节),
包括 \texttt{a4paper}、\texttt{letterpaper}等等,并配合字号设置了适合的页边距。
\cmdindex{textheight,textwidth}
@@ -512,9 +592,9 @@ but it also breaks the paragraph.
\subsection{页面内容的垂直对齐}\label{subsec:raggedbottom}
-\LaTeX\ 默认将页面内容在垂直方向分散对齐。对于有大量图表的文档,许多时候想要做到排版匀称的页面很困难,
+\LaTeX{} 默认将页面内容在垂直方向分散对齐。对于有大量图表的文档,许多时候想要做到排版匀称的页面很困难,
垂直分散对齐会造成某些页面的垂直间距过宽,还可能报大量的 \texttt{Underfull} \cmd{vbox} 消息。
-\LaTeX\ 还提供了另一种策略:将页面内容向顶部对齐,给底部留出高度不一的空白。
+\LaTeX{} 还提供了另一种策略:将页面内容向顶部对齐,给底部留出高度不一的空白。
\cmdindex{raggedbottom, flushbottom}
以下命令分别令页面在垂直方向向顶部对齐 / 分散对齐:
@@ -526,8 +606,8 @@ but it also breaks the paragraph.
\subsection{分栏}\label{subsec:columns}
\cmdindex{onecolumn,twocolumn}
-\LaTeX\ 支持简单的单栏或双栏排版。标准文档类的全局选项 \texttt{onecolumn}、\texttt{twocolumn}
-可控制全文分单栏或双栏排版。\LaTeX\ 也提供了切换单/双栏排版的命令:
+\LaTeX{} 支持简单的单栏或双栏排版。标准文档类的全局选项 \texttt{onecolumn}、\texttt{twocolumn}
+可控制全文分单栏或双栏排版。\LaTeX{} 也提供了切换单/双栏排版的命令:
\begin{command}
\cmd{onecolumn} \\
\cmd{twocolumn}\oarg{one-column top material}
@@ -567,7 +647,7 @@ but it also breaks the paragraph.
\cmdindex{pagestyle,thispagestyle}
\pinyinindex{yemei}{页眉}
\pinyinindex{yejiao}{页脚}
-\LaTeX\ 中提供了命令 \cmd{pagestyle} 来修改页眉页脚的样式:
+\LaTeX{} 中提供了命令 \cmd{pagestyle} 来修改页眉页脚的样式:
\begin{command}
\cmd{pagestyle}\marg{page-style}
\end{command}
@@ -577,11 +657,11 @@ but it also breaks the paragraph.
\cmd{thispagestyle}\marg{page-style}
\end{command}
-\Arg{page-style} 参数为样式的名称,在 \LaTeX\ 里预定义了四类样式,见表 \ref{tbl:pagestyle}。
+\Arg{page-style} 参数为样式的名称,在 \LaTeX{} 里预定义了四类样式,见表 \ref{tbl:pagestyle}。
\begin{table}[htp]
\centering
-\caption{\LaTeX\ 预定义的页眉页脚样式。}\label{tbl:pagestyle}
+\caption{\LaTeX{} 预定义的页眉页脚样式}\label{tbl:pagestyle}
\begin{tabular}{lp{30em}}
\hline
\texttt{empty} & 页眉页脚为空 \\
@@ -616,7 +696,7 @@ but it also breaks the paragraph.
\subsection{手动更改页眉页脚的内容}\label{subsec:marks}
\cmdindex{markright,markboth}
-对于 headings 或者 myheadings 样式,\LaTeX\ 允许用户使用命令手动修改页眉上面的内容,
+对于 headings 或者 myheadings 样式,\LaTeX{} 允许用户使用命令手动修改页眉上面的内容,
特别是因为使用了 \cmd{chapter*} 等命令而无法自动生成页眉页脚的情况:
\begin{command}
\cmd{markright}\marg{right-mark}\\
@@ -626,10 +706,10 @@ but it also breaks the paragraph.
在双面排版、\texttt{headings / myheadings} 页眉页脚样式下,\Arg{left-mark} 和 \Arg{right-mark} 的内容分别预期出现在左页(偶数页)和右页(奇数页)。
事实上 \cmd{chapter} 和 \cmd{section} 等章节命令内部也使用 \cmd{mark\-both} 或者 \cmd{mark\-right} 生成页眉。
-\LaTeX\ 默认将页眉的内容都转为大写字母。如果你不喜欢这样,可以尝试以下代码
-(相关命令的用法参照 \ref{subsec:newcmd} 节)%
+\LaTeX{} 默认将页眉的内容都转为大写字母。如果需要保持字母的大小写,可以尝试以下代码
+(\cmd{\renewcommand} 命令的用法详见 \ref{subsec:newcmd} 节)%
\footnote{但是这不能改变页眉的斜体样式(\cmd{slshape}),斜体是定义在 \texttt{headings} 样式里的。
-如果不喜欢斜体,可在 \cmd{mark\-both} 等命令的参数里先使用 \cmd{normal\-font} ,再使用想要的字体样式命令,
+如果不喜欢斜体,可在 \cmd{mark\-both} 等命令的参数里先使用 \cmd{normal\-font},再使用想要的字体样式命令,
或直接尝试使用 \pkg{fancyhdr} 宏包。}:
\begin{verbatim}
\renewcommand\chaptermark[1]{%
diff --git a/info/lshort/chinese/src/chap.06.spec.tex b/info/lshort/chinese/src/chap/chap.06.spec.tex
index 06b06f7335..4db6214606 100644
--- a/info/lshort/chinese/src/chap.06.spec.tex
+++ b/info/lshort/chinese/src/chap/chap.06.spec.tex
@@ -2,7 +2,7 @@
\addtocontents{los}{\protect\addvspace{10pt}}
\begin{intro}
-本章介绍一些特色的 \LaTeX\ 辅助功能。前两个功能 \hologo{BibTeX} 和 makeindex 依靠一些辅助程序自动生成参考文献、索引等;
+本章介绍一些特色的 \LaTeX{} 辅助功能。前两个功能 \hologo{BibTeX} 和 makeindex 依靠一些辅助程序自动生成参考文献、索引等;
之后的使用颜色、超链接等则令我们生成美观易用的电子文档。
\end{intro}
@@ -11,11 +11,11 @@
\subsection{基本的参考文献和引用}\label{subsec:bib-basics}
\pinyinindex{cankaowenxian}{参考文献}
-\LaTeX\ 提供的参考文献和引用方式比较原始,需要用户自行书写参考文献列表(包括格式),
+\LaTeX{} 提供的参考文献和引用方式比较原始,需要用户自行书写参考文献列表(包括格式),
因此较难直接使用。相关的命令我们只作最简单的介绍。
\cmdindex{cite}
-\LaTeX\ 提供了最基本的 \cmd{cite} 命令用于在正文中引用参考文献:
+\LaTeX{} 提供了最基本的 \cmd{cite} 命令用于在正文中引用参考文献:
\begin{command}
\cmd{cite}\marg{citation}
\end{command}
@@ -99,9 +99,9 @@ Partl~\cite{germenTeX} has proposed that \ldots
\subsection{\hologo{BibTeX} 样式}\label{subsec:bibtex-style}
参考文献的写法在不同文献里千差万别,包括作者、标题、年份等各项的顺序和字体样式、文献在列表中的排序规则等。
-\hologo{BibTeX} 用样式(style)来管理参考文献的写法。\hologo{BibTeX} 提供了几个预定义的样式,如 plain, unsrt, alpha 等。
-如果使用期刊模板的话,可能会提供自用的样式。
-样式文件以 \texttt{.bst} 为扩展名。
+\hologo{BibTeX} 用样式(style)来管理参考文献的写法。\hologo{BibTeX} 提供了几个预定义的样式,
+如 \texttt{plain}, \texttt{unsrt}, \texttt{alpha} 等。
+如果使用期刊模板的话,可能会提供自用的样式。样式文件以 \texttt{.bst} 为扩展名。
\cmdindex{bibliographystyle}
使用样式文件的方法是在源代码内(一般在导言区)使用 \cmd{biblio\-graphy\-style} 命令:
@@ -114,7 +114,7 @@ Partl~\cite{germenTeX} has proposed that \ldots
效果大致如表 \ref{tbl:bibtex-style} 所示。
\begin{table}[htp]
-\caption{\hologo{BibTeX} 样式的排版效果。}\label{tbl:bibtex-style}
+\caption{\hologo{BibTeX} 样式的排版效果}\label{tbl:bibtex-style}
\hrule
\begin{trivlist}\item\relax
\textbf{plain}\\{}
@@ -135,7 +135,7 @@ Partl~\cite{germenTeX} has proposed that \ldots
\newblock {\em Journal of \TeX perts}, 36(7):114--120, Mar 2013.
\medskip
-\textbf{amsplain}(\AmS\ 文档类 \textsf{amsart} 等配套的样式)\\{}
+\textbf{amsplain}(\AmS{} 文档类 \textsf{amsart} 等配套的样式)\\{}
[1] Alice Axford, Bob Birkin, Charlie Copper, and Danny Dannford, \emph{Demostration of bibliography
items}, Journal of \TeX perts \textbf{36} (2013), no.~7, 114--120.
@@ -159,7 +159,7 @@ Partl~\cite{germenTeX} has proposed that \ldots
现在我们来看如何利用 \hologo{BibTeX} 数据库生成参考文献和引用。
第一步:准备一份 \hologo{BibTeX} 数据库,假设数据库文件名为 \texttt{books.bib},
-和 \LaTeX\ 源代码\textbf{一般位于同一个目录下}。
+和 \LaTeX{} 源代码\textbf{一般位于同一个目录下}。
第二步:在源代码中添加必要的命令。假设源代码名为 \texttt{demo.tex}(见源代码 \ref{code:bibtex-demo})。
\begin{enumerate}
@@ -198,7 +198,7 @@ and \cite{citation2} \ldots
第三步:写好了以上两个文件之后,我们就可以开始编译了。
\begin{enumerate}
- \item 首先使用 \texttt{pdflatex} 或 \texttt{xelatex} 等命令编译 \LaTeX\ 源代码 \texttt{demo.tex};
+ \item 首先使用 \texttt{pdflatex} 或 \texttt{xelatex} 等命令编译 \LaTeX{} 源代码 \texttt{demo.tex};
\item 接下来用 \texttt{bibtex} 命令处理 \texttt{demo.aux} 辅助文件记录的参考文献格式、引用条目等信息。
\texttt{bibtex} 命令处理完毕后会生成 \texttt{demo.bbl} 文件,内容就是一个 \env{thebibliography} 环境;
\item 再使用 \texttt{pdflatex} 或 \texttt{xelatex} 等命令把源代码 \texttt{demo.tex} 编译\textbf{两遍},读入参考文献并正确生成引用。
@@ -229,14 +229,14 @@ xelatex demo
\end{command}
它们分别生成形如(\emph{Axford et~al.}, 2013) 和 \emph{Axford et~al.} (2013) 的人名——年份引用。
-正确排版人名——年份引用还依赖于特定的 \hologo{BibTeX} 样式。\pkg{natbib} 提供了与 \LaTeX\ 预定义样式相对应的几个样式,
+正确排版人名——年份引用还依赖于特定的 \hologo{BibTeX} 样式。\pkg{natbib} 提供了与 \LaTeX{} 预定义样式相对应的几个样式,
包括 \texttt{plainnat}、\texttt{abbrvnat} 和 \texttt{unsrtnat}。学术论文模板是否支持 \pkg{natbib},需要参考其帮助文档。
\pkg{natbib} 宏包同样也支持数字引用,并且支持将引用的序号压缩,例如:
\begin{verbatim}
\usepackage[numbers,sort&compress]{natbib}
\end{verbatim}
-调用 \pkg{natbib} 宏包时指定以上选项后,连续引用多篇文献时,会生成形如 (3-7) 的引用而不是 (3, 4, 5, 6, 7)。
+调用 \pkg{natbib} 宏包时指定以上选项后,连续引用多篇文献时,会生成形如 (3--7) 的引用而不是 (3, 4, 5, 6, 7)。
\pkg{natbib} 宏包还有更多选项和用法,比如默认的引用是用小括号包裹的,可指定 \texttt{square} 选项改为中括号;
再比如 \cmd{citep} 命令也支持可选参数,为引用前后都添加额外内容。这里不再赘述,请参考 \pkg{natbib} 宏包的帮助文档。
@@ -246,8 +246,8 @@ xelatex demo
\pkgindex{biblatex}
本节的末尾简单介绍一下基于 \pkg{biblatex} 宏包排版参考文献的方式。
-\pkg{biblatex} 宏包是一套基于 \LaTeX\ 宏命令的参考文献解决方案,提供了便捷的格式控制和强大的排序、分类、筛选、多文献表等功能。
-\pkg{biblatex} 宏包也因其对 UTF-8 和中文参考文献的良好支持,被国内较多 \LaTeX\ 模板采用。
+\pkg{biblatex} 宏包是一套基于 \LaTeX{} 宏命令的参考文献解决方案,提供了便捷的格式控制和强大的排序、分类、筛选、多文献表等功能。
+\pkg{biblatex} 宏包也因其对 UTF-8 和中文参考文献的良好支持,被国内较多 \LaTeX{} 模板采用。
基于 \pkg{biblatex} 宏包的方式与基于 \hologo{BibTeX} 的传统方式有一定区别,下面从文档结构和命令、编译方式、样式选择等方面逐一介绍:
@@ -285,7 +285,7 @@ xelatex demo
见文献\cite{caimin2006}。
\printbibliography
-\end{document}
+\end{document}
\end{Verbatim}
\caption{应用 \pkg{biblatex} 的示例 egbibdata.bib 和 demo.tex。}
\end{sourcecode}
@@ -308,7 +308,7 @@ xelatex demo
\begin{verbatim}
% 同时调用 gb7714-2015.bbx 和 gb7714-2015.cbx
\usepackage[style=gb7714-2015]{biblatex}
-% 著录样式调用 gb7714-2015.bbx,引用样式调用 biblatex 宏包自带的 authoryear
+% 著录样式调用 gb7714-2015.bbx,引用样式调用 biblatex 宏包自带的 authoryear
\usepackage[bibstyle=gb7714-2015,citestyle=authoryear]{biblatex}
\end{verbatim}
@@ -326,9 +326,9 @@ xelatex demo
\item[\texttt{trad-alpha}]
\pkg{biblatex-trad} 样式包,移植自 \hologo{BibTeX} 默认的 \texttt{alpha} 样式。另外还包括 \texttt{trad-abbrv}、\texttt{trad-plain} 和 \texttt{trad-unsrt}。
\item[\texttt{gb7714-2015}]
- 符合中文文献著录标准 GB/T 7714-2015 的样式,著录按顺序编码排版。另外还包括按作者-年份顺序排版著录的样式 \texttt{gb7714-2015ay}。
+ 符合中文文献著录标准 GB/T 7714--2015 的样式,著录按顺序编码排版。另外还包括按作者-年份顺序排版著录的样式 \texttt{gb7714-2015ay}。
\item[\texttt{caspervector}]
- 以中文文献著录标准 GB/T 7714-2015 为基础的一个样式。
+ 以中文文献著录标准 GB/T 7714--2015 为基础的一个样式。
\item[\texttt{ieee}]
兼容 \pkg{IEEEtran} 风格的样式,著录按顺序编码排版。另外还包括按作者-年份顺序排版著录的样式 \texttt{ieee-alphabetic}。
\end{description}
@@ -337,7 +337,7 @@ xelatex demo
\pinyinindex{suoyin}{索引}
\index{makeindex@makeindex 工具}
-书籍和大文档通常用索引来归纳关键词,方便用户查阅。\LaTeX\ 借助配套的 makeindex 程序完成对索引的排版。
+书籍和大文档通常用索引来归纳关键词,方便用户查阅。\LaTeX{} 借助配套的 makeindex 程序完成对索引的排版。
\subsection{使用 makeindex 工具的方法}\label{subsec:makeidx}
@@ -345,7 +345,7 @@ xelatex demo
\pkgindex{makeidx}
\cmdindex[makeidx]{makeindex}
-第一步,在 \LaTeX\ 源代码的导言区调用 \pkg{makeidx} 宏包,并使用 \cmd{makeindex} 命令开启索引的收集:
+第一步,在 \LaTeX{} 源代码的导言区调用 \pkg{makeidx} 宏包,并使用 \cmd{makeindex} 命令开启索引的收集:
\begin{verbatim}
\usepackage{makeidx}
\makeindex
@@ -377,7 +377,7 @@ xelatex demo
\begin{table}[htp]
\centering
-\caption{索引项的写法列表。}\label{tbl:index-entry}
+\caption{索引项的写法列表}\label{tbl:index-entry}
\begin{tabular}{lll}
\hline
\textbf{举例} &\textbf{索引项} &\textbf{备注}\\
@@ -398,7 +398,7 @@ xelatex demo
\verb+bold@\textbf{bold}+ & \textbf{bold}, 12 & 输出粗体 \\
\hline
\multicolumn{3}{l}{页码范围} \\[.8ex]
- \verb+morning|(+ & morning, 6-7 & 范围索引的开头 \\
+ \verb+morning|(+ & morning, 6--7 & 范围索引的开头 \\
\verb+morning|)+ & & 范围索引的结尾 \\
\hline
\multicolumn{3}{l}{格式化索引页码} \\[.8ex]
@@ -423,7 +423,7 @@ Test index.
\section{使用颜色}\label{sec:color}
\pinyinindex{yanse}{颜色}
-原始的 \LaTeX\ 不支持使用各种颜色。\pkg{color} 宏包或者 \pkg{xcolor} 宏包提供了对颜色的支持,给 PDF 输出生成颜色的特殊指令。
+原始的 \LaTeX{} 不支持使用各种颜色。\pkg{color} 宏包或者 \pkg{xcolor} 宏包提供了对颜色的支持,给 PDF 输出生成颜色的特殊指令。
\subsection{颜色的表达方式}\label{subsec:color-code}
@@ -464,7 +464,7 @@ Test index.
\begin{table}[htp]
\centering
-\caption{\pkg{color} 和 \pkg{xcolor} 宏包可用的颜色名称。}\label{tbl:colors}
+\caption{\pkg{color} 和 \pkg{xcolor} 宏包可用的颜色名称}\label{tbl:colors}
\renewcommand\arraystretch{1.1}
\begin{tabularx}{0.8\textwidth}{*{4}{>{\raggedleft\arraybackslash}X}}
\hline
@@ -543,12 +543,12 @@ Test index.
\pinyinindex{chaolianjie}{超链接}
PDF 文档格式是现今最流行的电子文档格式,而电子文档最实用的需求之一就是超链接功能。
-\LaTeX\ 中实现这一功能的是 \pkg{hyperref} 宏包。
+\LaTeX{} 中实现这一功能的是 \pkg{hyperref} 宏包。
\subsection{\pkg{hyperref} 宏包}\label{subsec:hyperref}
\pkgindex{hyperref}
-\pkg{hyperref} 宏包涉及到的链接遍布 \LaTeX\ 的每一个角落——目录、引用、脚注、索引、参考文献等等都被封装成超链接。
+\pkg{hyperref} 宏包涉及到的链接遍布 \LaTeX{} 的每一个角落——目录、引用、脚注、索引、参考文献等等都被封装成超链接。
但这也使得它与其它宏包发生冲突的可能性大大增加,虽然宏包已经尽力解决各方面的兼容性,但仍不能面面俱到。
为减少可能的冲突,习惯上将 \pkg{hyperref} 宏包\textbf{放在其它宏包之后调用}。
@@ -562,10 +562,11 @@ PDF 文档格式是现今最流行的电子文档格式,而电子文档最实
\cmd{hypersetup}\marg*{\Arg{option1},\Arg{option2}=\marg*{value},\ldots} \\
\cmd{usepackage}\oarg*{\Arg{option1},\Arg{option2}=\marg*{value},\ldots}\marg*{hyperref}
\end{command}
+可用的参数见表 \ref{tbl:hyperref-settings}。
\begin{table}[htp]
\centering
-\caption{\pkg{hyperref} 宏包提供的参数设置。}\label{tbl:hyperref-settings}
+\caption{\pkg{hyperref} 宏包提供的参数设置}\label{tbl:hyperref-settings}
\begin{tabular}{llp{19.5em}}
\hline
\textbf{参数} & \textbf{默认值} & \textbf{含义} \\
@@ -576,16 +577,12 @@ PDF 文档格式是现今最流行的电子文档格式,而电子文档最实
\texttt{pdfborder=}\marg*{\Arg{n} \Arg{n} \Arg{n}}
& 0 0 1 & 超链接边框设置,设为 0 0 0 可取消边框 \\
\hline
- \texttt{bookmarks=}\Arg{true\textnormal|false} \textsuperscript{\dag}
+ \texttt{bookmarks=}\Arg{true\textnormal|false}\textsuperscript{\dag}
& \textit{true} & 是否生成书签 \\
\texttt{bookmarksopen=}\Arg{true\textnormal|false}
& \textit{false} & 是否展开书签 \\
\texttt{bookmarksnumbered=}\Arg{true\textnormal|false}
& \textit{false} & 书签是否带章节编号 \\
- \texttt{CJKbookmarks=}\Arg{true\textnormal|false}
- & \textit{false} & 使用 \pkg{CJK} 宏包/ GBK 编码排版中文时必须设定的参数,
- 需要将生成的 \texttt{.out} 文件用工具处理编码,或调用 \pkg{xCJK2uni} 宏包 \\
- \texttt{unicode} & & 使用 \pkg{CJKutf8} 宏包/ UTF-8 编码排版中文时必须设定的参数 \\
\hline
\texttt{pdftitle=}\Arg{string}
& 空 & 标题 \\
@@ -601,7 +598,7 @@ PDF 文档格式是现今最流行的电子文档格式,而电子文档最实
\end{tabular}
\begin{quotation}
\small
-\textsuperscript{\dag} 该选项只能在调用宏包时指定。
+\textsuperscript{\dag} 该选项只能作为宏包选项,在调用宏包时指定。
\end{quotation}
\end{table}
@@ -652,9 +649,9 @@ PDF 文档格式是现今最流行的电子文档格式,而电子文档最实
默认情况下会为 PDF 自动生成书签。和交叉引用、索引等类似,生成书签也需要多次编译源代码,第一次编译将书签记录写入 \texttt{.out} 文件,
第二次编译才正确生成书签。
-书签的一些属性见表 \ref{tbl:hyperref-settings}。
-在 \texttt{latex} + \texttt{dvipdfmx} 或 \texttt{pdflatex} 命令下使用 \pkg{ctex} 宏包或 \pkg{CJK} 宏包时,
-为了正确生成中文书签而不出现乱码,需要额外的设置,甚至繁琐的工序(这也是我们推荐使用 \texttt{xelatex} 命令处理中文的原因)。
+书签的一些属性见表 \ref{tbl:hyperref-settings}。使用 \pkg{CJK} 宏包时,为了防止中文书签出现乱码,
+需要进行繁琐的设置;但在使用 \pkg{ctex} 宏包和文档类、且使用 \texttt{xelatex} 或 \texttt{lualatex} 编译的情况下,
+无需用户额外干预,即可正确生成中文书签。
\cmdindex[hyperref]{pdfbookmark}
\pkg{hyperref} 还提供了手动生成书签的命令:
@@ -664,13 +661,13 @@ PDF 文档格式是现今最流行的电子文档格式,而电子文档最实
\Arg{bookmark} 为书签名称,\Arg{anchor} 为书签项使用的锚点(类似交叉引用的标签)。可选参数 \Arg{level} 为书签的层级,默认为 0。
\cmdindex[hyperref]{texorpdfstring}
-章节命令里往往有 \LaTeX\ 命令甚至数学公式,而 PDF 书签是纯文本,对命令和公式的处理很困难,有出错的风险。
+章节命令里往往有 \LaTeX{} 命令甚至数学公式,而 PDF 书签是纯文本,对命令和公式的处理很困难,有出错的风险。
\pkg{hyperref} 宏包已经为我们处理了许多常见命令,如 \cmd{LaTeX} 和字体命令 \cmd{textbf} 等,
-对于未被处理的命令或数学公式,就要在章节标题中使用如下命令,分别提供 \LaTeX\ 代码和 PDF 书签可用的纯文本:
+对于未被处理的命令或数学公式,就要在章节标题中使用如下命令,分别提供 \LaTeX{} 代码和 PDF 书签可用的纯文本:
\begin{command}
-\cmd{texorpdfstring}\marg{\LaTeX\ code}\marg{PDF bookmark text}
+\cmd{texorpdfstring}\marg{\LaTeX{} code}\marg{PDF bookmark text}
\end{command}
-比如在章节名称里使用公式 $E=mc^2$,而书签使用字符 \texttt{E=mc\textasciicircum 2}:
+比如在章节名称里使用公式 $E=mc^2$,而书签则使用纯文本形式的 \verb|E=mc^2|:
\begin{verbatim}
\section{质能公式 \texorpdfstring{$E=mc^2$}{E=mc\textasciicircum 2}}
\end{verbatim}
diff --git a/info/lshort/chinese/src/chap.07.graphic.tex b/info/lshort/chinese/src/chap/chap.07.graphic.tex
index 7be4a2ed8b..11abdec17d 100644
--- a/info/lshort/chinese/src/chap.07.graphic.tex
+++ b/info/lshort/chinese/src/chap/chap.07.graphic.tex
@@ -2,7 +2,7 @@
\addtocontents{los}{\protect\addvspace{10pt}}
\begin{intro}
-除了排版文字,\LaTeX\ 也支持用代码表示图形。不同的扩展已经极大地丰富了 \LaTeX\ 的图形功能,\TikZ\ 就是其中之一。
+除了排版文字,\LaTeX{} 也支持用代码表示图形。不同的扩展已经极大地丰富了 \LaTeX{} 的图形功能,\hologo{TikZ} 就是其中之一。
本章将带你了解一些基本的绘图功能。
一些特殊的绘图,如交换图、树状图甚至分子式和电路图也能够通过代码绘制,
@@ -11,63 +11,63 @@
\section{绘图语言简介}\label{sec:pict-lang}
-\LaTeX\ 提供了原始的 \env{picture} 环境,能够绘制一些基本的图形如点、线、矩形、圆、B\'ezier 曲线等等,
-不过受制于 \LaTeX\ 本身,它的绘图功能极为有限,效果也不够美观。
+\LaTeX{} 提供了原始的 \env{picture} 环境,能够绘制一些基本的图形如点、线、矩形、圆、B\'ezier 曲线等等,
+不过受制于 \LaTeX{} 本身,它的绘图功能极为有限,效果也不够美观。
-当前较为流行的、用于 \LaTeX\ 的绘图宏包 / 程序主要有:
+当前较为流行的、用于 \LaTeX{} 的绘图宏包 / 程序主要有:
\begin{itemize}
\item PSTricks \par
以 PostSciprt 语法为基础的绘图宏包,具有优秀的绘图能力。它对老式的 \texttt{latex + dvips} 编译命令支持最好,
而现在的几种编译命令下使用起来都不够方便。
- \item \TikZ\ \& \pkg{pgf} \par
- 德国的 Till Tantau 教授在开发著名的 \LaTeX\ 幻灯片文档类 \cls{beamer} 时一并开发了绘图宏包 \pkg{pgf},
+ \item \hologo{TikZ} \& \pkg{pgf} \par
+ 德国的 Till Tantau 教授在开发著名的 \LaTeX{} 幻灯片文档类 \cls{beamer} 时一并开发了绘图宏包 \pkg{pgf},
目的是令其能够在 \texttt{pdflatex} 或 \texttt{xelatex} 等不同的编译命令下都能使用。
- \TikZ\ 是在 \pkg{pgf} 基础上封装的一个宏包,采用了类似 \hologo{METAPOST} 的语法,提供了方便的绘图命令,绘图能力不输 PSTricks。
+ \hologo{TikZ} 是在 \pkg{pgf} 基础上封装的一个宏包,采用了类似 \hologo{METAPOST} 的语法,提供了方便的绘图命令,绘图能力不输 PSTricks。
\item \hologo{METAPOST} \& Asymptote \par
- \hologo{METAPOST} 脱胎于高德纳为 \TeX\ 配套开发的字体生成程序 \hologo{METAFONT},
- 具有优秀的绘图能力,并能够调用 \TeX\ 引擎向图片中插入文字和公式。
+ \hologo{METAPOST} 脱胎于高德纳为 \TeX{} 配套开发的字体生成程序 \hologo{METAFONT},
+ 具有优秀的绘图能力,并能够调用 \TeX{} 引擎向图片中插入文字和公式。
Asymptote 在 \hologo{METAPOST} 的基础上更进一步,具有一定的类似 C 语言的编程能力,支持三维图形的绘制。\par
- 它们作为独立的程序,通常的用法是将代码写在单独的文件里,编译生成图片供 \LaTeX\ 引用,也可以借助特殊的宏包在 \LaTeX\ 代码里直接使用。
+ 它们作为独立的程序,通常的用法是将代码写在单独的文件里,编译生成图片供 \LaTeX{} 引用,也可以借助特殊的宏包在 \LaTeX{} 代码里直接使用。
\end{itemize}
-本手册将介绍 \TikZ\ 绘图宏包里最基本的部分。\TikZ\ 还支持各种自定义的扩展,基于 \TikZ\ 的专门用途的绘图宏包也不胜枚举,
-其复杂程度已远远超出入门手册的范围(\TikZ\ 的帮助文档有上千页之厚)。
+本手册将介绍 \hologo{TikZ} 绘图宏包里最基本的部分。\hologo{TikZ} 还支持各种自定义的扩展,基于 \hologo{TikZ} 的专门用途的绘图宏包也不胜枚举,
+其复杂程度已远远超出入门手册的范围(\hologo{TikZ} 的帮助文档有上千页之厚)。
对此感兴趣的读者需要自行查阅帮助文档,或者到互联网上参考现成的范例。
-\section{\TikZ\ 绘图语言}\label{sec:tikz}
+\section{\hologo{TikZ} 绘图语言}\label{sec:tikz}
-\index{TikZ@\TikZ}
+\index{TikZ@\protect\hologo{TikZ}}
\pkgindex{tikz}
\envindex[tikz]{tikzpicture}
\cmdindex[tikz]{tikz}
-在导言区调用 \pkg{tikz} 宏包,就可以用以下命令和环境使用 \TikZ\ 的绘图功能了%
+在导言区调用 \pkg{tikz} 宏包,就可以用以下命令和环境使用 \hologo{TikZ} 的绘图功能了%
\footnote{\texttt{latex + dvipdfmx} 编译方式要在 \pkg{tikz} 宏包之前调用 \pkg{graphicx} 宏包并指定 \texttt{dvipdfmx} 选项。}:
\begin{command}
-\cmd{tikz}\oarg*{\ldots} \Arg{tikz code}\texttt{;} \\[1ex]
-\cmd{tikz}\oarg*{\ldots} \marg*{\Arg{tikz code 1}\texttt{;} \Arg{tikz code 2}\texttt{;} \ldots} \\[1ex]
-\cmd{begin}\marg*{tikzpicture}\oarg*{\ldots} \\
+\cmd{tikz}\oarg*{...} \Arg{tikz code}\texttt{;} \\[1ex]
+\cmd{tikz}\oarg*{...} \marg*{\Arg{tikz code 1}\texttt{;} \Arg{tikz code 2}\texttt{;} ...} \\[1ex]
+\cmd{begin}\marg*{tikzpicture}\oarg*{...} \\
\Arg{tikz code 1}\texttt{;} \\
\Arg{tikz code 2}\texttt{;} \\
-\ldots \\
+... \\
\cmd{end}\marg*{tikzpicture}
\end{command}
前一种用法为 \cmd{tikz} 带单条绘图命令,以分号结束,一般用于在文字之间插入简单的图形;
后两种用法较为常见,使用多条绘图命令,可以在 \env{figure} 等浮动体中使用。
-\subsection{\TikZ\ 坐标和路径}\label{subsec:tikz-path}
+\subsection{\hologo{TikZ} 坐标和路径}\label{subsec:tikz-path}
-\TikZ\ 用直角坐标系或者极坐标系描述点的位置。
+\hologo{TikZ} 用直角坐标系或者极坐标系描述点的位置。
\begin{itemize}
- \item 直角坐标下,点的位置写作 \texttt{(\Arg{$x$},\Arg{$y$})},坐标 \Arg{$x$} 和 \Arg{$y$} 可以用 \LaTeX\ 支持的任意单位表示,
+ \item 直角坐标下,点的位置写作 \texttt{(\Arg{$x$},\Arg{$y$})},坐标 \Arg{$x$} 和 \Arg{$y$} 可以用 \LaTeX{} 支持的任意单位表示,
缺省为 \texttt{cm};
\item 极坐标下,点的位置写作 \texttt{(\Arg{$\theta$}:\Arg{r})}。$\theta$ 为极角,单位是度。
\end{itemize}
\cmdindex[tikz]{coordinate}
-我们还可以为某个点命名:\cmd{coordinate} \texttt{(A) at (\Arg{coordinate})}
+我们还可以为某个点命名:\cmd{coordinate} \texttt{(A) at (\Arg{coordinate})}
然后就可以使用 \texttt{(A)} 作为点的位置了。
\begin{example}
@@ -91,7 +91,7 @@
\end{example}
-\TikZ\ 最基本的路径为两点之间连线,如 \texttt{(\Arg{$x_1$},\Arg{$y_1$}) -{}- (\Arg{$x_2$},\Arg{$y_2$})},可以连用表示多个连线(折线)。
+\hologo{TikZ} 最基本的路径为两点之间连线,如 \texttt{(\Arg{$x_1$},\Arg{$y_1$}) -{}- (\Arg{$x_2$},\Arg{$y_2$})},可以连用表示多个连线(折线)。
连续使用连线时,可以使用 \texttt{cycle} 令路径回到起点,生成闭合的路径。
\begin{example}
\begin{tikzpicture}
@@ -150,9 +150,9 @@
\begin{example}
\begin{tikzpicture}
\draw (0,0) parabola (1,2);
-\draw (2,0) parabola
+\draw (2,0) parabola
bend (2.25,-0.25) (3,2);
-\draw (4,0) parabola
+\draw (4,0) parabola
bend (4.75,2.25) (5,2);
\end{tikzpicture}
\end{example}
@@ -162,7 +162,7 @@
\end{itemize}
\begin{example}
\begin{tikzpicture}
-\draw (0,0) .. controls
+\draw (0,0) .. controls
(2,1) and (3,1) .. (3,0);
\draw (4,0) .. controls
(5,1) .. (5,0);
@@ -177,30 +177,30 @@
\end{itemize}
\begin{example}
\begin{tikzpicture}
-\draw[help lines,step=0.5]
+\draw[help lines,step=0.5]
(-1,-1) grid (1,1);
\draw[->] (-1.5,0) -- (1.5,0);
\draw[->] (0,-1.5) -- (0,1.5);
-\draw[domain=-1:1]
+\draw[domain=-1:1]
plot(\x,{\x*\x*2 -1});
\end{tikzpicture}
\end{example}
-\subsection{\TikZ\ 绘图命令和参数}\label{subsec:tikz-draw}
+\subsection{\hologo{TikZ} 绘图命令和参数}\label{subsec:tikz-draw}
\cmdindex[tikz]{draw,fill,filldraw}
-除了 \cmd{draw} 命令之外,\TikZ\ 还提供了 \cmd{fill} 命令用来填充图形,\cmd{filldraw} 命令则同时填充和描边。
+除了 \cmd{draw} 命令之外,\hologo{TikZ} 还提供了 \cmd{fill} 命令用来填充图形,\cmd{filldraw} 命令则同时填充和描边。
除了矩形、圆等现成的闭合图形外,\cmd{fill} 和 \cmd{filldraw} 命令也能够填充人为构造的闭合路径。
\begin{command}
-\cmd{draw}\oarg*{\ldots} \Arg{path}; \\
-\cmd{fill}\oarg*{\ldots} \Arg{path}; \\
-\cmd{filldraw}\oarg*{\ldots} \Arg{path};
+\cmd{draw}\oarg*{...} \Arg{path}; \\
+\cmd{fill}\oarg*{...} \Arg{path}; \\
+\cmd{filldraw}\oarg*{...} \Arg{path};
\end{command}
绘图参数可作为可选参数用在 \env{tikzpiture} 环境或 \cmd{tikz} 命令时,参数会影响到所有具体的绘图命令;
用在单个绘图命令 \cmd{draw}、\cmd{filldraw} 等时,只对这个命令起效。
-\TikZ\ 有数不清的绘图参数,这些参数令 \TikZ\ 能够绘制丰富多彩的图像,同时也令 \TikZ\ 难以精通。
+\hologo{TikZ} 有数不清的绘图参数,这些参数令 \hologo{TikZ} 能够绘制丰富多彩的图像,同时也令 \hologo{TikZ} 难以精通。
以下示例常用的一些绘图参数。
\begin{itemize}
@@ -213,11 +213,11 @@
\draw[blue] (0,0) rectangle (1,1);
\filldraw[fill=yellow,draw=red]
(2,0.5) circle [radius=0.5];
-\end{tikzpicture}
+\end{tikzpicture}
\end{example}
\begin{itemize}
- \item \texttt{thick=\Arg{length}/thin/semithick/\ldots} 指定线条的粗细。
+ \item \texttt{thick=\Arg{length}/thin/semithick/...} 指定线条的粗细。
\end{itemize}
\begin{example}
\begin{tikzpicture}
@@ -248,7 +248,7 @@
\begin{itemize}
\item \texttt{\Arg{arrow}-\Arg{arrow}} 指定线条首尾的箭头形式。
- 复杂的箭头形式需要使用 \cmd{use\-tikz\-library} \marg*{arrows.meta}。
+ 复杂的箭头形式需要在导言区使用 \cmd{use\-tikz\-library} \marg*{arrows.meta}。
\end{itemize}
\begin{example}
\begin{tikzpicture}[thick]
@@ -280,7 +280,7 @@
\end{example}
\begin{itemize}
- \item \texttt{scale/xshift/yshift/xslant/yslant/rotate} 设定图形的缩放、位移和旋转。
+ \item \texttt{scale/xshift/yshift/xslant/yslant/rotate} 设定图形的缩放、位移和旋转。
\end{itemize}
\begin{example}
\begin{tikzpicture}
@@ -294,20 +294,20 @@
\end{tikzpicture}
\end{example}
-为了重复利用绘图参数,减少代码冗余,\TikZ\ 引入了“样式”的概念,可以定义一个样式包含绘图参数,
+为了重复利用绘图参数,减少代码冗余,\hologo{TikZ} 引入了“样式”的概念,可以定义一个样式包含绘图参数,
然后将样式作为一个参数用于绘图:
\begin{example}
\begin{tikzpicture}
[myarrow/.style={blue,thick,->}]
\draw (0,0)--(0,1)--(2,1);
\draw[myarrow] (0,0)--(2,1);
-\draw[myarrow,dotted]
+\draw[myarrow,dotted]
(0,0)--(2,0)--(2,1);
\end{tikzpicture}
\end{example}
\envindex[tikz]{scope}
-\TikZ\ 还提供了 \env{scope} 环境,令绘图参数或样式在局部生效:
+\hologo{TikZ} 还提供了 \env{scope} 环境,令绘图参数或样式在局部生效:
\begin{example}
\begin{tikzpicture}
\draw (0,0) rectangle (2.5, 2.5);
@@ -317,10 +317,10 @@
\end{tikzpicture}
\end{example}
-\subsection{\TikZ\ 文字结点}\label{subsec:tikz-node}
+\subsection{\hologo{TikZ} 文字结点}\label{subsec:tikz-node}
\cmdindex[tikz]{node}
-\TikZ\ 用 \cmd{node} 命令绘制文字结点:
+\hologo{TikZ} 用 \cmd{node} 命令绘制文字结点:
\begin{command}
\cmd{node}\oarg{options} \texttt{(\Arg{name})} \texttt{at (\Arg{coordinate})} \marg{text}\texttt{;}
\end{command}
@@ -338,7 +338,7 @@
\ref{subsec:tikz-draw} 小节中的参数可用于 \cmd{node} 命令的配置。除此之外,\cmd{node} 还有一些特定的参数:
\begin{itemize}
\item \texttt{anchor=\Arg{position}} 令结点的某个角落 \Arg{position} 与 \Arg{coordinate} 对应。
- \item \texttt{centered / above / below / left / right / above left / \ldots \oarg*{=\Arg{length}}} \\
+ \item \texttt{centered / above / below / left / right / above left / ... \oarg*{=\Arg{length}}} \\
与 \texttt{anchor} 等效的选项。可选的 \Arg{length} 为节点相对于 \Arg{coordinate} 的距离。
\end{itemize}
\begin{example}
@@ -351,27 +351,28 @@
\end{example}
\begin{itemize}
- \item \texttt{shape=\Arg{shape}}
- 结点的形状,默认可用 \texttt{rectangle} 和 \texttt{circle},可省略 \texttt{shape=} 直接写。在导言区使用命令
+ \item \texttt{shape=\Arg{shape}}
+ 结点的形状,默认可用 \texttt{rectangle} 和 \texttt{circle},可省略 \texttt{shape=} 直接写。在导言区使用命令
\cmd{use\-tikz\-library}\marg*{shapes.geometric} 可用更多的形状。
- \item \texttt{text=\Arg{color}}
+ \item \texttt{text=\Arg{color}}
结点文字的颜色。
- \item \texttt{node font=\Arg{font command}}
+ \item \texttt{node font=\Arg{font command}}
结点文字的字体,形如 \cmd{bfseries} 或 \cmd{itshape} 等。
\end{itemize}
\begin{example}
\begin{tikzpicture}
\node[circle,fill=blue,text=white,
- font={\bfseries}]
+ node font={\bfseries}]
(A) at (0,0) {A node};
\node[rectangle,rounded corners,
- draw=gray,font={\sffamily\slshape}]
+ draw=gray,
+ node font={\sffamily\slshape}]
(B) at (2,0) {B node};
\end{tikzpicture}
\end{example}
\begin{itemize}
- \item \texttt{inner sep=\Arg{length} / outer sep=\Arg{length}}
+ \item \texttt{inner sep=\Arg{length} / outer sep=\Arg{length}}
结点边界向外和向内的额外距离。
\item \texttt{minimum size=\Arg{length} / minimum height=\Arg{length} / minimum width=\Arg{length}} \\
结点的最小大小或最小高度/宽度。
@@ -412,10 +413,10 @@
\coordinate (b) at (4,1.2);
\node[below] (a0) at (a |- 0,0) {$a$};
\node[below] (b0) at (b |- 0,0) {$b$};
-\filldraw[fill=gray!20,draw,thick]
+\filldraw[fill=gray!20,draw,thick]
(a0) -- (a) .. controls (1,2.8) and (2.7,0.4) .. (b) -- (b0) -- cycle;
\node[above right,outer sep=0.2cm, rounded corners,
- fill=green!20,draw=gray,text=blue!60!black,scale=0.6]
+ fill=green!20,draw=gray,text=blue!60!black,scale=0.6]
at (b) {$\displaystyle \int_a^b {f(x)\,\mathrm{d}x} = F(b) - F(a)$};
\end{tikzpicture}
\end{Verbatim}
@@ -427,20 +428,20 @@
\coordinate (b) at (4,1.2);
\coordinate[label=below:$a$] (a0) at (a |- 0,0);
\coordinate[label=below:$b$] (b0) at (b |- 0,0);
-\filldraw[fill=gray!20,draw,thick]
+\filldraw[fill=gray!20,draw,thick]
(a0) -- (a) .. controls (1,2.8) and (2.7,0.4) .. (b) -- (b0) -- cycle;
\node[above right,outer sep=0.2cm, rounded corners,
- fill=green!20,draw=gray,text=blue!60!black,scale=0.6]
+ fill=green!20,draw=gray,text=blue!60!black,scale=0.6]
at (b) {$\displaystyle \int_a^b {f(x)\,\mathrm{d}x} = F(b) - F(a)$};
\end{tikzpicture}
\end{center}
-\caption{\TikZ\ 绘图示例源代码和效果。}\label{code:tikz-example}
+\caption{\hologo{TikZ} 绘图示例源代码和效果。}\label{code:tikz-example}
\end{sourcecode}
-\subsection{在 \TikZ\ 中使用循环}
+\subsection{在 \hologo{TikZ} 中使用循环}
\cmdindex[tikz]{foreach}
-\TikZ\ 通过 \pkg{pgffor} 功能宏包实现了简单的循环功能,语法为:
+\hologo{TikZ} 通过 \pkg{pgffor} 功能宏包实现了简单的循环功能,语法为:
\begin{command}
\cmd{foreach} \cmd{a} \texttt{in} \marg{list} \marg{commands}
\end{command}
@@ -451,7 +452,7 @@
\begin{tikzpicture}
\draw (0,0)--(5,0);
\foreach \i in {0.0,0.1,...,5.0}
- {\draw[very thin]
+ {\draw[very thin]
(\i,0)--(\i,0.15);}
\foreach \I in {0,1,2,3,4,5}
{\draw (\I,0)--(\I,0.25)
@@ -462,11 +463,11 @@
\cmd{foreach} 还可使用变量对参与循环:
\begin{example}
\begin{tikzpicture}
-\foreach \n/\t in
+\foreach \n/\t in
{0/\alpha,1/\beta,2/\gamma}
- {\node[circle,fill=lightgray,draw]
+ {\node[circle,fill=lightgray,draw]
at (\n,0) {$\t$};}
\end{tikzpicture}
\end{example}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/chap.08.custom.tex b/info/lshort/chinese/src/chap/chap.08.custom.tex
index 656f9f0ac6..d31043c572 100644
--- a/info/lshort/chinese/src/chap.08.custom.tex
+++ b/info/lshort/chinese/src/chap/chap.08.custom.tex
@@ -1,4 +1,4 @@
-\chapter{自定义 \LaTeX\ 命令和功能}\label{chap:custom}
+\chapter{自定义 \LaTeX{} 命令和功能}\label{chap:custom}
\addtocontents{los}{\protect\addvspace{10pt}}
\begin{intro}
@@ -13,7 +13,7 @@
\section{自定义命令和环境}\label{sec:defs}
你也许已经意识到了,在本手册中介绍的所有命令都被包含在一个带颜色的矩形背景框中。
-笔者并没有直接使用基础的 \LaTeX\ 命令来实现这个效果,而是创建了一个\textbf{宏包},
+笔者并没有直接使用基础的 \LaTeX{} 命令来实现这个效果,而是创建了一个\textbf{宏包},
并在其中定义了笔者所需要的命令和环境。现在我只需写成这样简单的形式:
\begin{example}
@@ -23,7 +23,7 @@
\end{example}
这个例子中使用了一个新的环境 \env{command}。这个环境负责给命令代码加上一个带颜色的矩形背景框。
-同时还使用了一个命令:\cmd{cmd}, 这个命令负责输出命令的名字,包括前面的反斜杠。
+同时还使用了一个命令:\cmd{cmd}, 这个命令负责输出命令的名字,包括前面的反斜线。
一旦笔者想要修改命令代码的样式,比如更换颜色、加边框等等,可以通过改变 \env{command} 环境的定义来很容易地创建新的外观,
而不是挨个修改每个命令示例。
@@ -35,13 +35,13 @@
\begin{command}
\cmd{newcommand}\marg*{\cmd{\Arg{name}}}\oarg{num}\marg{definition}
\end{command}
-基本上,这个命令有两个参数,第一个 \Arg{name} 是你想要建立的命令的名称(带反斜杠),
-第二个 \Arg{definition} 是命令的定义。方括号里的参数 \Arg{num} 是可选的,
-用于指定新命令所需的参数数目(最多 9 个)。如果缺省可选参数,默认就是 0,也就是新建的命令不带任何参数。
+\cmd{newcommand} 的基本用法需要两个必选参数,第一个参数 \Arg{name} 是要定义的命令名称(带反斜线),
+第二个参数 \Arg{definition} 是命令的具体定义。方括号里的参数 \Arg{num} 是可选的,
+用于指定新命令所需的参数数目(最多 9 个)。如果缺省可选参数,默认就是 0,也就是新定义的命令不带任何参数。
-接下来的两个例子有助你的理解。第一个例子定义了一个新的命令:\cmd{tnss}。
+接下来的两个例子有助于理解。第一个例子定义了一个新的命令 \cmd{tnss}。
这个命令是本手册英文名称 ``The Not So Short Introduction to \LaTeXe'' 的简写。
-如果你需要在文档中多次使用本手册的名称,那么使用这个命令是一个非常方便的办法。
+如果需要在文档中多次使用本手册的名称,那么使用这个命令是一个非常方便的办法。
\begin{example}
\newcommand{\tnss}{The not
@@ -51,7 +51,7 @@ This is ``\tnss'' \ldots{}
``\tnss''
\end{example}
-第二个例子演示了如何定义一个带参数的命令。在命令的定义中,标记 \verb|#1|
+第二个例子演示了如何定义一个带参数的命令。在命令的定义中,标记 \verb|#1|
代表指定的参数。如果想使用多个参数,可以依次使用 \verb|#2|、……、\verb|#9| 等标记。
\begin{example}
@@ -66,12 +66,12 @@ This is ``\tnss'' \ldots{}
\end{example}
\cmdindex{renewcommand}
-\LaTeX\ 不允许你定义一个与现有命令重名的命令。如果需要修改命令定义的话,使用 \cmd{re\-new\-comm\-and} 命令。它使用与命令 \cmd{new\-comm\-and}
+\LaTeX{} 不允许使用 \cmd{newcommand} 定义一个与现有命令重名的命令。如果需要修改命令定义的话,使用 \cmd{re\-new\-comm\-and} 命令。它使用与命令 \cmd{new\-comm\-and}
相同的语法。
\cmdindex{providecommand}
-在某些情况之下,你可能会希望使用 \cmd{pro\-vide\-comm\-and} 命令。在命令不存在时,它相当于 \cmd{new\-comm\-and}
-;在命令已经存在时,仍沿用存在的定义。
+在某些情况之下,使用 \cmd{pro\-vide\-comm\-and} 命令是一种比较理想的方案。在命令未定义时,它相当于 \cmd{new\-comm\-and}
+;在命令已定义时,沿用已有的定义。
\subsection{定义环境}\label{subsec:newenv}
@@ -99,7 +99,7 @@ My humble subjects \ldots
\end{example}
\cmdindex{renewenvironment}
-参数 \Arg{num} 的使用方式与 \cmd{new\-comm\-and} 命令相同。\LaTeX\ 还同样保证你
+参数 \Arg{num} 的使用方式与 \cmd{new\-comm\-and} 命令相同。\LaTeX{} 还同样保证你
不会不小心新建重名的环境。如果你确实希望改变一个现有的环境,你可以使用命令
\cmd{re\-new\-environ\-ment},它使用和命令 \cmd{new\-environ\-ment} 相同的语法。
@@ -109,7 +109,7 @@ My humble subjects \ldots
\cmdindex{usepackage}
如果你定义了很多新的环境和命令,你的文档的导言区将变得相当长,在这种情况下,好的方式是
-建立一个新的 \LaTeX\ 宏包来存放所有你自己定义的命令和环境,
+建立一个新的 \LaTeX{} 宏包来存放所有你自己定义的命令和环境,
然后在你的文档中使用 \cmd{use\-package} 命令来调用自定义的宏包。
\begin{sourcecode}[htp]
@@ -132,7 +132,7 @@ My humble subjects \ldots
\cmd{ProvidesPackage}\marg{package name}
\end{command}
这个命令应该放在你的宏包的最前面,并且一定要注意:\textbf{\Arg{package name} 需要和宏包的文件名一致。}
-\cmd{Provides\-Package} 让 \LaTeX\ 记录宏包的名称,从而在 \cmd{usepackage} 命令再次调用同一个宏包的时候忽略之%
+\cmd{Provides\-Package} 让 \LaTeX{} 记录宏包的名称,从而在 \cmd{usepackage} 命令再次调用同一个宏包的时候忽略之%
\footnote{但如果你以\emph{不同的选项}多次引入宏包,则有可能会引起错误,见附录 \ref{sec:errors}。}。
源代码 \ref{code:package} 给出了一个小的宏包示例,其中包含了我们之前定义的一些命令。
@@ -140,7 +140,7 @@ My humble subjects \ldots
\cmdindex{RequirePackage}
如果你想进一步把各种宏包的功能汇总到一个文件里,而不是在文档的导言区罗列一大堆宏包的话,
-\LaTeX\ 允许你在自己编写的宏包中调用其它宏包,命令为 \cmd{RequirePackage},用法和 \cmd{usepackage}
+\LaTeX{} 允许你在自己编写的宏包中调用其它宏包,命令为 \cmd{RequirePackage},用法和 \cmd{usepackage}
一致:
\begin{command}
\cmd{RequirePackage}\oarg{options}\marg{package name}
@@ -159,7 +159,7 @@ My humble subjects \ldots
\cmdindex{LoadClass}
但是有了上述命令和和你之前学到的 \cmd{newcommand} 等,还并不能完成一个文档类的编写,因为诸如 \cmd{chapter}、
\cmd{section} 等等许多常用的命令都是在文档类中定义的。事实上,许多时候我们只需要像调用宏包那样调用一个基本的文档类,
-省去许多不必要的麻烦。在你的文档类中调用其它文档类的命令是 \cmd{LoadClass} ,用法和 \cmd{documentclass} 十分相像:
+省去许多不必要的麻烦。在你的文档类中调用其它文档类的命令是 \cmd{LoadClass},用法和 \cmd{documentclass} 十分相像:
\begin{command}
\cmd{LoadClass}\oarg{options}\marg{package name}
\end{command}
@@ -167,7 +167,7 @@ My humble subjects \ldots
\section{计数器}\label{sec:counters}
\pinyinindex{jishuqi}{计数器}
-我们早就见识到了 \LaTeX\ 对文档元素自动计数的能力:章节符号、列表、图表……它们都是依靠 \LaTeX\ 提供的计数器功能完成的。
+我们早就见识到了 \LaTeX{} 对文档元素自动计数的能力:章节符号、列表、图表……它们都是依靠 \LaTeX{} 提供的计数器功能完成的。
\subsection{定义和修改计数器}\label{subsec:count-defs}
@@ -201,17 +201,17 @@ My humble subjects \ldots
注意:这些命令\textbf{只能用于计数器,不能直接用于数字},如 \cmd{roman}\marg*{1} 这样的命令会出错。
\begin{table}[htp]
\centering
-\caption{计数器输出格式相关命令。}\label{tbl:counter-commands}
+\caption{计数器输出格式相关命令}\label{tbl:counter-commands}
\begin{tabular}{lp{22em}l}
\hline
\textbf{命令} & \textbf{样式} & \textbf{范围} \\
\hline
\cmd{arabic} & 阿拉伯数字(默认) & \\
- \cmd{alph} & 小写字母 & 限 0-26 \\
- \cmd{Alph} & 大写字母 & 限 0-26 \\
+ \cmd{alph} & 小写字母 & 限 0--26 \\
+ \cmd{Alph} & 大写字母 & 限 0--26 \\
\cmd{roman} & 小写罗马数字 & 限非负整数 \\
\cmd{Roman} & 大写罗马数字 & 限非负整数 \\
- \cmd{fnsymbol} & 一系列符号,用于 \cmd{thanks} 命令生成的脚注 & 限 0-9 \\
+ \cmd{fnsymbol} & 一系列符号,用于 \cmd{thanks} 命令生成的脚注 & 限 0--9 \\
\hline
\end{tabular}
\begin{quotation}
@@ -230,7 +230,7 @@ My humble subjects \ldots
\renewcommand\thesubsection{\thesection.\arabic{subsection}}
\end{verbatim}
-\subsection{\LaTeX\ 中的计数器}\label{subsec:latex-counts}
+\subsection{\LaTeX{} 中的计数器}\label{subsec:latex-counts}
\begin{itemize}
\item 所有章节命令 \cmd{chapter}、\cmd{section} 等分别对应计数器 chapter、section 等等,而且有上下级的关系。
@@ -256,7 +256,7 @@ My humble subjects \ldots
\subsubsection{secnumdepth}
\index{secnumdepth@secnumdepth (\textit{计数器})}
-\LaTeX\ 标准文档类对章节划分了层级:
+\LaTeX{} 标准文档类对章节划分了层级:
\begin{itemize}
\item 在 \cls{article} 文档类里 part 为 0,section 为 1,依此类推;
\item 在 \cls{report}/\cls{book} 文档类里 part 为 -1,chapter 为 0,section 为 1,等等。
@@ -276,15 +276,15 @@ secnumdepth 计数器在 \cls{article} 文档类里默认为 3 (subsubsection
\index{tocdepth@tocdepth (\textit{计数器})}
tocdepth 计数器控制目录的深度,如果章节的层级大于 tocdepth,那么章节将不会自动写入目录项。默认值同 secnumdepth。
-\section{\LaTeX\ 可定制的一些命令和参数}\label{sec:latex-settings}
+\section{\LaTeX{} 可定制的一些命令和参数}\label{sec:latex-settings}
-\LaTeX\ 事实上有相当一些可以定制的命令和参数,不过对于修改样式或者开发宏包来说,这些定制项还远远不够。
+\LaTeX{} 事实上有相当一些可以定制的命令和参数,不过对于修改样式或者开发宏包来说,这些定制项还远远不够。
对于用户来讲,容易定制的是这一些项目:
\begin{itemize}
\item 标题名称/前后缀等。表 \ref{tbl:latex-settings-names} 列出了标准文档类里可定制的项目,
- 表中所有的 \LaTeX\ 命令都可以用 \cmd{re\-new\-comm\-and} 来修改。
+ 表中所有的 \LaTeX{} 命令都可以用 \cmd{re\-new\-comm\-and} 来修改。
\item 长度。前文在叙述各种排版元素时已经涉及到一些,现归纳于表 \ref{tbl:latex-settings-lengths}。
表中所有的长度命令可用 \cmd{setlength} 来修改。
大多数控制页面尺寸的长度参数在图 \ref{fig:layouts} 给出,此处不再赘述。
@@ -292,7 +292,7 @@ tocdepth 计数器控制目录的深度,如果章节的层级大于 tocdepth
\begin{table}[htp]
\centering
-\caption{\LaTeX\ 可定制的标题名称/前后缀。}\label{tbl:latex-settings-names}
+\caption{\LaTeX{} 可定制的标题名称/前后缀}\label{tbl:latex-settings-names}
\small
\begin{tabular}{llp{24em}}
\hline
@@ -307,9 +307,9 @@ tocdepth 计数器控制目录的深度,如果章节的层级大于 tocdepth
\cmd{listtablename} & List of Tables & \cmd{listoftables} 命令生成的表格目录标题 \\[1ex]
\cmd{tablename} & Table & \env{table} 浮动体中 \cmd{caption} 命令生成的标题前缀 \\
\cmd{figurename} & Figure & \env{figure} 浮动体中 \cmd{caption} 命令生成的标题前缀 \\[1ex]
- \cmd{refname} & References & \env{thebibliography} 环境或 \cmd{biblio\-graphy}
+ \cmd{refname} & References & \env{thebibliography} 环境或 \cmd{biblio\-graphy}
命令生成的参考文献标题(\cls{article} 文档类) \\
- \cmd{bibname} & Bibliography & \env{thebibliography} 环境或 \cmd{biblio\-graphy}
+ \cmd{bibname} & Bibliography & \env{thebibliography} 环境或 \cmd{biblio\-graphy}
命令生成的参考文献标题(\cls{book / report} 文档类)\\
\cmd{indexname} & Index & \cmd{printindex} 命令生成的索引标题 \\
\hline
@@ -322,7 +322,7 @@ tocdepth 计数器控制目录的深度,如果章节的层级大于 tocdepth
\begin{table}[htp]
\centering
-\caption{\LaTeX\ 可定制的长度参数。}\label{tbl:latex-settings-lengths}
+\caption{\LaTeX{} 可定制的长度参数}\label{tbl:latex-settings-lengths}
\small
\begin{tabular}{lll}
\hline
@@ -346,4 +346,4 @@ tocdepth 计数器控制目录的深度,如果章节的层级大于 tocdepth
\end{quotation}
\end{table}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/fdl.tex b/info/lshort/chinese/src/chap/fdl.tex
index 820a486b1f..820a486b1f 100644
--- a/info/lshort/chinese/src/fdl.tex
+++ b/info/lshort/chinese/src/chap/fdl.tex
diff --git a/info/lshort/chinese/src/preface.contrib.tex b/info/lshort/chinese/src/chap/preface.contrib.tex
index 61b6186cdf..87d7156b43 100644
--- a/info/lshort/chinese/src/preface.contrib.tex
+++ b/info/lshort/chinese/src/chap/preface.contrib.tex
@@ -2,7 +2,7 @@
\section*{5.05 中文版致谢}
-对 lshort-zh-cn 的新一轮修订在 China\TeX\ 交流 QQ 群 (91940767) 的网友支持下完成。
+对 lshort-zh-cn 的新一轮修订在 China\TeX{} 交流 QQ 群 (91940767) 的网友支持下完成。
参与此次修订的朋友包括:
\begin{center}
@@ -20,19 +20,19 @@
\section*{4.20 中文版致谢}
-中文 \TeX\ 学会启动的 lshort-zh-cn 修正计划!
+中文 \TeX{} 学会启动的 lshort-zh-cn 修正计划!
本项计划历时八个月,参加的朋友有:
\begin{center}
\begin{tabular}{ll}
\toprule
-\textbf{C\TeX 论坛 ID} & \textbf{翻译章节} \\
+\textbf{\hologo{CTeX} 论坛 ID} & \textbf{翻译章节} \\
\midrule
-zpxing & 前言、第二章、第五章 1-2.4 {\&} 3、第六章 \\
+zpxing & 前言、第二章、第五章 1--2.4 {\&} 3、第六章 \\
Frogge & 第一章 \\
liwenjun & 第三章 \\
lijian605 & 第四章 \\
-gprsnl & 第五章 2.5-2.11 \\
+gprsnl & 第五章 2.5--2.11 \\
\bottomrule
\end{tabular}
\end{center}
@@ -44,13 +44,13 @@ blackold 对于第二章亦有所贡献。最后由 zpxing 统筹全书。
\section*{3.20 中文版致谢}
-本文档的翻译工作由 C\TeX{} 版主“经典问题”倡议,历经近十个月才得以完成。
+本文档的翻译工作由 \hologo{CTeX} 版主“经典问题”倡议,历经近十个月才得以完成。
期间参与翻译工作的朋友有:
\begin{center}
\begin{tabular}{lll}
\toprule
-\textbf{C\TeX 论坛 ID} & \textbf{翻译章节} & \textbf{源文件名} \\
+\textbf{\hologo{CTeX} 论坛 ID} & \textbf{翻译章节} & \textbf{源文件名} \\
\midrule
经典问题 & 前言 & overview.tex \\
高原之狼 & 第一章 & things.tex \\
@@ -71,7 +71,7 @@ ganzhi & 第五章 & custom.tex \\
\chapter{英文版致谢}
\noindent Much of the material used in this introduction comes from an
-Austrian introduction to \LaTeX\ 2.09 written in German by:
+Austrian introduction to \LaTeX{} 2.09 written in German by:
\begin{verse}
\contrib{Hubert Partl}{partl@mail.boku.ac.at}%
{Zentraler Informatikdienst der Universit\"at f\"ur Bodenkultur Wien}
@@ -85,7 +85,7 @@ If you are interested in the German document, you can find a version
updated for \LaTeXe{} by J\"org Knappen at
\CTAN|info/lshort/german|
-\newpage \noindent
+\newpage \noindent
The following individuals helped with corrections, suggestions and
material to improve this paper. They put in a big effort to help me
get this document into its present shape. I would like to
@@ -235,4 +235,4 @@ Fritz~Zaucker, % <zaucker@ee.ethz.ch> 3.0
and Mikhail~Zotov. % <zotov@eas.npi.msu.su> 3.1
\end{flushleft}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/chap/preface.overview.tex b/info/lshort/chinese/src/chap/preface.overview.tex
new file mode 100644
index 0000000000..f93bf7d8de
--- /dev/null
+++ b/info/lshort/chinese/src/chap/preface.overview.tex
@@ -0,0 +1,58 @@
+\chapter{前言}
+
+\LaTeX{} \cite{manual} 是一个文档准备系统 (Document Preparing System),它非常适用于生成高印刷质量
+的科技类和数学类文档。它也能够生成所有其他种类的文档,小到简单的信件,大到完整的书籍。
+\LaTeX{} 使用 \TeX{} \cite{texbook} 作为它的排版引擎。
+
+这份短小的手册描述了 \LaTeXe{} 的使用,对 \LaTeX{} 的大多数应用来说应该是足够了。
+参考文献 \cite{manual,companion} 对 \LaTeX{} 系统提供了完整的描述。
+
+\bigskip
+本手册在英文版 lshort 的基础上进行了适当的重新编排,共有八章和两篇附录:
+\begin{description}
+ \item[第一章] 讲述 \LaTeX{} 的来源,源代码的基本结构,以及如何编译源代码生成文档。
+ \item[第二章] 讲述在 \LaTeX{} 中如何书写文字,包括中文。
+ \item[第三章] 讲述文档排版的基本元素——标题、目录、列表、图片、表格等等。结合前一章的内容,你应当能够制作内容较为丰富的文档了。
+ \item[第四章] \LaTeX{} 排版公式的能力是众人皆知的。本章的内容涉及了一些排版公式经常用到的命令、环境和符号。
+ 章节末尾列出了 \LaTeX{} 常见的数学符号。
+ \item[第五章] 介绍了如何修改文档的一些基本样式,包括字体、段落、页面尺寸、页眉页脚等。
+ \item[第六章] 介绍了 \LaTeX{} 的一些扩展功能:排版参考文献、排版索引、排版带有颜色和超链接的电子文档。
+ \item[第七章] 介绍了如何在 \LaTeX{} 里使用 \hologo{TikZ} 绘图。作为入门手册,这一部分点到为止。
+ \item[第八章] 当你相当熟悉前面几章的内容,需要自己编写命令和宏包扩展 \LaTeX{} 的功能时,本章介绍了一些基本的命令满足你的需求。
+\end{description}
+\begin{description}
+ \item[附录A] 介绍了如何安装 \TeX{} 发行版和更新宏包。
+ \item[附录B] 当新手遇到错误和需要寻求更多帮助时,本章提供了一些基本的参考。
+\end{description}
+
+\bigskip
+这些章节是循序渐进的,建议刚刚熟悉 \LaTeX{} 的读者按顺序阅读。一定要认真阅读例子的源代码,它们贯穿全篇手册,包含了很多的信息。
+
+\bigskip
+如果你已经对 \LaTeX{} 较为熟练,本手册的资源已不足够解决你的问题时,请访问``Comprehensive
+\TeX{} Archive Network'' (\texttt{CTAN}) 站点,主页是 \url{www.ctan.org}。
+所有的宏包也可以从 \url{mirrors.ctan.org} 和遍布全球的各个镜像站点中获得。
+
+在本书中你会找到其他引用 \texttt{CTAN} 的地方,形式为 \texttt{CTAN://} 和之后的树状结构。
+引用本身是一个超链接,点击后将打开内容在 \texttt{CTAN} 上相应位置的页面。
+
+要在自己的电脑上安装 \TeX{} 发行版,请参考附录 \ref{app:install} 中的内容。
+各个操作系统下的 \TeX{} 发行版位于 \CTAN|systems|。
+
+\bigskip
+如果你有意在这份文档中增加、删除或者改变一些内容,请通知作者。作者对 \LaTeX{}
+初学者的反馈特别感兴趣,尤其是关于这份介绍哪些内容很容易理解,哪些内容可能需要更好地解释,
+而哪些内容由于太过难以理解、非常不常用而不适宜放在本手册。
+
+\bigskip
+\begin{flushright}
+\hologo{CTeX} 开发小组\par
+\url{https://github.com/CTeX-org}
+\end{flushright}
+
+\vfill
+
+\noindent\begingroup\small lshort 的的最新中文版本位于 \CTAN|info/lshort/chinese|。
+如果用户对其他语言的版本感兴趣,请浏览 \CTAN|info/lshort|。\endgroup
+
+\endinput
diff --git a/info/lshort/chinese/src/sec.symbol.table.tex b/info/lshort/chinese/src/chap/sec.symbol.table.tex
index cbd06ec9ce..33ce2cd11d 100644
--- a/info/lshort/chinese/src/sec.symbol.table.tex
+++ b/info/lshort/chinese/src/chap/sec.symbol.table.tex
@@ -30,12 +30,12 @@
\item 带有角标\lsym 的符号命令依赖 \pkg{latexsym} 宏包。
\end{enumerate}
-\subsection{\LaTeX\ 普通符号}
+\subsection{\LaTeX{} 普通符号}
\symindex{dag,ddag,P,S,copyright,pounds}
\begin{table}[htp]
\centering
-\caption{文本/数学模式通用符号。}\label{tbl:general-syms}
+\caption{文本/数学模式通用符号}\label{tbl:general-syms}
\begin{quote}\footnotesize%
这些符号可用于文本和数学模式。
\end{quote}
@@ -50,7 +50,7 @@
\begin{table}[htp]
\centering
-\caption{希腊字母。} \label{tbl:math-greek}
+\caption{希腊字母} \label{tbl:math-greek}
\begin{quote}\footnotesize%
\cmd{Alpha},\cmd{Beta} 等希腊字母符号不存在,因为它们和拉丁字母 A,B 等一模一样;
小写字母里也不存在 \cmd{omicron},直接用拉丁字母 $o$ 代替。
@@ -77,7 +77,7 @@
\begin{table}[htp]
\centering
-\caption{二元关系符。} \label{tbl:math-rel}
+\caption{二元关系符} \label{tbl:math-rel}
\begin{quote}\footnotesize%
所有的二元关系符都可以加 \cmd{not} 前缀得到相反意义的关系符,例如 \cmd{not}\texttt{=} 就得到不等号(同 \cmd{ne})。
\end{quote}
@@ -103,7 +103,7 @@
\begin{table}[htp]
\centering
-\caption{二元运算符。}\label{tbl:math-op}
+\caption{二元运算符}\label{tbl:math-op}
\begin{symbols}{*3{cl}}
\hline
\SYM{+} & \SYM{-} & \\
@@ -125,7 +125,7 @@
\begin{table}[htp]
\centering
-\caption{巨算符。}\label{tbl:math-bigop}
+\caption{巨算符}\label{tbl:math-bigop}
\def\arraystretch{2.2}
\begin{symbols}{*3{ccl}}
\hline
@@ -142,7 +142,7 @@
\begin{table}[htp]
\centering
-\caption{数学重音符号。}\label{tbl:math-accents}
+\caption{数学重音符号}\label{tbl:math-accents}
\begin{quote}\footnotesize%
最后一个 \cmd{wideparen} 依赖 \pkg{yhmath} 宏包。
\end{quote}
@@ -160,7 +160,7 @@
\begin{table}[htp]
\centering
-\caption{箭头。} \label{tbl:math-arrows}
+\caption{箭头} \label{tbl:math-arrows}
\begin{symbols}{*2{cl}}
\hline
\SYM{\leftarrow} or \cmd{gets} & \SYM{\longleftarrow} \\
@@ -186,7 +186,7 @@
\begin{table}[htp]
\centering
-\caption{作为重音的箭头符号。} \label{tbl:math-arrow-accents}
+\caption{作为重音的箭头符号} \label{tbl:math-arrow-accents}
\begin{symbols}{*2{cl}}
\hline
\ACC{\overrightarrow}{AB} & \AMSACC{\underrightarrow}{AB} \\
@@ -198,24 +198,26 @@
\begin{table}[htp]
\centering
-\caption{定界符。}\label{tbl:math-delims}
-\begin{symbols}{*3{cl}}
+\caption{定界符}\label{tbl:math-delims}
+\begin{quote}\footnotesize%
+\pkg{amsmath} 还定义了 \amscmd{lvert}、\amscmd{rvert} 和 \amscmd{lVert}、\amscmd{rVert},
+分别作为 \cmd{vert} 和 \cmd{Vert} 对应的开符号(左侧)和闭符号(右侧)的命令。
+\end{quote}
+\begin{symbols}{*4{cl}}
\hline
- \SYM{(} & \SYM{)} & \SYM{\uparrow} \\
- \SYM{[} or \cmd{lbrack} & \SYM{]} or \cmd{rbrack} & \SYM{\downarrow} \\
- \SYM{\{} or \cmd{lbrace} & \SYM{\}} or \cmd{rbrace} & \SYM{\updownarrow} \\
- \SYM{\langle} & \SYM{\rangle} & \SYM{\Uparrow} \\
- \SYM{|} or \cmd{vert} & \SYM{\|} or \cmd{Vert} & \SYM{\Downarrow} \\
- \SYM{/} & \SYM{\backslash} & \SYM{\Updownarrow} \\
- \SYM{\lfloor} & \SYM{\rfloor} & \\
- \SYM{\rceil} & \SYM{\lceil} & & \\
+ \SYM{(} & \SYM{)} & \SYM{\uparrow} & \SYM{\downarrow} \\
+ \SYM{[} or \cmd{lbrack} & \SYM{]} or \cmd{rbrack} & \SYM{\Uparrow} & \SYM{\Downarrow} \\
+ \SYM{\{} or \cmd{lbrace} & \SYM{\}} or \cmd{rbrace} & \SYM{\updownarrow} & \SYM{\Updownarrow} \\
+ \SYM{|} or \cmd{vert} & \SYM{\|} or \cmd{Vert} & \SYM{\lceil} & \SYM{\rceil} \\
+ \SYM{\langle} & \SYM{\rangle} & \SYM{\lfloor} & \SYM{\rfloor} \\
+ \SYM{/} & \SYM{\backslash} \\
\hline
\end{symbols}
\end{table}
\begin{table}[htp]
\centering
-\caption{用于行间公式的大定界符。}\label{tbl:math-large-delims}
+\caption{用于行间公式的大定界符}\label{tbl:math-large-delims}
\def\arraystretch{1.8}
\begin{symbols}{*3{cl}}
\hline
@@ -228,7 +230,7 @@
\begin{table}[htp]
\centering
-\caption{其他符号。}\label{tbl:math-misc}
+\caption{其他符号}\label{tbl:math-misc}
\begin{symbols}{*4{cl}}
\hline
\SYM{\dots} & \SYM{\cdots} & \SYM{\vdots} & \SYM{\ddots} \\
@@ -245,13 +247,13 @@
\end{table}
\clearpage
-\subsection{\AmS\ 符号}
+\subsection{\hologo{AmS} 符号}
本小节所有符号依赖 \pkg{amssymb} 宏包。
\begin{table}[htp]
\centering
-\caption{\AmS\ 希腊字母和希伯来字母。} \label{tbl:ams-greek-hebrew}
+\caption{\AmS{} 希腊字母和希伯来字母} \label{tbl:ams-greek-hebrew}
\begin{symbols}{*5{cl}}
\hline
\AMSSYM{\digamma} &\AMSSYM{\varkappa} & \AMSSYM{\beth} &\AMSSYM{\gimel} & \AMSSYM{\daleth}\\
@@ -261,7 +263,7 @@
\begin{table}[htp]
\centering
-\caption{\AmS\ 二元关系符。} \label{tbl:ams-rel}
+\caption{\AmS{} 二元关系符} \label{tbl:ams-rel}
\begin{symbols}{*3{cl}}
\hline
\AMSSYM{\lessdot} & \AMSSYM{\gtrdot} & \AMSSYM{\doteqdot} \\
@@ -292,7 +294,7 @@
\begin{table}[htp]
\centering
-\caption{\AmS\ 二元运算符。} \label{tbl:ams-op}
+\caption{\hologo{AmS} 二元运算符} \label{tbl:ams-op}
\begin{symbols}{*3{cl}}
\hline
\AMSSYM{\dotplus} & \AMSSYM{\centerdot} & \\
@@ -309,7 +311,7 @@
\begin{table}[htp]
\centering
-\caption{\AmS\ 箭头。}\label{tbl:ams-arrows}
+\caption{\hologo{AmS} 箭头}\label{tbl:ams-arrows}
\begin{symbols}{*2{cl}}
\hline
\AMSSYM{\dashleftarrow} & \AMSSYM{\dashrightarrow} \\
@@ -333,47 +335,46 @@
\begin{table}[htp]
\centering
-\caption{\AmS\ 反义二元关系符和箭头。}\label{tbl:ams-negative}
+\caption{\hologo{AmS} 反义二元关系符和箭头}\label{tbl:ams-negative}
\begin{symbols}{*3{cl}}
\hline
- \AMSSYM{\nless} & \AMSSYM{\ngtr} & \AMSSYM{\varsubsetneqq} \\
- \AMSSYM{\lneq} & \AMSSYM{\gneq} & \AMSSYM{\varsupsetneqq} \\
- \AMSSYM{\nleq} & \AMSSYM{\ngeq} & \AMSSYM{\nsubseteqq} \\
- \AMSSYM{\nleqslant} & \AMSSYM{\ngeqslant} & \AMSSYM{\nsupseteqq} \\
- \AMSSYM{\lneqq} & \AMSSYM{\gneqq} & \AMSSYM{\nmid} \\
- \AMSSYM{\lvertneqq} & \AMSSYM{\gvertneqq} & \AMSSYM{\nparallel} \\
- \AMSSYM{\nleqq} & \AMSSYM{\ngeqq} & \AMSSYM{\nshortmid} \\
- \AMSSYM{\lnsim} & \AMSSYM{\gnsim} & \AMSSYM{\nshortparallel} \\
- \AMSSYM{\lnapprox} & \AMSSYM{\gnapprox} & \AMSSYM{\nsim} \\
- \AMSSYM{\nprec} & \AMSSYM{\nsucc} & \AMSSYM{\ncong} \\
- \AMSSYM{\npreceq} & \AMSSYM{\nsucceq} & \AMSSYM{\nvdash} \\
- \AMSSYM{\precneqq} & \AMSSYM{\succneqq} & \AMSSYM{\nvDash} \\
- \AMSSYM{\precnsim} & \AMSSYM{\succnsim} & \AMSSYM{\nVdash} \\
- \AMSSYM{\precnapprox} & \AMSSYM{\succnapprox} & \AMSSYM{\nVDash} \\
- \AMSSYM{\subsetneq} & \AMSSYM{\supsetneq} & \AMSSYM{\ntriangleleft} \\
- \AMSSYM{\varsubsetneq} & \AMSSYM{\varsupsetneq} & \AMSSYM{\ntriangleright} \\
- \AMSSYM{\nsubseteq} & \AMSSYM{\nsupseteq} & \AMSSYM{\ntrianglelefteq}\\
- \AMSSYM{\subsetneqq} & \AMSSYM{\supsetneqq} &\AMSSYM{\ntrianglerighteq}\\[0.5ex]
- \AMSSYM{\nleftarrow} & \AMSSYM{\nrightarrow} & \AMSSYM{\nleftrightarrow}\\
- \AMSSYM{\nLeftarrow} & \AMSSYM{\nRightarrow} & \AMSSYM{\nLeftrightarrow} \\
+ \AMSSYM{\nless} & \AMSSYM{\ngtr} & \AMSSYM{\varsubsetneqq} \\
+ \AMSSYM{\lneq} & \AMSSYM{\gneq} & \AMSSYM{\varsupsetneqq} \\
+ \AMSSYM{\nleq} & \AMSSYM{\ngeq} & \AMSSYM{\nsubseteqq} \\
+ \AMSSYM{\nleqslant} & \AMSSYM{\ngeqslant} & \AMSSYM{\nsupseteqq} \\
+ \AMSSYM{\lneqq} & \AMSSYM{\gneqq} & \AMSSYM{\nmid} \\
+ \AMSSYM{\lvertneqq} & \AMSSYM{\gvertneqq} & \AMSSYM{\nparallel} \\
+ \AMSSYM{\nleqq} & \AMSSYM{\ngeqq} & \AMSSYM{\nshortmid} \\
+ \AMSSYM{\lnsim} & \AMSSYM{\gnsim} & \AMSSYM{\nshortparallel} \\
+ \AMSSYM{\lnapprox} & \AMSSYM{\gnapprox} & \AMSSYM{\nsim} \\
+ \AMSSYM{\nprec} & \AMSSYM{\nsucc} & \AMSSYM{\ncong} \\
+ \AMSSYM{\npreceq} & \AMSSYM{\nsucceq} & \AMSSYM{\nvdash} \\
+ \AMSSYM{\precneqq} & \AMSSYM{\succneqq} & \AMSSYM{\nvDash} \\
+ \AMSSYM{\precnsim} & \AMSSYM{\succnsim} & \AMSSYM{\nVdash} \\
+ \AMSSYM{\precnapprox} & \AMSSYM{\succnapprox} & \AMSSYM{\nVDash} \\
+ \AMSSYM{\subsetneq} & \AMSSYM{\supsetneq} & \AMSSYM{\ntriangleleft} \\
+ \AMSSYM{\varsubsetneq} & \AMSSYM{\varsupsetneq} & \AMSSYM{\ntriangleright} \\
+ \AMSSYM{\nsubseteq} & \AMSSYM{\nsupseteq} & \AMSSYM{\ntrianglelefteq} \\
+ \AMSSYM{\subsetneqq} & \AMSSYM{\supsetneqq} & \AMSSYM{\ntrianglerighteq} \\
+ \AMSSYM{\nleftarrow} & \AMSSYM{\nrightarrow} & \AMSSYM{\nleftrightarrow} \\
+ \AMSSYM{\nLeftarrow} & \AMSSYM{\nRightarrow} & \AMSSYM{\nLeftrightarrow} \\
\hline
\end{symbols}
\end{table}
\begin{table}[htp]
\centering
-\caption{\AmS\ 定界符}\label{tbl:ams-delims}
+\caption{\hologo{AmS} 定界符}\label{tbl:ams-delims}
\begin{symbols}{*4{cl}}
\hline
-\AMSSYM{\ulcorner}&\AMSSYM{\urcorner}&\AMSSYM{\llcorner}&\AMSSYM{\lrcorner}\\
-\AMSSYM{\lvert} &\AMSSYM{\rvert} &\AMSSYM{\lVert} &\AMSSYM{\rVert}\\
+\AMSSYM{\ulcorner} & \AMSSYM{\urcorner} & \AMSSYM{\llcorner} & \AMSSYM{\lrcorner} \\
\hline
\end{symbols}
\end{table}
-\begin{table}[htp]
+\begin{table}[htp]
\centering
-\caption{\AmS\ 其它符号。}\label{tbl:ams-misc}
+\caption{\hologo{AmS} 其它符号}\label{tbl:ams-misc}
\begin{symbols}{*3{cl}}
\hline
\AMSSYM{\hbar} & \AMSSYM{\hslash} & \AMSSYM{\Bbbk} \\
@@ -389,4 +390,4 @@
\end{symbols}
\end{table}
-\endinput \ No newline at end of file
+\endinput
diff --git a/info/lshort/chinese/src/titlepage.tex b/info/lshort/chinese/src/chap/titlepage.tex
index e6d3bb0be4..3a7f4e97eb 100644
--- a/info/lshort/chinese/src/titlepage.tex
+++ b/info/lshort/chinese/src/chap/titlepage.tex
@@ -16,7 +16,7 @@
{\bfseries 英文作者:} Tobias Oetiker\\
Hubert Partl, Irene Hyna and Elisabeth Schlegl \\
{\bfseries 英文版本:} Version~\lshortversionoriginal, \lshortdateoriginal\\[4ex]
- {\bfseries 中文翻译:} C\TeX\ 开发小组 \\
+ {\bfseries 中文翻译:} \hologo{CTeX} 开发小组 \\
{\bfseries 中文版本:} 版本~\lshortversioncn,\zhdigits*{\the\year}年\zhnumber{\the\month}月
\end{minipage}%
}
@@ -25,11 +25,11 @@
\newpage\thispagestyle{empty}
\begin{quote}\footnotesize
- Copyright \copyright{} {\the\year} Chinese \TeX\ Society. \\
+ Copyright \copyright{} {\the\year} Chinese \TeX{} Society. \\
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
-\end{quote} \ No newline at end of file
+\end{quote}
diff --git a/info/lshort/chinese/src/lshort-zh-cn-style.sty b/info/lshort/chinese/src/lshort-zh-cn-style.sty
index 6f8ae9e306..3aca98d561 100644
--- a/info/lshort/chinese/src/lshort-zh-cn-style.sty
+++ b/info/lshort/chinese/src/lshort-zh-cn-style.sty
@@ -8,7 +8,8 @@
% 基本工具宏包
%
\RequirePackage{amsmath,amsthm}
-\RequirePackage{hologo,ulem,verbatim,fancyvrb,layout,multicol}
+\RequirePackage{hologo,verbatim,fancyvrb,layout,multicol}
+\RequirePackage[normalem]{ulem}
\RequirePackage{colortbl,tabularx,multirow,makecell,booktabs}
\RequirePackage{graphicx,xcolor,float,subfig}
\RequirePackage{makeidx}
@@ -21,17 +22,19 @@
% 中文正文字体使用 Fandol
%
\PassOptionsToPackage{no-math}{fontspec}
-\RequirePackage[zihao=false,scheme=chinese,heading=true]{ctex}[2015/06/24]
+\RequirePackage[zihao=false,scheme=chinese,heading=true,fontset=fandol]{ctex}[2015/06/24]
%
% 字体和符号宏包
%
\setmainfont{cmun}[
- Extension = .otf,
- UprightFont = *rm,
- ItalicFont = *ti,
- BoldFont = *bx,
- BoldItalicFont = *bi,
+ Extension = .otf,
+ UprightFont = *rm,
+ ItalicFont = *ti,
+ SlantedFont = *sl,
+ BoldFont = *bx,
+ BoldItalicFont = *bi,
+ BoldSlantedFont = *bl,
]
\setsansfont{cmun}[
Extension = .otf,
@@ -48,6 +51,10 @@
BoldItalicFont = *tx,
]
\RequirePackage{amssymb,latexsym,textcomp,mathrsfs,euscript,yhmath} % 与默认字体不冲突的一些符号包
+% 消除 \t 命令的字体 warning
+\AtBeginDocument{%}
+ \renewcommand*\t[1]{{\edef\restore@font{\the\font}\usefont{OML}{cmm}{m}{it}\accent"7F\restore@font#1}}
+}
% 调整 layout 宏包的命令使之能够放入浮动体,手动指定奇偶页的 layout
\input lshort-zh-cn-layout
@@ -146,6 +153,22 @@
{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
+% 允许 hologo 断词
+\hologoSetup{discretionarybreak=true}
+% 新定义 hologo
+\def\HoLogo@TeXLive#1{%
+ \hologo{TeX}\HOLOGO@space\HOLOGO@mbox{Live}%
+}
+\def\HoLogo@MacTeX#1{%
+ \HOLOGO@mbox{Mac}\hologo{TeX}%
+}
+\def\HoLogo@CTeX#1{%
+ \HOLOGO@mbox{C}\hologo{TeX}%
+}
+\def\HoLogo@TikZ#1{%
+ \HOLOGO@mbox{Ti\textit{k\/}Z}
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% lshort 用到的自定义命令
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -159,15 +182,6 @@
\def\CTAN|#1|{\href{http://mirrors.tuna.tsinghua.edu.cn/CTAN/#1}{\CTANref|CTAN://#1|}}
\newcommand{\contrib}[3]{#1\quad\mailto|#2|{\small\\\quad\textit{#3}}\\[1ex]}
-\DeclareRobustCommand*\TikZ{Ti\textit{k\/}Z}
-%
-% PDF 书签中对符号的特殊处理
-%
-\pdfstringdefDisableCommands{%
- \def\AmS{AMS}%
- \def\TikZ{TikZ}%
-}
-
%
% 示意长度
%
diff --git a/info/lshort/chinese/src/lshort-zh-cn.tex b/info/lshort/chinese/src/lshort-zh-cn.tex
index fca438c9b0..1569155b6c 100644
--- a/info/lshort/chinese/src/lshort-zh-cn.tex
+++ b/info/lshort/chinese/src/lshort-zh-cn.tex
@@ -3,7 +3,7 @@
\def\lshortversionoriginal{6.2}
\def\lshortdateoriginal{Februrary 28, 2018}
-\def\lshortversioncn{6.01}
+\def\lshortversioncn{6.02}
\hypersetup{%
pdftitle={The Short Introduction to LaTeX2e (Chinese Simplified)},%
@@ -24,32 +24,32 @@
\begin{document}
\pagenumbering{Alph}
-\input{titlepage}
+\input{chap/titlepage}
\frontmatter
-\input{preface.contrib}
-\input{preface.overview}
+\input{chap/preface.contrib}
+\input{chap/preface.overview}
\tableofcontents
\mainmatter
-\input{chap.01.basics}
-\input{chap.02.text}
-\input{chap.03.elements}
-\input{chap.04.math}
-\input{sec.symbol.table}
-\input{chap.05.style}
-\input{chap.06.spec}
-\input{chap.07.graphic}
-\input{chap.08.custom}
+\input{chap/chap.01.basics}
+\input{chap/chap.02.text}
+\input{chap/chap.03.elements}
+\input{chap/chap.04.math}
+\input{chap/sec.symbol.table}
+\input{chap/chap.05.style}
+\input{chap/chap.06.spec}
+\input{chap/chap.07.graphic}
+\input{chap/chap.08.custom}
\appendix
-\input{app.A.install}
-\input{app.B.error.help}
+\input{chap/app.A.install}
+\input{chap/app.B.error.help}
\refstepcounter{minutes}\label{lshort-minutes}
\backmatter
-\input{biblio}
-\input{fdl}
+\input{chap/biblio}
+\input{chap/fdl}
\printindex
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/info/lshort/chinese/src/make.bat b/info/lshort/chinese/src/make.bat
index e58af4ae36..5ed26b3178 100644
--- a/info/lshort/chinese/src/make.bat
+++ b/info/lshort/chinese/src/make.bat
@@ -1,32 +1,34 @@
-@echo off
-set LSHORT=lshort-zh-cn
-set PDF=%LSHORT%.pdf
-set TEMP=%LSHORT%.xdv %LSHORT%.aux %LSHORT%.log %LSHORT%.idx %LSHORT%.ind %LSHORT%.ilg %LSHORT%.out %LSHORT%.toc %LSHORT%.los %LSHORT%-example.aux %LSHORT%.synctex.gz
-
-if "%1"=="clean" goto clean
-
-set TEX=xelatex
-set NOPDFMODE=-interaction=nonstopmode -synctex=1 --no-pdf
-set MODE=-interaction=nonstopmode -synctex=1
-set MAKEINDEX=makeindex
-
-%TEX% %NOPDFMODE% %LSHORT%
-%MAKEINDEX% -s %LSHORT%.ist %LSHORT%
-%TEX% %NOPDFMODE% %LSHORT%
-%TEX% %MODE% %LSHORT%
-
-if exist %PDF% (
-copy %PDF% ..
-)
-exit
-
-:clean
-del %TEMP%
-del %PDF%
-exit
-
-:distclean
-del %TEMP%
-del %PDF%
-del ..\%PDF%
-exit
+@echo off
+cd %~dp0
+set LSHORT=lshort-zh-cn
+set PDF=%LSHORT%.pdf
+set TEMP=%LSHORT%.xdv %LSHORT%.aux %LSHORT%.log %LSHORT%.idx %LSHORT%.ind %LSHORT%.ilg %LSHORT%.out %LSHORT%.toc %LSHORT%.los %LSHORT%-example.aux %LSHORT%.synctex.gz
+
+if "%1"=="clean" goto clean
+if "%1"=="distclean" goto distclean
+
+set TEX=xelatex
+set NOPDFMODE=-interaction=nonstopmode -synctex=1 --no-pdf
+set MODE=-interaction=nonstopmode -synctex=1
+set MAKEINDEX=makeindex
+
+%TEX% %NOPDFMODE% %LSHORT%
+%MAKEINDEX% -s %LSHORT%.ist %LSHORT%
+%TEX% %NOPDFMODE% %LSHORT%
+%TEX% %MODE% %LSHORT%
+
+if exist %PDF% (
+copy %PDF% ..
+)
+exit /B
+
+:clean
+del %TEMP%
+del %PDF%
+exit /B
+
+:distclean
+del %TEMP%
+del %PDF%
+del ..\%PDF%
+exit /B
diff --git a/info/lshort/chinese/src/preface.overview.tex b/info/lshort/chinese/src/preface.overview.tex
deleted file mode 100644
index 3bf947d2ae..0000000000
--- a/info/lshort/chinese/src/preface.overview.tex
+++ /dev/null
@@ -1,58 +0,0 @@
-\chapter{前言}
-
-\LaTeX\ \cite{manual} 是一个文档准备系统(Document Preparing System),它非常适用于生成高印刷质量
-的科技类和数学类文档。它也能够生成所有其他种类的文档,小到简单的信件,大到完整的书籍。
-\LaTeX~使用 \TeX\ \cite{texbook} 作为它的排版引擎。%
-
-这份短小的手册描述了 \LaTeXe\ 的使用,对 \LaTeX 的大多数应用来说应该是足够了。
-参考文献 \cite{manual,companion} 对 \LaTeX\ 系统提供了完整的描述。%
-
-\bigskip
-本手册在英文版 lshort 的基础上进行了适当的重新编排,共有八章和两篇附录:%
-\begin{description}%
-\item[第一章] 讲述 \LaTeX\ 的来源,源代码的基本结构,以及如何编译源代码生成文档。
-\item[第二章] 讲述在 \LaTeX\ 中如何书写文字,包括中文。%
-\item[第三章] 讲述文档排版的基本元素——标题、目录、列表、图片、表格等等。结合前一章的内容,你应当能够制作内容较为丰富的文档了。%
-\item[第四章] \LaTeX\ 排版公式的能力是众人皆知的。本章的内容涉及了一些排版公式经常用到的命令、环境和符号。
- 章节末尾列出了 \LaTeX\ 常见的数学符号。%
-\item[第五章] 介绍了如何修改文档的一些基本样式,包括字体、段落、页面尺寸、页眉页脚等。
-\item[第六章] 介绍了 \LaTeX\ 的一些扩展功能:排版参考文献、排版索引、排版带有颜色和超链接的电子文档。
-\item[第七章] 介绍了如何在 \LaTeX\ 里使用 \TikZ\ 绘图。作为入门手册,这一部分点到为止。
-\item[第八章] 当你相当熟悉前面几章的内容,需要自己编写命令和宏包扩展 \LaTeX\ 的功能时,本章介绍了一些基本的命令满足你的需求。
-\end{description}%
-\begin{description}
-\item[附录A] 介绍了如何安装 \TeX\ 发行版和更新宏包。
-\item[附录B] 当新手遇到错误和需要寻求更多帮助时,本章提供了一些基本的参考。
-\end{description}
-
-\bigskip
-这些章节是循序渐进的,建议刚刚熟悉 \LaTeX\ 的读者按顺序阅读。一定要认真阅读例子的源代码,它们贯穿全篇手册,包含了很多的信息。%
-
-\bigskip
-如果你已经对 \LaTeX\ 较为熟练,本手册的资源已不足够解决你的问题时,请访问``Comprehensive
-\TeX\ Archive Network'' (\texttt{CTAN}) 站点,主页是 \url{www.ctan.org}。
-所有的宏包也可以从 \url{mirrors.ctan.org} 和遍布全球的各个镜像站点中获得。
-
-在本书中你会找到其他引用 \texttt{CTAN} 的地方,形式为 \texttt{CTAN://} 和之后的树状结构。
-引用本身是一个超链接,点击后将打开内容在 \texttt{CTAN} 上相应位置的页面。
-
-要在自己的电脑上安装 \TeX\ 发行版,请参考附录 \ref{app:install} 中的内容。
-各个操作系统下的 \TeX\ 发行版位于 \CTAN|systems|。
-
-\bigskip
-如果你有意在这份文档中增加、删除或者改变一些内容,请通知作者。作者对 \LaTeX\
-初学者的反馈特别感兴趣,尤其是关于这份介绍哪些内容很容易理解,哪些内容可能需要更好地解释,
-而哪些内容由于太过难以理解、非常不常用而不适宜放在本手册。
-
-\bigskip
-\begin{flushright}
-C\TeX\ 开发小组\par
-\url{https://github.com/CTeX-org}
-\end{flushright}
-
-\vfill
-
-\noindent\begingroup\small lshort 的的最新中文版本位于 \CTAN|info/lshort/chinese|。
-如果用户对其他语言的版本感兴趣,请浏览 \CTAN|info/lshort|。\endgroup
-
-\endinput \ No newline at end of file