视频教程地址:https://www.bilibili.com/video/BV15b411j7Au
这里介绍一个网站,可以在线编译查看效果,一开始没搞懂,后来发现,需要修改左上角Menu中的Compiler为XeLaTeX才行。不方便下载软件的小伙伴可以使用网页版本在线编辑、编译、查看了。
视频教程使用的软件是TeX Live,它是一个免费的跨平台的发行软件,点击这里访问下载地址,点击“download from a nearby CTAN mirror”选择一个最近的镜像进行下载。这里我下载的是texlive2020.iso,大小是3.7GB。
使用虚拟光驱进行挂载,找到“install-tl-windows.bat”批处理文件,使用管理员身份运行。点击“Advanced”会看到如下界面。
修改安装位置,我这里就不放在C盘了。点击左侧的“Customize”,可以将用不到的语言和功能取消勾选,加快安装的进度,取消右侧的“安装Texworks前端”勾选,当然你也可以按照默认,最后点击“安装”,等待时间根据安装内容的多少不确定,直到看到下面的界面,说明安装完成了。
为了验证TeX Live是否安装正确,需要在命令行窗口输入命令,如果可以看到版本信息,说明安装正确。
新建一个LaTeX.tex的文件,用文本编辑软件打开,输入如下内容后保存。
\documentclass{article}
\begin{document}
Hello \LaTeX.
\end{document}
在LaTeX.tex文件的目录下,使用“latex LaTeX.tex”命令,将tex文件进行编译,会生成dvi文件。使用“dvipdfmx LaTeX.dvi”命令,可以用dvi文件生成pdf文件。还可以使用“xelatex LaTeX.tex”命令,直接生成pdf文件。
修改LaTeX.tex文件,加入ctex的宏包,使它支持中文,另外,tex文件的编码格式要设置成UTF-8。
\documentclass{article}
\usepackage{ctex}
\begin{document}
你好,\LaTeX 。
\end{document}
重新编译生成pdf看看吧,这时候就可以看到中文内容了。
点击这里下载TeXstudio,这就是一个IDE,集成了编辑、编辑、查看等功能。安装的话,安装路径,如果需要可以修改一下,其余就是常规的安装步骤。安装完成后,在安装目录找到texstudio.exe,并打开它。在“Options-Configure Texstudio-General”中,找到Language,修改成“zh_CN”,就可以将界面修改成中文了。在“选项-设置TeXstudio-构建”中,修改“默认编译器”为“XeLaTeX”。检查“编辑器”的编码格式是不是“UTF-8”。
点击“新建”创建一个tex文件,输入上面的内容,保存。点击菜单栏的“构建并查看(F5)”,在右侧可以看到输出的效果。
tex文件分为导言区和正文区,导言区可以写基本信息,正文区就写正文。
% %后面的内容是注释
% 文档类除了article,还有book,report,letter
% 导言区
\documentclass{article}
% 引入ctex的宏包支持中文
\usepackage{ctex}
\title{My First Document} % 文档题目
\author{WangShaoYang} % 作者
\date{\today} % \today表示今天的日期
% 正文区
% 正文区以\begin{document}开始,以\end{document}结束
\begin{document}
% 使导言区的内容在正文区显示
\maketitle
Hello World!
% 增加一个空行,在编译输出的时候,代表换行
% 使用$$包裹的部分在输出的时候,按照数学模式输出
$f(x)=3x^2+2x+1$
% $$$$包裹的部分在输出的时候,会新起一行居中输出
$$f(x)=x^2+2x+3$$
\end{document}
编写中文需要注意两点:检查“编辑器”的编码格式是不是“UTF-8”;引入ctex宏包。
\documentclass{article}
% 正文区使用了自定义的命令\degree
\newcommand\degree{^\circ}
% 引入ctex的宏包支持中文
\usepackage{ctex}
\title{\heiti 勾股定理} % 文档题目
\author{\kaishu 王劭阳} % 作者
\date{\today} % \today表示今天的日期
% 正文区
\begin{document}
% 使导言区的内容在正文区显示
\maketitle
符号语言表述:设直角三角形$ABC$,其中$\angle C=90\degree$,则有:
% equation环境表示产生带编号的公式
\begin{equation}
AB^2=BC^2+AC^2
\end{equation}
\end{document}
在控制台输入“texdoc ctex”可以查看ctex宏包手册,输入“texdoc lshort-zh”可以看到中文手册。
关于字体,有两种设置方式,一种是字体命令,一种是字体声明。注意它们的细微差别。
字体命令有:\textrm、\textsf、\texttt,使用的时候,按照字体命令{文字信息}的格式。
字体声明有:\rmfamily、\sffamily、\ttfamily,使用的时候,按照{字体声明 文字信息}的格式。如果不带{}限定范围,那么后面的所有文字都按照字体声明来显示,直达碰到下一个字体声明为止。
字体大小默认值是10pt,修改默认值,需要写在\documentclass[11pt]{article}的方括号里,这里的10pt是article定义的,除了10pt,还有11pt和12pt,没有其他的了。
其他内容可以参考ctex手册。
% 10pt是默认正常的字体大小,即下文中的normalsize
\documentclass[10pt]{article}
\usepackage{ctex}
% 自定义字体,类似于C语言中的自定义函数,在上面定义,下面调用
\newcommand{\myfont}{\textbf{\textsf{Fancy Text}}}
\begin{document}
% 字体族设置(罗马字体、无衬线字体、打字机字体)
% \textrm等是字体命令,大括号里是作用到的文字
\textrm{Roman Family} \textsf{Scan Serif Family} \texttt{Typewriter Family}
% \rmfamily是字体声明,后面紧跟的文字是作用到的文字
{\rmfamily Roman Family} {\sffamily Scan Serif Family} {\ttfamily Typewriter Family}
{\sffamily Who are you?you find self on everyone around.take you as the same as others!}
{\ttfamily Are you aiser than others?}
% 字体系列设置(粗细、宽度)
% \textmd等是字体命令,大括号里是作用到的文字
\textmd{Medium Series} \textbf{Boldface Series}
% 字体声明
{\mdseries Medium Series} {\bfseries Boldface Series}
% 字体形状(直立、斜体、伪斜体、小型大写)
\textup{Upright Shape} \textit{Italic Shape}
\textsl{Slanted Shape} \textsc{Small Caps Shape}
{\upshape Upright Shape}
{\itshape Italic Shape}
{\slshape Slanted Shape}
{\scshape Small Caps Shape}
% 中文字体,\quad表示空格,粗体是黑体,斜体是楷体
{\songti 宋体} \quad{\heiti 黑体}\quad{\fangsong 仿宋}\quad {\kaishu 楷书}
中文字体的\textbf{粗体}与\textit{斜体}
% 字体大小
{\tiny Hello }\\
{\scriptsize Hello }\\
{\footnotesize Hello }\\
{\small Hello }\\
{\normalsize Hello }\\
{\large Hello }\\
{\Large Hello }\\
{\LARGE Hello }\\
{\huge Hello }\\
% 中文字号设置命令
\zihao{1}你好!
% latex格式与内容分离
\myfont
\end{document}
\section{}:一级标题
\subsection{}:二级标题
\subsubsection{}:三级标题
换行可以使用一个空行(多个空行和一个空行效果一样),也可以使用\\,和\par,\\不会保持段落的缩进,\par会有段落的缩进。
\chapter{}用来产生章节,需要将\documentclass{ctexart}改为\documentclass{ctexbook},\tableofcontents{}用来产生目录。
\documentclass{article}
\usepackage{ctex}
\begin{document}
\section{引言}
LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.
LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.\par
LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.\\LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.
\section{实验方法}
\section{实验结果}
\subsection{数据}
\subsection{图表}
\subsubsection{图1}
\subsubsection{图2}
\section{结论}
\section{致谢}
\end{document}
空行分段,多个空行等同于一个,自动缩进,不能使用空格代替,在英文中,多个空格,会被视为一个空格,中文中的空格会被忽略,汉字与其他字符之间的间距由XeLaTeX来处理,禁止使用中文全角空格。
\documentclass{article}
\usepackage{ctex}
\begin{document}
\section{空白符号}
LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.
\section{\ LaTex 控制符}
\# \$ \{ \} \~{} \_{} \^{} \textbackslash
\section{排版符号}
\S \P \dag \ddag \copyright \pounds
\section{\ Tex 标志符号}
\TeX{} \LaTeX{} \LaTeXe{}
% `表示单引号的左边,'表示单引号的右边
\section{引号}
`' `` '' ``被双引号包裹''
\section{连字符}
- -- ---
\section{非英文字符}
\oe \OE \ae \AE \aa \AA \o \O \l \L \ss \ss !` ?`
\section{重音符号}
\`o \'o \^o \''o \~o \=o \.o \u{o} \v{o} \H{o} \r{o} \t{o} \b{o} \c{o} \d{o}
\end{document}
文档类型设置成\documentclass{ctexart},引入插图的宏包\usepackage{graphicx},指定图片查找路径\graphicspath{{figures/}},使用\includegraphics[可选参数]{图片文件名称}命令导入图片。
\documentclass{ctexart}
\usepackage{ctex}
\usepackage{graphicx}
% 表示图片在当前目录下的figures目录
\graphicspath{{figures/}}
\begin{document}
\LaTeX{}中的插图:\\
\includegraphics[height=7cm,width=10cm]{test}
\end{document}
更多内容可以使用“texdoc graphicx”命令查看文档。
\documentclass{article}
\usepackage{ctex}
% \begin{tabular}[<垂直对齐方式>]{<列格式说明>}<表项>&〈表项>& ... &<表项>\\
% ……
% \end{tabular}
% 用\\表示换行
% 用&表示不同的列
% l-本列左对齐;c―本列居中对齐;r-本列右对齐;
% p{<宽>}-本列宽度固定,能够自动换行
% \hline:每行之间由横线分开
\begin{document}
\begin{tabular}
% 指定每列的对齐形式,|表示每列中间有竖线分开
{|l| c| c| c| r|p{1cm}|}
\hline
姓名&语文&数学&外语&政治&其他\\
\hline
张&87&110&85&36&中文超出宽度自动换行\\
\hline
王&78&120&75&36&英文超出直接溢出\\
\hline
李&90&100&88&36&aaaaaaaaaaaaaa\\
\hline
\end{tabular}
\end{document}
使用LaTeX浮动体可以更好的控制分页,避免产生无法分割的页面空白。这里用到的命令有figure和table。
\documentclass{ctexart}
\usepackage{ctex}
\usepackage{graphicx}
% 表示图片在当前目录下的figures目录
\graphicspath{{figures/}}
\begin{document}
在\LaTeX{}中插入图片1,见图\ref{test1}\\
% {figure}浮动体
% [htbp]是浮动格式,任意位置
% h:当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。
% t:顶部。将图形放置在页面的顶部。
% b:底部。将图形放置在页面的底部。
% p:浮动页。将图形放置在一只允许有浮动对象的页面上。
\begin{figure}[htbp]
% 使得以下内容居中
\centering
\includegraphics[height=7cm,width=10cm]{test1}
% \caption为图片设置标题,会自动编号
% \label设置自定义标签,在其他地方使用\ref进行引用
\caption{插入图片}\label{test1}
\end{figure}
在\LaTeX{}中插入图片2,见图\ref{test2}\\
\begin{figure}[htbp]
% 使得以下内容居中
\centering
\includegraphics[height=7cm,width=10cm]{test2}
% \caption为图片设置标题,会自动编号
% \label设置自定义标签,在其他地方使用\ref进行引用
\caption{插入图片}\label{test2}
\end{figure}
在\LaTeX{}中也可以使用表\ref{mytablelabel}所示的表格
\begin{table}[htbp]
% 使得以下内容居中
\centering
\caption{成绩单}\label{mytablelabel}
\begin{tabular}
% 指定每列的对齐形式,|表示每列中间有竖线分开
{|l| c| c| c| r|p{2cm}|}
\hline
姓名&语文&数学&外语&政治&其他\\
\hline
张&87&110&85&36&中文超出宽度自动换行\\
\hline
王&78&120&75&36&英文超出直接溢出\\
\hline
李&90&100&88&36&aaaaaaaaaaaaaa\\
\hline
\end{tabular}
\end{table}
\end{document}
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\begin{document}
\section{行内公式}
\subsection{美元符号}
交换律$a+b=b+a$,如$1+2=2+1$
\subsection{小括号}
交换律\(a+b=b+a\),如\(1+2=2+1\)
\subsection{math环境}
交换律\begin{math}
a+b=b+a
\end{math}
\section{上下标}
\subsection{上标}
$2x^2+3x+5=6$
\subsection{下标}
$a_0,a_1,a_{100}$
\section{希腊字母}
$\alpha$
$\beta$
$\gamma$
$\epsilon$
$\pi$
$\omega$
$\Gamma$
$\Delta$
$\Theta$
$\Pi$
$\Omega$
\section{数学函数}
$\log$
$\sin$
$\cos$
$\arccos$
$\arcsin$
$\ln$
$\sin^2x+\cos^2x=1$
$\sqrt{2}$
$\sqrt{x^2+y^2}$
$\sqrt{2+\sqrt{2}}$
$\sqrt[4]{x}$
\section{分式}
大约是原体积的$3/4$
大约是原体积的$\frac{3}{4}$
\section{行间公式}
\subsection{美元符号}
$$2x^2+5x+3=6$$
\subsection{中括号}
\[a+b=b+a\]
\subsection{displayment}
\begin{displaymath}
2x^2+5x+3=6
\end{displaymath}
\subsection{自动编号公式}
交换律见式\ref{eq:commutative}
\begin{equation}
a+b=b+a \label{eq:commutative}
\end{equation}
\subsection{不带自动编号公式}
% 需要使用\usepackage{amsmath}
\begin{equation*}
a+b=b+a
\end{equation*}
\end{document}
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\begin{document}
\[
\begin{matrix}
0&1\\
1&0
\end{matrix}
\]
% 括号包裹的矩阵
\[\begin{pmatrix}
0&1\\
1&0
\end{pmatrix}
\]
% 长竖线包裹的矩阵
\[\begin{vmatrix}
0&1\\
1&0
\end{vmatrix}
\]
% 双长竖线包裹的矩阵
\[\begin{Vmatrix}
0&1\\
1&0
\end{Vmatrix}
\]
% 长中括号包裹的矩阵
\[\begin{bmatrix}
0&1\\
1&0
\end{bmatrix}
\]
% 长大括号包裹的矩阵
\[\begin{Bmatrix}
0&1\\
1&0
\end{Bmatrix}
\]
% 括号包裹的矩阵
\[\begin{pmatrix}
a_{11}^2&a_{12}^2&a_{13}^2\\
0&a_{22}&a_{33}
\end{pmatrix}
\]
% 长中括号包裹的矩阵
\[\begin{bmatrix}
a_{11}&\dots&a_{1n}\\
&\ddots&\vdots\\
0 & & a_{nn}
\end{bmatrix}_{n \times n}
\]
\[\begin{pmatrix}%分块矩阵(矩阵嵌套)
\begin{matrix}
1&0\\0&1
\end{matrix}
& \text{\Large 0}\\
\text{\Large 0}&\begin{matrix}
1&0\\0&1
\end{matrix}
\end{pmatrix}
\]
% 括号包裹的矩阵
\[\begin{pmatrix}
a_{11}&a_{12}&\cdots&a_{ln}\\
&a_{22}&\cdots&a_{2n}\\
& &\dots &\vdots \\
\multicolumn{2}{c}{\raisebox{1.3ex}[0pt]{\Huge 0}}
& &a_{nn}
\end{pmatrix}
\]
% 跨列的省略号:\hdotsfor{<列数>}
\[\begin{pmatrix}
1&\frac 12 &\dots &\frac 1n \\
\hdotsfor{4}\\
m&\frac m2& \dots &\frac mn
\end{pmatrix}
\]
% 行内小矩阵(smallmatrix)环境
复数$z=(x,y)$也可以用矩阵
\begin{math}
\left(% 需手动加上左括号
\begin{smallmatrix}
x& -y\\y&x
\end{smallmatrix}
\right)% 需手动加上右括号
\end{math}来表示
% array环境(类似表格环境tabular)
\[
\begin{array}{r|r}
\frac 12&0\\
\hline
0& -\frac abc\\
\end{array}
\]
\end{document}
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
% gather和gather*环境(可以使用\\换行)
% 带编号
\begin{gather}
a+b=b+a\\
ab ba
\end{gather}
% 不带编号
\begin{gather*}
3+5=5+3\\
3 \times 5=5\times 3
\end{gather*}
% 在\\前使用\notag阻止编号
\begin{gather}
3^2+4^2=5^2 \notag
\end{gather}
% align和align*环境(用&对齐)
% 带编号
\begin{align}
x &=t+\cos t+1\\
y &=2 \sin t
\end{align}
% 不带编号
\begin{align*}
x &=t+\cos t+1\\
y &=2 \sin t
\end{align*}
% split环境(对齐采用align环境的方式,编号在中间)
\begin{equation}
\begin{split}
\cos 2x &=\cos^2 x- \sin^2 x\\
&=2\cos^2 x-1
\end{split}
\end{equation}
% case环境
% 每行公式中使用&分隔为两部分
% 通常表示值和后面的条件
% \text{}在数学模式中处理中文或者临时切换为文本模式
\begin{equation}
D(x)=\begin{cases}
1,& \text{如果} x \in \mathbb{Q};\\
0,& \text{如果} x \in \mathbb{R}\setminus\mathbb{Q}
\end{cases}
\end{equation}
\end{document}
\documentclass{article}
\usepackage{ctex}
\begin{document}
% 一次管理,一次使用
% 参考文献格式:
% \begin{thebibliography}{编号样本}
% \bibitem[记号]{引用标志}文献条目1
% \bibitem[记号]{引用标志}文献条目2
% ……
% \end{thebibliography }
% 其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
% 引用时候要可以采用:\cite{引用标志1,引用标志2,...}
引用一篇文章\cite{article1},引用一本书\cite{book1}
\begin{thebibliography}{99}
\bibitem{article1}陈立耀,苏伟,蔡川,陈晓云.\emph{基于LaTex的Web数堂公式提取方法研究}[1]、让算机科学、2014(06)
\bibitem{book1}william H. Press,saul A.Teukolsky, william T. Metterling, Brian P. Elannery,\emph{Numerical Recipes 3rd Edition:The Art of Scientific Computing}Cambridge University Press,New York,2007.
\bibitem{latexGuide} Kopka Helmut,w. Daly Patrick,\emph{Guide to \LaTeX},$4^{th}$ Edition.Available at \texttt{http://www.amazon.com}.
\bibitem{latexMath} Graetzer George,lemph{Math Into \LaTeX},BirkhAuser Boston; 3 edition (une 22,2000).
\end{thebibliography}
\end{document}
检查“设置TeXstudio-构建-默认文献工具”,是不是选择“BibTeX”,新建一个文件:book.bib,注意是bib后缀的。book.bib的内容如下,bib文件采用key-value的形式,看起来更清晰。
@BOOK{mittelbach2004,
title={腾讯传},
publisher={广东教育出版社},
year={2004},
author={Frank Mittelbach and Michel Goossens},
series={Tools and Techniques},
address={广东},
edition={First}
}
在另一个文档中,引用这个bib文件。
\documentclass{article}
\usepackage{ctex}
% 指定参考文献的排版样式:plain,unsrt,alpha,abbrv
\bibliographystyle{plain}
\begin{document}
% 把bibId作为key传给\cite{}
\cite{mittelbach2004}
% 引入bib文件,如果有多个bib文件,使用逗号隔开
\bibliography{book}
\end{document}
这里如果报错,或者显示的参考文献信息是旧的,可以试试清理编译过程文件:工具-清理辅助文件。
手动维护bib文件可能比较麻烦,可以使用Google提供的功能,访问谷歌学术,随便搜索点东西,点击“引用”,再点击“BibTex”,即可看到信息。
将信息粘贴到bib文件中即可。
也可以去知网下载bib文件,不过需要浏览器安装zotero插件。
首先将“默认文献工具”修改为"Biber":设置TeXstudio-构建-默认文献工具-Biber。
\documentclass{article}
% 引入biber宏包
\usepackage[style=numeric,backend=biber]{biblatex}
\usepackage{ctex}
% biblatex/biber
% 新的TEX参考文献排版引擎
% 样式文件(参考文献样式文件--bbx文件,引用样式文件--cbx文件)使用LATEX编写
% 支持根据本地化排版,如:
% biber -l zh__pinyin texfile,用于指定按拼音排序
% biber -l zh__stroke texfile,用于按笔画排序
% 在导言区添加bib数据库(后缀名不能省略)
\addbibresource{book.bib}
\begin{document}
% 无格式化引用
\cite{mittelbach2004}
% 带方括号引用
\parencite{mittelbach2004}
% 上标引用
\supercite{mittelbach2004}
\nocite{*}
\printbibliography
% 默认是References,可以自定义
\printbibliography[title={参考文献}]
\end{document}
\documentclass{article}
\usepackage{ctex}
% \newcommand-定义命令
% 命令只能由字母组成,不能以\end开头
% \newcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
% \newcommand可以是简单的字符串替换,例如:
% 使用\PRC 相当于People's Republic of \emph{China}这串内容
\newcommand\PRC{People's Republic of \emph{China}}
% \newcommand也可以使用参数,就是把参数填充到#数字的地方
% 参数个数可以有1~9个,#1,#2表示第1、2个参数
% #1表示第一个参数,#2表示第二个参数
\newcommand\loves[2]{#1 喜欢 #2}
% 整体就是参数一喜欢参数二
% 参数采用位置参数,第二个传入的参数即为#2
\newcommand\hatedby[2]{#2 不受 #1 喜欢}
% \newcommand的参数可以有默认值
% 指定参数个数的同时指定了首个参数的默认值
% 第一个参数就成为可选的参数(要使用中括号指定)
% [3]表示有3个参数,第一个参数的默认值是“喜欢”
\newcommand\love[3][喜欢]{#2 #1 #3}
% \renewcommand-重定义命令
% 与\newcommand 命令作用和用法相同,但只能用于已有命令
% \renewcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>对}
\renewcommand\abstractname{把“摘要”换成“内容简介”}
% 定义和重定义环境
% \newenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% \renewenvironment{<环境名称>}][<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% 为book类中定义摘要(abstract)环境
\newenvironment{myabstract}[1][摘要]
{
\small
\begin{center} \bfseries #1 \end{center}
}
{
\begin{quotation}\end{quotation}
}
\begin{document}
\begin{abstract}
这是一段摘要
\end{abstract}
\begin{myabstract}[我的摘要]
自定义摘要
\end{myabstract}
\PRC
\loves{猫}{鱼}
\hatedby{猫}{萝卜}
\love{猫}{鱼}
\love[最爱]{猫}{鱼}
\end{document}