Latex写作 -- 如何排版水平的交错括号?
索引
- 涉及到的命令
- 两点注意
- 实现思路
- 交错括号在不同侧(各在上下侧)
- 交错括号在同一侧(同为上侧或同为下侧)
涉及到的命令
| 命令 | 功能 | 示例代码 | 示例效果 |
|---|---|---|---|
| \overbrace{公式}^{标注} \underbrace{公式}_{标注} | 给公式上方或下方 添加花括号并加上标注 | \[ \overbrace{a + b} ^ \text{用花括号括起 a + b a + b a+b} \] \[ \underbrace{a + b} ^ \text{用花括号括起 a + b a + b a+b} \] | ![]() |
| \overbracket{公式}^{标注} \underbracket{公式}_{标注} (前提:需载入mathtools宏包) | 给公式上方或下方 添加方括号并加上标注 | \[ \overbracket{a + b} ^ \text{用方括号括起 a + b a + b a+b} \] \[ \underbracket{a + b} ^ \text{用方括号括起 a + b a + b a+b} \] | ![]() |
| \llap{一段文字} | 设同一行中\llap之前的所有内容为字段A, \llap参数里的文字为字段B。 \llap命令将B与A进行重合,并保持A和B右端对齐。 | \section{\textbackslash rlap效果演示} \noindent 长文字 \textbackslash llap{短文字}的效果:\\ 保护环境,人人有责 \llap{Great}\\ 短文字 \textbackslash llap{长文字}的效果:\\ 你我他 \llap{保护环境,人人有责} | ![]() |
| \rlap{一段文字} | 设同一行中\rlap之后的所有内容为字段A, \llap参数里的文字为字段B。 \llap命令将B与A进行重合,并保持A和B左端对齐。 | \section{\textbackslash rlap效果展示} \noindent \textbackslash rlap{长文字}短文字的效果:\\ \rlap{保护环境,人人有责}你我他\\ \textbackslash rlap{短文字}长文字的效果:\\ \rlap{Great}保护环境,人人有责 | ![]() |
| \phantom{字段} | 空出和参数里的字段一样长的距离(是实体的) | \noindent 我要空出“我ai你”的距离。\\ 开始\phantom{我ai你}结束。 | ![]() |
两点注意
1.在数学模式中使用\phantom,该命令的参数内容仍会停留在数学模式,此时参数内容两边不用加$…$来使参数内容进入行内公式模式。
示例:
%-*- coding: UTF-8 -*-
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}\begin{document}\section{展示$|xa+by|$}\noindent 正常的展示效果:\[|xa+by|\]将$a+b$ phantom化:\[|x\phantom{a+b}y|\]利用\textbackslash text\{\ \}将$a+b$变为文本模式:\[|x\text{a+b}y|\]
\end{document}

2.在数学模式中使用\llap或者\rlap,该命令的参数内容默认会跳出数学模式回到文本模式,此时若参数内容是一个数学表达式,则需要在其两端加入$…$来重新进入(行内)数学模式。
示例:
%-*- coding: UTF-8 -*-
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}\begin{document}\section{不在参数两端加\$\dots\$}\[\rlap{a+b}\]\[\llap{a+b}\]\section{在参数两端加\$\dots\$}\[\rlap{$a+b$}\]\[\llap{$a+b$}\]
\end{document}

实现思路
以下面的公式为例。
整体思路是运用重叠技巧。这里以右重叠命令 \rlap 为例说明具体思路。
1.运用右重叠时,需要先对公式进行拆解。可以先将公式中的上花括号单独分成一个部分A,剩下的部分归为另一个整体B。
整体B的代码是显然的:
\[a \to \underbrace{b \to c}
\]
2.而对于部分A,由于\overbrace命令的语法限制其只能在现有内容上方括起花括号,而无法凭空生成一个花括号,因此我们可以给一段空白的,透明的,与 a → b a \to b a→b等长的实体C上方括上花括号。部分A与实体C一起构成整体D。
3.然后用\rlap{D}B将整体D右重叠至整体B中,且由于刚才创造的实体C是空白透明的,不会对整体B造成遮挡。至此公式编辑完毕。
思路图示如下:

整体代码如下:
%-*- coding: UTF-8 -*-
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}\begin{document}\section{\textbackslash rlap参数两端不加\$\dots\$}\[\rlap{\overbrace{\phantom{a \to b}}} a \to \underbrace{b \to c}\]\section{\textbackslash rlap参数两端加\$\dots\$}\[\rlap{$\overbrace{\phantom{a \to b}}$} a \to \underbrace{b \to c}\]
\end{document}
效果图如下:

交错括号在不同侧(各在上下侧)
我们推荐先忽略掉所有的括号,在数学模式中编写完剩余的内容后,再在其中寻找断点,利用命令\llap(或\rlap)和\phantom来进行重叠操作,给目标内容的上方或下方括上括号(并作标注)。
示例:
%-*- coding: UTF-8 -*-
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}\begin{document}\section{第一步}\[a \to b \to c \to d \to e \to f \to g\]\section{第二步}\[a \to b \to c \to d \llap{$\overbrace{\phantom{b \to c \to d}}^{\text{第1个花括号}}$}\to e \to f \to g\]\section{第三步}\[a \to b \to c \to d \llap{$\overbrace{\phantom{b \to c \to d}}^{\text{第1个花括号}}$}\to e \llap{$\underbrace{\phantom{c \to d \to e}}_{\text{第2个花括号}}$}\to f \to g\]\section{第四步}\[a \to b \to c \to d \llap{$\overbrace{\phantom{b \to c \to d}}^{\text{第1个花括号}}$}\to e \llap{$\underbrace{\phantom{c \to d \to e}}_{\text{第2个花括号}}$}\to f \to g\llap{$\overbrace{\phantom{d \to e \to f}}^{\text{第3个花括号}}$}\]
\end{document}
效果如下:

交错括号在同一侧(同为上侧或同为下侧)
交错括号在同一侧时,为了尽可能减少同侧括号出现重叠,一般要调整括号的线宽和伸出高度。Latex自带的\overbrace, \underbrace命令没有可选参数来调整线宽和伸出高度,因此我们采用mathtools宏包中的\overbracket, \underbracket产生可调整线宽和伸出长度的方括号。
一般地,\overbracket, \underbracket的语法为:
\overbracket[线宽][伸出高度]{内容}^{标注}
\underbracket[线宽][伸出高度]{内容}_{标注}
交错括号的实现思想同上一节 交错括号在不同侧(各在上下侧).
示例:
%-*- coding: UTF-8 -*-
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}
\usepackage{mathtools}\begin{document}\section{第一步}\[a \to b \to c \to d \to e \to f \to g\]\section{第二步}\[a \to b \to c \llap{$\overbracket[0.01cm]{\phantom{b \to c}}^{\text{第1个方括号}}$}\to d \to e \to f \to g\]\section{第三步}\[a \to b \to c \llap{$\overbracket[0.01cm]{\phantom{b \to c}}^{\text{第1个方括号}}$}\to d \to e \llap{$\overbracket[0.01cm][0.5cm]{\phantom{b \to c \to d \to e}}^{\text{第2个方括号}}$}\to f \to g\]\section{第四步}\[a \to b \to c \llap{$\overbracket[0.01cm]{\phantom{b \to c}}^{\text{第1个方括号}}$}\to d \to e \llap{$\overbracket[0.01cm][0.5cm]{\phantom{b \to c \to d \to e}}^{\text{第2个方括号}}$}\to f \to g\llap{$\overbracket[0.01cm][1cm]{\phantom{c \to d \to e \to f \to g}}^{\text{第3个方括号}}$}\]
\end{document}

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!





