答案1
答案2
具有标准字体和stmaryrd
。
\documentclass{article}
\usepackage{stmaryrd} % for the \mapsfrom glyph
\usepackage{amsmath} % for \arrowfill@
\newcommand{\overhat}[2]{% #1 = main word, #2 = label
\leavevmode\vbox{\offinterlineskip
\ialign{%
\hfil##\hfil\cr
\footnotesize\strut\,#2\,\cr
\makehat\cr
\strut#1\cr
}%
}%
}
\makeatletter
\newcommand{\makehat}{%
\arrowfill@{\mapstochar\relbar}\relbar{\relbar\mapsfromchar}{}%
}
\makeatother
\begin{document}
Hello, \overhat{Jeffrey}{name}
Hello, \overhat{A}{y}
Hello, \overhat{A}{zzz}
\end{document}
没有字体,因此条形图的大小可轻松自定义。此处的高度为 1pt。
\documentclass{article}
\usepackage{l3draw}
\newcommand{\overhat}[2]{% #1 = main word, #2 = label
\leavevmode\vbox{\offinterlineskip
\ialign{%
\hfil##\hfil\cr
\footnotesize\strut\,#2\,\cr
\hatbar
\leaders\hrule height 0.9pt depth -0.5pt\hfill
\hatbar\cr
\strut#1\cr
}%
}%
}
\ExplSyntaxOn
\newcommand{\hatbar}
{
\draw_begin:
\draw_cap_round:
\draw_path_moveto:n {0pt,0pt}
\draw_path_lineto:n {0pt,1pt}
\draw_path_use_clear:n { stroke }
\draw_end:
}
\ExplSyntaxOff
\begin{document}
Hello, \overhat{Jeffrey}{name}
Hello, \overhat{A}{y}
Hello, \overhat{A}{zzz}
\end{document}
答案3
不确定我是否理解了您的格式化目标,但\overbracket
mathtools 包的指令可能就是您正在寻找的。
注意,这\overbracket
是一个数学模式命令;因此,启动和终止内联数学模式的符号以及in$
的两个实例\text
$\overbracket{\text{Jeffrey}}^{\text{name}}$
如果您的文档中有多个此类\overbracket
基于 的指令实例,则可能值得设置专用宏来帮助简化和精简所需信息的输入。例如,
\newcommand\myhat[2]{$\overbracket{\text{#1}}^{\text{#2}}$
这将允许您输入\myhat{Jeffrey}{name}
。
mathtools 包的用户指南第 3.2.2 节提供了有关自定义(a)“帽子”的线条粗细和(b)帽子在基线以上的高度的信息。
\documentclass{article}
\usepackage{mathtools} % for '\overbracket' macro
\begin{document}
\sffamily % optional
Hello, $\overbracket{\text{Jeffrey}}^{\text{name}}$!
\end{document}