本文目錄:
- 題外話
- 熟悉LaTeX
- LaTeX的讀音和寫法
- 書中介紹的LaTeX版本會不會過時
- 再談LaTeX發行版
- 一個簡單的中文排版例子
- 關于TeXstudio語法檢查的設置
- 牛刀小試,第一個有模有樣的作品
- 源代碼
- 排版效果
- 代碼拆解
- 調整TeXstudio的默認編譯器為XeLaTeX
- 基礎語法
- 換行與空格
- 命令與環境
- 數學公式
- 使用圖表
- 參考文獻與JabRef的安裝使用
- 交叉引用
- 文章格式
- 易錯點總結
- 后記
題外話
等了三天,劉海洋教授的《LaTeX入門》終于到手了,EMS還是不如順豐給力呀。粗略一翻,這本書的排版真的是賞心悅目,我已經迫不及待要和它共度美好時光了。上幾張圖秀一下它的顏值。
熟悉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頁,但因為這個小例子的存在,難度不算低,有些地方折騰了好久,但最終得到了和書中一模一樣的排版,還是很令人自豪的。我自認為劉海洋教授在本章寫的內容我基本看明白了,讀者對本章有什么疑問可在評論里留言,我們可以多交流。