做海报去哪个网站找素材比较好呢郑州百度快照优化
2026/1/8 7:50:05 网站建设 项目流程
做海报去哪个网站找素材比较好呢,郑州百度快照优化,app制作免费官网,有哪些品牌做打底衫的网站LaTeX 学习笔记#xff1a;学术文档排版 在实际应用中#xff0c;如果我们仅仅需要完成的是《[[LaTeX学习笔记#xff1a;文档排版基础]]》中所介绍的那些纯文本排版工作#xff0c;其实并不一定需要用到 \(\LaTeX\) 这样复杂的排版系统。毕竟#xff0c;\(\LaTeX\) 的核心…LaTeX 学习笔记学术文档排版在实际应用中如果我们仅仅需要完成的是《[[LaTeX学习笔记文档排版基础]]》中所介绍的那些纯文本排版工作其实并不一定需要用到\(\LaTeX\)这样复杂的排版系统。毕竟\(\LaTeX\)的核心优势主要在于其对数学公式、图表、参考文献等复杂文档元素所提供的高质量与高度一致性的支持。因此当目标是撰写结构严谨、内容复杂的学术文档时\(\LaTeX\)往往是最稳健最专业的选择。在本篇笔记中我们将沿用之前的示例文稿即《\(\LaTeX\)排版示例》继续为读者演示如何使用\(\LaTeX\)对这些复杂元素进行排版以帮助读者系统掌握撰写完整学术文档所需的主要技能。图表元素排版作为以科普宣传、学术研究为目的的专业文档来说插图与表格都是不可或缺的元素。它们有助于更为直观地展示数据、分析函数、解释概念等从而帮助读者更好地理解文档内容。在\(\LaTeX\)排版系统中插入这些元素通常都需要加载相应的宏包并按照特定的语法规则执行这些宏包提供的命令。下面我们从最简单的插图元素开始介绍吧。插入图片在撰写学术文档时我们会经常需要在正文中插入一些图片元素以便用更直观的形式说明学术理论并提供相关的数据证明。在\(\LaTeX\)中图片元素会通常被视为一种称为“浮动体float”的文档元素因此在执行插入图片的操作时我们首先需要定义 一个浮动体环境然后在其中使用由graphicx宏包提供的\includegraphics命令插入图片元素具体语法如下所示/* by yours.tools - online tools website : yours.tools/zh/calorie.html */ \begin{浮动体环境名}[环境参数] \centering \includegraphics[图片参数]{图片文件的路径} \label{fig:插图标签} \caption{插图标题} \end{浮动体环境名}下面让我们来详细介绍一下上述语法中的一些关键元素浮动体环境名在\(\LaTeX\)中常用于插图元素的环境主要有figure、wrapfig两种。其中figure是\(\LaTeX\)的标准浮动体环境可直接使用而wrapfig则是一种可以“环绕”文本的浮动体环境需要预先加载wrapfig宏包才能使用。环境参数用于设置插图元素在文档中的排版方式具体可设置的值主要如下[h]建议将插图元素放在当前位置。[t]建议将插图元素放在页面顶部。[b]建议将插图元素放在页面底部。[p]建议将插图元素单独成页放置。[H]将插图元素强制放在当前位置该参数值需预先加载float宏包才能使用。[T]将插图元素强制放在页面顶部该参数值需预先加载floatrow宏包才能使用。[B]将插图元素强制放在页面底部该参数值需预先加载floatrow宏包才能使用。[P]将插图元素强制放在单独成页该参数值需预先加载floatrow宏包才能使用。图片参数用于设置插图元素的显示效果具体可设置的值主要如下width设置插图的宽度可以设置为相对值例如0.6\textwidth\textwidth代表的是当前文本区域的宽度或绝对值例如3cm。height设置插图的高度可以设置为相对值例如0.6\textheight\textheight代表的是当前文本区域的高度或绝对值例如3cm。scale设置插图的缩放比例可以设置为相对值例如0.6或绝对值例如3。angle设置插图的旋转角度可以设置为相对值例如90或绝对值例如3。keepaspectratio设置图片是否保持原始比例。clip设置图片是否裁剪例如cliptrue表示图片将自动裁剪以适应指定的尺寸。图片文件的路径用于指定插图所在的文件路径可以设置为相对路径例如./img/img.png或绝对路径例如/home/user/img/img.png。插图标签用于为插图元素添加标签它会自动为插图元素进行编号以便在文档中引用。插图标题用于为插图元素添加标题文本通常会连同编号一起显示在插图元素的下方。下面来做些实例演示。在之前的《\(\LaTeX\)排版示例》文稿中如果我们想在“插图元素”这个二级标题下面分别添加一段与勾股定理相关的介绍和一张相应的示意图就可以像下面这样写/* by yours.tools - online tools website : yours.tools/zh/calorie.html */ % 省略之前的文档结构定义部分 \usepackage{graphicx} % 用于插入图片 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{图表元素示例} \subsection{插图元素} 勾股定理是一个基本的几何定理指直角三角形的两条直角边的平方和等于斜边的平方。中国古代称直角三角形为勾股形并且直角边中较小者为勾另一长直角边为股斜边为弦所以称这个定理为勾股定理也有人称商高定理其几何关系如图\ref{fig:勾股定理示意图}所示。 \begin{figure}[htbp] \centering \includegraphics[width0.6\textwidth]{./img/img.png} \caption{勾股定理示意图} \label{fig:勾股定理示意图} \end{figure} % 省略之后的章节 \end{document}在上述示例中我们首先使用了名为figure的环境定义了一个浮动体[htbp]参数表示我们建议\(\LaTeX\)依次尝试将浮动体放在当前位置h、页面顶部t、页面底部b或单独成页p。换言之该浮动体的实际位置是由\(\LaTeX\)自动决定的并非是严格指定。然后在该浮动体的内部我们除了使用\includegraphics命令指定要插入的图片之外还分别使用\label{}命令为浮动体添加标签以便能在文档中使用\ref命令对其进行引用\caption{}命令为浮动体添加了标题使用\centering命令将浮动体居中显示如果想要将其设置为左对齐或右对齐可以使用\raggedleft或\raggedright命令。现在如果我们再次编译这个文档就可以看到“插图元素”这个二级标题下面已经出现了这个勾股定理的示意图如图 1 所示图 1在文档中插入图片当然如果我们只是想这样在文章中简单地插入一张图片使用 Markdown 这样的轻量级工具就可以做得很好了并不需要动用到\(\LaTeX\)后者更多时候是用于实现一些复杂的图文排版的。例如如果我们想将图 1 中的文字与图片改为并排显示就可以像下面这样写% 省略之前的文档结构定义部分 \usepackage{graphicx} % 用于插入图片 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{图表元素示例} \subsection{插图元素} \begin{figure}[htbp] \centering \begin{minipage}[c]{0.6\linewidth} \raggedright 勾股定理是一个基本的几何定理指直角三角形的两条直角边的平方和等于斜边的平方。中国古代称直角三角形为勾股形并且直角边中较小者为勾另一长直角边为股斜边为弦所以称这个定理为勾股定理也有人称商高定理其几何关系如图\ref{fig:勾股定理示意图}所示。 \end{minipage} \hfill \begin{minipage}[c]{0.35\linewidth} \includegraphics[width\linewidth]{./img/img.png} \caption{勾股定理示意图} \end{minipage} \label{fig:勾股定理示意图} \end{figure} % 省略之后的章节 \end{document}在上述示例中我将原本位于图片之前的说明文字放到了figure环境的定义中并用两个名为minipage的环境将图片与文字分割成左右两个部分。在\(\LaTeX\)中figure环境会被视为一个独立的行单位而minipage环境则被视为一个小盒子或格子将这独立的行分割成不同的列具体到这里我们用minipage环境将浮动体分割成了左右两列左边的那列用于放置文字右边则用于放置插图他们都被设置了两个参数第一个参数设置的是其将采用的垂直对齐方式它可设置的值包括t顶部对齐、c中线对齐、b底部对齐第二个参数设置的是其宽度左右两列分别为0.6\linewidth和0.35\linewidth在这里\linewidth表示当前环境的行宽即浮动体的宽度。在左右两个minipage环境之间我还使用了\hfill命令插入了一个可伸缩的空白这样左右两个minipage环境就可以尽可能对称地排列在浮动体的左右两端如图 2 所示图 2在文档1中插入并排显示的图片另外需要特别提醒的是虽然我们在这里将\caption{勾股定理示意图}放在了右边图片所在的列中但它依然是figure环境所定义浮动体的标题换而言之这个浮动体是一个整体当我们使用\ref{fig:勾股定理示意图}命令引用“图 1”时它指的是整个浮动体而不是这个浮动体右侧的图片元素。这多少有点违背我们的设计语义。如果读者想更为精确地表达排版的设计意图我们更推荐使用wrapfig宏包定义的wrapfigure环境来实现文字环绕的排版效果例如像下面这样% 省略之前的文档结构定义部分 \usepackage{graphicx} % 用于插入图片 \usepackage{wrapfig} % 用于实现文字环绕 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{图表元素示例} \subsection{插图元素} \begin{wrapfigure}{r}{0.4\textwidth} \vspace{-14pt} % 调整图片与上方文本的间距 \centering \includegraphics[width\linewidth]{./img/img.png} \caption{勾股定理示意图} \label{fig:勾股定理示意图} \end{wrapfigure} \noindent 勾股定理是一个基本的几何定理指直角三角形的两条直角边的平方和等于斜边的平方。中国古代称直角三角形为勾股形并且直角边中较小者为勾另一长直角边为股斜边为弦所以称这个定理为勾股定理也有人称商高定理其几何关系如图\ref{fig:勾股定理示意图}所示。 在这里我们使用了 wrapfig 宏包提供的 wrapfigure 环境该环境会自动将图片元素放置在右侧并让文字环绕在图片的左侧。 % 省略之后的章节 \end{document}在上述示例中我们首先在文档的全局设置区使用\usepackage命令加载了wrapfig宏包然后在“插图元素”这个二级标题下面使用wrapfigure环境定义了一个浮动体并为其设置了两个参数第一个参数设置的是浮动体的水平对齐方式这里设置的r表示的是向右浮动如果想让它向左浮动就需将其设置为l第二个参数设置的是浮动体的宽度这里设置的是0.4\textwidth\textwidth表示当前文本区域的宽度这里指的是浮动体宽度为当前文本区宽度的 40%。在wrapfigure环境中我们同样可以使用\includegraphics命令来插入图片元素并为其添加了标题和标签。现在如果我们再次编译这个文档就可以看到“插图元素”这个二级标题下面已经出现了这个勾股定理的示意图如图 3 所示图 3由wrapfigure环境定义的文字环绕效果当然这里介绍的wrapfigure环境并不是我们设置文本环绕效果的唯一选择况且该环境还存在着诸如不能跨页、不能与表格元素混排等问题我们还可以使用floatrow宏包提供的figure*环境来实现类似的效果如有需要读者可自行参考相关资料我们在这里就不赘述了。绘制表格除了插图元素之外表格也是学术文档中经常会出现的元素。我们经常使用它来罗列一些统计性的、汇总性的数据以便对要说明的学术理论进行进一步的论证。在\(\LaTeX\)中表格元素有很多种不同的排版方式最简单的方式是先通过table环境定义一个浮动体用于设置标题和引用标签然后在该浮动体中通过定义名为tabular或array的环境来设置表格本身。从习惯上来说tabular环境主要适用于以文本内容为主的表格而array环境则主要适用于以数字内容为主的表格但这不是绝对的。现在让我们来看看这两种环境的基本定义语法\begin{table}[htbp] \centering \caption{表格标题} \label{tab:表格标签} \begin{tabular}[垂直对齐方式]{列格式说明} \hline % 用于设置表格行间线 列1 列2 列3 \\ % 各列之间用 符号分隔 \hline 内容1 内容2 内容3 \\ % 各行之间用 \\ 符号分隔 \hline \end{tabular} \end{table} \begin{table}[htbp] \centering \caption{表格标题} \label{tab:表格标签} \begin{array}[垂直对齐方式]{列格式说明} \hline 列1 列2 列3 \\ \hline 内容1 内容2 内容3 \\ \hline \end{array} \end{table}下面来详细介绍一下上述表格定义语法中的一些关键元素表格标题默认情况下会出现在表格本体的上方内容为当前表格的编号加上我们在此处设置的文本如果希望标题出现在下方可以在文档的全局设置区使用\captionsetup[table]{positionbottom}命令进行设置表格标签用于设置当前表格的引用标签以便在文档的正文中使用\ref{tab:表格标签}命令来引用它垂直对齐方式用于设置表格中各行的垂直对齐方式可设置的值包括t顶部对齐、c中线对齐、b底部对齐列格式说明用于设置表格中各列的对齐方式可设置的值包括l左对齐、c居中对齐、r右对齐、p{列宽}左对齐并设置列宽、m{列宽}居中对齐并设置列宽、b{列宽}右对齐并设置列宽。其中在使用m{列宽}或b{列宽}之前需要先在文档的全局设置区加载array宏包。另外如果参数之间使用|符号分隔则表示该列需要添加竖线如果参数之间使用{内容}符号分隔则表示在该列中插入指定的内容例如{\hspace{1cm}}表示在该列中插入一个宽度为 1cm 的空白。下面继续以之前的《\(\LaTeX\)排版示例》文稿为例来做个演示我们可以在其“表格元素”这个二级标题下面以表格的形式列出勾股定理的所有公式具体代码如下% 省略之前的文档结构定义部分 \usepackage{amsmath} % 用于插入数学公式 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{图表元素示例} % 省略之前的插图元素 \subsection{表格元素} \noindent 勾股定理的公式有多种不同的表达形式下面的表格\ref{tab:pythagorean_formulas}总结了一些常见的勾股定理公式。 \begin{table}[htbp] \centering % 表格居中 \caption{勾股定理公式汇总} % 表格标题 \label{tab:pythagorean_formulas} % 表格标签 \vspace{0.3cm} % 设置表格与标题之间的间距 \begin{tabular}{|p{6cm}|p{8cm}|} % 定义两列均为左对齐并设置列宽 \hline % 表格行间线 \textbf{公式名称} \textbf{数学表达式} \\ \hline % 表格行间线 标准形式 \( a^2 b^2 c^2 \) \\ \hline % 表格行间线 求斜边 \(c\) \( c \sqrt{a^2 b^2} \) \\ \hline % 表格行间线 求直角边 \(a\) \( a \sqrt{c^2 - b^2} \) \\ \hline % 表格行间线 求直角边 \(b\) \( b \sqrt{c^2 - a^2} \) \\ \hline % 表格行间线 三角函数形式正弦与余弦 \( \sin^2(\theta) \cos^2(\theta) 1 \) \\ \hline % 表格行间线 向量形式二维空间 \( \|\mathbf{v}\|^2 v_x^2 v_y^2 \) \\ \hline % 表格行间线 \end{tabular} \end{table} \newpage % 省略之后的章节 \end{document}在上述示例中我们之所以选择tabular环境来定义表格本体是因为这是一个由文本与数学公式混合而成的表格而array环境只支持纯数字或数学公式的内容。现在如果我们再次编译这个文档就可以看到“表格元素”这个二级标题下面已经出现了这个勾股定理公式汇总的表格如图 4 所示图 4由tabular环境定义的表格元素同样的如果我们只是需要在文档中插入上面这样一张简单的表格也大可不必用到\(\LaTeX\)这样复杂的工具直接使用 Markdown 这样轻量级的标记工具即可。\(\LaTeX\)真正的优势在于它能够排版出一些比较复杂的表格譬如实现单元格的跨列或跨行合并等效果这些在 Markdown 中就无法做到了。举个例子如果我们想在图 4 所示表格中将“公式名称”这一列下面的“求斜边\(c\)”、“求直角边\(a\)”以及“求直角边\(b\)”这三个单元格进行跨行合并就可以使用multirow宏包提供的\multirow命令来实现具体代码如下% 省略之前的文档结构定义部分 \usepackage{amsmath} % 用于插入数学公式 \usepackage{multirow} % 用于合并单元格 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{图表元素示例} % 省略之前的插图元素 \subsection{表格元素} % 省略之前的表格示例 \begin{table}[htbp] \centering \caption{勾股定理公式汇总单元格合并示例} \label{tab:pythagorean_formulas_merge} \vspace{0.3cm} \begin{tabular}{|p{6cm}|p{8cm}|} \hline \textbf{公式名称} \textbf{数学表达式} \\ \hline 标准形式 \( a^2 b^2 c^2 \) \\ \hline %------ 这里开始合并三行 ------ \multirow{3}{*}{求边公式} \( c \sqrt{a^2 b^2} \) \\ \cline{2-2} \( a \sqrt{c^2 - b^2} \) \\ \cline{2-2} \( b \sqrt{c^2 - a^2} \) \\ \hline %------ 合并结束 ------ 三角函数形式正弦与余弦 \( \sin^2(\theta) \cos^2(\theta) 1 \) \\ \hline 向量形式二维空间 \( \|\mathbf{v}\|^2 v_x^2 v_y^2 \) \\ \hline \end{tabular} \end{table} \newpage % 省略之后的章节 \end{document}上述示例中的表格定义大部分与之前相同只是将原本“求斜边\(c\)”、“求直角边\(a\)”以及“求直角边\(b\)”这三个单元格换成了一条\multirow{行数}{列宽}{内容}命令其中行数表示要合并的行数列宽表示合并单元格的宽度内容表示合并单元格中的内容。例如在这里我们使用\multirow{3}{*}{求边公式}命令将原表格第一列下的第 3 到 5 行合并为一个单元格并将该单元格的宽度设置为自动调整即*。而对于原表格第二列下未被合并的单元格我们只需要在\multirow命令后面通过添加符号来继续原样补齐即可。另外\cline{2-2}命令用于在合并单元格的下方绘制一条横线以示该单元格跨越了多行。现在如果我们再次编译这个文档就可以看到“表格元素”这个二级标题下面已经出现了这个勾股定理公式汇总的表格如图 5 所示图 5跨行合并单元格的表格示例当然我们在这里只演示了如何使用\multirow命令来实现单元格的跨行合并它也可以用于整个表格行的合并另外\(\LaTeX\)还提供了\multicolumn命令用于实现跨列合并它的使用方法与\multirow命令大致相同只是要设置的参数略有所不同下面是一个简单的示例% 需要先在文档的全局设置区加载 multirow 宏包 \begin{table}[htbp] \centering \begin{tabular}{|p{3cm}|p{3cm}|p{3cm}|} \hline \multicolumn{2}{|c|}{合并两列} 单元格 3 \\ \hline 单元格 1 单元格 2 单元格 3 \\ \hline \end{tabular} \end{table}上述代码在我们示例文档中的编译效果如图 6 所示图 6跨列合并单元格的表格示例除了tabular环境之外\(\LaTeX\)还提供了longtable、tabularx、ctable等环境用于定义更复杂的表格。关于这些环境的具体使用读者也可以参考\(\LaTeX\)的官方文档我们在这里同样不再赘述。专用环境排版除了图表元素之外学术文档中经常还会包含一些需要进行特殊处理的元素譬如需自动编号的定理和公式需高亮显示的算法描述与实现代码等。这些元素在\(\LaTeX\)中都是通过定义专业的环境来进行排版的在这一节中我们就来专门介绍一下这些环境的使用方法。公式与定理在专业文档中我们常常会需要使用“定理–引理–推论”结构搭配公式来进行相关的学术论述这就需要对随时需要指涉到的定理、推论等进行自动编号以便在文档中引用。在\(\LaTeX\)中我们通常通过加载amsthm宏包来获得用于书写定理类结构的功能。该宏包提供了预定义的proof环境并允许我们使用\newtheorem命令定义诸如theorem、lemma、corollary等定理环境以实现定理、引理、推论等的自动编号与引用。另外和我们之前在《[[LaTeX学习笔记数学公式编辑]]》这篇笔记中所介绍的一样在文档中插入数学公式主要有行内公式和行间公式两种方式。但与在 Markdown 中插入数学公式略有不同的是在\(\LaTeX\)的源文档中插入数学公式时我们首先要明确地在文档的全局设置区加载amsmath宏包然后再根据以下语法规则来插入数学公式行内公式主要用于在正文中编写简易的数学运算式可使用$…$的形式来进行编辑。行内公式示例$a^2 b^2 c^2$。行间公式主要用于在文档中用独立的行展示重要的数学公式它按照是否带有编号和标签可分为以下两种编辑形式不带编号和标签的行间公式 \[ E mc^2 \] 带编号和标签的行间公式 \begin{equation} \label{eq:einstein} % 为该公式定义引用标签 \int_{-\infty}^{\infty} e^{-x^2} dx \sqrt{\pi} \end{equation}下面继续以之前的《\(\LaTeX\)排版示例》文稿为例来做个演示我们可以在其公式与定理这个二级标题下面插入一组以勾股定理为中心的定理、引理、证明来进行论述具体代码如下% 省略之前的文档结构定义部分 \usepackage{amsmath} % 用于插入数学公式 \usepackage{amsthm} % 用于插入定理 % 定义定理环境按章节编号 \newtheorem{theorem}{定理}[section] % 定义定理环境按章节编号 \newtheorem{lemma}[theorem]{引理} % 定义引理环境与定理共享编号 \newtheorem{corollary}[theorem]{推论} % 定义推论环境与定理共享编号 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{专用环境示例} \subsection{公式与定理} % 省略之前的数学公式示例 \noindent 下面是定理、引理和推论的示例 \begin{theorem}[勾股定理] \label{thm:pythagorean} 在直角三角形中斜边的平方等于两条直角边的平方和。 \[ c^2 a^2 b^2 \] \end{theorem} \begin{lemma}[辅助引理] \label{lem:auxiliary} 如果一个三角形的两条边的平方和等于第三条边的平方那么这个三角形是直角三角形。 \end{lemma} \begin{corollary}[推论] \label{cor:area} 直角三角形的面积可以通过两条直角边的长度计算得出。 \[ \text{面积} \frac{1}{2}ab \] \end{corollary} 接下来我们可以这样引用这些公式和定理 \begin{itemize} \item 定理 \ref{thm:pythagorean} 表明了勾股定理。 \item 引理 \ref{lem:auxiliary} 是勾股定理的一个辅助结论。 \item 推论 \ref{cor:area} 则是勾股定理的一个直接应用。 \item 公式 \ref{eq:einstein} 是高斯积分的结果。 \end{itemize} \newpage % 省略之后的章节 \end{document}现在如果我们再次编译这个文档就可以看到“公式与定理”这个二级标题下面已经出现了这个勾股定理相关的定理、引理、推论以及我们在后续正文中对它们以及之前那个高斯积分公式的引用使用\ref命令如图 7 所示图 7定理与公式的示例算法与代码在计算机类的学术文档中我们常常需要使用一些伪代码来描述针对某一问题的算法设计结果而后还会用某一具体的编程语言来展示该算法的实现代码。在\(\LaTeX\)中我们通常会通过加载algorithm2e宏包来获得用于书写算法描述与实现代码的功能其基本语法如下% 需要先在文档的全局设置区加载 algorithm2e 宏包 \begin{algorithm} \caption{算法标题} \label{alg:算法标签} \KwIn{输入数据} \KwOut{输出结果} \For{$i \gets 1$ \KwTo $n$}{ \If{$i$ 是偶数}{ \Return $i$ } } \end{algorithm}在上述语法中我们首先定义了一个名为algorithm的环境这是一个专用于进行算法描述的环境需要预先加载algorithm2e宏包。在该环境的定义中我们可以使用\caption和\label命令来为该算法添加标题和引用标签而\KwIn和\KwOut命令可分别用于定义该算法的输入数据和输出结果\For和\If命令则可用于定义该算法中的循环和条件语句。另外\KwTo命令用于定义循环的终止条件\Return命令用于定义函数的返回值。例如在之前的《\(\LaTeX\)排版示例》文稿中如果我们想在其算法与代码这个二级标题下面插入一段用于计算斐波那契数列的算法描述就可以像下面这样写% 省略之前的文档结构定义部分 \usepackage[ruled, linesnumbered]{algorithm2e} % 提供算法描述环境其设置参数如下 % ruled: 设置算法主体部分有顶部和底部的横线 % linesnumbered: 设置算法主体部分显示行号 % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{专用环境示例} \subsection{算法与代码} \noindent 下面是计算斐波那契数列的算法描述 \begin{algorithm} \caption{计算斐波那契数列} \label{alg:fibonacci} % 使用更常见的 \KwIn 和 \KwOut 来明确表示输入/输出 \KwIn{一个非负整数 $n$} \KwOut{数组 $F$包含斐波那契数列的前 $n$ 项$F[0]0, F[1]1, \dots$} \If{$n \leq 0$}{ \Return $[\,]$ \tcp*{返回空数组表示无效输入} } \If{$n 1$}{ \Return $[0]$ \tcp*{基础情况仅第0项} } $F[0] \gets 0$\; $F[1] \gets 1$\; \For{$i \gets 2$ \KwTo $n-1$}{ $F[i] \gets F[i-1] F[i-2]$\; } \Return $F$\; \end{algorithm} 在算法~\ref{alg:fibonacci} 中我们描述了计算斐波那契数列的迭代方法。 \newpage % 省略之后的章节 \end{document}现在如果我们再次编译这个文档就可以看到“算法与代码”这个二级标题下面已经出现了这个计算斐波那契数列的算法描述如图 8 所示图 8算法描述的示例在完成了对算法设计的描述之后我们通常会需要用一种具体的编程语言来展示该算法的实现代码。在\(\LaTeX\)中我们通常通过加载listings宏包来获得用于书写代码的功能其基本语法如下% 需要先在文档的全局设置区加载 listings 宏包 % 并进行相应的全局设置 \begin{lstlisting}[language编程语言, caption代码标题, label代码标签] % 代码内容 \end{lstlisting}在上述语法中我们首先定义了一个名为lstlisting的环境这是一个专用于进行代码展示的环境需要预先加载listings宏包并进行相应的全局设置。在该环境的定义中我们可以使用language参数来指定该代码所使用的编程语言使用\caption和\label命令来为该代码添加标题和引用标签。例如在之前的《\(\LaTeX\)排版示例》文稿中如果我们想在其算法与代码这个二级标题下面插入一段用 Python 语言实现的计算斐波那契数列的代码就可以像下面这样写% 省略之前的文档结构定义部分 \usepackage{listings} % 提供代码展示环境 \usepackage{xcolor} % 用于定义颜色 \lstset{ basicstyle\ttfamily\small, % 基本字体等宽、小号 numbersleft, % 行号在左侧 numberstyle\color{gray}\tiny, % 行号样式灰色、更小 framesingle, % 边框单线框 framesep3pt, % 边框与代码内容的间隔 rulecolor\color{lightgray}, % 边框颜色浅灰 breaklinestrue, % 自动换行 captionposb, % 标题位置底部 (bottom) tabsize4, % 制表符等效空格数 % 以下为语法高亮色彩配置 (可自定义) keywordstyle\color{blue}\bfseries, % 关键字样式蓝色粗体 commentstyle\color{green!60!black}\itshape, % 注释样式墨绿色斜体 stringstyle\color{orange}, % 字符串样式橙色 showstringspacesfalse, % 不显示字符串中的空格 xleftmargin15pt, % 代码块整体左侧边距为行号留出空间 } % 开始组织文档内容 \begin{document} % 省略之前的章节 \section{专用环境示例} \subsection{算法与代码} % 省略之前的算法描述 \noindent 下面是上述算法的 Python 代码实现 \begin{lstlisting}[languagePython, caption斐波那契数列的 Python 实现, labellst:fibonacci_python] def fibonacci(n): if n 0: return Input error if n 1: return [0] if n 2: return [0, 1] f [0, 1] for i in range(2, n): f.append(f[i-1] f[i-2]) return f \end{lstlisting} \noindent 代码清单\ref{lst:fibonacci_python}中实现了斐波那契数列的计算并且使用了迭代的方法。你可以通过调用 fibonacci(n) 来计算斐波那契数列的前 $n$ 项。 \newpage \end{document}现在如果我们再次编译这个文档就可以看到“算法与代码”这个二级标题下面已经出现了这个用 Python 语言实现的计算斐波那契数列的代码如图 9 所示图 9代码展示的示例参考文献管理在撰写学术文档时我们通常需要引入相当数量的参考文献来支持自己所要表达的学术观点。在\(\LaTeX\)系统中大部分参考文献信息都会先以一种特定的格式被存储在一个扩展名为.bib的文献数据库中以便进行集中管理。下面让我们来看一份名为refs.bib的文献数据库示例article{smith2022deep, title{Deep Learning for Image Recognition}, author{Smith, John and Brown, Alice and Davis, Bob}, journal{Journal of Artificial Intelligence}, volume{2}, number{1}, pages{1--20}, year{2022}, publisher{Springer} } book{johnson2021machine, title{Machine Learning: A Comprehensive Guide}, author{Johnson, David and Wang, Emily and Zhang, Michael}, year{2021}, publisher{OReilly Media} } inproceedings{lee2020deep, title{Deep Learning for Natural Language Processing}, author{Lee, Sarah and Kim, James and Park, Emily}, booktitle{Proceedings of the International Conference on Natural Language Processing}, pages{123--140}, year{2020}, organization{IEEE} }在上述文文献数据库示例中我们存储了三条参考文献信息它们分别是一篇短篇文档一本参考书籍以及一篇会议论文。接下来如果我们需要在自己的学术文档中引用这些文献就需要通过以下步骤来进行处理在文档的全局设置区加载biblatex宏包并使用\addbibresource{[文件名]}命令来指定自己要使用的文献数据库就像下面这样[1]% 在文档的全局设置区加载 biblatex 宏包并设置如下参数 % backendbiber: 使用 biber 作为后端 % styleieee: 使用 IEEE 样式的参考文献格式 \usepackage[backendbiber, styleieee]{biblatex} % 使用 \addbibresource{[文件名]} 命令来指定文献数据库 \addbibresource{refs.bib}在文档的正文中找到需要引用文献的地方并使用\cite{[文献标签]}命令来引用文献就像下面这样% 在文档中需要引用文献的地方使用 \cite{[文献标签]} 命令 在正文中引用文献数据库中的短篇文档\cite{smith2022deep} 在正文中引用文献数据库中的参考书籍\cite{johnson2021machine} 在正文中引用文献数据库中的会议论文\cite{lee2020deep}在文档的末尾使用\printbibliography命令来生成参考文献列表就像下面这样% 在 document 环境的末尾生成文献列表 \printbibliography[title参考文献列表]例如在之前的《\(\LaTeX\)排版示例》文稿中如果我们想使用refs.bib这个文献数据库中的文献信息就可以按照以下步骤来进行将refs.bib这个文献数据库存储到该文稿源码所在的目录下即example/cmd_demo/demo.tex文件所在的目录下。在文稿的全局设置区加载biblatex宏包并使用\addbibresource{refs.bib}命令来指定自己要使用的文献数据库就像下面这样% 省略之前的文档结构定义部分 \usepackage[backendbiber, styleieee]{biblatex} \addbibresource{refs.bib}在文稿的正文中找到需要引用文献示例这一节所在的地方并使用\cite{[文献标签]}命令来引用文献并用\printbibliography命令来生成参考文献列表就像下面这样% 开始组织文档内容 \begin{document} % 省略之前的章节 \section{引用文献示例} \begin{itemize} \item 在正文中引用文献数据库中的短篇文档\cite{smith2022deep} \item 在正文中引用文献数据库中的参考书籍\cite{johnson2021machine} \item 在正文中引用文献数据库中的会议论文\cite{lee2020deep} \end{itemize} \printbibliography[title参考文献列表] % 打印参考文献列表标题为“参考文献列表” \end{document}在\(\LaTeX\)编辑器中将参考文献处理工具设置为 Biber具体到 VS Code 的 LaTeX Workshop 插件中其设置步骤如下重写打开之前在《[[LaTeX学习笔记快速上手指南]]》一文中创建的settings.json文件找到其中的latex-workshop.latex.tools字段并添加如下内容{ name: biber, command: biber, args: [ %DOCFILE% ] }找到其中的latex-workshop.latex.recipes字段并添加如下内容{ name: xelatex - biber - xelatex*2, tools: [ xelatex, biber, xelatex, xelatex ] }在完成上述设置之后我们只需选择按照“xelatex - biber - xelatex*2”的顺序编译demo.tex文稿源码就可以《\(\LaTeX\)排版示例》文稿中引用文献的效果如图 10 所示图 10参考文献展示的示例关于上述示例需要特别说明的是.bib文献数据库中所存储的每条文献信息无论是article{...}、book{...}还是inproceedings{...}它们所在定义的第一行都被分配有唯一的标识符譬如上述短篇文档中的smith2022deep这些标识符就是我们使用\cite{[文献标签]}命令来引用文献时所需要使用的“文献标签”。对于这些文献标签的命名我们通常会建议采用“作者年份关键词”的格式以便确保其具有描述性和唯一性。另外根据不同的期刊或出版社的要求参考文献可能需要按照 IEEE、ACM、APA、GB/T 7714 等格式排列这一般可以通过设置biblatex宏包的style参数来实现例如\usepackage[backendbiber, styleieee]{biblatex} % 使用 IEEE 样式的参考文献格式 \usepackage[backendbiber, styleacm]{biblatex} % 使用 ACM 样式的参考文献格式 \usepackage[backendbiber, styleapa]{biblatex} % 使用 APA 样式的参考文献格式 \usepackage[backendbiber, stylegbt7714]{biblatex} % 使用 GB/T 7714 样式的参考文献格式如果读者想了解更全面的参考文献格式可以查阅相应的LaTeX 文档。笔记小结在这篇笔记中我们学习了如何使用\(\LaTeX\)来排版学术文档。我们首先介绍了如何使用\(\LaTeX\)来排版图表元素包括插入图片、绘制图形以及插入表格。接着我们学习了如何使用\(\LaTeX\)来排版各种专用元素包括如何插入数学公式、定理、引理、推论、算法描述以及代码块。最后我们学习了如何使用\(\LaTeX\)来引用文献包括如何创建文献数据库、如何引用文献以及如何生成参考文献列表。在现代LaTeX文档中我们通常更倾向于使用biblatex宏包来管理参考文献它提供了\printbibliography命令来生成文献列表。而传统的BibTeX方式则使用\bibliography{}命令。 ↩︎

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询