LaTeX 快速入门

Install VS Code + LaTeX

  • archLinux
yay -S texlive-full
  • 添加环境变量
image-20210213230531038
  • 添加环境变量
# 方法
export TexMan="/opt/texlive/2021/texmf-dist/doc/man"
export TexInfo="/opt/texlive/2021/texmf-dist/doc/info"
export TexLive="/opt/texlive/2021/bin/x86_64-linux"

export MANPATH="$MANPATH:$TexMan"
export INFOPATH="$INFOPATH:$TexInfo"
export PATH="$PATH:$TexLive"

Quick Start 🔆

Hello World!

\documentclass{article}
% 这里是导言区
\begin{document}
Hello, world!
\end{document}
  • 第一行 \documentclass{article} 中包含了一个控制序列(或称命令/标记)。所谓控制序列,是以反斜杠 \ 开头,以第一个*空格或非字母* 的字符结束的一串文字。它们不被输出,但是他们会影响输出文档的效果。这里的控制序列是 documentclass,它后面紧跟着的 {article} 代表这个控制序列有一个必要的参数,该参数的值为 article。这个控制序列的作用,是调用名为 article 的文档类。

  • 部分控制序列还有被方括号 [] 包括的可选参数。所谓文档类,即是 TeX 系统预设的(或是用户自定的)一些格式的集合。不同的文档类在输出效果上会有差别。

  • 控制序列 begin。这个控制序列总是与 end 成对出现。这两个控制序列以及他们中间的内容被称为**「环境」;它们之后的第一个必要参数总是一致的**,被称为环境名。只有在 document 环境中的内容,才会被正常输出到文档中去或是作为控制序列对文档产生影响。也就是说,在 \end{document} 之后插入任何内容都是无效的。

  • 导言区:从 \documentclass{article} 开始到 \begin{document} 之前的部分被称为导言区。你可以将导言区理解为是对整篇文档进行设置的区域——在导言区出现的控制序列,往往会影响整篇文档的格式。

宏的概念

  • 宏包:就是一系列控制序列的合集。这些控制序列太常用,以至于人们会觉得每次将他们写在导言区太过繁琐,于是将他们打包放在同一个文件中,成为所谓的宏包(台湾方面称之为「巨集套件」)。\usepackage{} 可以用来调用宏包。

中英混排

  • 中文支持:XeTeX 原生支持 Unicode,并且可以方便地调用系统字体,我们只需要使用几个简单的宏包,就能完成中文支持。
  • 中文的版式处理和标点禁则: CTeX 宏集一次性解决了这些问题。CTeX 宏集的优势在于,它能适配于多种编译方式;在内部处理好了中文和中文版式的支持,隐藏了这些细节;并且,提供了不少中文用户需要的功能接口。

注意:CTeX 宏集和 CTeX 套装是两个不同的东西。CTeX 宏集本质是 LaTeX 宏的集合,包含若干文档类(.cls 文件)和宏包(.sty 文件)。CTeX 套装是一个过时的 TeX 系统。新版 CTeX 宏集的默认能够自动检测用户的操作系统,并为之配置合适的字库。对于 Windows 用户、Mac OS X 用户和 Linux 用户,都无需做任何配置,就能使用 CTeX 宏集来排版中文。

  • 使用 CTeX 宏集来处理中英文混排的文档:
\documentclass[UTF8]{ctexart}
\begin{document}
你好,世界!
\end{document}
  • 文档类从 article 变为 ctexart
  • 增加了文档类选项 UTF8

组织文章

(1) 定义 标题 作者 日期

\documentclass[UTF8]{ctexart}

\title{如何组织文章}
\author{LinXiaoDe}
\date{\today}

\begin{document}
\maketitle
你好,世界!
\end{document}
  • document 环境中,多了一个控制序列 maketitle:将在导言区中定义的标题、作者、日期按照预定的格式展现出来。

  • 使用titling宏包可以修改上述默认格式。参考TeXdoc

(2) 章节和段落

在文档类 article/ctexart 中,定义了五个控制序列来调整行文组织结构。他们分别是:

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

report/ctexrep中,还有\chapter{·}

在文档类book/ctexbook中,还定义了\part{·}

\documentclass[UTF8]{ctexart}

\title{如何组织文章}
\author{LinXiaoDe}
\date{\today}

\begin{document}
\maketitle

\section{章节section}
章节内容
\subsection{子章节subsection}
子章节内容
\subsubsection{子子章节}
\paragraph{段落1}
段落内容
\subparagraph{子段落}
子段落内容
\subsection{子章节2}
\paragraph{段落2} 
段落2内容
\end{document} 

(3) 目录

  • \maketitle下面插入控制序列 \tableofcontents
  • 保存并用 XeLaTeX 编译两次
\documentclass[UTF8]{ctexart}

\title{如何组织文章}
\author{LinXiaoDe}
\date{\today}

\begin{document}
\maketitle
\tableofcontents
\section{章节section}
章节内容
\subsection{子章节subsection}
子章节内容
\subsubsection{子子章节}
\paragraph{段落1}
段落内容
\subparagraph{子段落}
子段落内容
\subsection{子章节2}
\paragraph{段落2} 
段落2内容
\end{document} 

