Jialong's Blog
沉潜 自由 追寻幸福
LaTex环境配置和基本功能模块

环境配置

我选择使用VS code + Tex Live作为我的LaTex写作环境,具体配置过程参考自:Visual Studio Code (vscode)配置LaTeX

以下是关于使用过程中一些具体模块的讨论:

部分内容参考自:一份其实很短的 LaTeX 入门文档

这里使用xeLatTex进行编译。

基本文档和中英文

基本文档

\documentclass{article}
% 这里是导言区
\begin{document}
Hello, world!
\end{document}

Tex以%作为注释标记。若要输出百分号%字符本身,则要在前面加上反斜杠\进行转义(escape)。

中英文混排

目前XeTeX 原生支持 Unicode,并且可以方便地调用系统字体。可以说解决了困扰中国 TeX 使用者多年的大问题。至此,我们只需要使用几个简单的宏包,就能完成中文支持了。

我们使用\usepackage{}来调用宏包。

另外,我们使用CTex宏集来处理中文的版式和标点。

\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

与开始相比,文档类别变为ctexart,并且增加了文档类选项UTF8.

组织文章基本内容

  1. 标题、作者、日期
\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Eternity}
\date{\today}
\begin{document}
\maketitle
你好,world!
\end{document}

以上代码中的控制序列\maketitle能将在导言区中定义的标题、作者、日期按照预定的格式展现出来。

可以通过宏包titling修改上述默认格式。

  1. 章节和段落
\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
\section{你好中国}
中国在East Asia.
\subsection{Hello Beijing}
北京是capital of China.
\subsubsection{Hello Dongcheng District}
\paragraph{Tian'anmen Square}
is in the center of Beijing
\subparagraph{Chairman Mao}
is in the center of 天安门广场。
\subsection{Hello 山东}
\paragraph{山东大学} is one of the best university in 山东。
\end{document}

文档类article/ctexart中定义了5个控制序列来调整文章组织结构:

  • \section{·}
  • \subsection{·}
  • \subsubsection{·}
  • \paragraph{·}
  • \subparagraph{·}

  1. 插入目录

在控制序列\maketitle加入tableofcontents,编译两次观察效果:

LaTeX 将一个换行当做是一个简单的空格来处理,如果需要换行另起一段,则需要用两个换行(一个空行)来实现。

版面设置

页边距

使用geometry 宏包。geometry文档

比如我希望,将纸张的长度设置为 20cm、宽度设置为 15cm、左边距 1cm、右边距 2cm、上边距 3cm、下边距 4cm,可以在导言区加上这样几行:

\usepackage{geometry}
\geometry{papersize={20cm,15cm}}
\geometry{left=1cm,right=2cm,top=3cm,bottom=4cm}

页眉页脚

设置页眉页脚,推荐使用 fancyhdr 宏包。fancyhdr文档

比如我希望,在页眉左边写上我的名字,中间写上今天的日期,右边写上我的电话;页脚的正中写上页码;页眉和正文之间有一道宽为 0.4pt 的横线分割,可以在导言区加上如下几行:

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\author}
\chead{\date}
\rhead{152xxxxxxxx}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0pt}

行间距

我们可以通过 setspace 宏包提供的命令来调整行间距。比如在导言区添加如下内容,可以将行距设置为字号的 1.5 倍:

\usepackage{setspace}
\onehalfspacing

段间距

我们可以通过修改长度 \parskip 的值来调整段间距。例如在导言区添加以下内容

\addtolength{\parskip}{.4em}

代码

希望代码中的特殊字符不被LaTex处理,并且希望有代码高亮。

使用listings宏包来在tex中添加代码段。基本设置参数如下:

\usepackage{listings}
\lstset{
language=Matlab,
escapeinside=``, 
numbers=left,
numberstyle=\tiny,
breaklines=true, 
backgroundcolor=\color{lightgray!40!white},
frame=single,
framerule=0pt,
extendedchars=false, 
keywordstyle=\color{blue!70}\bfseries, 
basicstyle=\ttfamily,
commentstyle=\ttfamily\color{green!40!black}, 
showstringspaces=false}

图片

在 LaTeX 中插入图片,有很多种方式。最好用的应当属利用 graphicx 宏包提供的 \includegraphics 命令。比如你在你的 TeX 源文件同目录下,有名为 a.jpg 的图片,你可以用这样的方式将它插入到输出文档中:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{a.jpg}
\end{document}

图片可能很大,超过了输出文件的纸张大小,或者干脆就是你自己觉得输出的效果不爽。这时候你可以用 \includegraphics 控制序列的可选参数来控制。比如

\includegraphics[width = .8\textwidth]{a.jpg}

这样图片的宽度会被缩放至页面宽度的百分之八十,图片的总高度会按比例缩放。

\includegraphics还有很多其他控制序列可以选择使用,可以查看宏包选择。

表格

tabular 环境提供了最简单的表格功能。它用 \hline 命令表示横线,在列格式中用 | 表示竖线;用 & 来分列,用 \\ 来换行;每列可以采用居左、居中、居右等横向对齐方式,分别用 lcr 来表示。

\begin{tabular}{|l|c|r|}
 \hline
操作系统& 发行版& 编辑器\\
 \hline
Windows & MikTeX & TexMakerX \\
 \hline
Unix/Linux & teTeX & Kile \\
 \hline
Mac OS & MacTeX & TeXShop \\
 \hline
通用& TeX Live & TeXworks \\
 \hline
\end{tabular}

效果如下:

数学公式

在导言区添加amsmath宏包来使用数学功能:

\usepackage{amsmath}

数学模式

与Markdown中相同,LaTex共有行内公式行间公式两种模式。

在行文中,使用 $ ... $ 可以插入行内公式,使用 \[ ... \] 可以插入行间公式,如果需要对行间公式进行编号,则可以使用 equation 环境:

\begin{equation}
...
\end{equation}

无编号的行间公式也可以使用 \begin{displaymath} ... \end{displaymath} 或者 \begin{equation*} ... \end{equation*} 来插入,但略显麻烦。(equation* 中的 * 表示环境不编号)

也有 plainTeX 风格的 $$ ... $$ 来插入不编号的行间公式。但是在 LaTeX 中这样做会改变行文的默认行间距,不推荐。

标点符号

行内公式和行间公式对标点的要求是不同的:行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。

多行公式

有的公式特别长,我们需要手动为他们换行;

有几个公式是一组,我们需要将他们放在一起;

还有些类似分段函数,我们需要给它加上一个左边的花括号。

  1. 长公式

不对齐:无须对齐的长公式可以使用 multline 环境。

\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}

效果如下:

如果不需要编号,可以使用 multline* 环境代替。

对齐:需要对齐的公式,可以使用 aligned 次环境来实现,它必须包含在数学环境之内。

\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]

效果如下:

  1. 公式组

无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。他们都带有编号,如果不需要编号可以使用带*的版本。

\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}

效果如下:

  1. 分段函数

分段函数可以用cases次环境来实现,它必须包含在数学环境之内。

\[ y= \begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases} \]

最后修改于 2021-07-18