创建一个可调整大小的符号?

创建一个可调整大小的符号?

\middle某些符号放在 a\left.和 a之间时,可以使用 来自动调整大小。它们通常也可以使用或\right. 来调整大小。此类符号的示例有和以及几乎所有括号;、、、等等。我从未见过完整的符号列表,其中\big\bigg|/([\{\langle以这种方式调整大小。它们是否在某些方面很特别,或者是否可以创建新的可调整大小的符号?如果可能:创建新的可调整大小符号的“正确”方法是什么?我的意思是,\mysymbol例如

\left( \somethinghuge \middle\mysymbol b \right)

将具有“正确”的大小。当然,请记住,人们通常希望将其应用于已经存在的符号,而这些符号确实不是调整大小。\#例如,像符号一样。

答案1

使用\scalerel,可以让一个参数与另一个参数的垂直范围相匹配。可选参数是最大宽度约束(在本例中,我选择了 2ex)。以下是同一代码处理两个不同\somethinghuge参数的示例。在本例中,我选择了\mysymbol作为一个/符号。

\documentclass{article}
\usepackage{scalerel}
\def\mysymbol{/}
\begin{document}
\def\somethinghuge{\rule[-2.2ex]{2ex}{6ex}}
$\left( \somethinghuge \scalerel*[2ex]{\mysymbol}{\somethinghuge} b \right)$
\def\somethinghuge{\rule[-3.2ex]{2ex}{8ex}}
$\left( \somethinghuge \scalerel*[2ex]{\mysymbol}{\somethinghuge} b \right)$
\end{document}

在此处输入图片描述

这是一个等效的语法,可以让您避免输入\somethinghuge两次。

$\left( \scaleleftright[2ex]{.}{\somethinghuge}{\mysymbol} b \right)$

答案2

\left可以用 调整大小的字符\middle\right那些具有非零 的 的字符\delcode。命令也是允许的,只要它们的扩展名以 开头;它们在中\delimiter定义:\DeclareMathDelimiterfontmath.ltx

%%% characters
\DeclareMathDelimiter{(}{\mathopen} {operators}{"28}{largesymbols}{"00}
\DeclareMathDelimiter{)}{\mathclose}{operators}{"29}{largesymbols}{"01}
\DeclareMathDelimiter{[}{\mathopen} {operators}{"5B}{largesymbols}{"02}
\DeclareMathDelimiter{]}{\mathclose}{operators}{"5D}{largesymbols}{"03}
\DeclareMathDelimiter{<}{\mathopen}{symbols}{"68}{largesymbols}{"0A}
\DeclareMathDelimiter{>}{\mathclose}{symbols}{"69}{largesymbols}{"0B}
\DeclareMathDelimiter{/}{\mathord}{operators}{"2F}{largesymbols}{"0E}
\DeclareMathSymbol{/}{\mathord}{letters}{"3D}
\DeclareMathDelimiter{|}{\mathord}{symbols}{"6A}{largesymbols}{"0C}
%%% commands
\DeclareMathDelimiter{\lmoustache}   % top from (, bottom from )
   {\mathopen}{largesymbols}{"7A}{largesymbols}{"40}
\DeclareMathDelimiter{\rmoustache}   % top from ), bottom from (
   {\mathclose}{largesymbols}{"7B}{largesymbols}{"41}
\DeclareMathDelimiter{\arrowvert}    % arrow without arrowheads
   {\mathord}{symbols}{"6A}{largesymbols}{"3C}
\DeclareMathDelimiter{\Arrowvert}    % double arrow without arrowheads
   {\mathord}{symbols}{"6B}{largesymbols}{"3D}
\DeclareMathDelimiter{\Vert}
   {\mathord}{symbols}{"6B}{largesymbols}{"0D}
\let\|=\Vert
\DeclareMathDelimiter{\vert}
   {\mathord}{symbols}{"6A}{largesymbols}{"0C}
\DeclareMathDelimiter{\uparrow}
   {\mathrel}{symbols}{"22}{largesymbols}{"78}
\DeclareMathDelimiter{\downarrow}
   {\mathrel}{symbols}{"23}{largesymbols}{"79}
\DeclareMathDelimiter{\updownarrow}
   {\mathrel}{symbols}{"6C}{largesymbols}{"3F}
\DeclareMathDelimiter{\Uparrow}
   {\mathrel}{symbols}{"2A}{largesymbols}{"7E}
\DeclareMathDelimiter{\Downarrow}
   {\mathrel}{symbols}{"2B}{largesymbols}{"7F}
\DeclareMathDelimiter{\Updownarrow}
   {\mathrel}{symbols}{"6D}{largesymbols}{"77}
\DeclareMathDelimiter{\backslash}    % for double coset G\backslash H
   {\mathord}{symbols}{"6E}{largesymbols}{"0F}
\DeclareMathDelimiter{\rangle}
   {\mathclose}{symbols}{"69}{largesymbols}{"0B}
\DeclareMathDelimiter{\langle}
   {\mathopen}{symbols}{"68}{largesymbols}{"0A}
\DeclareMathDelimiter{\rbrace}
   {\mathclose}{symbols}{"67}{largesymbols}{"09}
\DeclareMathDelimiter{\lbrace}
   {\mathopen}{symbols}{"66}{largesymbols}{"08}
\DeclareMathDelimiter{\rceil}
   {\mathclose}{symbols}{"65}{largesymbols}{"07}
\DeclareMathDelimiter{\lceil}
   {\mathopen}{symbols}{"64}{largesymbols}{"06}
\DeclareMathDelimiter{\rfloor}
   {\mathclose}{symbols}{"63}{largesymbols}{"05}
\DeclareMathDelimiter{\lfloor}
   {\mathopen}{symbols}{"62}{largesymbols}{"04}
\DeclareMathDelimiter{\lgroup} % extensible ( with sharper tips
     {\mathopen}{largesymbols}{"3A}{largesymbols}{"3A}
\DeclareMathDelimiter{\rgroup} % extensible ) with sharper tips
     {\mathclose}{largesymbols}{"3B}{largesymbols}{"3B}
\DeclareMathDelimiter{\bracevert} % the vertical bar that extends braces
     {\mathord}{largesymbols}{"3E}{largesymbols}{"3E}

其他的可能由其他包定义。

为了知道某个字符是否对应于可调整大小的分隔符,请检查其\delcode

\showthe\delcode`(

将输出164608。对于命令,使用\show; 例如,\show\bracevert将输出

\bracevert:
macro:->\delimiter "033E33E 

有些分隔符可以任意调整大小,例如括号,它们由可重复的部分组成,且尺寸较大。其他分隔符,例如,则/具有最大尺寸。

相关内容