LaTeX学习笔记 1 | 一个中文排版例子

LaTeX吉祥物

本文目录

  • 题外话
  • 熟悉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页,但因为这个小例子的存在,难度不算低,有些地方折腾了好久,但最终得到了和书中一模一样的排版,还是很令人自豪的。我自认为刘海洋教授在本章写的内容我基本看明白了,读者对本章有什么疑问可在评论里留言,我们可以多交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容