LaTeX 算法与代码环境
算法环境 algorithm2e 介绍 在LaTeX中使用伪代码来描述算法是常见的需求,LaTeX其实有很多类似名称的宏包,简单辨析一下:(参考latex 中 algorithm、algorithmic、algorithmicx、algorithm2e 的区别) algorithm 用来封装算法:给算法加上标题(caption)和标签(label),方便进行索引; algorithmic 相当于算法的内容物; algorithmicx 相当于 algorithmic 的升级版; algpseudocode 是 algorithmicx 的一种呈现方式,完整包含了algorithmicx; algorithm2e 和 algorithmicx、algorithmic 类似,也是用来描述算法的;但是其语法不如 algorithmicx 直白。 总得来说,通常有两条路线可以选择: 用algorithm2e宏包搞定 用algpseudocode或algorithmic等撰写算法本身,再用algorithm包给算法加标题 本文主要考虑第一个方式——使用algorithm2e宏包。 ...
VSCode LaTeX WorkShop 配置
基础概念 LaTeX WorkShop 插件的编译逻辑分为两层:第一层为recipe,第二层为tool,具有如下特点: 一个recipe由若干个tool组成; 在配置文件中可以提供多个recipe和多个tool; 直接点击编译按钮会自动选择第一个(或上一次使用的)recipe来执行编译; 一个tool通常包括一个单独的编译命令加上若干参数,例如xelatex,lualatex和pdflatex等,还可能是处理参考文献需要的bibtex或biber; 一个recipe会依次执行它所包含的tool,例如: 1xelatex -> bibtex -> xelatex -> xelatex 下文中编译命令及其选项可以参考其它几篇关于LaTeX的笔记,LaTeX WorkShop 插件只是对这些编译命令进行了封装。 此外,LaTeX WorkShop 插件会在命令中传递特殊变量%DOC%或%DOCFILE%代表当前文件,第一个是文件名(含完整路径,不含后缀),第二个则是文件名(不含后缀),略有区别。 由于插件也只是调用了pdflatex、latexmk等编译命令,如...
LaTeX 参考文献笔记
整理一下LaTeX中关于参考文献的内容。 基本命令和引用 LaTeX提供的对参考文献的底层支持主要是thebibliography环境,大致相当于一个特殊的列表,在使用的地方会展示参考文献列表,使用示例如下 12345678910111213\documentclass{article}\begin{document}According to Einstein's theory of relativity \cite{einstein1905}...\begin{thebibliography}{99}\bibitem{einstein1905} Albert Einstein. \textit{On the Electrodynamics of Moving Bodies}. Annalen der Physik, 1905.\bibitem{knuth1984} Donald E. Knuth. \texti...
LaTeX 英文字体配置
英文字体配置 在LaTeX的article等基本文档类中,默认的英文字体为Computer Modern Roman。 一个常见的英文字体为Times New Roman,在很长时间内它是 Windows 平台上 Word 的默认西文字体,与LaTeX的英文字体不同,并且该字体不能免费商用。 英文字体的配置命令包括如下三条: 123456% 英文默认字体\setmainfont{<font name>}[<font features>]% 英文无衬线字体\setsansfont{<font name>}[<font features>]% 英文等宽字体\setmonofont{<font name>}[<font features>] 例如 123\setmainfont{Noto Serif Light}\setsansfont{Noto Sans}\setmonofont[Scale=MatchLowe...
LaTeX 中文字体配置 ✨
LaTeX说到底还是一个排版系统,字体是排版关注的核心内容之一,但是由于历史原因,字体系统在设计和使用中混乱不堪, 深究起来就是巨坑,这里简单整理一下LaTeX在中文排版时的字体配置相关知识。 由于版权等原因,Tex Live 虽然已经打包了很多内容,但是并不会包括一些常见的中文字体,需要用户自行配置处理。 由于本文中的命令需要直接或间接依赖 fontspec 宏包,它是一个基于 XeLaTeX 和 LuaLaTeX 的字体配置宏包,因此不支持 pdfLaTeX,这个宏包可能会影响数学字体,在使用时可以传入no-math选项。 本文只考虑ctex宏包,在Windows/Linux系统的中文字体排版,并且只使用XeLaTeX。 本文主要参考ctex用户文档,以及LaTeX 中文字体配置基础指南 中文字体常识 与书法字体不同,中文印刷/显示字体主要有以下几种: 楷体:源自实际书写中的楷体得到的字体 宋体:从唐宋直到明清,印刷行业对字体从楷体进行的简化,典型的特点是横平竖直,并且有尖角等辅助结构。(与宋朝没什么特别关系,主要定型于明朝,在清朝被改称宋体,在日本被称为明体) 仿宋:...
LaTeX 论文排版笔记
整理一下LaTeX论文排版中的基本要素,从默认的article文档类开始,并不涉及具体的期刊模板。 关于数学公式、数学字体和参考文献等更具体的内容,由于比较复杂,对其单独整理。 这里主要关注技术性内容,不讨论英文论文写作等非技术性的内容。 页面布局 通常需要在使用文档时首先全局地规定一些排版参数,如字号、纸张大小、单双面等等。 比如调用 article 文档类排版文章,指定基本字号为 11pt,双面排版,纸张为 A4 大小: 1\documentclass[10pt,twoside,a4paper]{article} 常用的参数如下: 指定字号,例如10pt,11pt,12pt,默认10pt 指定纸张大小,默认为美式信纸 letterpaper(大约 21.6 cm × 28.0 cm)。可指定选项还包括 a4paper,b5paper,executivepaper 和 legalpaper等。有关纸张大小页边距的更多细节主要通过geometry包设置,当然在这里设置也可以 单面/双面排版,twoside,oneside。双面排版时,奇偶页的页眉页脚、页边距...
LaTeX 数学定理与证明环境
amsthm宏包提供了定理类和证明类环境,但是并不是开箱即用的,这里记录一下相关的使用方式和配置。 定理类环境 基于amsthm包可以创造定理类环境,语法包括如下几类 123456\newtheorem{name}{text} % 独自使用计数器\newtheorem{name}{text}[section-level] % 基于section层级设置计数器\newtheorem{name}{text}[counter] % 基于计数器层级设置下一层的计数器\newtheorem{name}[counter]{text} % 共享其它环境的计数器\newtheorem*{name}{text} % 不使用计数器 其中 name:必选的定理类环境的标识符...
LaTeX 数学公式与字体笔记 🔄
整理一下 LaTeX 关于数学公式、数学字体以及相关的细节内容。 AMS宏包 AMS提供了一系列最常用的LaTeX数学宏包: amsmath 宏包: 提供了一套增强的数学排版命令和环境,使得数学公式的编辑和排版更加灵活和方便。 引入了一些新的数学环境,例如 align 和 gather,以便更好地控制多行公式的排版。 提供了诸如 \text, \DeclareMathOperator 等命令,用于在数学模式中插入文本或定义新的运算符。 amssymb 宏包:扩展了 amsmath,提供了额外的数学符号,如各种箭头、关系符号、集合符号等。 amsfonts 宏包:提供了一些额外的字体,例如 \mathbb 命令用于黑板粗体字母。 amsthm 宏包:提供了 theorem, lemma, proof 等定理或证明环境,方便用户在文档中定义和使用定理。 下面的数学公式绝大部分都需要这些宏包,默认已经被导入 1\usepackage{amsmath,amssymb,amsfonts,amsthm} 这些宏包在实际使用时似乎要注意一下导入的先后顺序,例如最好...
LaTeX 命令行编译
整理一下关于 pdflatex,xelatex 和 latexmk 的基本使用和配置。 这部分的中文资料其实比较少,因为大部分资料都在关注 LaTeX 应该怎么写,而不是怎么用命令去编译, 本文参考: LaTeX技巧912:使用latexmk自动编译LaTeX 在终端中编译 LaTeX latexmk 的学习 Latex 编译和编写方案配置 — latexmk + latexworkshop Using Latexmk pdflatex & xelatex 基本使用 这里只考虑 pdflatex 和 xelatex 的命令行基本用法,对于含有中文的文档只考虑使用 xelatex 编译。 最基本的用法如下,使用 pdflatex 和 xelatex 编译指定的源文件,源文件的.tex后缀名可以省略。 12pdflatex [options] main.texxelatex [options] main.tex 在源文件之前可以添加若干的选项,选项形如-<option1>、-<option2>=<string>,具体选项见下文,注意必须...
LaTeX 插入图片
整理一下关于LaTeX中插入图片的笔记。 目前使用的发行版为 TexLive 2024,系统为 Windows 和 Linux(Ubuntu22)。 只考虑 pdflatex 和 xelatex 这两种编译引擎,考虑的图片格式包括:矢量图(pdf, eps),位图(png, jpg)。 两种编译引擎都直接支持这些图片格式。 插入图片 LaTeX 本身不支持插图功能,需要 graphicx 宏包提供支持(或者更基础的 graphics 宏包,graphicx 宏包相当于其扩展) 1\usepackage{graphicx} 导入这个宏包之后,就可以使用 \includegraphics 命令来插入图片 1\includegraphics[<options>]{<filename>} 例如 12\includegraphics{example.png}\includegraphics{figure/example.png} 这里的图片文件名可以用相对路径或绝对路径表示,但是文件名里...