LaTeX教程(三)——文档格式排版
文章目錄
- 1. 章節目錄
- 1.1 生成章節
- 1.2 生成目錄
- 2. 交叉引用和腳注
- 2.1 交叉引用
- 2.2 腳注
- 3. 特殊環境
- 3.1 列表
- 3.2 文本對齊
- 3.3 引用環境
- 3.4 代碼環境
1. 章節目錄
1.1 生成章節
寫文章或者論文的時候,章節目錄可謂是必不可少的,下面我們來聊聊LaTeX怎么處理章節。
LaTeX中的章節,從上到下一般由如下幾個層級的劃分:
其中 \chapter 層級是 report、book 才有的,article 中并不存在。
LaTeX中的章節章節命令都是自動編號的,如果不需要自動編號,則可以使用 * 命令,如 \section*{?title?} 。
此外,對于一些比較大的文章,還可以使用 \part 命令將其分為幾個獨立的部分,每一個部分是相互獨立的,每一個部分中的章節重新編號。示例如下
\documentclass[12pt, a4paper, oneside,titlepage]{report} \usepackage{ctex, ulem} %導入中文包 \title{LaTex教程} \author{Suppose} \date{\today} \begin{document}\maketitle\chapter{緒論}\section{引言}單單從字面上理解,知識圖譜應該是一種更加結構化的知識庫,將散亂的知識有效的組織起來,方便人們的查閱,而不是像普通的信息一樣全部由文字組成。伴隨著web技術的不斷演進與發展,人類先后經歷了以文檔互聯為主要特征的“web 1.0”時代,以數據互聯為特征的“web 2.0”時代,正在邁向基于知識互聯的嶄新“Web 3.0”時代。\section{實驗方法}\part{正文}\section{實驗結果}\subsection{數據}\subsection{圖表}\subsubsection{實驗條件}\subsubsection{實驗過程}\subsection{結果分析}\section{結論}\section{致謝} \end{document}輸出如下
1.2 生成目錄
LaTeX中生成目錄的方法十分簡單,只需要在合適的地方插入命令 \tableofcontents 即可。
默認會插入一頁新頁作為目錄,如在上述代碼的 \maketitle 后添加 \tableofcontents 后,可以得到下面的一頁新頁。不過這樣添加后,目錄會變成第一頁,但是很多情況下目錄是不要頁碼的,所以還需要在 \tableofcontents 后面添加下面三行代碼。
\thispagestyle{empty} %去除目錄的頁碼 \newpage %斷頁 \setcounter{page}{1}%新頁從1開始編號顯示的目錄如下
2. 交叉引用和腳注
2.1 交叉引用
LaTeX一個很強大的功能就是交叉引用。
在行文過程中,我們可能需要引用自己前面寫過的結果。比如“在第一章第5節我們提到……”“請參見我在第327頁做的推導……”之類的。在這種情況下,自動化的需求是非常高的。如果說我手動輸入了這些數字,那么一旦文檔結構有變動,產生的工作量將非常可觀。這些東西你還不能不改,因為你不改的話完全就是錯的,本來想引用第3節結果寫的是“見第2節”。但這在 LaTeX 中完全不是問題。我們可以用標簽(label)和交叉引用來解決這個問題。
標簽和交叉引用的基本思路是這樣的。首先把我需要引用的章節用 \label{標簽名稱} 進行標記,然后在需要引用它的時候用 \ref{標簽名稱} 進行引用。這樣一來,引擎在進行編譯的時候就需要編譯兩次:第一次生成所有章節的編號,第二次再把這些編號填充到相應的位置。下面我們來看一個使用的例子:
\documentclass[12pt, a4paper, oneside,titlepage]{article} \usepackage{ctex, ulem} %導入中文包 \begin{document}\section{引言}\section{實驗方法}\section{實驗結果}\label{sec:shi}\subsection{數據}我在第 \ref{sec:shi} 節中提到過\section{結論}\section{致謝} \end{document}2.2 腳注
使用 \footnote 命令可以在頁面底部生成一個腳注,實例如下
\documentclass[12pt, a4paper, oneside,titlepage]{article} \usepackage{ctex, ulem} %導入中文包 \begin{document}\section{引言}\section{實驗方法}\section{實驗結果}\label{sec:shi}\subsection{數據}我在第 \ref{sec:shi} 節中提到過 \footnote{我根本沒提到過}\section{結論}\section{致謝} \end{document}3. 特殊環境
3.1 列表
LATEX 提供了基本的有序和無序列表環境 enumerate 和 itemize,兩者的用法很類似,都用\item 標明每個列表項。enumerate 環境會自動對列表項編號。基本用法如下
\begin{enumerate} \item . . . \end{enumerate}其中 \item 可帶一個可選參數,將有序列表的計數或者無序列表的符號替換成自定義的符號。列表可以嵌套使用,最多嵌套四層。
關鍵字環境 description 的用法與以上兩者類似,不同的是 \item 后的可選參數用來寫關鍵字,以粗體顯示,一般是必填的。示例如下
\documentclass[12pt, a4paper, oneside,titlepage]{article} \usepackage{ctex, ulem} %導入中文包 \begin{document}\begin{enumerate}\item 第一\item[*] 第二\item 第三\end{enumerate}\begin{itemize}\item 第一\item[*] 第二\item 第三\end{itemize}\begin{description}\item[Enumerate] Numbered list.\item[Itemize] Non-numbered list.\end{description} \end{document}3.2 文本對齊
center、flushleft 和 flushright 環境分別用于生成居中、左對齊和右對齊的文本環境。除此之外,還可以用 \centering 、\raggedright 、\raggedleft 命令直接改變文字的對齊方式。正文區內容如下
\begin{center}Centered text using acenter environment.\end{center}\begin{flushleft}Left-aligned text using aflushleft environment.\end{flushleft}\begin{flushright}Right-aligned text using aflushright environment.\end{flushright}\centeringCentered text paragraph.\raggedrightLeft-aligned text paragraph.\raggedleftRight-aligned text paragraph.
從上述可以看出,center 等環境會在上下文產生一個額外間距,而 \centering 等命令不產生,只是改變對齊方式。
3.3 引用環境
LaTex常用的引用環境有三種, quote 、quotation 、verse。quote 用于引用較短的文字,首行不縮進;quotation 用于引用若干段文字,首行縮進。引用環境較一般文字有額外的左右縮進。verse 用于排版詩歌,與 quotation 恰好相反,verse 是首行懸掛縮進的。
Francis Bacon says:\begin{quote}Knowledge is power.\end{quote}《木蘭詩》:\begin{quotation}萬里赴戎機,關山度若飛。朔氣傳金柝,寒光照鐵衣。將軍百戰死,壯士十年歸。歸來見天子,天子坐明堂。策勛十二轉,賞賜百千強。??\end{quotation}Rabindranath Tagore’s short poem:\begin{verse}Beauty is truth’s smilewhen she beholds her own face ina perfect mirror.\end{verse}3.4 代碼環境
代碼塊
使用 \usepackage{listings} 宏包,并使用 \lstset{} 進行基礎設置,然后使用 \begin{lstlisting}[language=xxx] 和 \end{lstlisting} 插入代碼塊。
基礎設置包括行號,不顯示字符串空格,代碼塊邊框,不包含顏色等設置,要設置顏色和字體請見下文的高級用法。
\documentclass[12pt, a4paper, oneside,titlepage]{article} \usepackage{ctex, listings} %導入中文包% 代碼塊基礎設置 \lstset{numbers=left, % 在左側顯示行號showstringspaces=false, % 不顯示字符串中的空格frame=single, % 設置代碼塊邊框columns=flexible,%不隨便添加空格,只在已經有空格的地方添加空格breaklines,%自動換行 }\begin{document}\maketitle \begin{lstlisting}[ % 進行參數設置language=c,gobble = 4,tabsize=4] #include <stdio.h>// main functionint main() {printf("Hello World!");return 0;if (a == 1){c = 2}} \end{lstlisting} \end{document}顯示如下
實際上,在使用\usepackage{listings} 宏包時,可以在導言中對所有的代碼塊進行全局設置,也可以在每一個環境引用中進行單獨的設置,常用的設置如下:
| breaklines | 代碼過長時是否自動換行 | true,false |
| numbers | 在哪里顯示每行的編號 | left、right、none |
| stepnumber | 每隔多少行顯示行號 | 整數即可 |
| firstnumber | 行號起始數字 | 整數或 last:起始行數為上一段lstlisting環境結尾的行數 |
| tabsize | 縮進的空格數 | 整數 |
| showstringspaces | 是否顯示程序中的空格 | true,false |
此外還可以設置字符串顏色、關鍵字顏色、背景色、邊框樣式等等,這里提供一個比較好的設置模板,大家可以直接拿來用。
\usepackage[dvipsnames]{xcolor} % 更全的色系% 代碼塊基礎設置 \lstset{backgroundcolor = \color{yellow!10}, % 背景色:淡黃basicstyle = \small\ttfamily, % 基本樣式 + 小號字體rulesepcolor= \color{gray}, % 代碼塊邊框顏色breaklines = true, % 代碼過長則換行numbers = left, % 行號在左側顯示numberstyle = \small, % 行號字體keywordstyle = \color{blue}, % 關鍵字顏色commentstyle =\color{green!100}, % 注釋顏色stringstyle = \color{red!100}, % 字符串顏色frame = shadowbox, % 用(帶影子效果)方框框住代碼塊showspaces = false, % 不顯示空格columns = fixed, % 字間距固定morekeywords = {as}, % 自己添加新的關鍵字tabsize=4, }將其加入導言后,正文引用環境時只需要設置 language 參數即可。
偽代碼
需要使用 \usepackage{algorithm2e} 宏包,其一個例子如下
\documentclass[12pt, a4paper, oneside,titlepage]{article} \usepackage{ctex, listings} %導入中文包 \title{LaTex教程} \author{Suppose} \date{\today} \usepackage[ruled,linesnumbered]{algorithm2e}\begin{document}\maketitle\begin{algorithm}\caption{Simulation-optimization heuristic}\label{algorithm}\KwData{current period $t$, initial inventory $I_{t-1}$, initial capital $B_{t-1}$, demand samples}\KwResult{Optimal order quantity $Q^{\ast}_{t}$}$r\leftarrow t$\;$\Delta B^{\ast}\leftarrow -\infty$\;\While{$\Delta B\leq \Delta B^{\ast}$ and $r\leq T$}{$Q\leftarrow\arg\max_{Q\geq 0}\Delta B^{Q}_{t,r}(I_{t-1},B_{t-1})$\;$\Delta B\leftarrow \Delta B^{Q}_{t,r}(I_{t-1},B_{t-1})/(r-t+1)$\;\If{$\Delta B\geq \Delta B^{\ast}$}{$Q^{\ast}\leftarrow Q$\;$\Delta B^{\ast}\leftarrow \Delta B$\;}$r\leftarrow r+1$\;}\end{algorithm} \end{document}輸出為
在導言區引用的時候,可以進行一些設置,參數如下
| linesnumbered | 顯示行號 |
| ruled | 標題顯示在上方,不加就默認顯示在下方 |
| vlined | 代碼段中用線連接 |
| boxed | 將算法插入在一個盒子里 |
其使用規則如下
如果需要使用if-elseif-elseif-else這樣的形式,可以使用如下的格式
\uIf {condition 1} {code 1; } \ElseIf {condition 2} {code 2; }總結
以上是生活随笔為你收集整理的LaTeX教程(三)——文档格式排版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈基于SDL的2D纵版弹幕射击游戏相关
- 下一篇: 【Unity2D入门教程】简单制作战机弹