LaTeX常用技巧


LaTeX常用语法及技巧

软件安装及配置

  1. MikTeX(tex环境,windows系统首推,轻量级,~200MB)
    https://miktex.org/download
  2. Sublime text 3(可选,编辑器,搜索sublime text配置tex)

参考资料及众多经典教程

公众号特里斯丹回复latex教程获取百度云下载链接。

或者在本文文末查看。

支持中文的三种方式

  1. 使用 ctexart 文档类(英文:documentclass)
  2. 使用 ctex 宏包(英文:package)

使用 ctex 宏包(推荐

除了使用 ctexart 文档类,你可以可以选择使用 ctex 宏包,一个简单例子如下:

\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
你好,这是一个中文测试文档。
\end{document}
% ctex_test.tex
\documentclass[UTF8]{article}
\usepackage{ctex}
\begin{document}
这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示}{\songti 这里是宋体显示}{\heiti 这里是黑体显示}{\fangsong 这里是仿宋显示}{\lishu 这里是隶书显示}{\youyuan 这里是幼圆显示}\end{document}

使用以上代码的 LaTeX 源文件可以使用 latex,pdflatex,xelatex 或者 lualatex 命令来编译生成 PDF 文件。CTeX 开发者推荐使用 xelatex 命令编译源文件。

使用 ctexart

如果你的文章主要由中文构成,你可以考虑使用 CTeX 中的 ctexart 文档类,下面的例子展示了如何使用 ctexart 文档类来写中文文档:

\documentclass[UTF8]{ctexart}
\usepackage[T1]{fontenc}

\begin{document}
你好,这是一个测试文档。
\end{document}

使用 ctexart documentclass 时候,最好加上 \usepackage[T1]{fontenc},否则某些符号显示不正确。

使用cjk

\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{kai}

支持中文

\end{CJK}
\end{document}

latex 常用单位

LaTEX常用的長度單位有:
in                英吋
mm             公吋
com            公分
pt                point (1pt=0.35mm)
em              M字母的寬度
ex                X字母的高度

两栏


\documentclass[a4paper,twocolumn, 11pt]{article} 

表格或图像的位置

\begin{figure}[<位置>]
图片
\end{figure}

位置参数指定浮动体摆放的偏好
    h当前位置(here),
    t顶部(top),
    b底部(bottom),
    p单独成页(p)

    !htb为忽略美学标准,
    htbp为浮动图形

插入图片、引用图片

% 首先需要引入图片包
\usepackage{graphicx} % 插入图片的包
\usepackage{float} %设置图片浮动位置的宏包

\usepackage{subfigure} %插入多图时用子图显示的宏包



% 引用图片 ~\ref{fig:my_pic}
% 加不加~会有细微空格区别: 
% 不加:figure1
% 加  :figure 1
Please refer to figure~\ref{fig:my_pic}



% 插入图片
\begin{figure}[H] %H为当前位置,!htb为忽略美学标准,htbp为浮动图形
    \centering %图片居中
    \includegraphics[width=0.7\textwidth]{quiz1-5.png} %插入图片,[]中设置图片大小,{}中是图片文件名
    \caption{Main name 2} %最终文档中希望显示的图片标题
    \label{fig:my_pic} %用于文内引用的标签
\end{figure}

强制换页

