LaTeX数学公式编辑(1)——行内公式&行间公式

特别说明:近期发现,CSDN博客中的代码在没有登录的情况下无法复制,这种行为已经完全背离了分享的初衷,为分享增加了不必要的麻烦,所以本人决定将本文内容逐步转移到其他平台。
本文新地址:https://www.cnblogs.com/beta2187/p/15476061.html
https://www.yuque.com/beta2187/elwnkv/qnn9er


对数学公式的排版, 可以说是 LaTeX 中最精彩的部分.

首先说需要注意的问题. 数学公式中有时候会出现文字(中文或英文),
需要将文字用命令 \text{...} 包起来. 如果将文字不加处理, 直接写到公式里面会出现如下问题:

  • 如果是中文, 则不显示, 例如代码 $根号9=3$ 编译之后显示为 9 = 3 9=3 9=3, 而代码$\text{根号}9=3$ 编译之后显示为 根号 9 = 3 \text{根号}9=3 根号9=3.
  • 如果是英文, 虽然显示, 但显示为斜体 (行文中出现的英文一般为正体).

现在来看怎么排版数学公式. 数学公式多种多样, 但总的说起来, 可以分为行内公式和行间公式.

1. 行内公式

行内公式统一使用$...$来表达. $前后一般要有空格, 除非公式后面有标点符号.

2. 行间公式

对于行间公式, 要么编号, 要么不编号; 要么单行, 要么多行. 通过组合之后可知行间公式有四种: 单行编号、单行不编号、多行编号和多行不编号. 下面对每种公式的写法逐一介绍.

2.1 单行编号

单行编号的公式示例:

\begin{equation}\label{...}
\int_0^1f(t)dt = \iint_Dg(x,y)dxdy.
\end{equation}

运行结果为:
\begin{equation}
\int_0^1f(t)dt = \iint_Dg(x,y)dxdy.
\end{equation}
其中\label{...}的花括号中的内容可以使字母、数字、点号和减号的组合(例如\label{sec-2.3}), 用来对公式进行引用, 引用的命令为\eqref{...}.

2.2 单行不编号

不编号公式应避免使用 $$...$$, 因为它可能会产生不良间距. 可以用

\[
\int_0^1f(t)dt = \iint_Dg(x,y)dxdy.
\]

简单书写, 也可用

\begin{equation*}
\int_0^1f(t)dt = \iint_Dg(x,y)dxdy.
\end{equation*}

来书写, 效果相同, 运行结果为
\begin{equation*}
\int_0^1f(t)dt = \iint_Dg(x,y)dxdy.
\end{equation*}

2.3 多行编号

多行编号的公式示例1 (注意对齐符号&的位置):

\begin{equation}\label{...}
\begin{split}
\frac{1}{2} (\sin(x+y) + \sin(x-y)) =& \frac{1}{2}(\sin x \cos y + \cos x \sin y)\\
& + \frac{1}{2} (\sin x \cos y - \cos x \sin y)\\
=& \sin x \cos y.
\end{split}
\end{equation}

运行结果为:
\begin{equation}
\begin{split}
\frac{1}{2} (\sin(x+y) + \sin(x-y)) =& \frac{1}{2}(\sin x \cos y + \cos x \sin y)\
& + \frac{1}{2} (\sin x \cos y - \cos x \sin y)\
=& \sin x \cos y.
\end{split}
\end{equation}
多行编号的公式示例2:

\begin{equation}\label{...}
\begin{dcases}
\frac{dS}{dt} = \Lambda - \beta SI - \mu S -\mu_1 mZS + \delta_0R, \\
\frac{dI}{dt} = \beta SI - (\mu+\delta+\gamma)I.
\end{dcases}
\end{equation}

运行结果为:
\begin{equation}
\begin{cases}
\frac{dS}{dt} = \Lambda - \beta SI - \mu S -\mu_1 mZS + \delta_0R, \
\frac{dI}{dt} = \beta SI - (\mu+\delta+\gamma)I.
\end{cases}
\end{equation}
多行编号的公式示例3:

\begin{equation}\label{...}
D(x) =
\begin{cases}
1, & \text{if } x \in \mathbb{Q};\\
0, & \text{if } x \in \mathbb{R}\setminus\mathbb{Q}.
\end{cases}
\end{equation}

运行结果为:
\begin{equation}
D(x) =
\begin{cases}
1, & \text{if } x \in \mathbb{Q};\
0, & \text{if } x \in \mathbb{R}\setminus\mathbb{Q}.
\end{cases}
\end{equation}

2.4 多行不编号

可以在第2.3节命令的基础上将各个命令外层的\begin{equation}...\end{equation} 改为\begin{equation*}...\end{equation*} 使得公式不编号. 也可以用

\begin{align*}
\frac{1}{2} (\sin(x+y) + \sin(x-y)) =& \frac{1}{2}(\sin x \cos y + \cos x \sin y)\\
& + \frac{1}{2} (\sin x \cos y - \cos x \sin y)\\
=& \sin x \cos y.
\end{align*}

来排版此类公式. 运行结果为:
\begin{align*}
\frac{1}{2} (\sin(x+y) + \sin(x-y)) =& \frac{1}{2}(\sin x \cos y + \cos x \sin y)\
& + \frac{1}{2} (\sin x \cos y - \cos x \sin y)\
=& \sin x \cos y.
\end{align*}

3. 说明

本文中只介绍了数学公式的基本写作框架, 具体细节请参看文献[1,2]. 文中应该显示为编号的公式, 在博客中没有显示编号, 属于网页显示问题, 在LaTeX编译器中编译相应代码会显示编号.
文中如有不妥之处,肯请指教.

4. 参考文献

[1] 刘海洋. LaTeX 入门 [M]. 北京: 电子工业出版社, 2013.
[2] 胡伟. LaTeX 2e完全学习手册(第二版). 北京: 清华大学出版社, 2013.

### 解决LaTeX行内公式过长导致的溢出问题 当遇到LaTeX行内公式过长而引发的溢出问题时,可以采取多种方法来优化显示效果。以下是几种常见的解决方案: #### 方法一:拆分行内公式 如果公式的长度超过了预期宽度,则可以通过合理断开并将其转换成多行展示的形式。虽然这会改变原本作为行内元素的表现形式,但在某些情况下这是最简单有效的办法。 对于较长表达式如 \(\Gamma(n) = (n-1)! \forall n\in N\) ,可以在适当位置打断[^1]: ```latex \( \begin{aligned} \Gamma(n) &= (n - 1)! \\ &\quad \forall n \in N \end{aligned} \) ``` 这种方法利用了`aligned`环境使公式保持紧凑的同时实现了换行。 #### 方法二:缩小字体尺寸 另一种方式是在不破坏原有结构的前提下减小整个文档中的特定部分字号。此法适用于那些仅需局部调整的情况。 使用`\small`, `\footnotesize` 或者更小级别的命令包裹住要修改的部分即可达到目的。 ```latex {\small \( \Gamma(n)=(n−1)! ∀n∈N \)} ``` 不过需要注意的是过度压缩可能影响可读性。 #### 方法三:转为块级公式 将原来位于正文内的复杂公式移至单独的一行作为一个独立单元呈现出来也是一种不错的选择。这样做不仅解决了潜在的空间不足难题,还提高了读者理解难度较高的数学推导过程的能力。 原行内公式变为居中显示的块级公式: ```latex \[ Γ(n)=(n−1)!∀n∈N \] ``` 这种转变让复杂的算术关系更加清晰直观。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值