数学公式

(1) 基本方法:

**在导言区加载 amsmath 宏包。**在行文中,使用 $ ... $ 可以插入行内公式,使用 \[ ... \] 可以插入行间公式,如果需要对行间公式进行编号,则可以使用 equation 环境(还有很多其他的环境在下面介绍):

\documentclass{article}
\usepackage{amsmath}

\begin{document}
    % 行内
    $ \beta = \alpha * \kappa  $
    % 行间
    \[ \delta = \lambda * \xi  \]
    % 标号
    \begin{equation}
    c = a^2 + b^2
    \end{equation}
\end{document}

(2) 上下标

  • **公式标点使用的规范:**行内公式和行间公式对标点的要求是不同的:行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Einstein 's $E=mc^2$.

\[ E=mc^2. \]

\begin{equation}
E=mc^2.
\end{equation}
\end{document}
  • 在数学模式中,需要表示上标,可以使用 ^ 来实现(下标则是 _
  • 它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号 {} 括起来,例如:
\begin{equation}
    z = r\cdot e^{2\pi i}
\end{equation}

(3) 根式与分式

  • 根式用 \sqrt{·} 来表示
  • 分式用 \frac{·}{·} 来表示(第一个参数为分子,第二个为分母)
\begin{equation}
    \sqrt{x}
\end{equation}

\begin{equation}
    \frac{a}{b}
\end{equation}
  • 在行间公式和行内公式中,分式的输出大小是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用 \dfrac, 反之可以使用 \tfrac
  • 行内写分式xfrac 宏包提供的 \sfrac 命令的效果更佳。
  • 排版繁分式,你应该使用 \cfrac 命令。

(3) 运算符

基础运算符

\[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\;\geq\; \leq\; \neq\; \approx \; \equiv \]
image-20210215184147370

大型运算符

  • 连加、连乘、极限、积分等大型运算符分别用 \sum, \prod, \lim, \int 生成
  • 他们的上下标在行内公式中被压缩,以适应行高。我们可以用 \limits\nolimits 来强制显式地指定是否压缩这些上下标。
\begin{equation}
    \sum_{i=1}^n i
    \prod_{i=1}^n 
    \sum\limits _{i=1}^n i
    \prod\limits _{i=1}^n 
    \lim_{x\to0}x^2
    \int_a^b x^2 dx 
    \lim\nolimits _{x\to0}x^2
    \int\nolimits_a^b x^2 dx
\end{equation}
image-20210215191333051

多重积分

  • 多重积分可以使用 \iint, \iiint, \iiiint, \idotsint 等命令输入
\begin{equation}
    \int_a^b x^2 dx
    \iint_a^b x^2 dx dy
    \iiint_a^b x^2 dx dy dz
\end{equation}
image-20210215192854443

(4) 界符

  • 各种括号用 (), [], \{\}, \langle\rangle 等命令表示;因为 LaTeX 中 |\| 的应用过于随意,amsmath 宏包推荐用 \lvert\rvert\lVert\rVert 取而代之。
  • 调整这些定界符的大小,amsmath 宏包推荐使用 \big, \Big, \bigg, \Bigg 等一系列命令放在上述括号前面调整大小。
\begin{equation}
    () [] \{\} \langle\rangle \lvert\rvert \lVert\rVert\Big 
    \{ \Big\}
\end{equation}
image-20210215193812715

(5) 省略号

省略号用 \dots, \cdots, \vdots, \ddots 等命令表示。\dots\cdots 的纵向位置不同,前者一般用于有下标的序列。

\begin{equation}
    x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad \vdots\quad \ddots   
\end{equation}
image-20210215194347265

(6) 矩阵

  • amsmathpmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix子环境可以在矩阵两边加上各种分隔符。
\begin{equation}
    \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad
    \begin{bmatrix} a&b\\c&d \end{bmatrix} \quad
    \begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad
    \begin{vmatrix} a&b\\c&d \end{vmatrix} \quad
    \begin{Vmatrix} a&b\\c&d \end{Vmatrix} \quad
\end{equation}
image-20210215195057106
  • 使用 smallmatrix 环境,可以生成行内公式的小矩阵。
Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $.
image-20210215195652668

(7) 多行公式

有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。

长公式
  • 不对齐:无须对齐的长公式可以使用 multline 环境,默认自带标号,如果不想用标号,则使用multline*环境
\begin{multline}
    z = x_1+x_2+x_3+x_4+{} \\
    x_5 + x_6 + x_7
\end{multline}
image-20210215202201533
  • 对齐:需要对齐的公式,可以使用 aligned ***次环境***来实现,它必须包含在数学环境之内。
\begin{equation}
    \begin{aligned}
        z = &x_1+x_2+x_3+x_4+{} \\
            &x_5 + x_6 + x_7
    \end{aligned}
\end{equation}
image-20210215202519568
公式组
  • 无需对齐的公式组可以使用 gather 环境 / gather* 环境
  • 需要对齐的公式组可以使用 align 环境 / align* 环境
\begin{gather}
    X = \alpha x_1 + \beta x_2 +\gamma x_3 \\
    Y = \mu  y_1 + \nu y_2
\end{gather}

\begin{align}
    X &= \alpha x_1 + \beta x_2 +\gamma x_3\\
    Y &= \mu  y_1 + \nu y_2   
\end{align}
image-20210215203448056
  • 用花括号包络的公式组可以在equation环境中嵌套aligned,并且在公式内部加上\left\{ \right
\begin{equation}
	\left\{
	\begin{aligned}
		m & = x + y + z + 1 \\
		n & = 2x - y + 3z \\
		r & = 5x + z
	\end{aligned}
	\right.
\end{equation}
image-20210215204616717
分段函数
  • 分段函数可以用cases次环境来实现,它必须包含在数学环境之内。
\[
    F(x) = 
    \begin{cases}
        -x,x\leq 0 \\
        x ,x>0    
    \end{cases}
\]
image-20210215203838955

插入图片和表格

图片

  • graphicx 宏包提供的 \includegraphics 命令。比如你在你的 TeX 源文件同目录下,有名为 a.jpg 的图片,你可以用这样的方式将它插入到输出文档中:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
    \includegraphics[width = .5\textwidth]{a.jpg}
\end{document}
  • 一个比较全面的模板
\begin{figure}[htbp]	% 浮动
    \centering
    \includegraphics[width=1\linewidth]{a}
    \caption{\LaTeX 蜘蛛侠示意图}
    \label{fig:figure1latexintro}
\end{figure}
image-20210215220611397
  • 子图模板
\begin{figure}[htbp]
	\centering
	\subfigure[子图\#1]
	{
		\label{fig:sub1}		
		\includegraphics[width=0.45\textwidth]{Figures/Subfigure_1.eps}
	}
	\subfigure[子图\#2]
	{
		\label{fig:sub2}		
		\includegraphics[width=0.45\textwidth]{Figures/Subfigure_2.eps}
	}
	\subfigure[子图\#3]
	{
		\label{fig:sub3}		
		\includegraphics[width=0.45\textwidth]{Figures/Subfigure_3.eps}
	}
	\subfigure[子图\#4]
	{
		\label{fig:sub4}		
		\includegraphics[width=0.45\textwidth]{Figures/Subfigure_4.eps}
	}
	\caption{这里是子图(subfigure)的示例。}
	\label{fig:subfigure}
\end{figure}

表格

\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![image-20210215222331352](/home/qdl/.config/Typora/typora-user-images/image-20210215222331352.png)
 
\end{tabular}
image-20210215222331352

浮动体

  • 插图和表格通常需要占据大块空间,所以在文字处理软件中我们经常需要调整他们的位置。figuretable 环境可以自动完成这样的任务;这种自动调整位置的环境称作浮动体(float)。我们以 figure 为例。
\begin{figure}[htbp]
    \centering
    \includegraphics{a.jpg}
    \caption{有图有真相}
    \label{fig:myphoto}
\end{figure}

htbp 选项用来指定插图的理想位置,这几个字母分别代表 here, top, bottom, float page,也就是就这里、页顶、页尾、浮动页(专门放浮动体的单独页面或分栏)。\centering 用来使插图居中;\caption 命令设置插图标题,LaTeX 会自动给浮动体的标题加上编号。注意 \label 应该放在标题命令之后。

版面设置

页边距

设置页边距,推荐使用 geometry 宏包。可以在这里查看它的说明文档。使用举例:将纸张的长度设置为 20cm、宽度设置为 15cm、左边距 1cm、右边距 2cm、上边距 3cm、下边距 4cm,可以在导言区加上这样几行:

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

页眉页脚

设置页眉页脚,推荐使用 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}

首行缩进

CTeX 宏集已经处理好了首行缩进的问题(自然段前空两格汉字宽度)。因此,使用 CTeX 宏集进行中西文混合排版时,我们不需要关注首行缩进的问题。

如果你因为某些原因选择不适用 CTeX 宏集(不推荐)进行中文支持和版式设置,则你需要做额外的一些工作。

  • 调用 indentfirst 宏包。具体来说,中文习惯于每个自然段的段首都空出两个中文汉字的长度作为首行缩进,但西文行文习惯于不在逻辑节(\section 等)之后缩进。使用改宏包可使 LaTeX 在每个自然段都首行缩进。
  • 设置首行缩进长度 \setlength{\parindent}{2\ccwd}。其中 \ccwdxeCJK 定义的宏,它表示当前字号中一个中文汉字的宽度。

行间距

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

\usepackage{setspace}
\onehalfspacing

具体可以查看该宏包的文档

注意:

  • 行距是字号的 1.5 倍;
  • 1.5 倍行距。

事实上,这不是设置 1.5 倍行距的正确方法,请参考这篇博文。另外,RuixiZhang 开发了 zhlineskip 宏包,提供了对中西文混排更细致的行距控制能力。

段间距

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

\addtolength{\parskip}{.4em}

网站汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值