\newpage
\clearpage
在两栏模式下有区别,其中clearpage会把剩下的内容都空出来,直接到下一页;
而newpage只会空出当前栏的剩余内容,在下一栏接着`

强制换行

  • \

  • \newline

  • \linebreak

    強制換行的三種方法

居中、左、右

% 居中
\begin{center}
center information.
\end{center}

% 居左
\begin{flushleft}
left  information.
\end{flushleft}

% 居右
\begin{flushright}
right information.
\end{flushright}

留白

%纵向留白, 负数表示向上留白
\vspace{3cm}

另外幾個常用的縱向空間指令如:
\bigskip(空出12pt)、
\medskip(空出6pt)、
\smallskip(空出3pt)

字体大小


\tiny              5pt
\scriptsize        7pt
\footnotesize      8pt
\small             9pt
\normalsize       10pt
\large            12pt
\Large            14pt
\LARGE            17pt
\huge             20pt
\Huge             25pt

注意使用{}限定作用范围。

字体类型

\rm  (roman)
\bf  (boldface)
\it (italic)
\sc  (small caps)
\sf  (sans serif)
\tt  (typewriter)

下划线

underline

Welcome to \underline{TaiWan}

公式

两种模式:

  • $...$ inline模式(更紧凑,放在同一行里,方便排版)
  • \(…\) display模式(字体更大,更方便阅读)

上面两种都是显示在同一行中,下面两种公式单独占一行

  • `$$ … $$
  • `[…]

公式中间不能有空行(可以换行书写,但不能有空白行)

有编号的公式\begin{equation}


% 有编号的公式\begin{equation}
\begin{equation}
a + b = c 
\end{equation}
% 第二个有编号的公式,注意,这里加了label,可以通过label引用该公式,引用方式:\ref{eq:abc1}
\begin{equation}
a + b = c\label{eq:abc1}
\end{equation}

编号多行公式eqnarray


%编号多行公式eqnarray
%& = & 表示多行公式之间,以等号为基准对齐
\begin{eqnarray}
a + b &=& c \label{eq:abc11} \\
a + b &=&c \label{eq:abc12} \\
a^2 + b^2 &=& c^2 \label{eq:abc21}\\
a + b &+&c \label{eq:abc22} 
\end{eqnarray}

不编号多行公式eqnarray*

& = & 表示多行公式之间,以等号为基准对齐


%不编号多行公式eqnarray*
\begin{eqnarray*}
a + b &=& c \label{eq:abc11} \\
a + b &=&c \label{eq:abc12} \\
a^2 + b^2 &=& c^2 \label{eq:abc21}\\
a + b &+&c \label{eq:abc22} 
\end{eqnarray*}

引用公式


% 引用公式
[\ref{eq:abc1}]  % 显示的格式为[1]
\ref{eq:abc1}  % 显示的格式为 1

公式字体大小(四种)

在數學式模式中,使用的文字大小有下列四種:


  \displaystyle
  \textstyle
  \scriptstyle
  \scriptscriptstyle

使用方法:類似改變字體方法
(1)\textstyle ……
(2){\textstyle …… }

inline模式一般使用\textstyle大小,
display模式則使用\displaystyle大小

% 改变公式大小 示例
% 正常大小模式
\[ a_0+\frac{1}{a_1+\frac{1}{a_2+  \frac{1}{a_3}}} \]
% 修改为显示大小
\[ a_0+\frac{1}{a_1+\displaystyle\frac{1}{a_2+  \displaystyle\frac{1}{a_3}}} \]

% 或者
$$ a_0+\frac{1}{a_1+\displaystyle\frac{1}{a_2+  \displaystyle\frac{1}{a_3}}}$$

公式中字符之间的空白


% 不加处理的话,会自动去除所有空格、连在一起
\[ This is an example : \frac XY \]
% 小空白、大空白
\[ This\, is\, an\, example :\; \frac XY \]


    \,  小空白
    \:  中空白
    \;  大空白
    \!  小空白(負)

方法二, \mbox在公式中插入字符描述

\[ \mbox{This is an example} : \frac XY \]$$ \mbox{This is an example} : \frac XY $$

自定义公式

\not 与 \stackrel

% 自己制造新符号
% 方法一, \not 
$$ x \not < y$$
$$ x \not =y$$

% 方法二, \stackrel{上面}{下面}
$$ f(x) \stackrel{def}{=}x+1$$

$$ f(x) \stackrel{defination}{=}x+1$$

$$ \sum_{\stackrel{i, j=0}{i\not = j}}{n}$$

复杂公式 示例

書寫技巧:
不用刻意寫在一行中,
可以適時地換行,
但是不要留空白行。

\[ 
s_{k,i}(x)
\stackrel{\triangle}{=}
\frac 1{\displaystyle\sum_{\stackrel{j=0}{j\not=1}}
   (x_{k+i}-x_{k+j})} 
\]

一行公式分成多行

\nonumber 去掉编号

% 一个公式分多行写
\begin{eqnarray}
|f(z)| &   =  & {|e^{z^2-4}-1|}^{\frac 13} \\
          &\leq& {(|e^{z^2-4}|+1)}^{\frac 13} \\
          &   =  & {(e^{x^2-y^2-4}+1)}^{\frac 13}
\end{eqnarray}


% 去掉前两个部分的编号
\begin{eqnarray}
|f(z)| &   =  & {|e^{z^2-4}-1|}^{\frac 13}\nonumber \\
          &\leq& {(|e^{z^2-4}|+1)}^{\frac 13} \nonumber\\
          &   =  & {(e^{x^2-y^2-4}+1)}^{\frac 13}
\end{eqnarray}

使用array写数组

两种位置方式, 表示現在行的基線對齊的位置

  • [t],
  • [b]
  • 預設

四种对齐方式 (与tabular 一致)

  • l(left)
  • c(center)
  • r(right)
  • |行與行間的直線

% 使用方式
%% 表格
\begin{tabular} [位置] {行對齊}
    ...
\end{tabular}

%% array
\begin{array} [位置] {行對齊}
    ...
\end{array}

% 使用array实现多行公式
%實例說明:
This is an example for array.
\begin{array}[b]{lcr}  % lcr 表示有三列,第一列居左对齐,第二列居中,第三列居右
0.1          & a                    & 1\\
0.01        & a+b               & 10\\
0.001      & a+b+c          & 100\\
0.0001   & a+b+c+d      &1000\\
0.00001 & a+b+c+d+e &10000
\end{array}

\begin{array}[b]{rcl}
0.1          & a                    & 1\\
0.01        & a+b               & 10\\
0.001      & a+b+c          & 100\\
0.0001   & a+b+c+d      &1000\\
0.00001 & a+b+c+d+e &10000
\end{array}

% 一个矩阵例子
\[
    A= \left(
    \begin{array}{ccc}
    a_{11}  & a_{12}& a_{13}\\
    a_{21} & a_{22}& a_{23}\\
    a_{31} & a_{32}& a_{33}
    \end{array}
    \right) 
\]

array进阶 在矩阵中添加横线、竖线

  • 横线: 可以在对齐方式中添加,如 {c|cc}
  • 竖线: 可以使用 \hline 在有需要的地方添加

\[
    A= \left(
    \begin{array}{c|cc}
    a_{11}  & a_{12}& a_{13}\\
    \hline
    a_{21} & a_{22}& a_{23}\\
    a_{31} & a_{32}& a_{33}
    \end{array}
    \right) 
\]

另一个复杂数学式,重复使用array

\[  \left(
\begin{array}{cc}
    \left(  \begin{array}{cc} 
    a_{11}&a_{12}\\
    a_{21}&a_{22}
    \end{array}  \right)
& B\\
B^T & 
    \left(  \begin{array}{cc} 
    c_{11}&c_{12}\\
    c_{21}&c_{22}
    \end{array}  \right)
\end{array}
\right)  \]

列表(有序、无序)

参考教程:https://blog.xulihang.me/use-list-in-latex/

有序列表\begin{enumerate}[(1)]

\item [] 可以加中括号,中括号的内容会被加粗
默认标识符(最多四层):

  • 1.
  • (a)
  • i
  • A.
\begin{enumerate}
    \item This is the first item
    \item This is the second item
    \item This is the third item
    \item second
\end{enumerate}

修改有序列表序号格式

在\begin{enumerate}後面加入:
\renewcommand{\label }{ }
在 第一个空格 裡面是放想要更改的位置:

(第一層:enumi,第二層enumii,
第三層enumiii,第四層enumiv)
在 第二个空格 裡面則是放想要改的樣子:
\Romon{ }是羅馬字體大寫,
\romon{ }是小寫
\arabic{ }是阿拉伯數字
\Alph{ }是英文字母大寫,
\alph{ }是小寫

% 示例
想將第一層改為羅馬字體
    大寫加(),如:(I),(II)
想將第三層改為 
    a.1, a.2, … 

ANS:

在第一層的\begin{enumerate}後加入
\renewcommand{\labelenumi}{(\Roman{enumi})}

在第三層的\begin{enumerate}後加入
\renewcommand{\labelenumiii} {\theenumii.\arabic{enumiii}}

无序列表 \begin{itemize}

无需列表默认标识符:

\begin{itemize} % 无序列表,\item 表示新字段
\item [item1] first row
\begin{itemize} % 嵌套
\item [sub item 1] 1.1 second row
\item [sub item 2] 1.2 second row
\end{itemize}
\item [item2] Whitespace at the start
of a line is generally ignored, and a
single line break is treated as ‘‘whitespace.’’.
\end{itemize}


### 还可以使用description实现无序列表
```latex
\begin{description}
   \item [項目名 1] 項目1
   \item [項目名 2] 項目2
          . 
          .
          . 
   \item [項目名 n] 項目n
  \end{description}

