下面是从mathtools
文档中改编的一些代码。我希望有\vzigzag
命令的可扩展版本,以便下面命令中的第二行按预期工作。实现这一点的最简单方法是什么?
\documentclass{article}
\usepackage{mathtools}
\usepackage{stix}
\providecommand\given{}
\newcommand\Symbol[1][]{%
\nonscript\:#1\vzigzag
\allowbreak
\nonscript\:
\mathopen{}}
\DeclarePairedDelimiterX\zigr[1](){\renewcommand\given{\Symbol[\delimsize]}#1}
\begin{document}
$E\zigr{a \given b}$ works.
%$E\zigr[\big]{a \given b}$ does not work.
\end{document}
答案1
这不是一个非常令人满意的解决方案,因为锯齿形的最小尺寸像\Big
。
这使用\lfilet
来自mathabx
。
\documentclass{article}
\usepackage{mathtools}
\usepackage{stix}
\DeclareFontFamily{U}{mathx}{}
\DeclareFontSubstitution{U}{mathx}{m}{n}
\DeclareFontShape{U}{mathx}{m}{n}{ <-> s*[0.4]mathx10 }{}
\DeclareSymbolFont{mathx}{U}{mathx}{m}{n}
\DeclareMathDelimiter{\lfilet}{4}{mathx}{"37}{mathx}{"37}
\providecommand\given{}
\newcommand\Symbol{%
\nonscript\:%
\expandafter\ifx\delimsize\empty
\expandafter\big
\else
\expandafter\delimsize
\fi\lfilet
\allowbreak
\nonscript\:%
\mathopen{}%
}
\DeclarePairedDelimiterX\zigr[1](){%
\renewcommand\given{\Symbol}#1%
}
\begin{document}
$E\zigr{a \given b}$ (normal)
$E\zigr[\big]{a \given b}$ (big)
$E\zigr[\Big]{a \given b}$ (Big)
$E\zigr[\bigg]{a \given b}$ (bigg)
$E\zigr[\Bigg]{a \given b}$ (Bigg)
\end{document}
答案2
这不是一个答案,因为我真的不知道\DeclarePairedDelimiterX
魔术是如何工作的,但告诉你,你可以用 Ti 轻松绘制不同大小的锯齿形钾Z。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\newcommand{\TikzZigZag}[1][0]{\ifcase#1%
\tikz[baseline=0.35em]{%
\draw[line width=0.06em,decorate,decoration={zigzag,segment
length=0.28em,amplitude=0.07em}](0,0)--(0,1em);}%
\or%
\tikz[baseline=0.5em]{%
\draw[line width=0.08em,decorate,decoration={zigzag,segment
length=0.4em,amplitude=0.1em}](0,0)--(0,1.4em);}%
\or
\tikz[baseline=1em]{%
\draw[line width=0.1em,decorate,decoration={zigzag,segment
length=0.65em,amplitude=0.15em}](0,0)--(0,2.4em);}%
\fi}
\begin{document}
$(\TikzZigZag\big(\TikzZigZag[1] \bigg(\TikzZigZag[2]$
\end{document}