本文目錄:
- 題外話
- 熟悉LaTeX
- LaTeX的讀音和寫法
- 書中介紹的LaTeX版本會(huì)不會(huì)過時(shí)
- 再談LaTeX發(fā)行版
- 一個(gè)簡單的中文排版例子
- 關(guān)于TeXstudio語法檢查的設(shè)置
- 牛刀小試,第一個(gè)有模有樣的作品
- 源代碼
- 排版效果
- 代碼拆解
- 調(diào)整TeXstudio的默認(rèn)編譯器為XeLaTeX
- 基礎(chǔ)語法
- 換行與空格
- 命令與環(huán)境
- 數(shù)學(xué)公式
- 使用圖表
- 參考文獻(xiàn)與JabRef的安裝使用
- 交叉引用
- 文章格式
- 易錯(cuò)點(diǎn)總結(jié)
- 后記
題外話
等了三天,劉海洋教授的《LaTeX入門》終于到手了,EMS還是不如順豐給力呀。粗略一翻,這本書的排版真的是賞心悅目,我已經(jīng)迫不及待要和它共度美好時(shí)光了。上幾張圖秀一下它的顏值。
熟悉LaTeX
LaTeX的讀音和寫法
LaTeX的官方標(biāo)準(zhǔn)讀音音譯成中文大約是“拉泰赫”,寫法要嚴(yán)格按照大小寫交錯(cuò)寫成LaTeX
。
書中介紹的LaTeX版本會(huì)不會(huì)過時(shí)
劉海洋教授在本書中使用的是LaTeX格式版本為2e,意思是超過了第2版,接近卻沒有達(dá)到第3版。LaTeX2e在1994年就已經(jīng)完善,考慮到這本書是2013年出版的,而LaTeX又是在不斷更新進(jìn)化的,我特地去查了一下LaTeX3相關(guān)的內(nèi)容,點(diǎn)擊這里查看LaTeX3的主頁。根據(jù)我的調(diào)查和理解,目前來說,我認(rèn)為使用LaTeX2e完全滿足日常需要。別的不多說,既然《LaTeX入門》這本書是用LaTeX2e排版的,我還有什么不滿足的呢?
再談LaTeX發(fā)行版
之前有粗略說過CTeX和TeXLive等發(fā)行版,現(xiàn)在詳細(xì)介紹一下。
對(duì)比 | CTeX | TeXLive |
---|---|---|
操作系統(tǒng) | 只限于Windows下 | 通用 |
制作人 | 中科院吳凌云 | TUG |
其他 | 對(duì)MiKTeX的再封裝 | 可刻錄在光盤直接運(yùn)行 |
劉海洋教授還介紹了一些編輯器和PDF閱讀器,不過我個(gè)人認(rèn)為,對(duì)初學(xué)者來說,沒有必要把所有的可用軟件都折騰一番。現(xiàn)在的當(dāng)務(wù)之急,是建立LaTeX技能樹的主干,先把知識(shí)體系建立起來,那些零零碎碎的小知識(shí)都可以后再擴(kuò)充。
一個(gè)簡單的中文排版例子
不知讀者是否發(fā)現(xiàn),在我們之前測(cè)試TeXstudio是否可用的那個(gè)例子里,直接添上中文是不可以的,雖然編譯沒有報(bào)錯(cuò),但無法輸出。這是因?yàn)?TEX 原本是面向西文寫作的,默認(rèn)并沒有加載中文字體。通過更換文檔類型,可以正確顯示出中文。代碼如下:
\documentclass[UTF8]{ctexart}
\begin{document}
\section{文字}
特可愛排版。
\section{數(shù)學(xué)}
\[
a^2+b^2=c^2
\]
\end{document}
顯示效果如下:
這段代碼挺好理解的。如果你懂編程,你肯定直到UTF8代表什么,不懂得話點(diǎn)擊這里查看。反斜線\ 代表的是其后緊跟的是一個(gè)排版命令,而非作者的文字內(nèi)容。documentclass
,顧名思義,就是文檔類了。LaTeX的優(yōu)勢(shì)就在于讓寫作與排版分離,把排版大量繁瑣的要求隱藏在格式之下,想必這個(gè)格式就是只一開始加載的文檔類了。ctexart
嘛,ctexarticle
的縮寫,暫且不管這個(gè)ctexart
是哪路神仙,知道比起之前的article
來它能讓我們輸出中文即可。接下來是一對(duì)命令,\begin{document}
和\end{document}
,看起來被它們包含夾在中間的應(yīng)該就是排版的正文部分了。\section
好理解,段落嘛。至于下一對(duì)命令,\[
和\]
,它們之間包含的應(yīng)該是對(duì)數(shù)學(xué)公式的特殊處理。
關(guān)于TeXstudio語法檢查的設(shè)置
突然發(fā)現(xiàn)TeXstudio會(huì)對(duì)所有正在編輯的中文加紅色下劃線提示報(bào)錯(cuò),看著挺煩人的,選擇菜單欄里的Options-Configure TeXstudio,取消下圖紅色橢圓處的對(duì)勾即可。
牛刀小試,第一個(gè)有模有樣的作品
這一節(jié)研究的是一個(gè)相對(duì)實(shí)際的例子,如劉海洋教授所說,有一些代碼或許難以理解,確實(shí)如此,有些代碼具體怎么執(zhí)行的我不知,但根據(jù)基本的英語能力和編程功底,大概還是猜得出一些代碼的作用的。
這是一片小小的科技論文,麻雀雖小五臟俱全,結(jié)構(gòu)上包括標(biāo)題、摘要、目錄、正文和參考文獻(xiàn),內(nèi)容上包括文字、公式、圖形、表格等。內(nèi)容很多,但別怕,這只是一種慣用的教學(xué)伎倆,先給你一個(gè)完整工程讓你感受一下,這對(duì)你以后的學(xué)習(xí)大有裨益。
源代碼
%-*- 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}
這是一篇關(guān)于勾股定理的小短文。
\end{abstract}
\tableofcontents
\section{勾股定理在古代}\label{sec:diyijie}
西方稱勾股定理為畢達(dá)哥拉斯定理,將勾股定理的發(fā)現(xiàn)歸功于公元前 6 世紀(jì)的
畢達(dá)哥拉斯學(xué)派 \cite{Kline}。該學(xué)派得到了一個(gè)法則,可以求出可排成直角
三角形三邊的三元數(shù)組。畢達(dá)哥拉斯學(xué)派沒有書面著作,該定理的嚴(yán)格表述和證
明則見于歐幾里德\footnote{歐幾里得,約公元前 330--275 年。}《幾何原本》
的命題 47:“直角三角形斜邊上的正方形等于兩直角邊上的兩個(gè)正方形之和。 ”
證明是用面積做的。
我國《周髀算經(jīng)》載商高(約公元前 12 世紀(jì))答周公問:
\begin{myquote}
勾廣三,股修四,徑隅五。
\end{myquote}
又載陳子(約公元前 7--6 世紀(jì))答榮方問:
\begin{myquote}
若求邪至日者,以日下為勾,日高為股,勾股各自乘,并而開方除之,得邪至日。
\end{myquote}
都較古希臘更早。后者已經(jīng)明確道出勾股定理的一般形式。圖\ref{fig:xiantu}是
我國古代對(duì)勾股定理的一種證明 \cite{quanjing}。
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{xiantu.png}
\caption{宋趙爽在《周髀算經(jīng)》注中作的弦圖(仿制),該圖給出了勾股定理一個(gè)極具對(duì)稱美的證明。 }
\label{fig:xiantu}
\end{figure}
\section{勾股定理的近代形式}
勾股定理可以用現(xiàn)代語言表述如下:
\begin{thm}[勾股定理]
直角三角形斜邊的平方等于兩腰的平方和。
\end{thm}
可以用符號(hào)語言表述為:設(shè)直角三角形$ABC$,其中$\angle C = 90\degree$,則有
\begin{equation}\label{eq:gougu}
AB^2 = BC^2 + AC^2.
\end{equation}
滿足式\eqref{eq:gougu}的整數(shù)稱為\emph{勾股數(shù)}。第\ref{sec:diyijie}節(jié)所說
畢達(dá)哥拉斯學(xué)派得到的三元數(shù)組就是勾股數(shù)。下表列出一些較小的勾股數(shù):
\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}
排版效果
怎么樣,是不是看起來挺不錯(cuò),心動(dòng)不如行動(dòng),快來看一下是什么樣的代碼能排出如此精美的文章的吧!
代碼拆解
區(qū)區(qū)七八十代碼,竟花費(fèi)了我接近兩個(gè)小時(shí)來調(diào)試,頗為不易,接下來讓我來拆解一下這段代碼。
調(diào)整TeXstudio的默認(rèn)編譯器為XeLaTeX
自此以后的編譯工作我們都使用XeLaTeX,一開始TeXstudio默認(rèn)的編譯器可能不是它,需要我們手動(dòng)修改。選擇菜單欄里的Options-Configure TeXstudio,修改下圖紅色橢圓處即可。
基礎(chǔ)語法
- 以%開頭的行是注釋,不會(huì)對(duì)排版效果產(chǎn)生任何影響,只是用來方便閱讀源代碼。
-
\title{}\author{}\date{\today}
,顧名思義,聲明了標(biāo)題、作者和寫作日期,\today
當(dāng)然是自動(dòng)生成今日的日期。這只是聲明,還需要下面的\maketitle
命令使之出現(xiàn)在編譯結(jié)果中。 - 在
\begin{document}
之前的部分稱為導(dǎo)言區(qū),往往用來對(duì)文檔的性質(zhì)做一些設(shè)置,或自定義一些命令。 -
\bibliographystyle{plain}
用來聲明參考文獻(xiàn)的格式,\bibliography{math}
將從同文件夾下的math.bib中獲取參考文獻(xiàn)信息。 -
\tableofcontents
用來輸出目錄。 -
\zihao
命令設(shè)置字號(hào),\kaiti
設(shè)置字體為楷體
換行與空格
- 空行分段,單個(gè)回車不分段。LaTeX會(huì)忽略單個(gè)回車、段前的空格和漢字后面的空格,而其他符號(hào)后面的空格則會(huì)保留。
- 使用XeLaTeX時(shí),ctexart會(huì)調(diào)用xeCJK宏包,自動(dòng)處理漢字與其他符號(hào)之間的距離。
- 為了使源代碼更容易閱讀,我們可以利用上面兩點(diǎn)特性:在合適的位置敲一下回車,不要讓一行代碼太長;在漢字與其他符號(hào)之間加一個(gè)空格,使得代碼更清晰。
命令與環(huán)境
- 命令的格式為:以反斜線\開頭,后接一串字母表示命令名,參數(shù)用花括號(hào)括起來,可選參數(shù)用方括號(hào)。
- 環(huán)境的格式為:
\begin{環(huán)境名}(環(huán)境內(nèi)容)\end{環(huán)境名}
,故源代碼中的document,abstract,myquote,figure,thm,equation,table,tabular都是環(huán)境,其中myquote是自定義的環(huán)境。 - 自定義環(huán)境:源代碼中的
\newenvironment{myquote}{\begin{quote}\kaishu\zihao{-5}}{\end{quote}}
用來自定義環(huán)境,為什么這樣寫,這還得繼續(xù)學(xué)習(xí)才能知曉。 - 自定義命令:源代碼中的
\newcommand\degree{^\circ}
用來自定義命令,新命令\degree
的效用等價(jià)于^\circ
。
數(shù)學(xué)公式
數(shù)學(xué)公式分為兩種,一個(gè)是正文公式,一個(gè)是顯示公式。
- 正文公式:把公式用一對(duì)美元符號(hào)$$括起來即可,主要用于較短的夾在行文中的公式。
- 顯示公式:使用equation環(huán)境,主要用于較長的比較重要的需要引用的公式。
使用圖表
插圖功能:需要使用宏包,在引言區(qū)使用\usepackage{graphicx}
命令。一個(gè)用來插圖的代碼標(biāo)準(zhǔn)模板如下:
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{圖片路徑}
\caption{ }
\end{figure}
figure環(huán)境的可選參數(shù),ht分別表示here和top,表示浮動(dòng)體可以出現(xiàn)在環(huán)境周圍的文本所在處(here)和一頁的頂部(top)。\centering
表示居中,scale
是對(duì)圖片的放縮比例,圖片路徑
是指相對(duì)于當(dāng)前編輯的.tex文件路徑*,請(qǐng)注意這一點(diǎn)。\caption
當(dāng)然是指圖片的標(biāo)題。
圖表功能:表格由tabular環(huán)境完成,一個(gè)用來制作表格的標(biāo)準(zhǔn)模板如下:
\begin{tabular}{|rrr|}
\hline
直角邊 $a$ & 直角邊 $b$ & 斜邊 $c$ \\
\hline
3 & 4 & 5 \\
5 & 12 & 13 \\
\hline
\end{tabular}
|rrr|
表示表格有三列,都是右對(duì)齊(r代表right),在第一列前面和第三列后面各有一條垂直的表格線。\\
把行與行隔開,&
把列與列隔開,\hline
畫一條橫線。
參考文獻(xiàn)與JabRef的安裝使用
LaTeX使用BibTeX處理參考文獻(xiàn),BibTeX需要我們定義“參考文獻(xiàn)數(shù)據(jù)庫”,參考文獻(xiàn)數(shù)據(jù)庫是一個(gè)后綴為.bib的文件,本文所使用的參考文獻(xiàn)數(shù)據(jù)庫如下:
% Encoding: UTF-8
@Book{Kline,
title = {古今數(shù)學(xué)思想},
publisher = {上海科學(xué)技術(shù)出版社},
year = {2002},
author = {克萊因},
}
@Book{Shiye,
title = {幾何的有名定理},
publisher = {上海科學(xué)技術(shù)出版社},
year = {1986},
author = {失野健太郎},
}
@Article{quanjing,
author = {曲安京},
title = {商高、趙爽與劉徽關(guān)于勾股定理的證明},
journal = {數(shù)學(xué)傳播},
year = {1998},
}
@Comment{jabref-meta: databaseType:bibtex;}
你可以復(fù)制粘貼到記事本里,然后保存為math.bib。注意這個(gè)文件的路徑也是相對(duì)于當(dāng)前編輯的.tex文件路*,直接在命令里寫成\bibliography{math}
表明,math.bib和當(dāng)前編輯的.tex文件在同一文件夾下。
其實(shí)我們大可不必手動(dòng)輸入,有專門的軟件JabRef來管理文獻(xiàn)數(shù)據(jù)庫,點(diǎn)擊這里下載。安裝完成后,點(diǎn)擊菜單欄file->New BibTeX database,然后點(diǎn)擊下圖紅色橢圓中的加號(hào):
選擇你要添加的文獻(xiàn)類型,我們添加了兩個(gè)Book和一個(gè)Article,然后就可以輸入內(nèi)容了。這里需要解決一個(gè)中文亂碼的問題。點(diǎn)擊菜單欄Options->Preferences,點(diǎn)擊下圖紅色橢圓處的按鈕,把字體換成SimSun,保存即可。
交叉引用
除了參考文獻(xiàn),圖表和公式的編號(hào)也可以引用。基本的交叉引用命令是\ref
,它以標(biāo)簽為參數(shù),得到被引用的編號(hào)。標(biāo)簽通過\label
命令設(shè)置,比如在插圖時(shí)已經(jīng)為弦圖定義了標(biāo)簽fig:xiantu。在本文中,還為表格和section設(shè)置了標(biāo)簽。
其中,對(duì)于公式的引用,數(shù)學(xué)宏包amsmath定義了\eqref命令,專門用于公式的引用,特色是能產(chǎn)生括號(hào)。
文章格式
設(shè)計(jì)頁面尺寸可以使用geometry宏包,代碼:
\usepackage{geometry}
\geometry{a6paper,centering,scale=0.8}
定義頁面使用A6紙大小,版心居中,長寬占頁面的0.8倍。
易錯(cuò)點(diǎn)總結(jié)
- 引用圖片、文獻(xiàn)數(shù)據(jù)庫時(shí)注意路徑。
- 命令不要抄錯(cuò)了,很容易把大括號(hào)抄成方括號(hào)。
- 劉海洋教授在文中說要編譯四次,按四次按鈕。TeXstudio貌似不需要,點(diǎn)擊一次按鈕后,自動(dòng)編譯了四次。
- 不要試圖讀完本文就想排出這個(gè)效果,最好是通讀一下《LaTeX入門》的第一章。
后記
今天學(xué)習(xí)了《LaTeX入門》的第一章,雖然只有50頁,但因?yàn)檫@個(gè)小例子的存在,難度不算低,有些地方折騰了好久,但最終得到了和書中一模一樣的排版,還是很令人自豪的。我自認(rèn)為劉海洋教授在本章寫的內(nèi)容我基本看明白了,讀者對(duì)本章有什么疑問可在評(píng)論里留言,我們可以多交流。