ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LaTeX数学符号速查:掌握命名规律,告别死记硬背

LaTeX数学符号速查:掌握命名规律,告别死记硬背 1. 我为什么写这篇LaTeX数学符号大全先说个真实场景。之前带学生做数学建模队友第一次用LaTeX排版论文光是打一个矩阵就折腾了快三个小时。他反复翻那个怕是最全的符号表PDF眼睛都要看花了结果连\frac和\dfrac的区别都没搞明白。后来我坐下来给他理了一遍符号命令的命名规律五分钟后他就能自己猜出绝大多数新符号的写法了。这个事让我意识到网上所谓的LaTeX数学符号大全大多是一张巨大的对照表几千个符号堆在一起看起来无所不包实际用起来人直接懵掉。今天我们不讲背符号而是讲查符号和推符号。你只要掌握核心规律80%的数学公式场景都能靠自己写出来剩下20%的冷门符号再去查表定位效率完全不一样。这篇内容适合谁刚装完LaTeX还没写过一行公式的纯新手以及在数学建模、论文写作里被排版逼疯的普通用户。我会从环境搭建讲到符号速查再把公式对齐、表格自动换行、图片插入这些高频问题全部过一遍。都是我自己用坏了一个空格键换来的经验保证实操性。2. 写公式前先把环境弄明白了2.1 一套能用的LaTeX环境其实只需要两样东西很多人卡在第一步不是代码写不出来是环境装不明白。LaTeX本身不是一个大软件它是一套排版系统由编译器加宏包组成。你写好的.tex文件是纯文本需要通过编译器翻译成PDF。最常见的实现是TeX LiveWindows/Linux、MacTeXmacOS专用以及MiKTeX跨平台适合硬盘小的用户。我的建议是新手直接上TeX Live选full scheme安装虽然要等挺长时间但装完什么都带了后面不会出现缺宏包这类未定义的控制序列报错。MiKTeX的好处是按需自动拉取宏包但它要联网下载上课或比赛现场如果断网符号宏包缺了就是干着急。2.2 VSCode加插件为什么成为首选组合编辑LaTeX你当然可以用自带的TeXworks丑是丑了点但能用。我推荐VSCode不是因为它多高大上而是因为生态成熟、免费、跨平台而且LaTeX Workshop插件实在太完善了。装好后能一键编译、一键清理临时文件还支持SyncTeX正向同步光标在代码里Ctrl加鼠标点击就能跳到PDF对应位置改论文效率翻倍。装好VSCode后在扩展商店搜LaTeX Workshop安装。然后打开命令面板CtrlShiftP输入settings打开首选项JSON文件加这一段配置{ latex-workshop.latex.autoBuild.run: onSave, latex-workshop.latex.recipes: [{ name: latexmk (xelatex), tools: [xelatex] }], latex-workshop.latex.tools: [{ name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] }], latex-workshop.view.pdf.viewer: tab }解释一下为什么我这里用的是xelatex而不是默认的pdflatex。因为xelatex对中文支持好不用折腾各种转码和字体配置你只要在导言区写\usepackage{fontspec}再设置一个支持中文的字体就能直接写中文摘要。数学家标书、建模论文通常都是中英混排所以这套配置能帮你少踩一堆坑。2.3 新建第一个文件跑通hello world新建一个test.tex文件复制下面内容进去\documentclass{article} \usepackage[UTF8]{ctex} \begin{document} 你好LaTeX。$a^2 b^2 c^2$ \end{document}保存后如果按上面配置好了会自动编译。等左下角出现绿色的对勾按CtrlAltV预览PDF看到中文和公式恭喜你环境就通了。这里踩坑预警如果编译报错找不到ctex.sty说明你的TeX Live装的是basic方案没带中文宏包。解决方法要么用包管理器tlmgr install ctex要么干脆重新安装full方案一劳永逸。3. 数学符号速查的底层规律看完再也不用翻表3.1 键盘直接能敲的符号别想复杂了很多人一打符号就习惯性搜命令其实有一批符号直接键盘录入就行。比如-/()[]还有小数点、逗号、分号。注意LaTeX里英文逗号和句号在公式里的间距跟文本里不一样如果需要文本逗号的间距要用\text{,}或者,分隔。不过有几个特殊字符在LaTeX里是有特殊语义的直接敲会报错或输出乱码。它们分别是% 注释符号敲了后面全被吞$ 数学环境开关少了配对会报错 表格或矩阵里的列分隔符_ 下标符号^ 上标符号{} 分组符号花括号不是直接打印~ 不换行空格\ 命令起始符如果你真的要在正文里输出这些字符必须转义写法是% $ _ ^{} \textbackslash{}花括号是{和}。这是新手最常见的编译报错源头务必记牢。3.2 希腊字母命令的命名规律根本不用背希腊字母大概是LaTeX公式里出现频率最高的符号之一。网上各类符号大全表里希腊字母占了大半页。但本质上规律很简单你输入的命令基本就是希腊字母的英文名字比如\alpha、\beta、\gamma。把首字母大写成\Gamma、\Delta输出的就是对应的大写希腊字母。值得注意的是有些大写希腊字母长得跟英文大写字母一样LaTeX里就直接用英文字母输出比如大写Alpha就是A大写Beta就是B你不需要命令。真正会出现在公式里的命令型大写希腊字母基本就是\Gamma、\Delta、\Theta、\Lambda、\Xi、\Pi、\Sigma、\Upsilon、\Phi、\Psi、\Omega这几个。还有两个极易混淆的\epsilon和\varepsilon。前者是那种带圆滑笔画的\epsilon后者是类似手写体的\varepsilon。中文教材里最常用的是\varepsilon你如果用了\epsilon虽然也能过但看着总觉得怪。\phi和\varphi同理\pi没有变体。3.3 二元运算符与关系符记住对称关系写公式离不开加减乘除、大于小于。LaTeX里关系符有个显著特点左右镜像对称的命令往往有规律。小于号是键盘直接敲小于等于号是\le或\leqLaTeX里两个都能编译远小于号\ll远大于号\gg。\geq和\geqslant也都是大于等于。约等于号是\approx全等号是\equiv相似符号是\sim这个在数学建模的相似矩阵里用得多。比例符号是\propto。不等于号是\ne。至于正负号和负正号分别是\pm和\mp别搞反了。乘号的写法则完全不同\times是叉乘\cdot是点乘。这两个在向量、矩阵运算里经常混用。我见过不少人的论文里点乘和叉乘混着用看起来排版正常但语义是错的。比如向量内积该用\cdot叉积该用\times行列式求值用\begin{vmatrix}环境时内部通常用普通数值不需要加乘号。这一块细节会直接影响论文的专业观感。3.4 括号不只有一种高度自适应才是王道新手写括号容易直接敲(和)这种括号不会根据里面的内容自动变大。如果里面是\frac{a}{b}这种分式括号就显得太小压得慌。正确的做法是用\left(和\right)包裹LaTeX会自动把括号撑到跟内容一样高。同理方括号用\left[和\right]花括号用\left{和\right}绝对值竖线用\left|和\right|。如果你只要一边括号比如分段函数的大括号只有左边那右边要用\right.来匹配那个点是隐身括号表示这边没有东西。这个技巧在写分段函数的时候基本必然用到。还有两个常用特殊括号向下取整函数\lfloor和\rfloor向上取整是\lceil和\rceil。分类讨论的cases环境是大括号加多行公式这个直接写\begin{cases}就行源码和效果都比较直观。3.5 箭头符号全家族映射、极限、收敛都靠它箭头在数学里的语义丰富没有一套统一规律但常见场景集中。向右箭头就是\to或\rightarrow向左是\gets或\leftarrow双线右箭头\Rightarrow表示蕴含在证明题里经常用双向箭头\leftrightarrow表示当且仅当\Leftrightarrow则是等价于。极限里趋近于的箭头符号是\to比如x \to 0。收敛符号用\rightarrow也对但如果是写一致收敛于通常用\rightrightarrows这个命令需要amssymb宏包支持。映射集合比如从A到B的映射规范写法是f: A \to B。还有数学建模里少见但有可能用到的\uparrow、\downarrow、\updownarrow、\Updownarrow、\nearrow、\searrow以及逻辑蕴含符号\implies和\iff这两个命令也要用amssymb。如果你的公式导言区没引用amssymb宏包很多重符号会直接报错。所以新手模板里通常建议加这一行\usepackage{amsmath, amssymb}3.6 分式、上下标、根号、积分求和公式的基础骨架这套逻辑是整个公式排版核心中的核心。分式的标准写法是\frac{分子}{分母}。如果你在行内公式里用\frac显示出来会小一点这是正常现象因为行内空间不够LaTeX自动压缩了字号。如果你非要行内也显示大分式就用\dfrac。反过来如果你在行间公式用$$包裹或用equation环境里希望分式小一点用\tfrac。上下标分别用^和_。要注意的是如果上下标包含多个字符必须用花括号括起来。比如e^{2x}不写花括号的话e^2x会只把2当上标x留在旁边语义完全变了。根号用\sqrt比如\sqrt{x1}如果你要开n次方写成\sqrt[n]{x1}。积分号是\int有上下限的话写成\int_a^b求和号是\sum_{i1}^{n}连乘是\prod_{i1}^{n}这些都有标准的自动缩放。至于为什么要写成\sum_{i1}^{n}这种下标的样式是因为行内公式里求和上下限会跑到右下角而不是正下方这是排版规范。我在实操中发现很多人公式排版不美观的关键不是不会写命令而是没有区分行内和行间。行间公式用equation环境自动编号但如果不需要编号用[公式]或equation*环境。如果要自定义编号用\tag{...}。这些在建模论文里区分给不给公式编号非常关键不是所有公式都要编号。4. 数学建模里最常用的符号说明表手把手教你一键生成4.1 表格为什么要用三线表而不是随便画的数学建模论文几乎必然要有一个符号说明章节。评委看论文第一眼扫的就是符号表。但很多人用Word插入一个笨重的表格里面横线竖线全画满黑乎乎的网格线让人看着就累。学术规范做法是用三线表顶线、栏目线、底线三根线中间不出现竖线。LaTeX里用booktabs宏包就能轻松实现。在导言区加上\usepackage{booktabs}然后源码里写\begin{table}[htbp] \centering \caption{主要符号说明} \begin{tabular}{llc} \toprule 符号 含义 单位 \\ \midrule $t$ 时间 s \\ $x_i$ 第 $i$ 个决策变量 无量纲 \\ $C$ 总成本 美元 \\ \bottomrule \end{tabular} \end{table}这里htbp的意思是优先在这里here不行就放页顶top再不行放页底bottom最后实在不行单独成页page。LaTeX会整体移动浮动体位置来让排版更紧凑。如果你硬性要求表格必须出现在代码位置附近可以尝试用[H]需要float宏包但这样可能产生大片空白排版反而不如浮动体灵活。4.2 符号说明表里如何让列宽自动换行默认的tabular列格式里lcr类型都是内容多宽列多宽不会自动换行。如果你的符号含义一栏写了一长串中文就会撑爆页面。解决办法是用p{宽度}来定义列宽里面的文字会自动换行。具体写法是用p{4cm}这种格式替换l但有个问题p列的文字默认顶端对齐如果旁边一列是内容很少的符号显示很难看。这时候需要搭配\raggedright来消除两端对齐产生的尴尬大间隙或者在列格式里用{\raggedright\arraybackslash}p{4cm}。不嫌麻烦的话推荐上一个通用的复杂列格式写完一次就能复用\usepackage{array} ... \begin{tabular}{{\raggedright\arraybackslash}p{2cm} {\raggedright\arraybackslash}p{6cm} c}我自己的经验是符号说明表一般就三列符号列、含义列、单位列除了含义列设宽度其他两列保持自动宽度就够了。设宽度的时候宁宽勿窄因为你不知道某个公式符号的解释要跑多长。4.3 把Excel里的符号表一键生成LaTeX代码数学建模前两天队友还在Excel里整理符号表想直接搬进论文。其实你不用手动敲LaTeX的有一个技巧Excel或WPS里写好的表格用表格转LaTeX的在线工具粘贴到表格里自动生成代码再微调一下格式就能用。搜索table to LaTeX就能找到好几个。不过这种工具生成的代码一般会带很多冗余的竖线和\hline你需要手动改成booktabs的三线风格。如果你会一点Python也可以用pandas的to_latex方法加参数\multicolumn、header等但为了一个小表格写脚本有点杀鸡用牛刀了手动微调反而更快。4.4 带大括号的联立公式和表格无关但常被一起问符号说明完了正文里经常要写其中s.t.之类的带约束的优化模型。这种用cases环境最舒服\begin{equation} \max \; z 3x_1 5x_2 \end{equation} \begin{equation} \text{s.t.} \begin{cases} x_1 2x_2 \leq 10 \\ 3x_1 x_2 \leq 18 \\ x_1, x_2 \geq 0 \end{cases} \end{equation}注意cases环境里多个条件用\换行每行结尾用\le、\geq这类关系符。如果希望所有条件左对齐可以在cases环境后加一个数组环境指定列格式。但cases默认已经左对齐了所以基本不用折腾。这里要注意\text{s.t.}是文本模式s.t.里的点和空格要按文本处理否则在公式模式里直接写s.t. 间距会乱。5. 图片插入、表格自动换行、绝对路径踩坑实录5.1 图片插入的几种方式以及最常见的路径错误LaTeX插入图片需要graphicx宏包。推荐写法如下\usepackage{graphicx} ... \begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{figures/result.jpg} \caption{实验结果对比图} \label{fig:result} \end{figure}在文末用\ref{fig:result}就能自动交叉引用图片编号。图片的路径如果是相对路径一定要让编译的工作目录跟.tex文件同级或者用\graphicspath{{figures/}}声明图片文件夹。这两个措施必须清楚不然编译的时候大概率报File not found浪费很多时间。\width0.8\textwidth的意思是图片宽度占正文宽度的80%这个比例是最常用的。如果图片太高可以直接写height8cm。还有一种情况图片是PDF矢量图插入后仍然清晰但有些人拿手机拍的照片是JPEG打印效果就模糊。做论文建议绘图导出PDF或矢量格式导出EPS也可以。5.2 表格里的长文本自动换行不只是p{}这么简单前面说了p{}能自动换行但实际操作中还有更麻烦的一个单元格里既要有换行又要防止内容被切断。这时候需要\shortstack或\makecell宏包。\makecell的典型用法\usepackage{makecell} ... \begin{tabular}{lcc} \toprule \makecell{参数名称} 数值范围 备注 \\ \midrule 学习率 0.001--0.1 \makecell{需手动调节\\ 默认为0.01} \\ \bottomrule \end{tabular}\makecell里的\表示手动换行。这是我自己在建模论文里最常用的技巧之一因为很多参数的含义确实没法一句话写清楚这时候强行单行文本就会把表格撑得巨大。更重要的是p{}指定的宽度如果小于一个英文单词的宽度LaTeX会报Overfull box的警告。这是因为LaTeX默认不会断一个完整的英文单词。解决办法是在导言区加\usepackage{array}并配合\raggedright让单元格内部左对齐而不是两端对齐这样单词间隙不会那么夸张。5.3 插入图片或表格后编号乱顺序了怎么回事新手经常遇到图3明明在正文里是第三个被引用的但显示成Figure 1。这种情况多半是没使用\label和\ref的交叉引用而是手动写的如图3所示。一旦图片浮动体被LaTeX移动了位置手动编号就全乱了。正确做法是所有引用都用\ref{fig:label}。你只需要在插入图片的代码里给\label{fig:名字}正文里引用\ref{fig:名字}LaTeX会自动根据浮动体位置分配编号不管它跑到哪一页编号都会跟着变动。另外如果一个图包含多个子图需要用到subcaption宏包或subfigure环境。我见过太多模板里把子图手动并排导致编号全靠手打的情况效率低且易错。subcaption的规范写法\usepackage{subcaption} \begin{figure}[htbp] \centering \begin{subfigure}{0.4\textwidth} \includegraphics[width\textwidth]{a.png} \caption{第一张} \end{subfigure} \hfill \begin{subfigure}{0.4\textwidth} \includegraphics[width\textwidth]{b.png} \caption{第二张} \end{subfigure} \caption{两个子图} \end{figure}6. 常见报错和排版问题的快速排查表6.1 编译报错的语法信息怎么看LaTeX的报错信息是出了名的说人话难。最常见的是! Undefined control sequence命令写错了或者缺宏包。比如你用了\implies但没加amssymb。! Missing $ inserted你在数学环境外面用了数学命令或者在数学环境里用了文本专属命令。! Extra }, or forgotten $花括号没配对或者多余了一个花括号最常见的还是输入法问题导致花括号是中文全角。! File not found图片路径不对或者文件名带空格强烈建议图片名不要用空格和中文。排查口诀先看第一个报错不要往下看。LaTeX经常因为一个错误引发连锁反应真正的源头在第一个报错。修复后再编译往往后面的一堆报错自动消失。6.2 编译通过但PDF里公式显示成乱码或方块这个几乎都是字体问题。如果你用pdflatex编译包含中文的文档八成会乱码如果你用xelatex编译但没有正确配置中文字体则会出现方块。解决方法中文文档统一用xelatex编译导言区用\usepackage{ctex}或\usepackage{fontspec}加\setCJKmainfont{宋体}或其他你系统里的中文字体如果要用数学字体和中文混合直接\usepackage{unicode-math}再配合xelatex数学符号的字体可以选择Latin Modern Math或TeX Gyre Termes Math很多模板自带字体设置如果你拿到一个模板不确定用什么编译先看模板的说明文档。贸然改编译引擎很可能因为宏包不兼容而报错。6.3 表格过宽超出页面怎么快速处理表格过宽两个思路一是缩小字号二是调列宽。缩小字号可以在tabular环境外面加\small或\tiny块比如{\small \begin{tabular}...\end{tabular}}。调整列宽就是把某些使用l的列改成p{3cm}。如果表格实在太宽可以尝试用横排页面即用pdflscape宏包提供的landscape环境把一整页旋转成横向。数学建模的大表格偶尔会出现这种需求\usepackage{pdflscape} ... \begin{landscape} \begin{table}[htbp] ... \end{table} \end{landscape}6.4 VSCode里LaTeX Workshop最常见的三个坑配置好LaTeX Workshop后可能会遇到第一CtrlAltV打不开PDF预览。检查settings里是否配置了latex-workshop.view.pdf.viewer: tab这是内置预览模式。如果你用browser模式它可能会在外部浏览器打开但不一定找得到浏览器。第二自动编译触发太频繁电脑发热。把autoBuild.run改成onSave就不会每次改动都触发只有保存文件才编译。比赛现场不建议开自动连续编译万一你在写一半代码状态时保存编译报错刷屏看着心塞。第三SyncTeX跳转不准确。这个主要原因是没有加-synctex1参数或者编译工具选的不是xelatex。检查前面给的工具配置参数里必须含-synctex1。6.5 Word的LaTeX语法无法正常显示到底怎么回事很多人在Word里用LaTeX风格的公式语法发现公式显示不出来这里要澄清一个概念。Word自带的公式编辑器Alt可以用一种类似LaTeX的输入语法但它实际采用的是UnicodeMath语法和LaTeX的命令并不完全等价。比如\frac在Word里不是万能的分式指令要写frac或者用/配合UnicodeMath的自动识别。而且Word的LaTeX语法模式也经常因为公式域的开启方式不同而失效。如果你已经习惯了LaTeX语法又暂时不能脱离Word建议不要硬刚Word的公式编辑器而是把LaTeX公式渲染成图片或PDF再插入Word。虽然这样编辑后期改动麻烦但排版效果统一。另一个思路是直接在Word里安装TexsFriend这类插件用真正的LaTeX引擎渲染公式。不过说实话如果是要写长论文我仍然建议一步到位用LaTeXWord更适合快速短文。7. 一些写LaTeX时提高效率的小习惯写公式之前先把文档结构搭好标题、摘要、章节、结论每个章节放两行占位文本。然后一个个填空。这个习惯能帮你把注意力集中在内容本身而不是排版细节。公式不要等到全文写完再统一加标签而是每个重要公式就顺手加上\label最后用\eqref引用。如果怕漏编号就在草稿时把公式都用\tag{}做个临时标签但记住最后改成自动编号。宏包不要一股脑全导进去。每加一个宏包编译时间和冲突风险都会增加。只需要amsmath、amssymb、graphicx、booktabs、float、hyperref这些就够用。如果模板自带了完整宏包集合就别再添加重复功能的宏包。最后提示一下网上那些LaTeX符号大全的PDF可以下载一份放收藏夹但不要一上来就从头背。把本文说明的命名规律记住再存几个效率模板比如分式、积分、求和、多行公式、矩阵、分段函数足够你应付大部分日常需求。真遇到了冷门符号比如某个集合论符号再去查表按名称搜索比从头硬背高效得多。
返回列表