\DeclarePairedDelimiter
允许定义可扩展的分隔符(例如使用选项\big
)。下面提供了一个带有双括号的示例。我需要一个带有三括号的类似分隔符。由于我找不到,所以我从在中找到的双括号符号构建了它stmaryd
。不幸的是,我不能将它与 一起使用\DeclarePairedDelimiter
:( 所以,我的问题是:如何为可扩展的三括号分隔符定义宏?
\documentclass{article}
\usepackage{mathtools,stmaryrd}
\DeclarePairedDelimiter{\dbr}{\llbracket}{\rrbracket}
\newcommand{\tbr}[1]{\llbracket\mkern-5mu\llbracket #1 \rrbracket\mkern-5mu\rrbracket}
\begin{document}
Double brackets:
\[
\dbr{x} \quad \dbr[\big]{T^T}
\]
Triple brackets:
\[
\tbr{x} \quad \tbr{T^T}
\]
\end{document}
答案1
鼓励David Carlisle 的回复,我最终决定发布这个答案。我本来打算写一个全面的答案来解释解决方案的工作原理,但我很快意识到它将大大超出 30000 个字符的限制——事实上,仅代码就超过 26000 字节!也许我会把解释作为一个单独的答案发布,现在请参考:
我的答案针对这个问题 任意 \left\right 分隔符。
基于虚拟字体的解决方案;它为您提供了两个新的可扩展符号,名为\lBbrack
和\rBbrack
,您可以像使用任何其他分隔符一样使用它们(与\bigl
& Co.、\left
、\right
、\genfrac
、\DeclarePairedDelimiter
、 等一起使用)。例如,
\DeclarePairedDelimiter{\Bra}{[}{]}
你也可以说
\DeclarePairedDelimiter{\WonderBra}{\lBbrack}{\rBbrack}
测试解决方案的说明:
- 创建一个新的空目录并移动到该目录。
- 保存以下代码到
tripledelimiters10.vpl
:(家庭三重分隔符) (编码方案字体特定) (设计尺寸 R 10.0) (评论设计尺寸以点为单位) (注释其他尺寸是设计尺寸的倍数) (MAPFONT D 0(字体名称 cmex10)) (MAPFONT D 1(字体名称 cmsy10)) (MAPFONT D 2(字体名称 cmr10)) (丰迪门 (倾斜 R 0.0) (空格 R 0.0) (拉伸 R 0.0) (缩小 R 0.0) (X高度 R 0.430555) (四 R 1.000003) (额外空间 R 0.0) ) (字符 O 0 (CHARWD R 0.916672) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 20) (地图 (设置字符O 0) (向左移动 R 0.229168) (设置字符O 0) (向左移动 R 0.229168) (设置字符O 0) ) ) (字符 O 1 (CHARWD R 0.916672) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 21) (地图 (设置字符 O 1) (向左移动 R 0.229168) (设置字符 O 1) (向左移动 R 0.229168) (设置字符 O 1) ) ) (字符 O 2 (CHARWD R 0.833338) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 较大 O 150) (地图 (设置字符 O 2) (向左移动 R 0.2083345) (设置字符 O 2) (向左移动 R 0.2083345) (设置字符 O 2) ) ) (字符 O 3 (CHARWD R 0.833338) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 151) (地图 (设置字符 O 3) (向左移动 R 0.2083345) (设置字符 O 3) (向左移动 R 0.2083345) (设置字符 O 3) ) ) (字符 O 4 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 152) (地图 (设置字符 O 4) (向左移动 R 0.236112) (设置字符 O 4) (向左移动 R 0.236112) (设置字符 O 4) ) ) (字符 O 5 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 153) (地图 (设置字符 O 5) (向左移动 R 0.236112) (设置字符 O 5) (向左移动 R 0.236112) (设置字符 O 5) ) ) (字符 O 6 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 154) (地图 (设置字符 O 6) (向左移动 R 0.236112) (设置字符 O 6) (向左移动 R 0.236112) (设置字符 O 6) ) ) (字符 O 7 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 155) (地图 (设置字符 O 7) (向左移动 R 0.236112) (设置字符 O 7) (向左移动 R 0.236112) (设置字符 O 7) ) ) (字符 O 10 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 156) (地图 (设置字符 O 10) (向左移动 R 0.291668) (设置字符 O 10) (向左移动 R 0.291668) (设置字符 O 10) ) ) (字符 O 11 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 157) (地图 (设置字符 O 11) (向左移动 R 0.291668) (设置字符 O 11) (向左移动 R 0.291668) (设置字符 O 11) ) ) (字符 O 12 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 104) (地图 (设置字符 O 12) (向左移动 R 0.236112) (设置字符 O 12) (向左移动 R 0.236112) (设置字符 O 12) ) ) (字符 O 13 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.160013) (下一张 放大 O 105) (地图 (设置字符 O 13) (向左移动 R 0.236112) (设置字符 O 13) (向左移动 R 0.236112) (设置字符 O 13) ) ) (字符 O 14 (CHARWD R 0.666668) (CHARDP R 0.600006) (VARCHAR) (第 14 号报告) ) (地图 (设置字符 O 14) (向左移动 R 0.166667) (设置字符 O 14) (向左移动 R 0.166667) (设置字符 O 14) ) ) (字符 O 20 (CHARWD R 1.194448) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 22) (地图 (设置字符 O 20) (向左移动 R 0.298612) (设置字符 O 20) (向左移动 R 0.298612) (设置字符 O 20) ) ) (字符 O 21 (CHARWD R 1.194448) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 23) (地图 (设置字符 O 21) (向左移动 R 0.298612) (设置字符 O 21) (向左移动 R 0.298612) (设置字符 O 21) ) ) (字符 O 22 (CHARWD R 1.472229) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 40) (地图 (设置字符 O 22) (向左移动 R 0.36805725) (设置字符 O 22) (向左移动 R 0.36805725) (设置字符 O 22) ) ) (字符 O 23 (CHARWD R 1.472229) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 41) (地图 (设置字符 O 23) (向左移动 R 0.36805725) (设置字符 O 23) (向左移动 R 0.36805725) (设置字符 O 23) ) ) (字符 O 24 (CHARWD R 1.055562) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 42) (地图 (设置字符 O 24) (向左移动 R 0.2638905) (设置字符 O 24) (向左移动 R 0.2638905) (设置字符 O 24) ) ) (字符 O 25 (CHARWD R 1.055562) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 43) (地图 (设置字符 O 25) (向左移动 R 0.2638905) (设置字符 O 25) (向左移动 R 0.2638905) (设置字符 O 25) ) ) (字符 O 26 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 44) (地图 (设置字符 O 26) (向左移动 R 0.291668) (设置字符 O 26) (向左移动 R 0.291668) (设置字符 O 26) ) ) (字符 O 27 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 45) (地图 (设置字符 O 27) (向左移动 R 0.291668) (设置字符 O 27) (向左移动 R 0.291668) (设置字符 O 27) ) ) (字符 O 30 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 46) (地图 (设置字符 O 30) (向左移动 R 0.291668) (设置字符 O 30) (向左移动 R 0.291668) (设置字符 O 30) ) ) (字符 O 31 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 47) (地图 (设置字符 O 31) (向左移动 R 0.291668) (设置字符 O 31) (向左移动 R 0.291668) (设置字符 O 31) ) ) (字符 O 32 (CHARWD R 1.500004) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 50) (地图 (设置字符 O 32) (向左移动 R 0.375001) (设置字符 O 32) (向左移动 R 0.375001) (设置字符 O 32) ) ) (字符 O 33 (CHARWD R 1.500004) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 51) (地图 (设置字符 O 33) (向左移动 R 0.375001) (设置字符 O 33) (向左移动 R 0.375001) (设置字符 O 33) ) ) (字符 O 34 (CHARWD R 1.500004) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 52) (地图 (设置字符 O 34) (向左移动 R 0.375001) (设置字符 O 34) (向左移动 R 0.375001) (设置字符 O 34) ) ) (字符 O 35 (CHARWD R 1.500004) (CHARHT R 0.039999) (CHARDP R 2.360025) (下一张 放大 O 53) (地图 (设置字符 O 35) (向左移动 R 0.375001) (设置字符 O 35) (向左移动 R 0.375001) (设置字符 O 35) ) ) (字符 O 40 (CHARWD R 1.58334) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 60) (地图 (设置字符 O 40) (向左移动 R 0.395835) (设置字符 O 40) (向左移动 R 0.395835) (设置字符 O 40) ) ) (字符 O 41 (CHARWD R 1.58334) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 61) (地图 (设置字符 O 41) (向左移动 R 0.395835) (设置字符 O 41) (向左移动 R 0.395835) (设置字符 O 41) ) ) (字符 O 42 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 62) (地图 (设置字符 O 42) (向左移动 R 0.291668) (设置字符 O 42) (向左移动 R 0.291668) (设置字符 O 42) ) ) (字符 O 43 (CHARWD R 1.166672) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 63) (地图 (设置字符 O 43) (向左移动 R 0.291668) (设置字符 O 43) (向左移动 R 0.291668) (设置字符 O 43) ) ) (字符 O 44 (CHARWD R 1.277782) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 64) (地图 (设置字符 O 44) (向左移动 R 0.3194455) (设置字符 O 44) (向左移动 R 0.3194455) (设置字符 O 44) ) ) (字符 O 45 (CHARWD R 1.277782) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 65) (地图 (设置字符 O 45) (向左移动 R 0.3194455) (设置字符 O 45) (向左移动 R 0.3194455) (设置字符 O 45) ) ) (字符 O 46 (CHARWD R 1.277782) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 66) (地图 (设置字符 O 46) (向左移动 R 0.3194455) (设置字符 O 46) (向左移动 R 0.3194455) (设置字符 O 46) ) ) (字符 O 47 (CHARWD R 1.277782) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 67) (地图 (设置字符 O 47) (向左移动 R 0.3194455) (设置字符 O 47) (向左移动 R 0.3194455) (设置字符 O 47) ) ) (字符 O 50 (CHARWD R 1.61112) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 70) (地图 (设置字符 O 50) (向左移动 R 0.40278) (设置字符 O 50) (向左移动 R 0.40278) (设置字符 O 50) ) ) (字符 O 51 (CHARWD R 1.61112) (CHARHT R 0.039999) (CHARDP R 2.9600315) (下一张 放大 O 71) (地图 (设置字符 O 51) (向左移动 R 0.40278) (设置字符 O 51) (向左移动 R 0.40278) (设置字符 O 51) ) ) (字符 O 52 (CHARWD R 1.61112) (CHARHT R 0.039999) (CHARDP R 2.9600315) (地图 (设置字符 O 52) (向左移动 R 0.40278) (设置字符 O 52) (向左移动 R 0.40278) (设置字符 O 52) ) ) (字符 O 53 (CHARWD R 1.61112) (CHARHT R 0.039999) (CHARDP R 2.9600315) (地图 (设置字符 O 53) (向左移动 R 0.40278) (设置字符 O 53) (向左移动 R 0.40278) (设置字符 O 53) ) ) (字符 O 60 (CHARWD R 1.750006) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (前 60 名) (BOT 100) (代表 O 102) ) (地图 (设置字符 O 60) (向左移动 R 0.4375015) (设置字符 O 60) (向左移动 R 0.4375015) (设置字符 O 60) ) ) (字符 O 61 (CHARWD R 1.750006) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (顶部 O 61) (BOT 101) (代表 O 103) ) (地图 (设置字符 O 61) (向左移动 R 0.4375015) (设置字符 O 61) (向左移动 R 0.4375015) (设置字符 O 61) ) ) (字符 O 62 (CHARWD R 1.333338) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (顶部 O 62) (BOT O 64) (第 66 号报告) ) (地图 (设置字符 O 62) (向左移动 R 0.3333345) (设置字符 O 62) (向左移动 R 0.3333345) (设置字符 O 62) ) ) (字符 O 63 (CHARWD R 1.333338) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (顶部 O 63) (BOT O 65) (第 67 号报告) ) (地图 (设置字符 O 63) (向左移动 R 0.3333345) (设置字符 O 63) (向左移动 R 0.3333345) (设置字符 O 63) ) ) (字符 O 64 (CHARWD R 1.333338) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (BOT O 64) (第 66 号报告) ) (地图 (设置字符 O 64) (向左移动 R 0.3333345) (设置字符 O 64) (向左移动 R 0.3333345) (设置字符 O 64) ) ) (字符 O 65 (CHARWD R 1.333338) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (BOT O 65) (第 67 号报告) ) (地图 (设置字符 O 65) (向左移动 R 0.3333345) (设置字符 O 65) (向左移动 R 0.3333345) (设置字符 O 65) ) ) (字符 O 66 (CHARWD R 1.333338) (CHARDP R 0.600006) (VARCHAR) (顶部 O 62) (第 66 号报告) ) (地图 (设置字符 O 66) (向左移动 R 0.3333345) (设置字符 O 66) (向左移动 R 0.3333345) (设置字符 O 66) ) ) (字符 O 67 (CHARWD R 1.333338) (CHARDP R 0.600006) (VARCHAR) (顶部 O 63) (第 67 号报告) ) (地图 (设置字符 O 67) (向左移动 R 0.3333345) (设置字符 O 67) (向左移动 R 0.3333345) (设置字符 O 67) ) ) (字符 O 70 (CHARWD R 1.777782) (CHARDP R 0.900009) (VARCHAR) (前 70 名) (中部 O 74) (BOT O 72) (第 76 号报告) ) (地图 (设置字符 O 70) (向左移动 R 0.4444455) (设置字符 O 70) (向左移动 R 0.4444455) (设置字符 O 70) ) ) (字符 O 71 (CHARWD R 1.777782) (CHARDP R 0.900009) (VARCHAR) (顶部 O 71) (中部 O 75) (BOT O 73) (第 76 号报告) ) (地图 (设置字符 O 71) (向左移动 R 0.4444455) (设置字符 O 71) (向左移动 R 0.4444455) (设置字符 O 71) ) ) (字符 O 72 (CHARWD R 1.777782) (CHARDP R 0.900009) (VARCHAR) (前 70 名) (BOT O 72) (第 76 号报告) ) (地图 (设置字符 O 72) (向左移动 R 0.4444455) (设置字符 O 72) (向左移动 R 0.4444455) (设置字符 O 72) ) ) (字符 O 73 (CHARWD R 1.777782) (CHARDP R 0.900009) (VARCHAR) (顶部 O 71) (BOT O 73) (第 76 号报告) ) (地图 (设置字符 O 73) (向左移动 R 0.4444455) (设置字符 O 73) (向左移动 R 0.4444455) (设置字符 O 73) ) ) (字符 O 74 (CHARWD R 1.777782) (CHARDP R 1.800018) (VARCHAR) (第 77 号报告) ) (地图 (设置字符 O 74) (向左移动 R 0.4444455) (设置字符 O 74) (向左移动 R 0.4444455) (设置字符 O 74) ) ) (字符 O 75 (CHARWD R 1.777782) (CHARDP R 1.800018) (地图 (设置字符 O 75) (向左移动 R 0.4444455) (设置字符 O 75) (向左移动 R 0.4444455) (设置字符 O 75) ) ) (字符 O 76 (CHARWD R 1.777782) (CHARDP R 0.300003) (VARCHAR) (第 76 号报告) ) (地图 (设置字符 O 76) (向左移动 R 0.4444455) (设置字符 O 76) (向左移动 R 0.4444455) (设置字符 O 76) ) ) (字符 O 77 (CHARWD R 1.333338) (CHARDP R 0.600006) (地图 (设置字符 O 77) (向左移动 R 0.3333345) (设置字符 O 77) (向左移动 R 0.3333345) (设置字符 O 77) ) ) (字符 O 100 (CHARWD R 1.750006) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (前 70 名) (BOT O 73) (第 76 号报告) ) (地图 (设置字符 O 100) (向左移动 R 0.4375015) (设置字符 O 100) (向左移动 R 0.4375015) (设置字符 O 100) ) ) (字符 O 101 (CHARWD R 1.750006) (CHARHT R 0.039999) (CHARDP R 1.760019) (VARCHAR) (顶部 O 71) (BOT O 72) (第 76 号报告) ) (地图 (设置字符 O 101) (向左移动 R 0.4375015) (设置字符 O 101) (向左移动 R 0.4375015) (设置字符 O 101) ) ) (字符 O 102 (CHARWD R 1.750006) (CHARDP R 0.600006) (VARCHAR) (代表 O 102) ) (地图 (设置字符 O 102) (向左移动 R 0.4375015) (设置字符 O 102) (向左移动 R 0.4375015) (设置字符 O 102) ) ) (字符 O 103 (CHARWD R 1.750006) (CHARDP R 0.600006) (VARCHAR) (代表 O 103) ) (地图 (设置字符 O 103) (向左移动 R 0.4375015) (设置字符 O 103) (向左移动 R 0.4375015) (设置字符 O 103) ) ) (字符 O 104 (CHARWD R 1.222226) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 34) (地图 (设置字符 O 104) (向左移动 R 0.3055565) (设置字符 O 104) (向左移动 R 0.3055565) (设置字符 O 104) ) ) (字符 O 105 (CHARWD R 1.222226) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 35) (地图 (设置字符 O 105) (向左移动 R 0.3055565) (设置字符 O 105) (向左移动 R 0.3055565) (设置字符 O 105) ) ) (字符 O 120 (CHARWD R 0.77778) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 0) (地图 (选择字体 D 2) (设置字符 O 50) (向左移动 R 0.194445) (设置字符 O 50) (向左移动 R 0.194445) (设置字符 O 50) ) ) (字符 O 121 (CHARWD R 0.77778) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 1) (地图 (选择字体 D 2) (设置字符 O 51) (向左移动 R 0.194445) (设置字符 O 51) (向左移动 R 0.194445) (设置字符 O 51) ) ) (字符 O 122 (CHARWD R 0.555558) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 2) (地图 (选择字体 D 2) (设置字符 O 133) (向左移动 R 0.1388895) (设置字符 O 133) (向左移动 R 0.1388895) (设置字符 O 133) ) ) (字符 O 123 (CHARWD R 0.555558) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 3) (地图 (选择字体 D 2) (设置字符 O 135) (向左移动 R 0.1388895) (设置字符 O 135) (向左移动 R 0.1388895) (设置字符 O 135) ) ) (字符 O 124 (CHARWD R 0.888892) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 4) (地图 (选择字体 D 1) (设置字符 O 142) (向左移动 R 0.222223) (设置字符 O 142) (向左移动 R 0.222223) (设置字符 O 142) ) ) (字符 O 125 (CHARWD R 0.888892) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 5) (地图 (选择字体 D 1) (设置字符 O 143) (向左移动 R 0.222223) (设置字符 O 143) (向左移动 R 0.222223) (设置字符 O 143) ) ) (字符 O 126 (CHARWD R 0.888892) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 6) (地图 (选择字体 D 1) (设置字符 O 144) (向左移动 R 0.222223) (设置字符 O 144) (向左移动 R 0.222223) (设置字符 O 144) ) ) (字符 O 127 (CHARWD R 0.888892) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 7) (地图 (选择字体 D 1) (设置字符 O 145) (向左移动 R 0.222223) (设置字符 O 145) (向左移动 R 0.222223) (设置字符 O 145) ) ) (字符 O 130 (CHARWD R 1.000004) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 10) (地图 (选择字体 D 1) (设置字符 O 146) (向左移动 R 0.250001) (设置字符 O 146) (向左移动 R 0.250001) (设置字符 O 146) ) ) (字符 O 131 (CHARWD R 1.000004) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 11) (地图 (选择字体 D 1) (设置字符 O 147) (向左移动 R 0.250001) (设置字符 O 147) (向左移动 R 0.250001) (设置字符 O 147) ) ) (字符 O 132 (CHARWD R 0.77778) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 12) (地图 (选择字体 D 1) (设置字符 O 150) (向左移动 R 0.194445) (设置字符 O 150) (向左移动 R 0.194445) (设置字符 O 150) ) ) (字符 O 133 (CHARWD R 0.77778) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 13) (地图 (选择字体 D 1) (设置字符 O 151) (向左移动 R 0.194445) (设置字符 O 151) (向左移动 R 0.194445) (设置字符 O 151) ) ) (字符 O 134 (CHARWD R 0.555558) (费用 R 0.75) (CHARDP R 0.25) (下一张 放大 O 14) (地图 (选择字体 D 1) (设置字符 O 152) (向左移动 R 0.1388895) (设置字符 O 152) (向左移动 R 0.1388895) (设置字符 O 152) ) ) (字符 O 150 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 24) (地图 (设置字符 O 150) (向左移动 R 0.236112) (设置字符 O 150) (向左移动 R 0.236112) (设置字符 O 150) ) ) (字符 O 151 (CHARWD R 0.944448) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 25) (地图 (设置字符 O 151) (向左移动 R 0.236112) (设置字符 O 151) (向左移动 R 0.236112) (设置字符 O 151) ) ) (字符 O 152 (CHARWD R 1.055562) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 26) (地图 (设置字符 O 152) (向左移动 R 0.2638905) (设置字符 O 152) (向左移动 R 0.2638905) (设置字符 O 152) ) ) (字符 O 153 (CHARWD R 1.055562) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 27) (地图 (设置字符 O 153) (向左移动 R 0.2638905) (设置字符 O 153) (向左移动 R 0.2638905) (设置字符 O 153) ) ) (字符 O 154 (CHARWD R 1.055562) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 30) (地图 (设置字符 O 154) (向左移动 R 0.2638905) (设置字符 O 154) (向左移动 R 0.2638905) (设置字符 O 154) ) ) (字符 O 155 (CHARWD R 1.055562) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 31) (地图 (设置字符 O 155) (向左移动 R 0.2638905) (设置字符 O 155) (向左移动 R 0.2638905) (设置字符 O 155) ) ) (字符 O 156 (CHARWD R 1.333338) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 32) (地图 (设置字符 O 156) (向左移动 R 0.3333345) (设置字符 O 156) (向左移动 R 0.3333345) (设置字符 O 156) ) ) (字符 O 157 (CHARWD R 1.333338) (CHARHT R 0.039999) (CHARDP R 1.760019) (下一张 放大 O 33) (地图 (设置字符 O 157) (向左移动 R 0.3333345) (设置字符 O 157) (向左移动 R 0.3333345) (设置字符 O 157) ) )
- 在 shell 提示符下输入以下内容:
vptovf tripledelimiters10.vpl
这将生成两个名为
tripledelimiters10.tfm
和 的文件tripledelimiters10.vf
,它们始终位于同一目录中。 - 保存以下代码到
tridelim.sty
:\NeedsTeXFormat{LaTeX2e}\relax % 需要 LaTeX2e! \提供包{tridelim} [2018/03/25 v0.01(开发)]
\DeclareFontFamily{U}{tridelim}{\hyphenchar\font \m@ne} \DeclareFontShape{U}{tridelim}{m}{n}{<->tripledelimiters10}{}
\DeclareSymbolFont{triplesymbols}{U}{tridelim}{m}{n} \DeclareMathDelimiter{\lPparen}{\mathopen} {triplesymbols}{"50}{triplesymbols}{"50} \DeclareMathDelimiter{\rPparen}{\mathclose} {triplesymbols}{"51}{triplesymbols}{"51} \DeclareMathDelimiter{\lBbrack}{\mathopen} {triplesymbols}{"52}{triplesymbols}{"52} \DeclareMathDelimiter{\rBbrack}{\mathclose} {triplesymbols}{"53}{triplesymbols}{"53} \DeclareMathDelimiter{\lFfloor}{\mathopen} {triplesymbols}{"54}{triplesymbols}{"54} \DeclareMathDelimiter{\rFfloor}{\mathclose} {triplesymbols}{"55}{triplesymbols}{"55} \DeclareMathDelimiter{\lCceil}{\mathopen} {triplesymbols}{"56}{triplesymbols}{"56} \DeclareMathDelimiter{\rCceil}{\mathclose} {triplesymbols}{"57}{triplesymbols}{"57} \DeclareMathDelimiter{\lBbrace}{\mathopen} {triplesymbols}{"58}{triplesymbols}{"58} \DeclareMathDelimiter{\rBbrace}{\mathclose} {triplesymbols}{"59}{triplesymbols}{"59} \DeclareMathDelimiter{\lAangle}{\mathopen} {triplesymbols}{"5A}{triplesymbols}{"5A} \DeclareMathDelimiter{\rAangle}{\mathclose} {triplesymbols}{"5B}{triplesymbols}{"5B} \DeclareMathDelimiter{\Vvert}{\mathord} {triplesymbols}{"5C}{triplesymbols}{"5C} \DeclareMathDelimiter{\lVvert}{\mathopen} {triplesymbols}{"5C}{triplesymbols}{"5C} \DeclareMathDelimiter{\rVvert}{\mathclose} {triplesymbols}{"5C}{triplesymbols}{"5C} \DeclareMathDelimiter{\Aarrowvert}{\mathord} {triplesymbols}{"3C}{triplesymbols}{"3C} \DeclareMathDelimiter{\Bbracevert}{\mathord} {triplesymbols}{"3E}{triplesymbols}{"3E} \DeclareMathDelimiter{\lGgroup}{\mathopen} {triplesymbols}{"3A}{triplesymbols}{"3A} \DeclareMathDelimiter{\rGgroup}{\mathclose} {triplesymbols}{"3B}{triplesymbols}{"3B}
- 将以下代码保存到
test.tex
:% 我对于 TeX.SX 的标准标题回答: \documentclass[a4paper]{article} % 为避免混淆,我们明确 % 声明论文格式。
\usepackage[T1]{fontenc} % 并非总是必要的,但建议使用。 \usepackage[utf8]{inputenc} % 并非总是必要的,但建议使用。 % 标准头结束。以下内容与当前问题有关。
\usepackage{mathtools} \usepackage{tridelim}
\DeclarePairedDelimiter{\tripleparen}{\lPparen}{\rPparen} \DeclarePairedDelimiter{\triplebrack}{\lBbrack}{\rBbrack} \DeclarePairedDelimiter{\triplefloor}{\lFfloor}{\rFfloor} \DeclarePairedDelimiter{\tripleceil} {\lCceil} {\rCceil} \DeclarePairedDelimiter{\triplebrace}{\lBbrace}{\rBbrace} \DeclarePairedDelimiter{\tripleangle}{\lAangle}{\rAangle} \DeclarePairedDelimiter{\triplevert} {\lVvert} {\rVvert} \DeclarePairedDelimiter{\triplegroup}{\lGgroup}{\rGgroup} \DeclarePairedDelimiter{\triplearrowvert}{\Aarrowvert}{\Aarrowvert} \DeclarePairedDelimiter{\triplebracevert}{\Bbracevert}{\Bbracevert}
\DeclarePairedDelimiterX\triplebracket[3]{\lAangle}{\rAangle} {#1\,\delimsize\Vvert\,\mathopen{}#2\,\delimsize\Vvert\,\mathopen{}#3}
\newcommand*{\testfraction}{\frac{a}{b}} \newcommand*{\testbigfraction}{% \frac{\,\frac{d^{n}}{dt^{n}}\,}{n!}% } \newcommand*{\testmatrix}{% \开始{矩阵}% 1&0&0&0\\% 0&1&0&0\\% 0&0&1&0\\% 0&0&0&1% \结束{矩阵}% }
\开始{文档}
我们从一个简单的公式开始:\(P\lPparen x\rPparen \)。 在子\斜杠上标中也可以吗?让我们检查一下: \( Z^{P\lPparen x\rPparen} \)和 \( 2^{Z_{P\lPparen x\rPparen}} \)。 它有效,但不是最优的:事实上,与 \( Z^{P(x)} \)和 \( 2^{Z_{P(x)}} \)。
以下是显示的正常尺寸: \开始{对齐*} & x \tripleparen{y} z & & x \triplebrack{y} z & & x \triplefloor{y} z & & x \tripleceil {y} z & & x \triplebrace{y} z \\ & x \tripleangle{y} z & & x \triplevert {y} z & & y \triplearrowvert*{x} z & % 需要 "\left" 和 "\right" & y \triplebracevert*{x} z % 需要 "\left" 和 "\right" \结束{对齐*}
以下是显示的 \verb|\big| 尺寸: \开始{对齐*} & x \tripleparen[\big]{y} z & & x \triplebrack[\big]{y} z & & x \triplefloor[\big]{y} z & & x \tripleceil [\big]{y} z & & x \triplebrace[\big]{y} z \\ & x \tripleangle[\big]{y} z & & x \triplevert [\big]{y} z & & x \triplearrowvert[\big]{y} z & & x \triplebracevert[\big]{y} z \结束{对齐*}
以下是 \verb|\Big| 尺寸的显示: \开始{对齐*} & x \tripleparen[\Big]{\testfraction} z & & x \triplebrack[\Big]{\testfraction} z & & x \triplefloor[\Big]{\testfraction} z & & x \tripleceil [\Big]{\testfraction} z & & x \triplebrace[\Big]{\testfraction} z \\ & x \tripleangle[\Big]{\testfraction} z & & x \triplegroup[\Big]{\testfraction} z & % 较小尺寸不可用 & x \triplevert [\Big]{\testfraction} z & & x \triplearrowvert[\Big]{\testfraction} z & & x \triplebracevert[\Big]{\testfraction} z \结束{对齐*}
以下是显示的 \verb|\bigg| 尺寸: \开始{对齐*} & x \tripleparen[\bigg]{\testfraction} z & & x \triplebrack[\bigg]{\testfraction} z & & x \triplefloor[\bigg]{\testfraction} z & & x \tripleceil [\bigg]{\testfraction} z & & x \triplebrace[\bigg]{\testfraction} z \\ & x \tripleangle[\bigg]{\testfraction} z & & x \triplegroup[\bigg]{\testfraction} z & & x \triplevert [\bigg]{\testfraction} z & & x \triplearrowvert[\bigg]{\testfraction} z & & x \triplebracevert[\bigg]{\testfraction} z \结束{对齐*}
显示的 \verb|\Bigg| 尺寸如下: \开始{对齐*} & x \tripleparen[\Bigg]{\testbigfraction} z & & x \triplebrack[\Bigg]{\testbigfraction} z & & x \triplefloor[\Bigg]{\testbigfraction} z & & x \tripleceil [\Bigg]{\testbigfraction} z \\ & x \triplebrace[\Bigg]{\testbigfraction} z & & x \tripleangle[\Bigg]{\testbigfraction} z & & x \triplegroup[\Bigg]{\testbigfraction} z \\ & x \triplevert [\Bigg]{\testbigfraction} z & & x \triplearrowvert[\Bigg]{\testbigfraction} z & & x \triplebracevert[\Bigg]{\testbigfraction} z \结束{对齐*}
最后,出色的自动调整大小分隔符始终显示: \开始{对齐*} & x \tripleparen*{\testmatrix} z & & x \triplebrack*{\testmatrix} z & & x \triplefloor*{\testmatrix} z \\ & x \tripleceil* {\testmatrix} z & & x \triplebrace*{\testmatrix} z & & x \triplegroup*{\testmatrix} z \\ & x \triplevert* {\testmatrix} z & & x \triplearrowvert*{\testmatrix} z & & x \triplebracevert*{\testmatrix} z \结束{对齐*}
对于以下示例,请参见 \textsf{mathtools} 手册的第 26 页 包裹: \( \triplebracket[\big]{B}{\sum_{k} f_k}{C} \)。
\结束{文档}
- 编译
test.tex
应产生以下输出:
答案2
您可以使用\DeclarePairedDelimiterX{\tbr}[1]{\llbracket}{\rrbracket}{\mkern-5mu\delimsize\llbracket \mathopen{}#1 \mathclose{} \delimsize\rrbracket\mkern-5mu}
更多信息,请参阅第 26 页数学工具手册。基本上\DeclarePairedDelimiterX{〈cmd〉}[〈num args〉]{〈left_delim〉}{〈right_delim〉}{〈body〉}
允许您另外指定一个由外括号包围的宏。\delimsize
给出外括号的大小。\mathopen{}
并\mathclose{}
修复可能出现的间距问题(参见此回答以及第 26 页的脚注数学工具手册)。
编辑:这是我目前所得到的。最小的括号有轻微的位移,带星号的版本不起作用。为了获得更好的结果,我认为必须重新定义\DeclarePairedDelimiter
。
\documentclass{article}
\usepackage{mathtools,stmaryrd}
\usepackage{xcolor}
\DeclarePairedDelimiter{\dbr}{\llbracket}{\rrbracket}
\DeclarePairedDelimiterX{\tbr}[1]{\llbracket}{\rrbracket}{\nhphantom{$\delimsize\llbracket$}\delimsize\llbracket \mathopen{} #1 \mathclose{} \delimsize\rrbracket \nhphantom{$\delimsize\rrbracket$}}
\newcommand{\nhphantom}[1]{\sbox0{#1}\hspace{-0.751\wd0}}
\begin{document}
Double brackets:
\[
\dbr{x} \quad \dbr[\big]{T^T}
\]
Triple brackets:
\[
\tbr{x} \quad \tbr[\big]{T^T}
\]
\[
{\llbracket}\nhphantom{$\llbracket$}{\textcolor{red}{\llbracket}} \quad
{\big\llbracket}\nhphantom{$\big\llbracket$}{\textcolor{red}{\big\llbracket}} \quad
{\Big\llbracket}\nhphantom{$\Big\llbracket$}{\textcolor{red}{\Big\llbracket}} \quad
{\bigg\llbracket}\nhphantom{$\bigg\llbracket$}{\textcolor{red}{\bigg\llbracket}} \quad
{\Bigg\llbracket}\nhphantom{$\Bigg\llbracket$}{\textcolor{red}{\Bigg\llbracket}}
\]
\end{document}
结果: