目录
- 一、LaTeX软件的安装与环境配置
- 1.LaTeX软件texlive的下载
- 2. texlive的安装
- 二、用命令行实现LaTeX文档的编写
- 1.通过命令行演示LaTeX编写的过程
- 2.将编译LaTeX并生成pdf文件的过程封装成一个bat文件
- 3.演示一个含有中文的LaTeX文件
- 三、用TexStudio IDE实现LaTeX文档的编写
- 1.下载TexStudio
- 2.安装TexStudio
- 3.将TexStudio的语言设为中文
- 4.选择TexStudio的编译器
- 5.使用TexStudio编写一个LaTeX文件
- 四、LaTeX源文件的基本结构
- 五、LaTeX中的中文处理方法
- 1.示例演示
- 2.使用命令查看CTEX宏集手册
- 3.使用命令查看LaTeX的简单教程
- 六、LaTeX的字体字号设置
- 七、LaTeX的篇章结构
- 八、LaTeX中的特殊字符
- 九、LaTeX中的插图
- 十、LaTeX中的表格
- 十一、LaTeX中的浮动体
- 十二、LaTeX数学公式初步
- 十三、LaTeX数学公式的矩阵
- 十四、LaTeX数学公式的多行公式
- 十五、LaTeX中的参考文献BibTex
- 1.手动编写参考文献
- 2.借助镜像Google学术实现文献数据库的管理
- 十六、LaTeX中的参考文献BibLaTeX(因卡在Zotero插件上,本节笔记未记完)
- 十七、LaTeX中的自定义命令和环境
说明:1.该文章是学习 b站上 西北农林科技大学耿楠教授的LaTeX视频教程而记录的笔记,笔记来源于本人。 若有侵权,请联系本人删除。2.另外,由于时间导致一些软件的更迭,为了完成同样的功能,步骤等难免有所改动。笔记难免可能出现错误或笔误,若读者发现笔记有错误,欢迎在评论里批评指正。3.有些细节内容通过目录不便查询,请使用 浏览器的搜索快捷键Ctr+G,再尝试搜索对应内容。4.如果时间有限,建议直接把本人整理出的LaTeX代码复制到TexStudio中运行,对照着代码以及本人给出的详细注释进行理解。5.由于本人在使用 Zotero上还存在问题,故 关于LaTeX中参考文献的笔记并未整理完整,欢迎大家分享正确使用Zotero的方法。
一、LaTeX软件的安装与环境配置
1.LaTeX软件texlive的下载
如下图所示,首先去LaTex的官网,选择“downloading the TeX Live ISO image and burning your own DVD”,选择“download from a nearby CTAN mirror”(即选择最新的镜像文件),点击“texlive2023.iso”即可下载。
2. texlive的安装
如下图所示,点击下载好的iso镜像文件,以管理员身份打开“install-tl-windows.bat”。
然后如下图所示修改安装路径,在弹出的窗口中点击“是”,并点击“安装”。
长时间等待后,安装完成后会显示如下界面。
然后如下图所示,打开命令行窗口,输入“xelatex -v”或“latex -v”,如果出现版本信息则说明安装成功。
xelatex -v
latex -v
二、用命令行实现LaTeX文档的编写
1.通过命令行演示LaTeX编写的过程
首先如下图所示,在某个文件路径下打开命令行窗口。
然后输入命令创建一个名为“testLaTex”的文件夹,然后在该文件夹中使用记事本创建文件“test.tex”。
mkdir testLaTex # 创建文件夹“testLaTex”
cd testLaTex # 进入文件夹“testLaTex”
notepad test.tex # 使用记事本创建文件“test.tex”
然后就可以在记事本中写LaTex命令,下面的示例使用documentclass命令引入了article文档类(用于撰写论文相关操作的文档类)。然后在“\begin{document}”和“\end{document}”中间编写我们需要的文档。(注:1.我们需要使用{}来描述一个命令的参数。2.“\begin”和“\end”是成对出现的。)
\documentclass {article}
\begin{document}
Hello \LaTeX.
\end{document}
文档写好后,就可以保存并关闭记事本。
接着有两种方式对LaTeX文件进行编译。第一种编译方式:使用如下命令来编译LaTex文件,发现产生了一个“test.dvi”文件。然后使用命令将文件“test.dvi” 转成了pdf文件“test.pdf”。然后输入命令打开文“test.pdf”并查看LaTex代码编写的结果。
latex test.tex # 编译文件“test.tex”
dvipdfmx test.dvi # 将文件“test.dvi”转成pdf文件
test.pdf # 打开文件“test.pdf”
第二种编译方式:输入命令“xelatex test.tex”编译文件“test.tex”成pdf,然后使用命令打开编译产生的pdf文件。
xelatex test.tex # 编译文件“test.tex”
test.pdf # 打开文件“test.pdf”
2.将编译LaTeX并生成pdf文件的过程封装成一个bat文件
每次编写完LaTeX文件后,都要在命令行进行编译操作比较麻烦。所以我们可以将编译LaTeX并生成的pdf文件的过程封装成一个bat文件,具体过程如下。
首先,新建一个bat文件(即图中的“build.bat”)。
然后通过记事本打开该文件(即打开图中的“build.bat”文件)。
notepad build.bat # 通过记事本打开“build.bat”
将编译以及打开pdf文件的命令写入文件“build.bat”中,然后使用快捷键Ctr+S进行保存(注:编译的文件名需改成对应的文件名),然后退出“build.bat”文件。
latex test.tex
dvipdfmx test.dvi
del *.aux *.dvi *.log
# 注释:
latex test.tex # 编译文件
dvipdfmx test.dvi # 转成pdf文件
del *.aux *.dvi *.log # 删除产生的中间文件
删除pdf文件,并运行“build.bat”程序,看一看效果。
build # 运行“build.bat”程序
dir # 查看当前的目录文件
当然也可以创建一个“buildx.bat”文件,编写xelatex命令来完成相同的操作。(操作命令如下,截图略)
# 1.创建文件“buildx.bat”
# 2.在命令行窗口执行下面的命令
notepad buildx.bat # 通过记事本打开“buildx.bat”
# 3.在文件“build.bat”中输入下面的内容并保存,然后关闭文件“build.bat”
xelatex test.tex
del *.aux *.dvi *.log
# -注释(注释的内容请不要复制到bat文件中):
xelatex test.tex # 编译生成pdf文件
del *.aux *.dvi *.log # 删除产生的中间文件
# 4.删除已有的pdf文件,双击文件“buildx.bat”或在命令行窗口通过命令运行程序“buildx.bat”查看效果
buildx # 运行“buildx.bat”程序
3.演示一个含有中文的LaTeX文件
首先,在命令行窗口使用记事本打开文件“test.tex”。
notepad test.tex # 使用记事本创建文件“test.tex”
然后输入下面的内容并保存。(注意:1.在命令和文字之间需要加空格,以示区分。2. ctex是支持中文的宏包。)
\documentclass {article}
\usepackage {ctex}
\begin{document}
你好, \LaTeX 。
\end{document}
再将文件的编码格式设为“UTF-8”(本人格式已经是“UTF-8”,为了演示过程,给出具体的截图,本人进行了重复的操作),另存完成后就退出文件“test.tex”。
之后,运行“build.bat”文件完成编译,运行完成后再打开pdf文件。
本次编写的LaTeX文件的效果图如下。
三、用TexStudio IDE实现LaTeX文档的编写
完全在命令行中编写LaTeX代码太过繁琐,不符合我们希望操作简单的要求。所以我们将安装一个免费的IDE工具来实现对LaTeX文件的编写、编译及pdf查看的功能。
1.下载TexStudio
首先打开TexStudio的官网“https://texstudio.sourceforge.net/”,选择“Download now”即可开始下载。
2.安装TexStudio
安装步骤如下几张图所示。
3.将TexStudio的语言设为中文
双击打开TexStudio。
本人的语言默认为中文。为了演示过程,本人给了几张截图。
4.选择TexStudio的编译器
为了能够正常进行相应的操作,还需要进行一些设置。首先,点击到“命令”的页面,右侧的参数可以根据需要进行调整(本次未做修改)。
然后选择“构建”,将编译器选为“XeLaTeX”,然后软件就设置好了。(在处理中文上,“XeLaTeX”比较方便。)
5.使用TexStudio编写一个LaTeX文件
首先新建一个LaTeX文档。
然后将该文件保存到一个文件夹中。
然后如下gif动图所示,输入LaTeX命令,并执行程序。(注:1.使用TexStudio的提示并结合TAB键可快速编写命令;2.按住Ctr不放,滚动鼠标滚轮可放大或缩小字体;3.可以使用%进行单行注释;4.可以使用“\iffalse … \fi”进行多行注释,但不建议使用改该种多行注释方式,因为还是会显示高亮。)
\documentclass[]{article} % 使用documentclass命令引入了article文档类
\usepackage[]{ctex} % ctex是支持中文的宏包
\begin{document} % 在\begin和\end对里面书写需要的文档
你好, \LaTeX 。
\end{document}
四、LaTeX源文件的基本结构
本节课将通过一个实例分析LaTeX文件的基本结构。首先,创建一个文件(图中的“LaTeX_Learn_04.tex”)并保存。
然后输入LaTeX命令并运行。
% 导言区
\documentclass[]{article} % 其他类还有book,report,letter等
\usepackage[]{ctex} % ctex是支持中文的宏包
\title{My First Document} % 文档名
\author{蓝色的天空} % 作者
%注:实际该文档来源于西北农林科技大学的耿楠教授,本人只是抄了过来仅仅作为笔记,方便广大网友共同学习使用
\date{\today} % 时间
% 正文区(文稿区)
\begin{document} % 引入环境
\maketitle % 将文档名、作者、时间进行显示
Hello World!
% here is my big formula
Let $f(x)$ be defined by the formula $$f(x)=3x^2+x-1$$ which is a polynomial of degree 2.
\end{document}
注:
1.如编写的内容所示,根据注释的提示可知,一个LaTeX文档可以分为导言区和正文区(也称文稿区)。
2.在导言区,我们可以使用“documentclass”命令引入文档类,比如“article”、“book”,“report”,“letter”等类。
3. 在导言区,我们还可以使用“title”设置文档的标题,使用“author”指明文档的作者,使用“date”指明文档的时间
4.在正文区,可以通过“begin…end”引入一个名为“document”的环境,注意,一个LaTeX文档只能有一个“document”环境。
5.“\maketitle” 将文档名、作者、时间进行显示。注意:letter中没有该指令
6.在“$...$”(效果:内嵌公式)或“$$...$$”(效果:另起一行居中)符号内的内容称为数学模式,而外面的内容称为文本模式,可见常在“$...$”内输入公式,比如“$f(x)$”。
7.如何分段?两段之间需要空有一行的间隔。
8.由本次编写的LaTeX实例知,在正文区,我们可以用命令、文本和数学公式构成文档。
五、LaTeX中的中文处理方法
1.示例演示
首先,检查“选项-设置TeXstudio”里的“构建-默认编辑器”是否是“XeLaTeX”,然后检查“编辑器-默认字体编码”是否是“UTF-8”,之后选择“确定”。
然后,创建一个文件(图中的“LaTeX_Learn_05.tex”)并保存。
然后输入LaTeX命令并运行。
% 导言区
\documentclass[]{article} % 其他类还有book,report,letter等
\usepackage[]{ctex} % ctex是支持中文的宏包
\newcommand\degree{^\circ} % 定义角度单位
\title{\heiti 杂谈勾股定理} % 文档名 \heiti:字体为黑体
\author{\kaishu 张三} % 作者
%注:实际该文档来源于西北农林科技大学的耿楠教授,本人只是抄了过来仅仅作为笔记,方便广大网友共同学习使用
\date{\today} % 时间
% 正文区(文稿区)
\begin{document} % 引入环境
\maketitle % 将文档名、作者、时间进行显示
勾股定理可以用现代语言表述如下:
直角三角形斜边的平方等于两腰的平方和。
可以用符号语言表述为:设直角三角形$ABC$,其中$\angle C=90\degree$,则有:
\begin{equation} % 环境“equation”用于产生带编号的公式
AB^2=BC^2+AC^2.
\end{equation}
\end{document}
注:
1. 需要使用“usepackage”命令将支持中文的宏包“ctex”进行导入
2. 环境“equation”用于产生带编号的公式
3. “\newcommand\degree{^\circ}”定义了角度单位
4. “\heiti”表示字体为黑体
2.使用命令查看CTEX宏集手册
有时我们会思考使用“usepackage”命令引入“ctex”究竟是什么作用呢?带着这个问题,首先,打开命令行窗口。
然后使用命令打开CTEX宏集手册。
texdoc ctex # 打开CTEX宏集手册
在目录中找到“使用CTEX文档类”,然后按住Ctr不放,鼠标左击快速调到对应内容。(注意到:“CTEX 宏集提供了四个中文文档类:ctexart、ctexrep、ctexbook 和 ctexbeamer,分别对应LATEX的标准文档类 article、report、book 和 beamer。”)
因此,回到LaTeX代码将“\usepackage[]{ctex}”注释掉,将“documentclass”导入的“article”改成“ctexart”后,再运行指令,效果不变。
% 导言区
\documentclass[]{ctexart} % 其他类还有book,report,letter等
% \usepackage[]{ctex} % ctex是支持中文的宏包
\newcommand\degree{^\circ} % 定义角度单位
\title{\heiti 杂谈勾股定理} % 文档名 \heiti:字体为黑体
\author{\kaishu 张三} % 作者
%注:实际该文档来源于西北农林科技大学的耿楠教授,本人只是抄了过来仅仅作为笔记,方便广大网友共同学习使用
\date{\today} % 时间
% 正文区(文稿区)
\begin{document} % 引入环境
\maketitle % 将文档名、作者、时间进行显示
勾股定理可以用现代语言表述如下:
直角三角形斜边的平方等于两腰的平方和。
可以用符号语言表述为:设直角三角形$ABC$,其中$\angle C=90\degree$,则有:
\begin{equation} % 环境“equation”用于产生带编号的公式
AB^2=BC^2+AC^2.
\end{equation}
\end{document}
3.使用命令查看LaTeX的简单教程
在命令行窗口使用命令打开LaTeX的简单教程,以便后续学习LaTeX的操作使用。
texdoc lshort-zh # 打开LaTeX的简单教程
六、LaTeX的字体字号设置
如下图所示,在LaTeX中,一个字体有5种属性,包括字体编码、字体族、字体系列、字体形状和字体大小,都可以通过命令或声明进行设置。其中,字体编码包括正文字体编码和数学字体编码;字体族分为罗马字体、无衬线字体和打字机字体;字体系列分为粗细和宽度;字体形状分为直立、斜体、伪斜体、小型大写。
关于字体编码的设置,过后再讨论,本次课程主要讨论字体族、字体系列、字体形状和字体大小。首先,创建一个文件(图中的“LaTeX_Learn_06.tex”)并保存。
然后编写LaTeX文档并运行。(注意有一点:LaTeX的思想是 * 内容与格式的分离 * ,因此不建议在文档中使用大量的命令,所以常常需要使用“newcommand”来定义一堆命令,关于“newcommand”的细节后面将会讲解。其他内容请阅读代码里的注释)
% 导言区
\documentclass[]{article} % 其他类还有book,report,letter等
% \documentclass[10pt]{article} % 10pt:修改normal size为10磅
\usepackage[]{ctex} % ctex是支持中文的宏包
% 需要注意的是,LaTeX的思想是 * 内容与格式的分离 * ,因此不建议在文档中使用大量的命令,所以常常需要使用“newcommand”来定义一堆命令
\newcommand{\myfont}{\textit{\textbf{\textsf{Fancy Text}}}}
% 正文区(文稿区)
\begin{document} % 引入环境
% --------------1.字体族设置(罗马字体、无衬线字体、打字机字体)--------------
% 方式1:通过命令设置字体族
\textrm{Roman Family} % 通过命令“textrm”设置字体为罗马(Roman)字体
\textsf{Sans Serif Family} % 通过命令“textsf”设置字体为无衬线字体
\texttt{Typewriter Family} % 通过命令“texttt”设置字体为打字机字体
% 方式2:通过声明设置字体族 {}的作用:对文本进行分组以限定声明作用的范围
{\rmfamily Roman Family} % 通过“rmfamily”声明后续字体为罗马(Roman)字体
{\sffamily Sans Serif Family} % 无衬线字体
{\ttfamily Typewriter Family} % 打字机字体
{\sffamily who you are?you find self on everyone around.take you as the same as others!}
% 当启用另一个字体的声明时,会启用当前的字体声明
{\ttfamily Are you wiser than others?definitely no.in some ways, may it is true.What can you achieve?a luxurious house?a brillilant car?an admirable career?who knows?}
% ---------------2.字体系列设置(粗细、宽度)------------------
\textmd{Medium Series} \textbf{Boldface Series}
{\mdseries Medium Series} {\bfseries Boldface Series}
% --------------3.字体形状(直立、斜体、伪斜体、小型大写)-----------------
\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}
% -------------4.中文字体----------
% \quad相当于一个TAB键
{\songti 宋体} \quad{\heiti 黑体}\quad{\fangsong 仿宋} \quad{\kaishu 楷书}
% 中文的粗体时使用黑体表示的,斜体是使用楷书进行表示的
中文字体的\textbf{粗体}与\textit{斜体}
% ------------5.字体大小-----------------
% 字体的大小是通过声明设置的,它是相对于normal size的,
% - 而normal size是由文档类的参数控制的,可以在导言区中
% - 引入文档类的地方修改normal size
{\tiny Hello}\\
{\scriptsize Hello}\\
{\footnotesize Hello}\\
{\small Hello}\\
{\normalsize Hello}\\
{\large Hello}\\
{\Large Hello}\\
{\LARGE Hello}\\
{\huge Hello}\\
{\Huge Hello}\\
% 中文字号设置命令
\zihao{-0} 你好! % zihao{-0}:小初号
\zihao{5} 你好! % zihao{5}:5号
\myfont
\end{document}
七、LaTeX的篇章结构
一般在撰写文档时,我们总是先撰写出文档的提纲。然后再根据提纲展开,来撰写其他的内容,这一节我们主要讲解LaTeX的篇章结构。
首先,创建一个文件(图中的“LaTeX_Learn_07.tex”)并保存。
然后编写LaTeX文档并运行。(在LaTeX中,我们可以通过“\section”、“\subsection”、“\subsubsection”等命令来构建文章的提纲。)
% 导言区
\documentclass[]{article}
\usepackage[]{ctex}
% 正文区(文稿区)
\begin{document}
% 1.“\section”:构建小节 “\subsection”:构建子小节 “\subsubsection”:第三级标题
% 2."//":实现换行(而非段落)
% 3."\par":产生新的段落 注:通常,为了保证文段的清晰,段落都是通过空行实现的
% 4.“\tableofcontents”:生成目录
\tableofcontents
\section{引言}
近年来,随着逆向工程和三维重建技术的发展和应用,获取现实世界中物体的三维数据的方法越来越多的关注和研究,很多研究机构和商业公司都陆续推出了自己的三维重建系统。
近年来,随着逆向工程和三维重建技术的发展和应用,获取现实世界中物体的三维数据的方法越来越多的关注和研究。\\很多研究机构和商业公司都陆续推出了自己的三维重建系统。\par 很多研究机构和商业公司都陆续推出了自己的三维重建系统。
\section{实验方法}
\section{实验结果}
\subsection{数据}
\subsection{图表}
\subsubsection{实验条件}
\subsubsection{实验过程}
\subsection{结果分析}
\section{结论}
\section{致谢}
\end{document}
八、LaTeX中的特殊字符
这一节将讲解LaTeX中的部分特殊字符的处理。首先,创建一个文件(图中的“LaTeX_Learn_08.tex”)并保存。
然后编写LaTeX文档并运行。
% 导言区
\documentclass[]{article}
\usepackage[]{ctex} % 中文处理宏包
\usepackage[]{xltxtra}%提供了针对XeTeX的改进并且加入了XeTeX的LOG0
\usepackage[]{texnames} % 一些LOGO
\usepackage[]{mflogo}
% 正文区(文稿区)
\begin{document}
\section{空白符号}
% 空行分段,多个空行等同1个
% 自动缩进,绝对不能使用空格代替
% 英文中多个空格处理为1个空格,中文中空格将被忽略
% 汉字与其它字符的间距会自动由XeLaTeX处理
% 禁止使用中文全角空格
Are you wiser than others?definitely no.in some ways,may it is true.What can you achieve?a luxurious house?a brillilant car?an admirable career?who knows?
近年来,随着逆向工程和三维重建技术的发展和应用,获取现实世界中物体的三维数据的方法越来越多的关注和研究,很多研究机构和商业公司都陆续推出了自己的三维重建系统。
% 1em(当前字体中M的宽度,相当于一个TAB键)
a\quad b
% 2em
a\qquad b
% 约为1/6个em
a\,b a\thinspace b
% 0.5个em
a\enspace b
% 空格
a\ b
% 硬空格(此处的"~"表示一个非断行的不能分割的空格)
a~b
% 1pc=12pt=4.218mm pc:皮卡 pt:磅
a\kern 1pc b
a\kern -1em b
a\hskip 1em b
a\hspace{35pt}b
% 占位宽度
a\hphantom{xyz}b % 空格与"xyz"的宽度相同
% 弹性长度
a\hfill b
\section{\LaTeX 控制符}
% \加符号表示转义字符 \textbackslash:表示“\”
\# \$ \% \{ \} \~{} \_{} \^{} \textbackslash \&
\section{排版符号}
\S \P \dag \ddag \copyright \pounds
\section{\TeX 标志符号}
% 基本符号
\TeX{} \LaTeX{} \LaTeXe{}
\XeLaTeX
% texnames宏包提供
\AmSTeX{} \AmS-\LaTeX{}
\BibTeX{} \LuaTeX{}
% mflogo宏包提供
\METAFONT{} \MF{} \MP{}
\section{引号}
` ' `` ``你好'' % `:键盘上数字1旁边的符号,表示左单引号
% ':表示右单引号
\section{连字符}
- -- ---
\section{非英文字符}
\oe \OE \ae \AE \aa \AA \o \O \l \L \ss \SS !` ?`
\section{重音符号(以o为例)}
\`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}
九、LaTeX中的插图
首先,创建一个文件(图中的“LaTeX_Learn_09.tex”)并保存。
然后编写LaTeX文档。
% 导言区
\documentclass{ctexart} % ctexbook,ctexrep
%\usepackage{ctex}
% 导言区:\usepackage{graphicx}
% 语 法:\includegraphics[<选项>]{<文件名>}
% 格 式:EPS,PDF,PNG,JPEG,BMP
\usepackage{graphicx}
\graphicspath{{figures/},{pics/}} % 图片在当前目录下的 figures 目录
% 正文区(文稿区)
\begin{document}
\LaTeX{}中的插图:
\includegraphics{lion.eps}
\includegraphics{mountain.jpg}
\includegraphics{oscilloscope.pdf}
% 引入可选参数,即“[]”里面的内容
% scale:缩放因子
\includegraphics[scale=0.3]{1ion}
\includegraphics[scale=0.03]{mountain}
\includegraphics[scale=0.3]{oscilloscope}
% 图像高度设为固定值
\includegraphics[height=2cm]{lion}
\includegraphics[height=2cm]{mountain}
\includegraphics[height=2cm]{oscilloscope}
% 图像宽度设为固定值
\includegraphics[width=2cm]{lion}
\includegraphics[width=2cm]{mountain}
\includegraphics[width=2cm]{oscilloscope}
% 设置高度为当前页面正文区域高度的10%
\includegraphics [height=0.1\textheight]{lion}
\includegraphics [height=0.1\textheight]{mountain}
\includegraphics [height=0.1\textheight]{oscilloscope}
% 设置宽度为当前页面正文区域宽度的10%
\includegraphics[width=0.2\textwidth]{lion}
\includegraphics[width=0.2\textwidth]{mountain}
\includegraphics [width=0.2\textwidth]{oscilloscope}
% 同时指定多个参数,用“,”隔开每个参数
\includegraphics[angle=-45,width=0.2\textwidth]{lion}
\includegraphics[width=0.2\textwidth]{mountain}
\includegraphics[angle=45,width=0.2\textwidth]{oscilloscope}
\end{document}
注:
1.在LaTeX中是通过“graphicx”包实现插图的,因此需要使用“usepackage”命令进行导入。
2.然后在文档中使用“includegraphics”插入图像,该命令的必选参数用于指定图像的文件名,其可选参数可用于指定图像的缩放比例、旋转等参数。
3.当使用“XeLaTeX”进行编译时,“graphicx”支持多种图像的格式。
4.还可以通过“graphicspath”命令指定图像的搜索路径,将图像等资源文件进行分文别类地管理。
5.使用“includegraphics”指定图片的名字。
由于本人没有相应的图片,并没有去执行程序,需要时再根据程序进行修改。另外,关于图片的其他参考信息请如下图去文档“graphicx”中进行查询。(居然是英文文档,不太想用。)
texdoc graphicx # 打开“graphicx”帮助文档
十、LaTeX中的表格
这一讲我们主要讨论LaTeX中表格的制作和排版问题。首先,创建一个文件(图中的“LaTeX_Learn_10.tex”)并保存。
然后编写LaTeX文档并运行。(在LaTeX中可以使用“tabular”环境生成表格,其中“l、c、r”分别表示左对齐、居中和右对齐,不同列间使用“&”符号进行分割,使用“\”进行分行。)
% 导言区
\documentclass{ctexart} % ctexbook,ctexrep
% \usepackage{ctex}
%正文区(文稿区)
\begin{document}
\begin{tabular}{l c c c r}
姓名 & 语文 & 数学 & 外语 & 备注 \\
张三 & 87 & 100 & 93 & 优秀 \\
李四 & 75 & 64 & 52 & 补考另行通知 \\
王二 & 80 & 82 & 78 & \\
\end{tabular}
\end{document}
然后进行下面的操作并运行:然后在列格式说明里使用“|”产生表格竖线,使用“||” 产生表格双竖线,使用“\hline”产生表格横线,使用“\hline \hline”产生表格双横线。在列格式中使用“p”产生指定表列的宽度,需要说明的是,由“p”指定的列格式宽度,当内容超过宽度时会自动产生换行。(注:在列格式说明中,空格不起作用)
% 导言区
\documentclass{ctexart} % ctexbook,ctexrep
% \usepackage{ctex}
% \begin{tabular}[<垂直对齐方式>]{<列格式说明>}
% <表项> & <表项> & … & <表项> \
% …
% \end{tabular}
% 用\表示换行
% 用&表示不同的列
% l-本列左对齐
% c-本列居中对齐
% r-本列右对齐
% p{<宽>}-本列宽度固定,能够自动换行
%正文区(文稿区)
\begin{document}
\begin{tabular}{|l||c|c|r|p{1.5cm}|}
\hline
姓名 & 语文 & 数学 & 外语 & 备注 \
\hline \hline
张三 & 87 & 100 & 93 & 优秀 \
\hline
李四 & 75 & 64 & 52 & 补考另行通知 \
\hline
王二 & 80 & 82 & 78 & \
\hline
\end{tabular}
\end{document}
除了本次所画的表格,也可以使用三线表格、跨页长表格等复杂表格,可以使用对应的宏包完成表格的创建。
十一、LaTeX中的浮动体
在LaTeX中,可以使用宏包“graphicx”中的“includegraphics”命令插入图像,使用环境“tabular”创建表格,但是要灵活地实现对图像和表格地管理,还需要使用浮动提环境。
首先,创建一个文件(图中的“LaTeX_Learn_11.tex”)并保存。
然后编写LaTeX程序并运行。
% 导言区
\documentclass{ctexart} % ctexbook,ctexrep
%\usepackage{ctex}
\usepackage{graphicx}
%\graphicspath{{figures/}} % 图片在当前目录下的figures目录
\usepackage{verbatim} % 多行注释的宏包
\begin{comment} % 多行注释
浮动体的作用:
- 实现灵活分页(避免无法分割的内容产生的页面留白)
- 给图表添加标题
- 交叉引用
浮动体的使用方法:
figure环境(table环境与之类似)
\begin{figure}[<允许位置>]
< 任意内容 >
\end{figure}
浮动体的位置参数:
<允许位置>参数(默认tbp)
- h,此处(here)-代码所在的上下文位置
- t,页顶(top)-代码所在页面或之后页面的顶部
- b,页底(bottom)-代码所在页面或之后页面的底部
- p,独立一页(page)-浮动页面
标题控制(caption、bicaption等宏包)
并排与子图表(subcaption、subfig、floatrow等宏包)
绕排(picinpar、wrapfig等宏包)
\end{comment}
% 正文区(文稿区)
\begin{document}
% \LaTeX{}中\TeX 系统吉祥物---小狮子见图\ref{fig-lion}。
% \begin{figure}[htbp]
% \centering
% \includegraphics[scale=0.3]{lion}
% \caption[]{\TeX 系统吉祥物---小狮子}\label{fig-lion}
% \end{figure}
在\LaTeX{}中考试成绩单如表\ref{table-score}所示。
\begin{table}[h]
\centering
\caption[]{考试成绩单}\label{table-score}
\begin{tabular}{|l|c|c|c|r|}
\hline
姓名 & 语文 & 数学 & 外语 & 备注 \\
\hline
张三 & 87 & 100 & 93 & 优秀 \\
\hline
李四 & 75 & 64 & 52 & 补考另行通知 \\
\hline
王二 & 80 & 82 & 78 & \\
\hline
\end{tabular}
\end{table}
\end{document}
需要说明的是:
1.在LaTeX中,有“figure”、“table”浮动体环境,可以将“includegraphics”命令放入“figure”浮动体环境中,同样的,可以将生成表格的“tabular”环境放入“table”浮动体环境中。
2.当然,可以使用“centering”命令使图片或者表格居中。
3.还可以通过可选参数“htbp”指定表格或者图片的位置,没有该参数,观察本次的程序,会发现类似“在\LaTeX{}中的表格:”的命令会显示到表格的下面。
4.在图或者表的浮动体环境中可以通过“caption”命令插入自动带有编号图或者表的标题。
5.可通过“label”命令为浮动体设置标签,然后可利用“ref”命令引用该标签,从而实现交叉引用。
十二、LaTeX数学公式初步
本节主要讨论在LaTeX排版数学公式的问题。 首先,创建一个文件(图中的“LaTeX_Learn_12.tex”)并保存。然后编写LaTeX文档并运行。(注意阅读注释和结果进行理解。)
% 导言区
\documentclass{article}
\usepackage{ctex}
\usepackage[]{amsmath} %“equation*”环境需要使用宏包“amsmath”导入
%正文区(文稿区)
\begin{document}
\section{简介}
\LaTeX{}将排版内容分为文本模式和数学模式。文本模式用于普通文本排版,数学模式用于数学公式排版。
\section{行内公式的3种表示方法}
\subsection{美元符号}
交换律是$a+b=b+a$,如$1+2=2+1=3$。
\subsection{小括号}
交换律是\(a+b=b+a\) ,如\(1+2=2+1=3\)。
\subsection{math环境}
交换律是\begin{math}a+b=b+a\end{math},如\begin{math}1+2=2+1=3\end{math}。
\section{上标与下标}
\subsection{上标}
\noindent % 首行不缩进
\hangafter 0 % 从n+1 行开始有效
\hangindent 2em % 向右移动的距离
$3x^{20} -x+2=0$ \\
$3x^{ 3x^{ 20 }-x+2 } -x+2=0$
注意:如何想将一个不止一个字符的数字或者数学表达式设为上标或下标,请使用“\{\}”的选定范围。
\subsection{下标}
\noindent \hangafter 0 \hangindent 2em % 向右移动的距离
$a_0,a_1,a_2$ \\
$a_0,a_1,a_2,...,a_{3x^{20}-x+2}$
\section{希腊字母}
\noindent \hangafter 0 \hangindent 2em % 向右移动的距离
% \quad:一个TAB键的空格
$\alpha$\quad $\beta$\quad $\gamma$\quad $\epsilon$ \\
$\pi$\quad $\omega$\quad $\Gamma$\quad $\Delta$ \\
$\Theta$\quad $\Pi$\quad $\Omega$ \\
$\alpha^3 + \beta^2 + \gamma =0$
\section{数学函数}
\noindent \hangafter 0 \hangindent 2em % 向右移动的距离
$\log$ $\sin$ $\cos$ $\arcsin$ $\arccos$ $\ln$
\\
$\sin^2 x \cos^2 x =1$ $y = \arcsin x$ \\
$y=\sin^{-1}x$ $y=\log_2 x$ $y=\ln x$ \\
$\sqrt{2}$ $\sqrt{x^2+y^2}$ $\sqrt{2 + \sqrt{2}}$
$\sqrt[4]{x}$ \\
注意:sqrt可通过指定可选参数,也能指定开方的次数
\section{分式}
\noindent \hangafter 0 \hangindent 2em % 向右移动的距离
大约是原体积的$3/4$。 \\
大约是原体积的$\frac{3}{4}$ \\
注意:frac第一个参数是分子,第二个参数是分母
$\frac{x}{x^2+x+1}$ \\
$\frac{\sqrt{x-1}}{\sqrt{x+1}}$ \\
$\frac{1}{1+\frac{1}{x}}$ \\
$\sqrt{\frac{x}{x^2 +x+ 1}}$ \\
\section{行间公式}
\noindent \hangafter 0 \hangindent 2em % 向右移动的距离
\subsection{美元符号}
交换律是$$a+b=b+a,$$
如$$1+2=2+1=3.$$
\subsection{中括号}
交换律是\[a+b=b+a,\]
如\[1+2=2+1=3.\]
\subsection{displaymath环境}
交换律是\begin{displaymath}a+b=b+a,\end{displaymath}
如\begin{displaymath}1+2=2+1=3.\end{displaymath}
\subsection{自动编号公式:可使用equation环境}
交换律见公式\ref{eq:commutative}
\begin{equation}
a+b=b+a \label{eq:commutative}
\end{equation}
\subsection{不编号公式:可使用equation*环境}
交换律见公式\ref{eq:commutative2}:
\begin{equation*}
a+b=b+a \label{eq:commutative2}
\end{equation*}
注:此时也可以通过“label”、“ref”命令进行引用;另外它的编号是根据章节进行编号的;“equation*”需要使用宏包“amsmath”。
公式的编号与交叉引用是自动实现的,大家在排版中,要习惯于采用自动化的方式处理诸如图、表、公式的编号与交叉引用。
\end{document}
以下图片为本节LaTeX代码运行的结果,代码是本人根据b站视频获取的,仅有少量解释上的添加。
十三、LaTeX数学公式的矩阵
本节主要讨论在LaTeX的数学模式中如何排版矩阵的问题。首先,创建一个文件(图中的“LaTeX_Learn_13.tex”)并保存。
然后编写LaTeX文档并运行,注意对比代码与结果并进行理解。
% 导言区
\documentclass{article}
\usepackage{ctex}
\usepackage[]{amsmath} % 使用矩阵前需引入此宏包
% 定义左下到右上的省略号“adots”
\newcommand{\adots}{\mathinner{\mkern2mu
\raisebox{0.1em}{.}\mkern2mu
\raisebox{0.4em}{.}\mkern2mu
\raisebox{0.7em}{.}\mkern1mu}}
%正文区(文稿区)
\begin{document}
% “matrix”等环境建立矩阵,使用方法与“tabular”创建表格的方法相似
% 矩阵环境,用&分隔列,用\\分隔行
\section{矩阵的分隔符}
\subsection{不加括号(无定界符)的矩阵(matrix)}
\[
\begin{matrix}
0 & 1 \\
1 & 0
\end{matrix}
\]
\subsection{加小括号的矩阵(pmatrix)}
\[
\begin{pmatrix}
0 & -i \\
i & 0
\end{pmatrix}
\]
\subsection{加中括号的矩阵(bmatrix)}
\[
\begin{bmatrix}
0 & -i \\
i & 0
\end{bmatrix}
\]
\subsection{加大括号的矩阵(Bmatrix)}
\[
\begin{Bmatrix}
0 & -i \\
i & 0
\end{Bmatrix}
\]
\subsection{加单竖线的矩阵(vmatrix)}
\[
\begin{vmatrix}
0 & -i \\
i & 0
\end{vmatrix}
\]
\subsection{加双竖线的矩阵(Vmatrix)}
\[
\begin{Vmatrix}
0 & -i \\
i & 0
\end{Vmatrix}
\]
\section{矩阵中元素的上下标}
\[
A =\begin{pmatrix}
a_{11}^2 & a_{12}^2 & a_{13}^2 \\
0 & a_{22} & a_{23} \\
0 & 0 & a_{33}
\end{pmatrix}
\]
\section{矩阵中的省略号}
% 矩阵中的常用省略号:\dots、\vdots、\ddots,注意根据显示结果区别这几个省略号
% 左下到右上的省略号需要自己去引言区中定义,本次取名为“adots”
\[
A =\begin{pmatrix}
a_{11} & \dots & a_{1n} \\
\adots & \ddots & \vdots \\
0 & & a_{nn}
\end{pmatrix}_{n \times n} % 使用“times”排版乘号
\]
\section{分块矩阵(矩阵嵌套)}
\[
\begin{pmatrix}
\begin{matrix} 1 & 0 \\
0 & 1
\end{matrix} & \text{\Large 0} \\ % “text”用于在数学模式中切换为文本模式
\text{\Large 0} & \begin{matrix} 1 & 0 \\
0 & -1
\end{matrix}
\end{pmatrix}
\]
\section{三角矩阵}
\[\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
& a_{22} & \cdots & a_{2n} \\
& & \ddots & \vdots \\
\multicolumn{2}{c}{\raisebox{1.3ex}[0pt]{\Huge 0}} % "multicol-umn"可以合并多列,“raisebox”可以调整高度
& & a_{nn}
\end{pmatrix}
\]
\section{跨列省略号}
% 语法:\hdotsfor{<列数>},选定的列数显示横着的省略号
\[
\begin{pmatrix}
1 & \frac 12 & \dots & \frac 1n \\
\hdotsfor{4} \\
m & \frac m2 & \dots & \frac mn
\end{pmatrix}
\]
\section{行内小矩阵(smallmatrix环境)}
复数 $z=(x,y)$ 也可用矩阵
\begin{math}
\left( % 需要手动加上左括号
\begin{smallmatrix}
x & -y \\
y & x
\end{smallmatrix}
\right) % 需要手动加上右括号
\end{math}来表示。
\section{array环境(格式类似于表格环境tabular)}
\subsection{普通矩阵}
\[
\begin{array}{r|r}
\frac 12 & 0 \\
\hline
0 & -\frac abc
\end{array}
\]
\subsection{复杂矩阵}
% 用array环境构造复杂矩阵
\[
% @{<内容>}-添加任意内容,不占表项计数
% 此处添加一个负值空白,表示向左移-5pt的距离
\begin{array}{c@{\hspace{-5pt}}l} % 第一列居中,最后一列靠右对齐
% 整个形式看成2*2的矩阵 每个子块再有矩阵或者长括号构成
% 第1行,第1列
\left( % 产生左括号
\begin{array}{ccc|ccc}
a & \cdots & a & b & \cdots & b \\
& \ddots & \vdots & \vdots & \adots \\
& & a & b \\
\hline
& & & c & \cdots & c \\
& & & \vdots & & \vdots \\
\multicolumn{3}{c|}{\raisebox{2ex}[0pt]{\Huge 0}} & c & \cdots & c \\
% "multicolumn"可以合并多列,“raisebox”可以调整高度
\end{array}
\right) &
% 第1行,第2列
\begin{array}{l}
% \left.仅表示与\right\}配对,什么都不输出
\left.\rule{0mm}{7mm}\right\}p \\
\\
\left.\rule{0mm}{7mm}\right\}q
\end{array}
\\[-5pt]
% 第2行,第1列
\begin{array}{cc}
\underbrace{\rule{17mm}{0mm}}_m & \underbrace{\rule{17mm}{0mm}}_m
% underbrace:下方的横向大括号 rule指定尺寸
\end{array} & % 第2行第2列
\end{array}
\]
\end{document}
十四、LaTeX数学公式的多行公式
这一节主要讲LaTeX中多行公式的排版的方法。首先,创建一个文件(图中的“LaTeX_Learn_14.tex”)并保存。
然后编写LaTeX文档并运行,注意对比代码与结果并进行理解。(注:1.“amsmath”宏包是用于LaTeX文档中数学排版的一个重要宏包。它提供了一系列功能和命令,用于创建复杂的数学公式、方程和排列。2. “amssymb”宏包用于扩展数学符号和字体选项。它提供了许多额外的数学符号、字母和其他数学相关的功能,使得在LaTeX文档中排版数学内容更加丰富和多样化。)
% 导言区
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\usepackage{amssymb}
% 正文区(文稿区)
\begin{document}
% 1.通过“gather”环境可实现带编号的多行公式的排版
\section{带编号的gather}
\begin{gather}
a+b=b+a \\
ab ba
\end{gather}
% 2.通过“gather*”环境可实现不带编号的多行公式的排版
\section{不带编号的gather*}
\begin{gather*}
3+5=5+3=8 \\
3 \times 5 = 5 \times 3
\end{gather*}
% 3.在“gather”环境的“\\”前可以使用“\notag”阻止编号
\section{不带编号的gather}
\begin{gather}
3^2+4^2=5^2 \notag \\
5^2+12^2=13^2 \notag \\
a2+b^2=c^2
\end{gather}
% 4.在“align”和“align*”环境中可将公式按指定位置对齐
% -对齐位置由“&”指定
\section{将公式按指定位置对齐}
\subsection{带编号使用“align”}
\begin{align}
% 可以按等号、公式的起始位置对齐
x & =t \cos t +1 \\
y & =2 \sin t
\end{align}
\subsection{不带编号使用“align*”}
\begin{align*}
x & =t & x & =\cos t & x & =t \\
y & =2t & y & =\sin(t+1) & y & =\sin t
\end{align*}
% 5.使用环境“split”在“align”环境中实现一个公式的多行排版
% -对齐位置由“&”指定
\section{一个公式的多行排版(“split”)}
% “equation”用于创建带有自动编号的数学公式
\begin{equation}
\begin{split}
\cos 2x &=\cos^2 x-\sin 2 x \\
&=2 \cos^2 x-1
\end{split}
\end{equation}
% 6.使用环境“cases”完成分段函数的排版
\section{分段函数的排版(“cases”)}
% 每行公式中使用&分隔为两部分,
% 通常表示值和后面的条件
\begin{equation}
D(x)=\begin{cases}
% text:切换成文本模式 in:属于符号 mathbb{Q}:花体Q setminus:“\”
1,&\text{如果}x \in\mathbb{Q};\\
0,&\text{如果}x \in \mathbb{R}\setminus\mathbb{Q}. % 请执行代码查看效果
\end{cases}
\end{equation}
\end{document}
十五、LaTeX中的参考文献BibTex
这一节主要讲LaTeX中使用“BibTex”工具排版参考文献的问题。
1.手动编写参考文献
首先,创建一个文件(图中的“LaTeX_Learn_15.tex”)并保存。
先如下编写部分代码并运行。
% 导言区
\documentclass{article}
\usepackage{ctex}
% 正文区(文稿区)
\begin{document}
% 1.对于简单的参考文献的排版需求,也就是一次管理,一次使用的参考文献
\section{简单的参考文献的排版需求}
% - 参考文献格式如下:
% \begin{thebibliography}{编号样本}
% \bibitem[记号]{引用标志}文献条目1
% \bibitem[记号]{引用标志}文献条目2
% ......
% \end{thebibliography}
% 其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
% 引用时候可以采用:\cite{引用标志1,引用标志2,...}
引用一篇文章\cite{article1} 引用一本书\cite{book1}等等
\begin{thebibliography}{99} % {99}:编号的宽度
% bibitem:排版一条参考文献,需使用“{}”指定引用标志 emph:强调
% texttt:使文本以等宽字体的形式显示
\bibitem{article1}陈立辉,苏伟,蔡川,陈晓云.\emph{基于LaTex的Web数学公式提取方法研究}[J].计算机科学,2014(06)
\bibitem{book1} William H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Flannery,\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{Amazon.com. Spend less. Smile more.}.
\bibitem{latexMath} Graetzer George,\emph{Math Into \LaTeX},BirkhAuser Boston;3 edition (June 22,2000).
\end{thebibliography}
\end{document}
为了能让参考文献能够“一次管理,多次使用”,此要求可使用“BibTeX”工具进行实现。如下图所示,打开设置,然后在构建里讲“默认文献工具”设为“BibTeX”,当然,也可以去命令中进行更为详细的设置。
然后为了使用“BibTeX”工具,需针对参考文献去创建一个“.bib”参考文献数据库文件,再在对应文件中编写文献的详细信息。本次通过一个示例演示具体的做法,如下图所示,先创建一个数据库参考文件“test.bib”,并编写里面的代码。
% @BOOK:指定这是一本书籍参考文献
% {}中的第一个参数:引用标志(本次为“mittelbach2004”)
% 然后再通过title、publisher等关键字指定书名、出版商等详细信息,每一个字段使用“,”及进行分割
@BOOK{mittelbach2004,
title = {The {\LaTeX} Companion},
publisher = {Addison-Wesley},
year = {2004},
author = {Frank Mittelbach and Michel Goossens},
series = {Tools and Techniques for Computer Typesetting},
address = {Boston},
edition = {Second}
}
然后在“LaTeX_Learn_15.tex”中加入引用的代码并运行。
% 导言区
\documentclass{article}
\usepackage{ctex}
\bibliographystyle{plain} % plain unsrt alpha abbrv
% 告诉LaTeX使用“plain”样式来排列和格式化文献引用。在这种样式下,引用将按照它们在文档中出现的顺序进行编号,然后按作者的姓氏字母顺序排列。
% 正文区(文稿区)
\begin{document}
% 1.对于简单的参考文献的排版需求,也就是一次管理,一次使用的参考文献
\section{简单的参考文献的排版需求}
% - 参考文献格式如下:
% \begin{thebibliography}{编号样本}
% \bibitem[记号]{引用标志}文献条目1
% \bibitem[记号]{引用标志}文献条目2
% ......
% \end{thebibliography}
% 其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
% 引用时候可以采用:\cite{引用标志1,引用标志2,...}
引用一篇文章\cite{article1} 引用一本书\cite{book1}等等
\begin{center} % 设为居中 效果:生成的"参考文献"标题居中
\begin{thebibliography}{99} % {99}:编号的宽度
% bibitem:排版一条参考文献,需使用“{}”指定引用标志 emph:强调
% texttt:使文本以等宽字体的形式显示
\bibitem{article1}陈立辉,苏伟,蔡川,陈晓云.\emph{基于LaTex的Web数学公式提取方法研究}[J].计算机科学,2014(06)
\bibitem{book1} William H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Flannery,\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{Amazon.com. Spend less. Smile more.}.
\bibitem{latexMath} Graetzer George,\emph{Math Into \LaTeX},BirkhAuser Boston;3 edition (June 22,2000).
\end{thebibliography}
\end{center}
% 2.一次管理,多次使用的参考文献
\section{一次管理,多次使用的参考文献}
这是一个参考文献的引用:\cite{mittelbach2004}
\begin{center} % 设为居中 效果:生成的"参考文献"标题居中
\bibliography{test} % bibliography:用于引入参考文献数据库文件
\end{center}
\end{document}
2.借助镜像Google学术实现文献数据库的管理
手动编写参考文献是一件非常繁琐的事情,可借助镜像Google的引用实现文献数据库的管理。(也可以借助Zotero插件导出知网的文献的“BibTeX”数据,本人感觉麻烦,懒得去研究了)
如下图所示,直接进入镜像的“google学术”,然后搜索“bibtex”,点击需要引用的文献处的“引用”,点击“BibTeX”,就可以得到该文献的“BibTeX”数据。
然后将刚刚查到的“BibTeX”数据复制到数据库参考文件“test.bib”中。
% @BOOK:指定这是一本书籍参考文献
% {}中的第一个参数:引用标志(本次为“mittelbach2004”)
% 然后再通过title、publisher等关键字指定书名、出版商等详细信息,每一个字段使用“,”及进行分割
@BOOK{mittelbach2004,
title = {The {\LaTeX} Companion},
publisher = {Addison-Wesley},
year = {2004},
author = {Frank Mittelbach and Michel Goossens},
series = {Tools and Techniques for Computer Typesetting},
address = {Boston},
edition = {Second}
}
@misc{patashnik1988designing,
title={Designing BIBTEX styles},
author={Patashnik, Oren},
year={1988},
publisher={February}
}
然后在“LaTeX_Learn_15.tex”中加入引用的代码并运行。
% 导言区
\documentclass{article}
\usepackage{ctex}
\bibliographystyle{plain} % plain unsrt alpha abbrv
% 告诉LaTeX使用“plain”样式来排列和格式化文献引用。在这种样式下,引用将按照它们在文档中出现的顺序进行编号,然后按作者的姓氏字母顺序排列。
% 正文区(文稿区)
\begin{document}
% 1.对于简单的参考文献的排版需求,也就是一次管理,一次使用的参考文献
\section{简单的参考文献的排版需求}
% - 参考文献格式如下:
% \begin{thebibliography}{编号样本}
% \bibitem[记号]{引用标志}文献条目1
% \bibitem[记号]{引用标志}文献条目2
% ......
% \end{thebibliography}
% 其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
% 引用时候可以采用:\cite{引用标志1,引用标志2,...}
引用一篇文章\cite{article1} 引用一本书\cite{book1}等等
\begin{center} % 设为居中 效果:生成的"参考文献"标题居中
\begin{thebibliography}{99} % {99}:编号的宽度
% bibitem:排版一条参考文献,需使用“{}”指定引用标志 emph:强调
% texttt:使文本以等宽字体的形式显示
\bibitem{article1}陈立辉,苏伟,蔡川,陈晓云.\emph{基于LaTex的Web数学公式提取方法研究}[J].计算机科学,2014(06)
\bibitem{book1} William H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Flannery,\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{Amazon.com. Spend less. Smile more.}.
\bibitem{latexMath} Graetzer George,\emph{Math Into \LaTeX},BirkhAuser Boston;3 edition (June 22,2000).
\end{thebibliography}
\end{center}
% 2.一次管理,多次使用的参考文献
\section{一次管理,多次使用的参考文献}
这是一个参考文献的引用:\cite{mittelbach2004}
这是另一个引用:\cite{patashnik1988designing}
\begin{center} % 设为居中 效果:生成的"参考文献"标题居中
\nocite{*}
% \nocite{*}:用于在文档的参考文献部分中列出所有在BibTeX数据库中的文献条目,而不仅仅是在文档正文中使用"cite"命令引用过的文献。
\bibliography{test} % bibliography:用于引入参考文献数据库文件
\end{center}
\end{document}
注:本节还有一部分内容讲得有点复杂,或者现在使用方法有改动,比如Zotero插件的使用等(那个Zotero+茉莉花插件+PDFtk,试了半天,通过两个不同高校(这两个高校均已购买过知网)的账号使用Zotero插件下知网,都无法便捷导入。不知道哪里操作错了,对新手极不友好。当然,Zotero软件某些功能挺好的。),请自行观看视频,本人不想记录也懒得去搞了。
十六、LaTeX中的参考文献BibLaTeX(因卡在Zotero插件上,本节笔记未记完)
这一节主要讲LaTeX中使用“BibLaTeX”工具排版参考文献的方法,特点是:一次管理,多次使用。首先,创建一个文件(图中的“LaTeX_Learn_16.tex”)并保存。
然后为了使用“BibLaTeX”工具,需要进行相应的设置。如下图所示,打开设置,然后在构建里讲“默认文献工具”设为“Biber”。
因卡在Zotero插件上,本节笔记未记完。
十七、LaTeX中的自定义命令和环境
这一节主要讲LaTeX中命令和环境的定义与重定义的方法。一般都在导言区进行命令的定义与重定义。首先,创建一个文件(图中的“LaTeX_Learn_17.tex”)并保存。
然后编写LaTeX文档并运行,注意对比代码与结果并进行理解。
% 导言区
\documentclass{ctexart} % ctexbook,ctexrep
% \newcommand-定义命令
% 命令只能由字母组成,不能以\end开头
% \newcommand<命令名字>[<参数个数>][<首参数默认值>]{<具体定义>}
% 1.定义的命令可以是简单字符串替换,例如:
% - 使用\PRC相当于People's Republic of \emph{China}这一串内容
\newcommand\PRC{People's Republic of \emph{China}}
% 2.命令可以使用参数
% 参数个数可以从1到9,使用时用#1,#2,·····,#9表示
\newcommand\loves[2]{#1 喜欢 #2}
\newcommand\hatedby[2]{#2 不受 #1 喜欢 }
% 3.参数也可以有默认值
% 指定参数个数的同时指定了首个参数的默认值,那么这个命令的第一个参数就成为可选的参数(要使用中括号指定)
\newcommand\love[3][喜欢]{#2#1#3}
% 4.\renewcommand -重定义命令
% 与\newcommand命令作用和用法相同,但只能用于已有命令
% \renewcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
\renewcommand\abstractname{内容简介}
% 5.定义和重定义环境
% \newenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% \renewenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% 为book类中定义摘要(abstract)环境
\newenvironment{myabstract}[1][摘要]%
{\small
\begin{center}\bfseries #1\end{center}%
\begin{quotation}}%
{\end{quotation}}
% 环境参数只有<环境前定义>中可以使用参数,
% <环境后定义>中不能再使用环境参数。
% 如果需要,可以先把前面得到的参数保存在一个命令中,在后面使用:
\newenvironment{Quotation}[1]%
{\newcommand\quotesource{#1}%
\begin{quotation}}%
{\par\hfil1--《\textit{\quotesource}》%
\end{quotation}}
%正文区(文稿区)
\begin{document}
\PRC
\loves{猫儿}{鱼} % “猫儿”替换“#1”,“鱼”替换“#2”
\hatedby{猫儿}{萝卜} % “猫儿”替换“#1”,“萝卜”替换“#2”
\love[最爱]{猫儿}{鱼} % “猫儿”替换“#2”,“#1”取默认值“最爱”,“鱼”替换“#3”
\begin{abstract}
这是一段摘要......
\end{abstract}
\begin{myabstract}[我的摘要]
这是一段自定义格式的摘要...
\end{myabstract}
\begin{Quotation}{易$\cdot$乾}
初九,潜龙勿用。
\end{Quotation}
定义命令和环境是进行\LaTeX{}格式定制、达成内容与格式分离mu标的利器。使用自定义的命令和环境把字体、字号、缩进、对齐、间距等各种琐细的内容包装起来,赋以一个有意义的名字,可以使文挡结构清晰、代码整洁、易于维护。在使用宏定义的功能时,要综合利用各种已有的命令、环境、变量等功能,事实上,前面所介绍的长度变量与盒子、字体字号等内容,大多并不直接出现在文档正文中,而主要都是用在实现各种结构化的宏定义里。
\end{document}
好了,本次笔记到此结束,谢谢大家阅读。