小坷笔记:Latex语法笔记

小坷笔记:Latex语法笔记
坷研一下,已经是开始写论文的阶段了。Latex相比于Word,在编写的时候不那么直观,但是胜在省事,不用纠结格式。
那么老规矩,完整的教学网上都到处都是,小坷这里只是小坷自己常用的指令+自己在学习过程中的思考。
LaTeX 伪代码算法
在编写工科论文的伪代码时,通常使用 algorithm 和 algorithmic (或 algorithmicx)宏包。
- 环境包裹:
\begin{algorithm}[htbp]:定义浮动体环境,包裹整个算法块。\begin{algorithmic}[1]:定义伪代码环境,参数[1]表示自动添加行号。
- 标题与引用:
\caption{...}:设置算法标题。\label{...}:设置标签,便于正文中使用\ref{...}进行交叉引用。
- 常用排版与数学符号:
\State:声明算法中的一个新语句/新行。\text{...}:在数学公式中强制使用正体(Roman)显示文本,防止变量名(如ee_pos)被渲染成难看的斜体乘积形式。\boldsymbol{...}:将数学符号加粗,常用于表示向量或矩阵(如 $\boldsymbol{p}_{\text{init}}$、$\boldsymbol{\epsilon}$)。\gets:渲染为左箭头 $\gets$,表示赋值。
排版避坑:为什么用 [htbp] 而不是 根据需求单独指定[h]?
在 LaTeX 中,表格、图片和算法属于“浮动体(Float)”,引擎会自动寻找最美观的位置进行排版。
[htbp]的优先级逻辑:
h (here):优先尝试放在代码当前准确位置。
t (top):当前页放不下,则放在当前页或下一页的顶部。
b (bottom):顶部不合适,尝试放在页面底部。
p (page):实在太大,单独放在只有浮动体的一页上。- 为什么慎用单独的
[h]?
如果只指定[h],一旦当前页底部空间不足以放下整个算法,LaTeX 可能会强制将其推到下一页,导致当前页底部出现极不美观的大面积留白。
LaTeX 与 Markdown 标题语法的核心区别
虽然 Markdown 和 LaTeX 本质上都是通过“标签”控制格式的标记语言,但你不能在标准的 LaTeX 中使用 # 来表示标题。具体原因和替换规则如下:
#在 LaTeX 中是保留的参数占位符:
就像代码里的保留字一样,LaTeX 将#专门用于定义自定义命令(宏)时的参数(例如用#1表示第一个参数)。直接在正文中敲#会导致编译报错;如果只是想单纯显示井号符号,必须加上反斜杠进行转义(写成\#)。- LaTeX 拥有严谨的专属标题命令:
相比于 Markdown 用井号数量区分层级,LaTeX 更加学术化,使用明确的结构化命令来定义标题。它们的对应关系为:- 一级标题:Markdown
#→ 对应 LaTeX\section{你的标题}(若是书籍排版则对应\chapter{你的标题}) - 二级标题:Markdown
##→ 对应 LaTeX\subsection{你的标题} - 三级标题:Markdown
###→ 对应 LaTeX\subsubsection{你的标题}
- 一级标题:Markdown