[項目名]中的字體會以 \bf(粗體)印出,如果要更改字體可以加入變更字體的指令。

多级列表


% 多级列表
\begin{enumerate}
\item a
\item b
  \begin{enumerate}  % 列表里面嵌套列表
    \item b.1
    \item b.2
  \end{enumerate}
\item c
\end{enumerate}

引用他人文章段落

引用他人文章, 前后有空行、左右有空白(每行字数变短)

有三種引用文環境:

(1)quotation  
(2)quote  
(3)verse  

三种方式的区别:

  • quotation時,只是每行長度縮短,其他與平常的段落一樣,取文頭空白,遇空白行視為新段落。

  • quote時,不會空出文頭空白,遇空白行新段落會空出小的垂直空白。

  • verse時,與quote類似,只是引文區前的空白會更大

使用方式

\begin{quote}
  待引用的文章
\end{quote}

verbatim原文照妖镜模式

verbatim環境是把環境中的內文原原本本絲毫不改變的印出。

用法

\begin{verbatim}
     ……
\end{verbatim}

包含空白與特殊符號亦不例外。不過只能使用\tt字體(typewrite)。

单行照妖镜模式

% 单行照妖镜模式 \verb+ ... +
% 两个加号中间的都照原样输出,常用于输入特殊符合

