\left
我可以引入新的分隔符来与and一起使用吗\right
?例如,我想这样做
\begin{equation}
\left\harpoonleft something \right\harpoonright
\end{equation}
然后我希望符号的大小取决于something
符号之间的大小。
我怎麼會做這樣的事?
答案1
我的意思是,问题中提到了鱼叉,没有箭。因为在常见的数学符号中没有鱼叉部分,并且 会使\resizebox
鱼叉标记变形,所以我建议另一种解决方案:使用 将鱼叉部分绘制为 PDF 代码\pdfliteral
。其余的很简单\vrule
。
\documentclass{article}
\def\leftharpoonpart {\pdfliteral{q 0 0 m 0 -2.1 -1.2 -2.8 -1.5 -3 c 1 j .4 w S Q}}
\def\rightharpoonpart {\pdfliteral{q 0 0 m 0 -2.1 1.2 -2.8 1.5 -3 c 1 j .4 w S Q}}
\def\encloseharpoons#1{\setbox0=\hbox{$\displaystyle{#1}$}%
\mathop{\,\vrule height\ht0 depth\dp0
\kern-.2pt \raise\ht0\vbox to0pt{\vss\leftharpoonpart\kern.1pt}%
\copy0
\raise\ht0\vbox to0pt{\vss\rightharpoonpart\kern.1pt}\kern-.2pt\vrule\,}%
\nolimits
}
\begin{document}
$$a \cdot \encloseharpoons{\int_a^b} + \encloseharpoons{1\over2}^2$$
\end{document}
当然,不需要任何特殊的包。结果是
细节:
您必须使用pdflatex
或lualatex
。xelatex
使用 时,您需要添加定义:
\def\pdfliteral#1{\special{pdf:literal #1}}
答案2
如果你想使用 Tikz 创建分隔符:
\documentclass{article}
\usepackage{tikz}
\newcommand{\leftdelim}[2]% #1 = height, #2 = depth
{\tikz[baseline]{\draw[color=red,arrows={-latex}](0,-#2)--(0,#1);}}
\newcommand{\rightdelim}[2]% #1 = height, #2 = depth
{\tikz[baseline]{\draw[color=red,arrows={latex-}](0,-#2)--(0,#1);}}
\newlength{\MyHeight}
\newlength{\MyDepth}
\newsavebox{\MyBox}
\newcommand{\mydelim}[1]% #1 = text to be enclosed
{\savebox{\MyBox}{$\displaystyle #1$}% get size of box
\settoheight{\MyHeight}{\usebox{\MyBox}}%
\settodepth{\MyDepth}{\usebox{\MyBox}}%
\leftdelim{\MyHeight}{\MyDepth}%
\,\usebox{\MyBox}\,%
\rightdelim{\MyHeight}{\MyDepth}}
\begin{document}
\[
\mydelim{\frac{x+a}{x+b}}
\]
\end{document}
如果你不想使用 tikz:
\documentclass{article}
\usepackage{graphics}
\newlength{\MyHeight}
\newlength{\MyDepth}
\newlength{\MyDiff}
\newsavebox{\MyBox}
\newcommand{\mydelim}[1]% #1 = text to be enclosed
{\savebox{\MyBox}{$\displaystyle #1$}% get size of box
\settoheight{\MyHeight}{\usebox{\MyBox}}%
\settodepth{\MyDepth}{\usebox{\MyBox}}%
\addtolength{\MyHeight}{\MyDepth}%
\settodepth{\MyDiff}{$\uparrow$}
\addtolength{\MyDiff}{-\MyDepth}
\raisebox{\MyDiff}{\resizebox{\width}{\MyHeight}{$\uparrow$}}%
\,\usebox{\MyBox}\,%
\raisebox{\MyDiff}{\resizebox{\width}{\MyHeight}{$\downarrow$}}}
\begin{document}
\[
\mydelim{\frac{x+a}{x+b}}
\]
\end{document}
答案3
这是John Kormylo 的回答——它可以起作用,但是有一个小怪癖:它对数学风格进行硬编码。
这是什么意思?例如,考虑这个定义:
\[ \mydelim{\frac{x+a}{x+b}} \]
$ \mydelim{\frac{x+a}{x+b}} + \frac{x+a}{x+b} $
与自定义分隔符外面的公式相比,第二个公式太大。
修复此问题的一种方法是手动添加命令\textstyle
:
$ \mydelim{\textstyle \frac{x+a}{x+b}} \frac{x+a}{x+b} $
(在这种情况下你根本不需要\displaystyle
)
另一种方法是修改命令定义,如下所示:
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath} % ← note the added package
\newcommand{\leftdelim}[2]% #1 = height, #2 = depth
{\tikz[baseline]{\draw[color=red,arrows={-latex}](0,-#2)--(0,#1);}}
\newcommand{\rightdelim}[2]% #1 = height, #2 = depth
{\tikz[baseline]{\draw[color=red,arrows={latex-}](0,-#2)--(0,#1);}}
\newlength{\MyHeight}
\newlength{\MyDepth}
\newsavebox{\MyBox}
\newcommand{\mydelim}[1]% #1 = text to be enclosed
{\text{\savebox{\MyBox}{$#1$}% get size of box
\settoheight{\MyHeight}{\usebox{\MyBox}}%
\settodepth{\MyDepth}{\usebox{\MyBox}}%
\leftdelim{\MyHeight}{\MyDepth}%
\,\usebox{\MyBox}\,%
\rightdelim{\MyHeight}{\MyDepth}}}
\begin{document}
\[ \mydelim{\frac{x+a}{x+b}} \]
$ \mydelim{\frac{x+a}{x+b}} + \frac{x+a}{x+b} $
\end{document}
这给出了期望的结果。
该命令的解释\text
可以在以下位置找到旋转 - 具有正确字体大小的旋转数学。