[工具] 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