[工具] LaTeX-(2)基礎


LaTeX 基礎

LaTeX 簡介

高德納為了讓他的巨著《計算機程序設計藝術》排版更精美發明了 TeX,與 Markdown 類似,有編程語言的味道。

LaTeX 是一種工具,基於 TeX 格式定義了很多更方便使用的控制命令,它將用戶按照它的格式編寫的文檔解釋成 TeX 引擎能理解的形式並交付給 TeX 引擎處理,再將最終結果返回給用戶。

CTeX, MiKTeX, TeX Live 等都是 TeX 的發行,包含渲染引擎,宏包,編輯器等其他工具的集合。

TeX 引擎

TeX, pdfTeX, XeTeX, LuaTeX都是 TeX 引擎,按照先進程度遞增(LuaTeX 尚未完善)。

  • TeX:僅支持最原始的 plain tex 格式,晦澀難懂。
  • pdfTeX: pdfTeX 包含了 PDF 和 DVI 格式的輸出,被許多 TeX 的發行版用作默認的 TeX 引擎。
  • XeTeX: 之前的引擎只支持 ASCII 字符,即不支持中日韓字符。XeTeX 則原生支持 Unicode(需要使用 utf-8 編碼)
  • LuaTeX: 基於 pdfTeX 並支持 Luau 腳本的 TeX 引擎,最初被作為 pdfTeX 的下一代版本但事實上形成了一個獨立的分支。目前還不完善。

LaTeX 發行版

TeX 有許多種發行版,根據喜好選擇即可。例如:

Windows/Linux 推薦使用 texlive,Mac 則推薦使用 mactex。雖然 texlive 也可以在 Mac 下用 Unix 的方式安裝(這是因為 mactex 是一個基於 texlive 之上的封裝),但是 mactex 采用 Mac 專用的方式打包,安裝簡便且不勞心配置。

LaTeX 中文環境的配置

最初 TeX 只支持 ASCII 編碼,沒有考慮中文的使用環境, 不過現在可以使用ctex宏包來支持中文。

  • 文檔使用 utf-8 編碼。
  • 引入宏包\usepackage{ctex},並且使用xelatex編譯。
  • 另外 ctex 中內置了 6 種中文字體:heiti, kaishu, songti, lishu, youyuan, fangsong
\documentclass[UTF8]{article}
% 若設置 ctexart,則是使用 ctex 的 article,后面就不需要再引用 ctex 宏包了
\usepackage{ctex}

\begin{document}
    中文 && English
\end{document}

可能報錯:Package fontspec Warning: Font "FandolSong-Regular" does not contain requested (fontspec) Script "CJK".,可以忽略的警告。主要原因是字體里面沒有 GSUB 表,解決方法是復制 Windows 字體到 Ubutnu,並顯示指定 Windows 字體,\usepackage[fontset=windows]{ctex}

LaTeX 源文件的基本結構

  • LaTeX 源文件分為「導言區」和「正文區」兩部分構成。
  • 一個 LaTeX 源文件有且只有一個 document 環境。
  • $符號內的為數學模式,外的為文本模式。且$**$為行內模式,$$**$$為行間模式。
  • 一個或多個空行都表示段落的分隔。
% 導言區
% 導言區用於全局的設置,引入宏包等
\documentclass{article} % 除了 article 外,還有 book, report, letter 等類型
\usepackage{ctex} % usepackage 用於導入宏包,這里導入了 ctex 宏包

\title{My first document}
\author{Zhigao Hong}
\date{\today}

% 正文區
% 正文區用於書寫文章的正文部分
\begin{document} % begin 用於開始一個環境,一個文章有且只有一個 document 環境
    \maketitle
    Hello, \LaTeX.

    Let $f(x)$ be defined by $f(x)=3x^2+1$.
\end{document}

LaTeX 的篇章結構

在 LaTeX 中,可以使用section{xx}, subsection{xx}, subsubsection{xx}等命令來撰寫文章的大致結構。

\documentclass{article}
\usepackage{ctex}

\title{My first document}
\author{Zhigao Hong}
\date{\today}

\begin{document}
    \maketitle

    \section{Introduction}
    \label{sec::introduction}

    \section{Proposed scheme}
    \label{sec::proposed method}

    \subsection{method1}
    \label{subsec::method1}

    \subsection{method2}
    \label{subsec::method2}

    \section{Experimental results and discussion}
    \label{sec::experimental results and discussion}

    \section{Conclusion}
    \label{sec::conclusion}

    \section{References}
    \bibliography{mybibfile}

\end{document}

LaTeX 的字體設置

字體的設置可以使用字體命令和字體聲明兩種設置方式,同時可以使用{}限定其作用范圍,否則自設置起,后面一直有效至重新設置字體。

字體族

字體族有:羅馬字體、無襯線字體、打字機字體。

  • 羅馬字體:\textrm {xxx}或者{\rmfamily xxx}
  • 無襯線字體:\textsf {xxx}或者{\sffamily xxx}
  • 打字機字體:\texttt {xxx}或者{\ttfamily xxx}

字體加粗

\textbf {xxx}或者{\bfseries xxx}

字體斜體

\textit {xxx}或者{\itshape xxx}

中文字體

設置中文字體必須引入ctex宏包,其中內置了 6 種中文字體。

  • 黑體:{\heiti xxx}
  • 其他類似:kaishu, songti, lishu, youyuan, fangsong

