当我在 LaTeX 中使用弧线符号时,我使用这段代码(添加到序言中):
\usepackage{scalerel}
\usepackage{stackengine}
\stackMath
\newsavebox\tmpbox
\newcommand\reallywidefrown[1]{
\ThisStyle{
\sbox\tmpbox{$\SavedStyle#1$}
\stackon[0pt]{\usebox{\tmpbox}}{
\stretchto{
\scaleto{
\scalerel*[\wd\tmpbox]{\mkern-.8mu\frown\mkern-.8mu}
{\rule[-\textheight/2]{1ex}{\textheight}}
}{\textheight}
}{0.8ex}
}
}
}
(来源: Steven B. Segletes 的回答)
它输出一个很好的圆弧符号:
\documentclass{article}
\usepackage{scalerel}
\usepackage{stackengine}
\stackMath
\newsavebox\tmpbox
\newcommand\reallywidefrown[1]{
\ThisStyle{
\sbox\tmpbox{$\SavedStyle#1$}
\stackon[0pt]{\usebox{\tmpbox}}{
\stretchto{
\scaleto{
\scalerel*[\wd\tmpbox]{\mkern-.8mu\frown\mkern-.8mu}
{\rule[-\textheight/2]{1ex}{\textheight}}
}{\textheight}
}{0.8ex}
}
}
}
\begin{document}
$\reallywidefrown{AB}$\qquad$\reallywidefrown{ABC}$
\end{document}
现在我正在输入一篇关于三角学的文档,三角弧符号应该是这样的
(我使用 Windows Paint。抱歉质量不好,但我找不到更好的方式来说明符号)
我去了解毒获取包\curvearrowright
中的命令amssymb
。但是,它看起来太短了:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
$\overset{\curvearrowright}{AB}$\qquad$\overset{\curvearrowright}{ABC}$
\end{document}
有没有办法定义一个命令,比如\reallywidecurvearrowright{}
(或者更短的命令,比如\trigarc{}
答案1
你可以用这个tikzmark
玩具来做以下事情:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newcounter{carrowover}
\newcommand{\carrowover}[2][2ex]{\stepcounter{carrowover}\tikzset{tikzmark
prefix=\thecarrowover}\tikzmark{start}#2\tikzmark{stop}\tikz[remember
picture, overlay]{\draw[->]([shift={(.5ex,#1)}]pic cs:start) to[bend
left] ([shift={(-.5ex,#1)}]pic cs:stop);}}
\begin{document}
\( \carrowover{ABC} \)
\( \carrowover[1.5ex]{abc} \)
\end{document}
请注意,您需要编译两次才能获得正确的位置。我提供了一个可选参数来\carrowover
指定箭头的垂直位置(相对于基线)。
tikzmark
通过保存位置来工作,并且可以在后续tikz
图片中使用。为了给这些位置指定唯一的名称,我引入了一个计数器,并使用该tikzmark prefix
选项每次调整标签。