LaTeX学习笔记 1 | 一个中文排版例子
本文目录:
- 题外话
- 熟悉LaTeX
- LaTeX的读音和写法
- 书中介绍的LaTeX版本会不会过时
- 再谈LaTeX发行版
- 一个简单的中文排版例子
- 关于TeXstudio语法检查的设置
- 牛刀小试,第一个有模有样的作品
- 源代码
- 排版效果
- 代码拆解
- 调整TeXstudio的默认编译器为XeLaTeX
- 基础语法
- 换行与空格
- 命令与环境
- 数学公式
- 使用图表
- 参考文献与JabRef的安装使用
- 交叉引用
- 文章格式
- 易错点总结
- 后记
题外话
等了三天,刘海洋教授的《LaTeX入门》终于到手了,EMS还是不如顺丰给力呀。粗略一翻,这本书的排版真的是赏心悦目,我已经迫不及待要和它共度美好时光了。上几张图秀一下它的颜值。
《LaTeX入门》封面 《LaTeX入门》内容
熟悉LaTeX
LaTeX的读音和写法
LaTeX的官方标准读音音译成中文大约是“拉泰赫”,写法要严格按照大小写交错写成LaTeX
。
书中介绍的LaTeX版本会不会过时
刘海洋教授在本书中使用的是LaTeX格式版本为2e,意思是超过了第2版,接近却没有达到第3版。LaTeX2e在1994年就已经完善,考虑到这本书是2013年出版的,而LaTeX又是在不断更新进化的,我特地去查了一下LaTeX3相关的内容,点击这里查看LaTeX3的主页。根据我的调查和理解,目前来说,我认为使用LaTeX2e完全满足日常需要。别的不多说,既然《LaTeX入门》这本书是用LaTeX2e排版的,我还有什么不满足的呢?
再谈LaTeX发行版
之前有粗略说过CTeX和TeXLive等发行版,现在详细介绍一下。
对比 | CTeX | TeXLive |
---|---|---|
操作系统 | 只限于Windows下 | 通用 |
制作人 | 中科院吴凌云 | TUG |
其他 | 对MiKTeX的再封装 | 可刻录在光盘直接运行 |
刘海洋教授还介绍了一些编辑器和PDF阅读器,不过我个人认为,对初学者来说,没有必要把所有的可用软件都折腾一番。现在的当务之急,是建立LaTeX技能树的主干,先把知识体系建立起来,那些零零碎碎的小知识都可以后再扩充。
一个简单的中文排版例子
不知读者是否发现,在我们之前测试TeXstudio是否可用的那个例子里,直接添上中文是不可以的,虽然编译没有报错,但无法输出。这是因为 TEX 原本是面向西文写作的,默认并没有加载中文字体。通过更换文档类型,可以正确显示出中文。代码如下:
\documentclass[UTF8]{ctexart}
\begin{document}
\section{文字}
特可爱排版。
\section{数学}
\[
a^2+b^2=c^2
\]
\end{document}
显示效果如下:
显示效果
这段代码挺好理解的。如果你懂编程,你肯定直到UTF8代表什么,不懂得话点击这里查看。反斜线\ 代表的是其后紧跟的是一个排版命令,而非作者的文字内容。documentclass
,顾名思义,就是文档类了。LaTeX的优势就在于让写作与排版分离,把排版大量繁琐的要求隐藏在格式之下,想必这个格式就是只一开始加载的文档类了。ctexart
嘛,ctexarticle
的缩写,暂且不管这个ctexart
是哪路神仙,知道比起之前的article
来它能让我们输出中文即可。接下来是一对命令,\begin{document}
和\end{document}
,看起来被它们包含夹在中间的应该就是排版的正文部分了。\section
好理解,段落嘛。至于下一对命令,\[
和\]
,它们之间包含的应该是对数学公式的特殊处理。
关于TeXstudio语法检查的设置
突然发现TeXstudio会对所有正在编辑的中文加红色下划线提示报错,看着挺烦人的,选择菜单栏里的Options-Configure TeXstudio,取消下图红色椭圆处的对勾即可。
牛刀小试,第一个有模有样的作品
这一节研究的是一个相对实际的例子,如刘海洋教授所说,有一些代码或许难以理解,确实如此,有些代码具体怎么执行的我不知,但根据基本的英语能力和编程功底,大概还是猜得出一些代码的作用的。
这是一片小小的科技论文,麻雀虽小五脏俱全,结构上包括标题、摘要、目录、正文和参考文献,内容上包括文字、公式、图形、表格等。内容很多,但别怕,这只是一种惯用的教学伎俩,先给你一个完整工程让你感受一下,这对你以后的学习大有裨益。
源代码
%-*- coding: UTF-8 -*-
% gougu.tex
% 勾股定理
\documentclass[UTF8]{ctexart}
\usepackage{graphicx}
\usepackage{float}
\usepackage{amsmath}
\usepackage{geometry}
\geometry{a6paper,centering,scale=0.8}
\usepackage[format=hang,font=small,textfont=it]{caption}
\usepackage[nottoc]{tocbibind}
\newenvironment{myquote}
{\begin{quote}\kaishu\zihao{-5}}
{\end{quote}}
\newcommand\degree{^\circ}
\title{\heiti 杂谈勾股定理}
\author{\kaishu 纸山}
\date{\today}
\bibliographystyle{plain}
\newtheorem{thm}{定理}
\begin{document}
\maketitle
\begin{abstract}
这是一篇关于勾股定理的小短文。
\end{abstract}
\tableofcontents
\section{勾股定理在古代}\label{sec:diyijie}
西方称勾股定理为毕达哥拉斯定理,将勾股定理的发现归功于公元前 6 世纪的
毕达哥拉斯学派 \cite{Kline}。该学派得到了一个法则,可以求出可排成直角
三角形三边的三元数组。毕达哥拉斯学派没有书面著作,该定理的严格表述和证
明则见于欧几里德\footnote{欧几里得,约公元前 330--275 年。}《几何原本》
的命题 47:“直角三角形斜边上的正方形等于两直角边上的两个正方形之和。 ”
证明是用面积做的。
我国《周髀算经》载商高(约公元前 12 世纪)答周公问:
\begin{myquote}
勾广三,股修四,径隅五。
\end{myquote}
又载陈子(约公元前 7--6 世纪)答荣方问:
\begin{myquote}
若求邪至日者,以日下为勾,日高为股,勾股各自乘,并而开方除之,得邪至日。
\end{myquote}
都较古希腊更早。后者已经明确道出勾股定理的一般形式。图\ref{fig:xiantu}是
我国古代对勾股定理的一种证明 \cite{quanjing}。
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{xiantu.png}
\caption{宋赵爽在《周髀算经》注中作的弦图(仿制),该图给出了勾股定理一个极具对称美的证明。 }
\label{fig:xiantu}
\end{figure}
\section{勾股定理的近代形式}
勾股定理可以用现代语言表述如下:
\begin{thm}[勾股定理]
直角三角形斜边的平方等于两腰的平方和。
\end{thm}
可以用符号语言表述为:设直角三角形$ABC$,其中$\angle C = 90\degree$,则有
\begin{equation}\label{eq:gougu}
AB^2 = BC^2 + AC^2.
\end{equation}
满足式\eqref{eq:gougu}的整数称为\emph{勾股数}。第\ref{sec:diyijie}节所说
毕达哥拉斯学派得到的三元数组就是勾股数。下表列出一些较小的勾股数:
\begin{table}[H]
\begin{tabular}{|rrr|}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\hline
3 & 4 & 5 \\
5 & 12 & 13 \\
\hline
\end{tabular}%
\qquad
($a^2 + b^2 = c^2$)
\end{table}
\nocite{Shiye}
\bibliography{math}
\end{document}
排版效果
排版效果 排版效果怎么样,是不是看起来挺不错,心动不如行动,快来看一下是什么样的代码能排出如此精美的文章的吧!
代码拆解
区区七八十代码,竟花费了我接近两个小时来调试,颇为不易,接下来让我来拆解一下这段代码。
调整TeXstudio的默认编译器为XeLaTeX
自此以后的编译工作我们都使用XeLaTeX,一开始TeXstudio默认的编译器可能不是它,需要我们手动修改。选择菜单栏里的Options-Configure TeXstudio,修改下图红色椭圆处即可。
基础语法
- 以%开头的行是注释,不会对排版效果产生任何影响,只是用来方便阅读源代码。
-
\title{}\author{}\date{\today}
,顾名思义,声明了标题、作者和写作日期,\today
当然是自动生成今日的日期。这只是声明,还需要下面的\maketitle
命令使之出现在编译结果中。 - 在
\begin{document}
之前的部分称为导言区,往往用来对文档的性质做一些设置,或自定义一些命令。 -
\bibliographystyle{plain}
用来声明参考文献的格式,\bibliography{math}
将从同文件夹下的math.bib中获取参考文献信息。 -
\tableofcontents
用来输出目录。 -
\zihao
命令设置字号,\kaiti
设置字体为楷体
换行与空格
- 空行分段,单个回车不分段。LaTeX会忽略单个回车、段前的空格和汉字后面的空格,而其他符号后面的空格则会保留。
- 使用XeLaTeX时,ctexart会调用xeCJK宏包,自动处理汉字与其他符号之间的距离。
- 为了使源代码更容易阅读,我们可以利用上面两点特性:在合适的位置敲一下回车,不要让一行代码太长;在汉字与其他符号之间加一个空格,使得代码更清晰。
命令与环境
- 命令的格式为:以反斜线\开头,后接一串字母表示命令名,参数用花括号括起来,可选参数用方括号。
- 环境的格式为:
\begin{环境名}(环境内容)\end{环境名}
,故源代码中的document,abstract,myquote,figure,thm,equation,table,tabular都是环境,其中myquote是自定义的环境。 - 自定义环境:源代码中的
\newenvironment{myquote}{\begin{quote}\kaishu\zihao{-5}}{\end{quote}}
用来自定义环境,为什么这样写,这还得继续学习才能知晓。 - 自定义命令:源代码中的
\newcommand\degree{^\circ}
用来自定义命令,新命令\degree
的效用等价于^\circ
。
数学公式
数学公式分为两种,一个是正文公式,一个是显示公式。
- 正文公式:把公式用一对美元符号$$括起来即可,主要用于较短的夹在行文中的公式。
- 显示公式:使用equation环境,主要用于较长的比较重要的需要引用的公式。
使用图表
插图功能:需要使用宏包,在引言区使用\usepackage{graphicx}
命令。一个用来插图的代码标准模板如下:
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{图片路径}
\caption{ }
\end{figure}
figure环境的可选参数,ht分别表示here和top,表示浮动体可以出现在环境周围的文本所在处(here)和一页的顶部(top)。\centering
表示居中,scale
是对图片的放缩比例,图片路径
是指相对于当前编辑的.tex文件路径*,请注意这一点。\caption
当然是指图片的标题。
图表功能:表格由tabular环境完成,一个用来制作表格的标准模板如下:
\begin{tabular}{|rrr|}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\hline
3 & 4 & 5 \\
5 & 12 & 13 \\
\hline
\end{tabular}
|rrr|
表示表格有三列,都是右对齐(r代表right),在第一列前面和第三列后面各有一条垂直的表格线。\\
把行与行隔开,&
把列与列隔开,\hline
画一条横线。
参考文献与JabRef的安装使用
LaTeX使用BibTeX处理参考文献,BibTeX需要我们定义“参考文献数据库”,参考文献数据库是一个后缀为.bib的文件,本文所使用的参考文献数据库如下:
% Encoding: UTF-8
@Book{Kline,
title = {古今数学思想},
publisher = {上海科学技术出版社},
year = {2002},
author = {克莱因},
}
@Book{Shiye,
title = {几何的有名定理},
publisher = {上海科学技术出版社},
year = {1986},
author = {失野健太郎},
}
@Article{quanjing,
author = {曲安京},
title = {商高、赵爽与刘徽关于勾股定理的证明},
journal = {数学传播},
year = {1998},
}
@Comment{jabref-meta: databaseType:bibtex;}
你可以复制粘贴到记事本里,然后保存为math.bib。注意这个文件的路径也是相对于当前编辑的.tex文件路*,直接在命令里写成\bibliography{math}
表明,math.bib和当前编辑的.tex文件在同一文件夹下。
其实我们大可不必手动输入,有专门的软件JabRef来管理文献数据库,点击这里下载。安装完成后,点击菜单栏file->New BibTeX database,然后点击下图红色椭圆中的加号:
选择你要添加的文献类型,我们添加了两个Book和一个Article,然后就可以输入内容了。这里需要解决一个中文乱码的问题。点击菜单栏Options->Preferences,点击下图红色椭圆处的按钮,把字体换成SimSun,保存即可。
交叉引用
除了参考文献,图表和公式的编号也可以引用。基本的交叉引用命令是\ref
,它以标签为参数,得到被引用的编号。标签通过\label
命令设置,比如在插图时已经为弦图定义了标签fig:xiantu。在本文中,还为表格和section设置了标签。
其中,对于公式的引用,数学宏包amsmath定义了\eqref命令,专门用于公式的引用,特色是能产生括号。
文章格式
设计页面尺寸可以使用geometry宏包,代码:
\usepackage{geometry}
\geometry{a6paper,centering,scale=0.8}
定义页面使用A6纸大小,版心居中,长宽占页面的0.8倍。
易错点总结
- 引用图片、文献数据库时注意路径。
- 命令不要抄错了,很容易把大括号抄成方括号。
- 刘海洋教授在文中说要编译四次,按四次按钮。TeXstudio貌似不需要,点击一次按钮后,自动编译了四次。
- 不要试图读完本文就想排出这个效果,最好是通读一下《LaTeX入门》的第一章。
后记
今天学习了《LaTeX入门》的第一章,虽然只有50页,但因为这个小例子的存在,难度不算低,有些地方折腾了好久,但最终得到了和书中一模一样的排版,还是很令人自豪的。我自认为刘海洋教授在本章写的内容我基本看明白了,读者对本章有什么疑问可在评论里留言,我们可以多交流。