A Latin Capital Letter
  \verb+\\\B  Latin  Capital  Letter///+

定理环境

\newtheorem{name}{caption}[within]

舉例來說明:
\newtheorem{thm}{Theorem}[section]
代表環境定義為:此後LaTEX在section 2看到第一個\begin{thm}…\end{thm}就知道要將此段設為Theorem 2.1,定理內容以斜體印出。

步驟一:將

   \newtheorem{thm}{Theorem}[section]放在前言區

步驟二:使用定理時,輸入環境指令及定理內文
   \begin{thm}
   Suppose graph G=FH(n). If n is odd, ……
   \end{thm}

則印出時,定理環境部分會斜體,
也可以定义多种格式、指定编号范围

如下面1行,先定义了同一个编号域 thm
接下来3行,都是在同一个thm域里面,编号累加
\newtheorem{thm}{Theorem}
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{fact}[thm]{Fact}
\newtheorem{cor}[thm]{Corollary}

% 使用自定义的thm环境
\begin{thm}
    This is the overall environment of theorem. It contains lemma, fact, corollary.
    \begin{lemma}
    lemma environment 1
    \end{lemma}

    \begin{lemma}
    lemma environment 2
    \end{lemma}

    \begin{fact}
    fact environment 1
    \end{fact}

    \begin{fact}
    fact environment 2
    \end{fact}

    \begin{cor}
    corollary environment 1 % 推论
    \end{cor}
\end{thm}

定理环境的特点是,自动编号、标题大写,不止可以用于定理

\newtheorem{eg}{Example}
\newtheorem{ex}{Exercise}
\newtheorem{defi}{Definition}
\newtheorem{hw}{Problem}

表格环境: tabular


\begin{tabular}[竖向位置]{列格式}
第一行 字段一 & 第一行 字段二 & 第一行 字段三 \\
第二行 字段一 & 第二行 字段二 & 第二行 字段三 \\
第三行
\end{tabular}
  • 竖向位置,表格在竖直方向上与外部文本行的相对位置,可选t(top顶部对齐)、b(bottom底部对齐),缺省值为居中
  • 列格式
    • 指定文本位置,l,c,r, 左中右
    • 指定边界线格式, |, || 等

表格中间用 & 表示分割, \ 表示换行

表格横线

\hline表示与表格同宽的横线;
\cline{m-n}表示从m列到第n列结束的水平线