字體大小

  • 字體的大小也是通過一系列字體聲明實現:tiny, scriptsize, footnotesize, small, normalsize, large, Large, LARGE, huge, Huge
  • 這些大小描述是相對於normalsize而言的,而normalsize的大小是在導言區的documentclass[10pt]{article}設置的,一般為 10,11,12 磅。
  • 中文字體還可以使用\zihao{字號值}設置,如同 word 文檔一樣。

LaTeX 中的特殊字符

空白字符

  • 空行分段,多個空行等同於 1 個。
  • 英文中多個空格視為 1 個,中文中忽略空格。
  • 當要輸入多個空格時,要使用\quad命令。

控制符

由於許多符號有着特殊的含義,需要轉義:\#, \$, \%, \{, \}, \~, \^, \_, \&等。

排版符號和 LaTeX 的標志符號

引號

  • 單引號:數字 1 左邊的點號表示左單引號,'表示右單引號。
  • 雙引號:兩個左單引號為左雙引號,兩個右單引號為右雙引號。

連字符

  • 短連字符:-
  • 中連字符:--
  • 長連字符:---

LaTeX 中的圖片

  • 在 LaTeX 中使用graphicx這個宏包插入圖片。
    • 導言區:\usepackage{graphicx}用於引入宏包;\graphicspath{{目錄1/}, {目錄2/}}用於指定圖片目錄。
    • 語法:\includegraphics[可選參數]{文件名},其中文件名不加文件格式的后綴。
    • 支持格式:eps, pdf, png, jpg等。
  • 可選參數,支持指定大小,縮放比例等。
    • scale=0.3,縮放因子。
    • height=2cm, width=0.15\textwidth,指定長寬。
    • angle=-45,指定旋轉角度。

LaTeX 中的表格

直接使用在線 LaTeX 表格編輯器,用命令做表格簡直不能忍。

LaTeX 中的浮動體

使用浮動體,可以對圖片和表格的位置進行靈活管理,需要使用begin命令來創建浮動體環境。

  • 在環境后,還可以加入允許位置參數:h(here)、t(top)、b(bottom)、p(page),默認為 tbp。
    • 上述的參數相對於整個頁面而言,比如 top 表示頁面的頂部,page 表示一個允許浮動的頁面等。
    • [!h]這里加感嘆號的意思是忽略美學標准強制圖片的位置,但是如果頁面剩下的部分放不下,還是會跑到下一頁的。一般而言,用[!h]選項通常會出現不能正確放置的問題,所以常用[ht], [htbp]等。
  • 使用caption用於標題的顯示。
  • 使用subfigure實現圖片的混排。

figure 浮動體

\begin{figure}[htb]
    \centering
    \subfigure[]{
        \includegraphics[width=0.15\textwidth]{Baboon}
    }
    \subfigure[]{
        \includegraphics[width=0.15\textwidth]{Barbara}
    }
    \subfigure[]{
        \includegraphics[width=0.15\textwidth]{Boat}
    }
    \caption{Three test images: (a) Baboon. (b) Barbara. (c) Boat.}
    \label{fig1}
\end{figure}

table 浮動體

\begin{table}[htbp]
    \centering
    \caption{Comparison of four methods on test images in \ref{fig1} based on QF = 60}
    \label{tab1}
    \begin{tabular}{|c|c|}
        \hline
        a & b \\ \hline
        c & d \\ \hline
    \end{tabular}
\end{table}

LaTeX 中的公式

直接使用在線 LaTeX 公式編輯器,用命令直接寫公式簡直不能忍,簡單公式還行,復雜公式。。。

行內公式

  • 美元符號:$f(x)=a^2x+bx+c$
  • 小括號:\(f(x)=a^2x+bx+c\)

行間公式

  • 雙美元符號:$$f(x)=a^2x+bx+c$$
  • 中括號:\[f(x)=a^2x+bx+c\]

自動編號公式

使用equation環境,該公式會單獨一行。

\begin{equation}
    y = x + 1
\end{equation}

參考文獻 BibTeX

將參考文獻單獨處理,實現一次管理,多次使用。

  • 新建文件mybibifile.bib
  • 在導言區:\bibliographystyle{plain},此外還有alpha, abbrv等排序規則。
  • 在需要輸出參考文獻的地方使用:\bibliography{mybibfile.bib}
  • 默認下是不會出現未引用的文獻,如果要強制加上為引用文獻:在上一個命令前加\nocite{*}

其他命令

  • texdoc ctex:終端命令,查看 ctex 宏包手冊。
  • texdoc lshort-zh:終端命令,查看 latex 使用教程。
  • texcount demo.tex:終端命令,統計文章字數。
  • \label{xxx}:設置標簽名為 xxx,以用於交叉引用。
  • \ref{xxx}:引用標簽名為 xxx 的內容。
  • \cite{xxx}:引用 bib 文件的文章。
  • \newcommand{命令名}[參數個數]{具體定義}
    • \newcommand{\PRC}{People's Republic of China}
    • \newcommand{\loves}[2]{#1 喜歡 #2},使用如\loves{貓}{魚}
    • \newcommand{\myref}[1]{Eq.\ref{#1}}
  • \begin{enumerate} xxx \end{enumerate}:有序列表環境。
  • \begin{itemize} xxx \end{itemize}:無序列表環境。
  • \item xxx:列表中的單個元素。
  • \geometry{left=2cm, right=2cm, top=2cm, bottom=2.5cm}:設置頁邊距。
  • \\:在文本中表示換行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM