如何在Typst中为向量添加侧边括号?
在Typst中为向量添加侧边括号的实现方法
完全可以在Typst中实现向量的侧边括号(包括多层侧边括号),下面是具体的实现方案:
1. 基础单侧边括号向量
如果只需要给整个向量添加单侧括号,直接用stack元素搭配brace即可:
#stack( direction: "down", brace(left: true), // 换成right: true可生成右侧括号 $x_1$, $x_2$, $x_3$, $x_4$, )
这段代码会生成一个左侧带大括号的垂直向量。
2. 多层侧边括号(分组标注)
如果需要像参考图那样给向量的不同元素组添加独立侧边括号,可以用overlay叠加多个stack来实现,通过位置调整让括号对应到指定元素组:
#overlay( // 外层大括号,覆盖所有元素 stack( direction: "down", brace(left: true, stroke: 1.2pt), $x_1$, $x_2$, $x_3$, $x_4$, ), // 内层括号1,覆盖前2个元素 align(center + top, shift(y: 0.6em, x: -0.9em), stack( direction: "down", brace(left: true, stroke: 0.9pt), $x_1$, $x_2$, ) ), // 内层括号2,覆盖后2个元素 align(center + bottom, shift(y: -0.6em, x: -0.9em), stack( direction: "down", brace(left: true, stroke: 0.9pt), $x_3$, $x_4$, ) ), )
代码说明:
stack负责垂直排列元素和对应的括号,brace的left/right参数控制括号方向,stroke调整括号粗细;overlay用来叠加多个带括号的元素组,实现多层括号效果;shift参数用来调整内层括号的位置,确保括号刚好覆盖目标元素组;- 如果需要右侧多层括号,只需把所有
brace(left: true)替换为brace(right: true),并调整shift(x: ...)的数值(比如改成x: 0.9em)。
补充:LaTeX中的实现思路(翻译自相关文章)
在LaTeX中实现同类效果,通常依赖amsmath宏包,核心方法包括:
- 使用
array环境配合\left\{和\right.生成对应高度的括号; - 借助
\raisebox和\phantom调整括号的垂直位置,实现分组覆盖; - 嵌套
cases环境或自定义array结构,完成多层括号的组合。
内容的提问来源于stack exchange,提问作者Maturin
相关产品推荐
相关产品推荐

