解讀上一篇文章(2)LaTeX論文排版——總體框架中的排版樣例
注釋
- 不會被編譯
- 不會對排版效果產生任何影響
- 注釋是用來方便閱讀源代碼
用%進行行注釋
% 這是一行注釋
使用verbatim
包進行塊注釋,需要注意的是這個方法不能使用在像數學環境等一些復雜的環境中
\usepackage{verbatim}
\begin{comment}
這是第一行注釋
這是第一行注釋
\end{comment}
用命令\iffalse…\fi
把需要注釋的內容包含起來
\iffalse
這是第一行注釋
這是第一行注釋
\fi
說明
- 說明是用來確定文檔屬性和編譯選項,行也是以%開頭,一般放在tex文件開頭
常有如下說明
% *- coding: UTF-8 -*- %文檔編碼為utf8
TeXlive支持Linux/Window/Mac,MacTeX專項支持mac,MiKTeX專項支持Windows,etc
% !TEX builder = TeXlive %編譯器為TeXlive
XeTeX是一種使用Unicode的TeX排版引擎,原生支持Unicode,并默認其輸入文件為utf-8編碼,可以在不進行額外配置的情況下直接使用操作系統中安裝的字體,從底端就支持各種文字包括中文, 生成的文檔更為美觀。xelatex 擁有XeTeX 的優點
% !TEX program = xelatex %排版引擎程序調用順序配置"latex-workshop.latex.recipes"中的第一個為xelatex(編譯時默認用第一個)
如要對中文文檔進行排版,參考這里進行配置
導言區
- 在
\documentclass[]{}
和\begin{document}
之間的部分稱為導言區,一般用于載入宏包,對文檔的性質做一些設置或自定義一些命令和調整格式 - 用\ 開始的字母串來表示一個命令,命令后面用花括號{} 包含的內容是該命令的參數(必不可少),用方括號[]包含該命令的可選參數(可選)
這里的\documentclass[]{}
是LATEX 文檔的基本命令,用于指明文檔類,這里文檔類為ctexart,ctexart是ctexarticle的縮寫,是支持中文的article類,并設定該ctexart文檔類為UTF8編碼,紙張為A6大小
\documentclass[UTF8, a6paper]{ctexart},
*文檔類常有
article?排版科技期刊、短報告、程序文檔、邀請函等
report?排版多章節的長報告、短篇的書籍、博士論文等
book???排版書籍
slides??排版幻燈片,其中使用了較大的 sans serif 字體
使用ctexart文檔類,所有中文環境和章節編號等等都已經按照中文習慣設置好了,簡單易行。另外,對于book 和report 文檔類,也有對應的ctexbook 和ctexrep 中文文檔類,其用法類似
文檔類的屬性常有:
紙張大小(a4paper,a5paper,b4paper,letterpaper,legalpaper,executivepaper):
默認的letterpaper 紙張常見于美國,和國內常用的A4 紙張的大小稍有差別,建議自己指定。
字體大小(10pt,11pt,12pt):默認為10pt。
紙張方向(portrait,landscape):默認為portrait(縱向),在屏幕閱讀也許landscape(橫向)更方便。
草稿定稿(draft,final):默認為final(定稿);如果是draft(草稿),頁面內容有溢出時會顯示粗黑條。
單面雙面(oneside,twoside):對于article 和report 文檔類,默認設置為單面,頁碼總是在右邊;對于book 文檔類,默認設置為雙面,奇數頁頁碼在右邊,偶數頁頁碼在左邊,這樣雙面打印時頁碼總在外側。
新章開始(openright,openany):僅對book 文檔類有效,默認值為openright,即每章都從奇數頁開始;如果設置為openany,則每章僅從新的一頁開始,不管奇偶頁。*
這里的\usepackage []{}
命令也是LATEX 的基本命令,用于載入LATEX 宏包,LATEX 系統中包含了各種各樣的宏包,對LATEX 的基本功能作了各種擴展,LaTeX常用宏包請進傳送門
這里的\bibliographystyle{plain}
用來聲明參考文獻的樣式
現在很多文章的公式定理等都需要采用統一編號,而不再是獨立編號,如定理1,接下來可能是定理2,等等,這可以用\newtheorem{}
來完成,這里的\newtheorem{thm}{定理}
聲明一個thm
環境,標題為定理,比如下面的代碼在正文中第一次出現,會編譯輸出定理1(勾股定理)...定理2(切線長定理)
\begin{thm}[勾股定理]
...
\end{thm}
...
\begin{thm}[切線長定理]
...
\end{thm}
正文區
- 在
\begin{document}
和\end{document}
之間的部分我們稱為正文區,一般用于正文內容的撰寫 - LaTeX的命令也有不同的類型,形如
\begin{環境名}...\end{環境名}
的命令組合我們稱為環境
這里的\maketitle
命令用來控制編譯輸出標題、作者、日期
這里的\tableofcontents
命令用來控制編譯輸出目錄
\zihao{}
命令設置字號,\kaiti
命令設置字體
\bibliography{math}
將從同文件夾下的math.bib
中獲取參考文獻信息
LaTeX語法參考Latex排版全解、LaTeX學習筆記 1 | 一個中文排版例子、《LaTeX入門》v8ts
換行與空格
- 用一個空行或者
\par
命令可以開始新的段落,同時會有默認的首行縮進,用\newline
或\\可以強制換到下一行且不會有縮進,表格里用只能\\換行 - LaTeX會忽略單個回車、段前的空格和漢字后面的空格,而其他符號后面的空格則會保留
- 為了使源代碼更容易閱讀,編寫時可在合適的位置敲一下回車,不要讓一行代碼太長;在漢字與其他符號之間加一個空格,使得代碼更清晰
命令與環境
- 命令的格式為:以反斜線\開頭,后接一串字母表示命令名,參數用花括號括起來,可選參數用方括號
- 環境的格式為:
\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,為什么這樣寫,移步到這里學習,如果是短命令\newcommand**{\新命令名}[參數個數]{命令內容},則命令內容中不能出現段落,即不能有
\par
列表
- 列表環境有三種,分別是無序列表(itemize)、有序列表(enumerate)和描述列表(description)
無序列表(itemize)
\documentclass{ctexart}
\begin{document}
\begin{itemize}
\item javascript
\item html
\item css
\end{itemize}
\end{document}
有序列表(enumerate)
\documentclass{ctexart}
\begin{document}
\begin{enumerate}
\item javascript
\item html
\item css
\end{enumerate}
\end{document}
描述列表(description)
\documentclass{ctexart}
\begin{document}
\begin{description}
\item[javascript] javascript
\item[html] html
\item[css] css
\end{description}
\end{document}
補充:,\LaTeX{}默認的列表環境會在條目之間插入過多的行距,若需要正文行距的列表環境,可以使用compactitem環境
\begin{compactitem}
\item[javascript] javascript
\item[html] html
\item[css] css
\end{compactitem}
標題摘要
這里的\title{}\author{}\date{}
顧名思義,聲明了標題、作者和寫作日期,\heiti
設置標題字體為黑體,\kaishu
設置作者字體為楷書,\today
當然是自動生成今日的日期,如果\date{}
命令的參數為空,則不顯示日期信息,如果不出現\date
命令,則默認顯示當前的日期,這只是聲明,還需要下面的\maketitle
命令用來控制編譯輸出標題、作者、日期
% -*- coding: UTF-8 -*-
% !TEX builder = TeXlive
% !TEX program = xelatex
% test.tex
% 測試
\documentclass{ctexart}
\begin{document}
\title{LaTeX論文排版}
\author{5john家安}
\date{\today}
\maketitle
\begin{abstract}
LATEX(英語發音:/?le?t?k/ LAY-tek或英語發音:
/?lɑ?t?k/ LAH-tek,音譯“拉泰赫”),是一種基于TEX的排版系
統,由美國電腦學家萊斯利?蘭伯特在20世紀80年代初期開發,利
用這種格式,即使用戶沒有排版和程序設計的知識也可以充分發揮
由TEX所提供的強大功能。對于生成復雜表格和數學公式,這一點
表現得尤為突出。因此它非常適用于生成高印刷質量的科技和數學
類文檔。這個系統同樣適用于生成從簡單的郵件到完整書籍的所有
其他種類的文檔。
\end{abstract}
\end{document}
章節目錄
- 在book 和report 文檔類中,可以使用
\part、\chapter、\section 、\subsection、\subsubsection、\paragraph、\subparagraph
這些章節命令,在article 文檔類中,除了\chapter
不能用,其它的都可以用 - 用
\tableofcontents
命令可以自動從各章節標題生成目錄 - 在導言區中用命令
\usepackage{hyperref}
載入hyperref 宏包就可以讓生成的文章目錄有鏈接,點擊時會自動跳轉到該章節,而且也會使得生成的pdf 文件帶有目錄書簽 - 要調整章節標題在目錄頁中的格式,可以用titletoc 宏包,該宏包的基本命令參數為
\titlecontents{標題層次}[左間距]{整體格式}{標題序號}{標題內容}{指引線和頁碼}[下間距]
詳情參考這里
\documentclass[UTF8, a6paper]{ctexart}
\begin{document}
\tableofcontents
\part{緒論}
\section{課題研究背景} 這一節我們介紹課題研究背景
\section{課題研究意義} 這一節我們介紹課題研究意義
\subsection{強化學習網絡模擬訓練} 這一小節我們介紹國內外強化學習網絡模擬訓練現狀
\subsubsection{AirSim} 這一子節我們介紹國內外微軟開發AirSim進行強化學習網絡模擬訓練
\paragraph{段標題}
\subparagraph{小段標題}
\subsubsection{CARLA} 這一子節我們介紹國內外某一團隊開發CARLA進行強化學習網絡模擬訓練
\end{document}
參考文獻
- 引用文獻的基本環境是
thebibliography
,使用方法如下,其中\begin{thebibliography}{}
的大括號內填入的數字表示最大標號值,\bibitem
表示一條文獻記錄,其中[顯示符號]
表示在參考文獻區域顯示的標號,可不填,默認使用數字1,2,3進行編號,引用標簽則是在正文中引用的標簽,參考文獻的引用和其他的引用有點不同,需要用\cite{引用標簽}
來引用。
\begin{thebibliography}{}
\bibitem[顯示符號]{引用標簽} Book Title, Author
\end{thebibliography}
- 默認
thebibliography
會自動添加標題Reference,所以無需重復添加 - 默認參考文獻的行間距為一行,這有時候顯得太大了。可以在
\begin{thebibliography}{}
后添加\addtolength{\itemsep}{-1.5ex}
來縮小行間距,-1.5ex
表示每行縮小1.5ex
,其實細心觀察可以發現,thebibliography
其實是一個枚舉環境,因此對于itemize
和enumerate
,可以用同樣的方法縮小行間距 -
thebibliography
是十分繁瑣的,因為你還需要把作者等信息一個個地填上去,有沒有什么更好的方法呢?答案是:有的,那就是bibtex!bibtex是一個引用數據庫,一般以bib后綴結尾,各大論文網站都會提供bibtex格式的文獻引用,這里不做詳解,可去谷歌學術或百度學術搜索一下,推薦用bibtex
\documentclass[UTF8, a6paper]{ctexart}
\begin{document}
\tableofcontents
\part{緒論}
\section{課題研究背景} 這一節我們介紹課題研究背景
\section{課題研究意義} 這一節我們介紹課題研究意義
\subsection{強化學習網絡模擬訓練} 這一小節我們介紹國內外強化學習網絡模擬訓練現狀
\subsubsection{AirSim} 這一子節我們介紹國內外微軟開發AirSim\cite{AirSim}進行強化學習網絡模擬訓練
\paragraph{段標題}
\subparagraph{小段標題}
\subsubsection{CARLA} 這一子節我們介紹國內外某一團隊開發CARLA進行強化學習網絡模擬訓練
\begin{thebibliography}{88}
\bibitem {AirSim}Shah S, Dey D, Lovett C, et al. AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles[J]. 2018.
\end{thebibliography}
\end{document}
公式表格圖片
公式
- 數學公式分為兩種,一個是正文公式,一個是顯示公式
正文公式:把公式用一對美元符號括起來即$公式$,主要用于較短的夾在行文中的公式,如
這是行內公式$a=b+c$\par
顯示公式:使用equation環境,主要用于較長的比較重要的需要引用的公式,如
\begin{equation}
a(b+c) = ab + ac
\end{equation}
- 輸入特殊字符
輸入 | \# |
\$ |
\% |
\& |
\{ |
\} |
\_ |
\^{} |
\~{} |
\textless |
\textgreater |
\textbar |
\textbackslash |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
輸出 | # |
$ |
% |
& |
{ |
} |
_ |
^ |
~ |
< |
> |
| |
\\ |
插入表格
- 構造表格的基本環境是
\tabular
,參數|l|c|r| 指明了各列的對齊方式,l、c 和r 分別表示左對齊、居中對齊和右對齊,中間的豎線| 指明各列之間有豎線分隔,如果在某些地方不需要豎線,去掉相應位置的| 即可 - 表格各行的元素之間用
&
號分隔,兩行內容用\\
分隔 -
\hline
表示兩行之間的橫線,可以用連續兩個\hline
得到雙橫線,或者去掉\hline
以不顯示該橫線 - 表格一般直接通過代碼構造,而不是在外面先做好,下面構造一個小表格插入在行內
表格一般直接通過代碼構造,而不是在外面先做好,下面構造一個小表格
\begin{tabular}{|r|r|r|}
\hline
直角邊 $a$ & 直角邊 $b$ & 斜邊 $c$ \\
\hline\hline
\end{tabular}
插入在行內
- 如果需要在某個單元格中填寫多行內容,不能直接用
\\
或\newline
命令,而應該將它們放在一個盒子里面(比如\parbox
盒子) - 復雜的表格經常需要跨行和跨列,在
\tabular
環境中,我們可以用命令\multicolumn
得到跨列表格,而跨行表格需要使用makecell
的multirowcell
命令 - 表格是在
tabular
環境對應的位置排版出來的,如果表格高度大于當前頁剩余高度,表格就會被放置到下一頁中,造成這一頁下部留出很大空白,大部分時候我們并不需要嚴格限定表格出現的位置,而只要求表格在該段正文的附近出現即可。此時,我們可以用table
這個可以變動相對位置的浮動體環境來達到自動調整位置的效果 -
table
環境的可選參數里,h(here,當前位置)、t(top,頁面頂部)、b(bottom,頁面底部)、p(page,單獨一頁)表明允許將表格放置在哪些位置,而! 表示不管某些浮動的限制,用table
浮動環境,還可以用\caption
命令指明表格的名稱,并得到表格的自動編號,下面構造一個大表格
\begin{table}[ht]
\centering
\begin{tabular}{|r|r|r|}
\hline
直角邊 $a$ & 直角邊 $b$ & 斜邊 $c$ \\
\cline{1-1} \cline{3-3}
3 & 4 & \parbox[t]{3em}{不跨行\par 寫第二行}\\
\hline
5 & 12 & 13\\
\hline
\multicolumn{2}{|c|}{跨兩列} & 666\\
\hline
6 & \multirowcell{2}{跨兩行\\寫第二行} & 6\\
\cline{1-1}\cline{3-3}
7 & & 7 \\
\cline{1-1}\cline{3-3}
\cline{2-3}
\end{tabular}
\caption{勾股定理示例}
\label{tab:gouguexample}
\end{table}
-
\table
環境內用\tabular
構造的表格可以與其它元素并排,下面是表格與公式并排,其中\end{tabular}%
中的%
可去除換行轉變為一個空格的影響,\qquad
為2em
寬度的空白
\begin{table}[H]
\centering
\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}
- 有時需要表格在
table
環境對應的位置排版出來的,如果表格高度大于當前頁剩余高度,表格就會被放置到下一頁中,而這一頁下部就算留出很大空白也沒關系,因為需要嚴格限定表格出現的位置,這時可使用float
宏包的H
參數來進行固定,即\begin{table}[H]
插入圖片
- 與表格不同,一般情況下不會用代碼構造圖片,而是直接插入外部現有圖形,需要使用
graphicx
宏包,使用\includegraphics{}
命令插入圖片,參數是與tex文件同級的圖片名 - 圖文混排
圖片一般先在外面做好再引進,下面直接把已經做好的很小的標志圖\includegraphics{artsign32_32.jpg}插在行內\par
- 浮動圖片
同表格的插入情形類似,自動調整圖片的位置。用figure
浮動環境來達到這個效果
下面把大圖放到一個可以變動相對位置的浮動體環境中,相當于一塊沒有縮進的段落,如圖\ref{fig:arisign}所示
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{artsign.pdf}
\caption{這是吳家安的藝術簽名}
\label{fig:arisign}
\end{figure}
全部練習文件
代碼
\documentclass[UTF8]{ctexart}
\title{\heiti LaTeX入門}
\author{\kaishu 5john}
\date{\today}
\bibliographystyle{plain}
\usepackage{graphicx}
%使用插圖表宏包
\usepackage{float}
%為table環境加上了一個[H]位置選項,生成不浮動的表格
\usepackage{amsmath}
%專門用于公式的引用,定義了\eqref,能產生括號,普通的\ref沒括號,前綴是american mathematical society美國數學學會的縮寫
\usepackage{geometry}
%配置頁面尺寸
\geometry{a4paper,centering,scale=0.8}
%A4紙,版心居中,c放寬占頁面0.8倍
\usepackage[format=hang,font=small,textfont=it]{caption}
\captionsetup[figure]{format=hang,font=small,textfont=it}
%改變圖表標題格式
%\usepackage{multirow}
%跨行表格的使用\multirow命令
\usepackage{makecell}
%跨行表格且能寫第二行,使用 \multirowcell 命令
\newtheorem{thm}{這是定理序號前的標題}
\newenvironment{myquote}
{\begin{quote}\zihao{-5}\kaishu}
{\end{quote}}
\newcommand{\degree}{^\circ}
\begin{document}
\maketitle
\begin{abstract}
這是摘要
\end{abstract}
\tableofcontents%添加目錄
\section{命令與環境}
\textbackslash par是保持縮進開始新一段符號
腳注\footnote{這是腳注內容}\par
強調\emph{這是強調內容}\par
\begin{quote}
\zihao{-5} \kaishu 這是quote內容,小五號字體,楷書
\end{quote}
\begin{thm}[這是定理名稱]
這是定理內容
\end{thm}
--這是與字母n等寬的短線
\section{數學公式}
這是行內公式$a=b+c$\par
下面\eqref{eq:distributivelaw}是顯示公式
\begin{equation}
a(b+c) = ab + ac
\label{eq:distributivelaw}
\end{equation}
這是$\angle$和$\pi$兩數學符號的使用$\angle ACB = \pi / 2$\par
公式上標$a^1$\par
公式下標$b_1$\par
公式上下標多參數$a^{1,2},b_{1,2}$\par
用函數復合的二元運算符$\circ$的上標形式表示度,如$90^\circ$
\section{使用圖表}
\subsection{插圖}
圖片一般先在外面做好再引進,下面直接把已經做好的很小的標志圖\includegraphics{artsign32_32.jpg}插在行內\par
下面把大圖放到一個可以變動相對位置的浮動體環境中,相當于一塊沒有縮進的段落,如圖\ref{fig:arisign}所示
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{artsign.jpg}
\caption{這是吳家安的藝術簽名}
\label{fig:arisign}
\end{figure}
\subsection{表格}
表格一般直接通過代碼構造,而不是在外面先做好,下面tabular環境構造一個小表格
\begin{tabular}{|r|r|r|}
\hline
直角邊 $a$ & 直角邊 $b$ & 斜邊 $c$ \\
\hline\hline
\end{tabular}
插入在行內
table是一個可以變動相對位置的浮動體環境,可將tabular環境放置在其中,通過table環境的可選參數h(here,當前位置)、t(top,頁面頂部)、b(bottom,頁面底部)、p(page,單獨一頁)表明允許將表格放置在哪些位置,也可使用float環境的H參數,將其當作段落一樣處理,固定在其出現的位置,下面構造一個大表格,如表\ref{tab:gouguexample}所示\par
\begin{table}[ht]
\centering
\begin{tabular}{|r|r|r|}
\hline
直角邊 $a$ & 直角邊 $b$ & 斜邊 $c$ \\
\cline{1-1} \cline{3-3}
3 & 4 & \parbox[t]{3em}{不跨行\par 寫第二行}\\
\hline
5 & 12 & 13\\
\hline
\multicolumn{2}{|c|}{跨兩列} & 666\\
\hline
6 & \multirowcell{2}{跨兩行\\寫第二行} & 6\\
\cline{1-1}\cline{3-3}
7 & & 7 \\
\cline{1-1}\cline{3-3}
\cline{2-3}
\end{tabular}
\caption{勾股定理示例}
\label{tab:gouguexample}
\end{table}
\textbackslash qquad是兩個M寬的空白
下面是無標題表格與公式并排,使用float包的[H]位置選項,固定它的位置,真正當作段來處理。
\begin{table}[H]
\centering
\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}
\section{兩種引用參考文獻的形式}
\subsection{bib文件}
引用同級文件math.bib中的quanjing\cite{quanjing}
列出沒引用的Shiye\nocite{Shiye}
\bibliography{math}
\subsection{直接編碼參考文獻}
引用直接編碼的參考文獻AirSim\cite{AirSim}
\begin{thebibliography}{88}
\bibitem {AirSim}Shah S, Dey D, Lovett C, et al. AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles[J]. 2018.
\end{thebibliography}
\section{設計文章格式}
使用amsmath宏包\par
使用geometry宏包\par
在使用caption宏包時控制標題樣式\par
使用captionsetup設置caption樣式\par
\begin{myquote}
這是我自定義的myquote內容,小五號字體,楷書
\end{myquote}
使用\textbackslash newcommand定義度的命令如$90\degree$
\end{document}
artsign32_32.jpg
artsign.jpg
math.bib
@BOOK{Kline,
title={古今數學思想},
publisher={上海科學技術出版社},
year={2002},
author={克萊因}
}
@ARTICLE{quanjing,
author={曲安京},
title={商高、趙爽與劉徽關于勾股定理的證明},
journal={數學傳播},
year={1998},
volume={20},
number={3}
}
@BOOK{Shiye,
title={幾何的有名定理},
publisher={上海科學技術出版社},
year={1986},
author={矢野健太郎}
}