Latex介绍
LaTeX是什么?
TeX(/tɛx/):排版软件,尤其是对于复杂数学公式的处理,数学、物理学和计算机科学界十分流行。
LaTeX(/ˈlɑːtɛx/):是一种基于TeX的排版系统,即使用户没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,不必一一亲自去设计或校对,
LaTex软件介绍
环境和编辑器区分,就像python环境(编译器环境)和pycharm\jupyter(编辑器)区分一样
运行环境(3种):LaTeX类似于Linux系统,它有多个发行版,例如 MiKTeX 、 proTeXt 和TeX Live(官方版),其中proTeXt是基于MiKTeX打包的。因此重点介绍MiKTex与TeX Live的区别。中文套装CTex 已经不再维护。
Texlive包比较全,Miktex占用空间比较小,遇到需要的包需要在线下载。所以,硬盘空间比较充足的,网络不太方便的电脑,可以选择Texlive,反之硬盘空间小,一直保持网络链接的可以选择Miktex。
编写LaTeX文档的编辑器(20多种):两大类,一种为WYSIWYG,所见即所得,实时预览,类似于Word,另一种是纯文本编辑器,有语法高亮,没有预览功能,编译成PDF后才能预览。编辑器有:LyX、TeXworks、TexStudio、WinEdt、TeXmaker、Emacs、Sublime Text、Atom、Visual Studio Code
[专为 TeX 设计的编辑器TeXworks, TeXmaker, TeXstudio, WinEdt 等;通用的文本编辑器Emacs、Sublime Text、Atom、Visual Studio Code等]
TeXworks:TeXlive自带的一款,代码高亮和字体显示效果不好
==TexStudio==:集编辑和预览于一身,用起来比较方便,比较省心。但是Window上的感觉视觉效果不如Linux上的
WinEdt:CTeX自带的一款,功能比较齐全,入门首推这款,下载CTeX即可,也可以单独安装【CTeX+WinEdt、Texlive+WinEdt、】
VSCode+Latex Workshop(插件)
在 LaTeX 文件中,按 Ctrl + Alt + J 跳转到对应的 PDF 文件位置
在 PDF 文件中,按下 Ctrl + 同时鼠标单击,跳转到对应的 LaTeX 文件位置。
在线版:overleaf
插件:Pandoc LaTex转成docx 教程
latex安装
TeXlive+TexStudio
1.==TeXlive==下载安装
下载:https://mirrors.tuna.tsinghua.edu.cn/ctan/systems/texlive/Images/ 清华大学开源软件镜像站进行下载textlive2021.iso
以管理员身份运行install-tl-windows.bat,安装路径需要为英文路径
-
选择Advanced,去掉一些不需要的语言包等
N. of collections选项,并根据个人需要,去掉Texworks(比较老的编辑器,不推荐)以及部分我们日常不会使用的语言包,例如阿拉伯语、斯洛伐克语等等,设置如下:
耐心等待,中途不可以退出
-
命令行输入以下查看是否出现版本信息
tex -v latex -v or latex --version xelatex -v pdflatex -v
- 没有出现版本信息需要配置环境变量
- 将tex live安装根目录下的bin/win32目录添加到系统环境变量path
- 配好环境变量后再查看版本信息,如下图表示配置成功
2.==TexStudio==下载安装配置
官网下载,傻瓜式安装即可
texstudio配置中文,点击options→ \to→Configure TeXstudio;anguage这里选择zh_CN
-
设置编译环境为XeLaTeX,options→ \to→Configure TeXstudio点击构建,默认编译器选择XeLaTeX(输出文档就可以显示中文内容) 英文是pdfLatex,写英文文献的时候用这个
编译器XeLaTex时,中文文档时,可以将拼写检查关掉,会更清爽
3.测试效果
新建文件---编辑如下代码----点击构建并查看按钮,或者按F5
\documentclass{article}
% 这里是导言区
\begin{document}
Hello, world!
\end{document}
可以使用texwork 也可以使用texstudio
TexStudio 使用教程及快捷键
1. 快捷键
1、F5 :构建并查看
2、F6 :编译
3、Ctrl + T :注释选定代码
4、Ctrl + U :取消选定代码注释
5、Ctrl + F :可对源码或者PDF查看器的内容进行搜索定位,搜索文字可以同时定位源码和文档。按住Ctrl + 鼠标单击,即可实现由 源码 <------>文档 定位
6、Ctrl + H 第一次跳到开始处,第二次跳到上次修改处
2. 写作技巧
最好一句话一行,方便修改
3. 便捷操作
打开两个视图:两个文件,可以选择一个移动到其它视图,然后垂直或水平分裂
Latex使用教程
英文默认pdfLaTeX,中文使用XeLaTeX
文件命名,路径都不要出现中文名字
控制序列
以反斜杠 \
开头,以第一个空格或非字母** 的字符结束的一串文字,不被输出,但会影响输出文档的效果。
-
\documentclass{article}
中包含控制序列documentclass
,它后面紧跟着的{article}
代表这个控制序列有一个必要的参数,该参数的值为article
。这个控制序列的作用,是调用名为article
的文档类。
- 部分控制序列还有被方括号
[]
包括的可选参数- 大小写是敏感的
- 文档类,即是 TeX 系统预设的(或是用户自定的)一些格式的集合。不同的文档类在输出效果上会有差别。
- 控制序列
begin
。这个控制序列总是与end
成对出现,这两个控制序列以及他们中间的内容被称为「环境」;它们之后的第一个必要参数总是一致的,被称为环境名。只有在环境里的内容才会被正常输出到文档中去或是作为控制序列对文档产生影响,\end{环境名}之后插入的内容无效 -
\documentclass{article}
开始到\begin{document}
之前的部分被称为导言区:对整篇文档进行设置的区域,导言区出现的控制序列会影响整篇文档的格式。通常在导言区设置页面大小、页眉页脚样式、章节标题样式等等。 -
\usepackage{}
可以用来调用宏包。
注释
以百分号 % 作为注释标记;若要输出%,则要在前面添加反斜杠\进行转义
文字修改
% 下划线
\usepackage{soul}
\hl{This will be highlight.}
% 删除线
\usepackage{ulem}
\sout{文字} %删除线
\uwave{文字} %波浪线
\xout{文字} %斜删除线
\uuline{文字} %双下划线
% 字体颜色
\usepackage{color}
% 1.使用已经定义好的颜色
{\color{red/blue/green/black/white/cyan/magenta/yellow} 文本}
{\color{blue} This color of text will be changed}
\textcolor{red/blue/green/black/white/cyan/magenta/yellow}{text}
\textcolor{red}{text}
% 2.组合rgb成想要的颜色,rgb取值范围为[0-1],RGB取值范围为[0-255]
\textcolor[rgb]{r,g,b}{text}
\textcolor[RGB]{R,G,B}{text}
\textcolor[rgb]{1,0,0}{文本}
% 3.定义一种颜色
\definecolor{ColorName}{rgb}{r,g,b} %这时r/g/b的定义域就在[0-1]
\definecolor{ColorName}{RGB}{R,G,B} %这时R/G/B的定义域就在[0-255]
\textcolor{ColorName}{text}
修改稿件
% 导言区
\newcommand{\minew}[1]{{\color{red}{#1}}}
\newcommand{\miold}[1]{{\textcolor[RGB]{192,192,192}{#1}}}
We must accept \miold{finite }disappointment, but we must \minew{never} lose infinite hope.
% revised version打开注释,pure version注释掉导言区的新命令即可
中英混排
以 UTF-8 编码保存,使用 XeLaTeX 编译
\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}
% 1.文档类从 article 变为 ctexart;
% 2.增加了文档类选项 UTF8。
% 使用 xeCJK 宏包来支持中英文混排。不过大多数情况是不推荐这样做的
\documentclass{article}
\usepackage{xeCJK} %调用 xeCJK 宏包
\setCJKmainfont{SimSun} %设置 CJK 主字体为 SimSun (宋体)
\begin{document}
你好,world!
\end{document}
字体设置
fc-list :lang=zh-cn > C:\font_zh-cn.txt
<字体文件路径>: <字体表示名1>, <字体表示名2>:Style=<字体类型>
C:/WINDOWS/fonts/simsun.ttc: 宋体,SimSun:style=Regular
两个表示名,填入任意一个都有同样的效果
标题作者日期
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
% 控制序列 maketitle。这个控制序列能将在导言区中定义的标题、作者、日期按照预定的格式展现出来。
章节段落
不要写段落号,会自动标注
在文档类 article
/ctexart
中,定义了五个控制序列来调整行文组织结构。他们分别是
\section{·}
\subsection{·}
\subsubsection{·}
\paragraph{·}
\subparagraph{·}
在
report
/ctexrep
中,还有\chapter{·}
;在文档类
book
/ctexbook
中,还定义了\part{·}
。
另起一段,用两次换行;\begin之前有效,\subsection前面无效
\\另起一行,不分段
\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}
插入目录
\maketitle
,在它的下面插入控制序列 \tableofcontents
\maketitle
,在它的上面插入控制序列 \tableofcontents
,目录在首页
插入参考文献
Google Scholar 的BibTeX经常出现期刊名不全这种情况,有条件还是通过 Elsvier,PubMed 等数据库来抓取文献信息吧
版面设置
页眉页脚
% 页眉左边写名字,中间写上今天的日期,右边写上电话;页脚的正中写上页码;
% 页眉和正文之间有一道宽为 0.4pt 的横线分割
% 导言区加入以下
\usepackage{fancyhdr} % fancyhdr 宏包
\pagestyle{fancy}
\lhead{\author}
\chead{\date}
\rhead{152xxxxxxxx}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0pt}
首行缩进
行间距
段间距
% 修改长度 \parskip 的值来调整段间距; 在原有的基础上,增加段间距 0.4em。如果需要减小段间距,只需将该数值改为负值即可
\addtolength{\parskip}{.4em}
插入数学公式
行内模式 (inline) :在正文的行文中插入数学公式==
$ ... $
== or\(...\)
or\begin{math}...\end{math}
行间模式 (display):独立排列单独成行,并自动居中 ==\[ ... \]
==;\begin{displaymath} ... \end{displaymath}
或者\begin{equation*} ... \end{equation*}
*表示环境不编号
需要对行间公式进行编号,则可以使用equation
环境==\begin{equation}...\end{equation}
==
% 需要在导言区加载 amsmath 宏包
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Einstein 's $E=mc^2$.
% 行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。
\[ E=mc^2. \]
\begin{equation}
E=mc^2.
\end{equation}
\end{document}
辅助工具
对于急用的初学者而言,适当地使用辅助工具(而不形成依赖)也是有一些收益的
- https://mathpix.com/ 能够通过热键呼出截屏,而后将截屏中的公式转换成 LaTeX 数学公式的代码。
- http://detexify.kirelabs.org/classify.html 允许用户用鼠标在输入区绘制单个数学符号的样式,系统会根据样式返回对应的 LaTeX 代码(和所需的宏包)。这在查询不熟悉的数学符号时特别有用。
多行公式
长公式
% 不对齐, multline环境
% 如果不需要编号,可以使用 `multline*` 环境代替。
\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}
% 需要对齐的公式,可以使用 aligned 次环境来实现,它必须包含在数学环境之内
\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]
公式组
% 无需对齐的公式组可以使用 gather 环境--居中
\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
% 要对齐的公式组可以使用 align 环境
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}
分段函数
\[ y= \begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases} \]
上下标
上标^
来实现;下标则是 _
,默认只作用于之后的一个字符
如果想对连续的几个字符起作用,用花括号 {}
括起来
\[ z = r\cdot e^{2\pi i}. \]
根式与分式
\sqrt{·}
\frac{·}{·}
强制行内模式的分式显示为行间模式的大小,可以使用
\dfrac
, 反之可以使用\tfrac
在行内写分式,你可能会喜欢xfrac
宏包提供的\sfrac
命令的效果。
排版繁分式,你应该使用\cfrac
命令。
运算符
% 小运算符
\[ \pm\; \times \; \div\;
\cdot\;
\cap\; \cup\;
\geq\; \leq\; \neq\;
\approx \; \equiv \]
% 连加、连乘、极限、积分等大型运算符
% 可以用 \limits 和 \nolimits 来强制显式地指定是否压缩这些上下标
\sum, \prod, \lim, \int
\limits \nolimits
% 多重积分
\[ \iint\quad \iiint\quad \iiiint\quad \idotsint \]
--------------------------------------------------------------------------------
% \quad:当前字体的一个宽度,即1em
$ \sum_{i=1}^n i\quad \prod_{i=1}^n $
$ \sum\limits _{i=1}^n i\quad \prod\limits _{i=1}^n $
\[ \lim_{x\to0}x^2 \quad \int_a^b x^2 dx \]
\[ \lim\nolimits _{x\to0}x^2\quad \int\nolimits_a^b x^2 dx \]
括号
(), [], {}, <> \langle\rangle ||\lvert\rvert
\lVert\rVert
使用 \big
, \Big
, \bigg
, \Bigg
等一系列命令放在上述括号前面调整大小。
\[ \Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) \]
\[ \Biggl[\biggl[\Bigl[\bigl[[x]\bigr]\Bigr]\biggr]\Biggr] \]
\[ \Biggl \{\biggl \{\Bigl \{\bigl \{\{x\}\bigr \}\Bigr \}\biggr \}\Biggr\} \]
\[ \Biggl\langle\biggl\langle\Bigl\langle\bigl\langle\langle x
\rangle\bigr\rangle\Bigr\rangle\biggr\rangle\Biggr\rangle \]
\[ \Biggl\lvert\biggl\lvert\Bigl\lvert\bigl\lvert\lvert x
\rvert\bigr\rvert\Bigr\rvert\biggr\rvert\Biggr\rvert \]
\[ \Biggl\lVert\biggl\lVert\Bigl\lVert\bigl\lVert\lVert x
\rVert\bigr\rVert\Bigr\rVert\biggr\rVert\Biggr\rVert \]
省略号
\dots
, \cdots
, \vdots
, \ddots
等命令表示。
\dots
和 \cdots
的纵向位置不同,前者一般用于有下标的序列。
\[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad
\vdots\quad \ddots \]
矩阵
\[ \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} \]
% 使用 smallmatrix 环境,可以生成行内公式的小矩阵。
Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $.
Marry has a little matrix .
图片
- 清晰度:eps>pdf>png>jpg
- 图片文件放在tex文件的同一个文件夹下
- 图片命名中不要出现中文字符、不要空格和其他特殊符号,建议只用英文字母、下划线和简单符号
- 若图片格式不是以上四种,或者图片中空白边缘过多,可以用PS进行处理并转存为以上四种格式之一
\documentclass{article}
\usepackage{graphicx}%插入图片的宏包
\usepackage{float} %设置图片浮动位置的宏包
\usepackage{subfigure} %插入多图时用子图显示的宏包
\begin{document}
% 单图插入方法
\begin{figure}[H] %H为当前位置;指定插图的理想位置htbp;分别代表here在这里、top页顶、bottom页尾、float page浮动页
\centering %图片居中
\includegraphics[width = .8\textwidth]{a.jpg}%插入图片,[]中设置图片大小,{}中是图片文件名,可以不加
\caption{图片标题} %最终文档中希望显示的图片标题
\label{Fig.main} %用于文内引用的标签编号,应该放在标题之后
\end{figure}
% 多图插入方法
% 子图无空格,可以实现横排
\begin{figure}[H]
\centering %图片全局居中
\subfigure[name1]{
\label{Fig.sub.1}
\includegraphics[width=0.45\textwidth]{picture1.jpg}}
\subfigure[name2]{
\label{Fig.sub.2}
\includegraphics[width=0.45\textwidth]{picture2.jpg}}
\caption{Main name}
\label{Fig.main}
\end{figure}
\end{document}
表格
% 简单表格使用环境tabular
% 居左、居中、居右等横向对齐方式,分别用 l、c、r 来表示
\begin{tabular}{|l|c|r|}
\hline % 用 \hline 命令表示横线,在列格式中用 | 表示竖线
操作系统& 发行版& 编辑器\\
\hline
Windows & MikTeX & TexMakerX \\
\hline
Unix/Linux & teTeX & Kile \\
\hline
Mac OS & MacTeX & TeXShop \\
\hline
通用& TeX Live & TeXworks \\
\hline
\end{tabular}
一些符号
~/~ % 输出了左右各带一个空格的斜杠
\eqref{} % amsmath 的\eqref 命令甚至为引用自动加上圆括号
\label{} % 生成编号
\ref{} % 对label{}的编号进行引用
\verb⟨delim⟩⟨code⟩⟨delim⟩ % 排版简短的代码或关键字
\verb* % 带一个星号,以显示空格
例如:\verb|\LaTeX| \LaTeX
\verb+(a || b)+ (a || b)
\item % 生成有序列表,会自动对列表项编号
学习参考: 一份其实很短的 LaTeX 入门文档