表格竖线

\vline,表示在当前位置画一条与行同高的竖线

合并相邻多列

\multicolumn{列数}{列格式}{文本内容}

附录

article里可以用\section
report里面用\chapter

% 附录
\begin{appendix}
    \section{Proof of Theorem 1}
        balabala 1
    \section{Proof of Theorem 2}
        balabala 2

\end{appendix}

参考文献

教程:https://www.cnblogs.com/yifdu25/p/8330652.html

方法一 不使用BibTeX, 自己写

格式: \bibitem[印出標記]{名字}參考資料一
其中:

  • 印出标记:印出來的方式如果不設定,則預設方式是[1],[2],[3]…
  • 名字:名字的使用方式是在文中加上\cite{名字}則會顯示[1]
% 参考文献
\begin{thebibliography}{99}  % 99表示参考文献的最大数目为99条
\bibitem[Lamport 86]{lam}Leslie Lamport. {\it A document Prepatation System}, Addison-Wesley Pulishing Co., 1986.

\end{thebibliography}

在正文中引用参考文献的方法是:

\cite{ref1}

\cite{ref1, ref5}

这样编译后就可以得到:
[1]
[1, 5]

方法二:使用BibTeX

这种方法需要建立参考文献数据库,引用的时候调用所需要的参考文献。

BibTeX 是一种格式和一个程序,用于协调LaTeX的参考文献处理.
BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文件的后缀名为 .bib . 先来看一个例子

@article{name1,
author = {作者, 多个作者用 and 连接},
title = {标题},
journal = {期刊名},
volume = {卷20},
number = {页码},
year = {年份},
abstract = {摘要, 这个主要是引用的时候自己参考的, 这一行不是必须的}
}
@book{name2,
author ="作者",
year="年份2008",
title="书名",
publisher ="出版社名称"
}

说明:

第一行@article 告诉 BibTeX 这是一个文章类型的参考文献,还有其它格式, 例如 article, book, booklet, conference, inbook, incollection, inproceedings,manual, misc, mastersthesis, phdthesis, proceedings, techreport, unpublished 等等.

接下来的”name1”,就是你在正文中应用这个条目的名称.
其它就是参考文献里面的具体内容啦.

在LaTeX中使用BibTeX

为了在LaTeX中使用BibTeX 数据库, 你必须先做下面三件事情:

1) 标记引用 (Make citations). 当你在文档中想使用引用时, 插入 LaTeX 命令

\cite{引用文章名称}

“引用文章名称” 就是前边定义@article后面的名称.

2) 告诉LaTeX生成参考文献列表,在 LaTeX 的结束前输入

\bibliography{bibfile}

这里bibfile 就是你的 BibTeX 数据库文件 bibfile.bib .

运行 BibTeX

分为下面四步

  1. 用LaTeX编译你的 .tex 文件 , 这是生成一个 .aux 的文件, 这告诉 BibTeX 将使用那些应用;
  2. 用BibTeX 编译 .bib 文件;
  3. 再次用LaTeX 编译你的 .tex 文件,这个时候在文档中已经包含了参考文献,但此时引用的编号可能不正确;
  4. 最后用 LaTeX 编译你的 .tex 文件,如果一切顺利的话, 这是所有东西都已正常了.
    %例子:将上面的 BibTeX 的的例子保存为 bibtex-example.bib .
    \documentclass{article}
    \usepackage{CJK}
    

\begin{document}
\begin{CJK}{UTF8}{gkai}
%我是在linux下用使用latex的, window用户将上一行改为\begin{CJK}{GBK}{kai}
text\cite{name1}\cite{name2}
中文
把Latex中的 Reference 写成中文的”参考文献” %如果文档类是article之类的, 用\renewcommand\refname{参考文献}
%如果文档类是book之类的, 用\renewcommand\bibname{参考文献}
\renewcommand\refname{参考文献}
\bibliographystyle{plain}
\bibliography{ bibtex-example.bib}
\end{CJK}
\end{document}


## 参考教程:
链接: https://pan.baidu.com/s/1XG60jJ6ohZvKbUMZLZQI6Q 提取码: c1cq



文章作者: Tristan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tristan !
评论
  目录