On Wed, 4 Mar 2009, David Arnold wrote:
All,
How can I place an overarc over some text, such as in \overarc{AB}?
Currently, there is no such feature. Are you looking at the functionality of the arcs package of latex? If so, it will be easy to add it to ConTeXt. The main trouble is that the glyph for \overarc is missing from the fonts. Arcs.sty takes the glyphs for \frown and \smile, and scales them appropriately. An ugly solution, but it looks ok if you are just placing it over one or two letters. I cannot translate the code to ConTeXt right now, so am posting it here incase someone wants to give it a shot. \newcommand{\overarc}[2][1]{\over@under@arc{#1}{#2}\z@} \newcommand{\underarc}[2][1]{\over@under@arc{#1}{#2}\@ne} \newcommand{\over@under@arc}[3]{% \leavevmode \hbox {% \setbox\z@ = \hbox {#2}% \ifdim \ht\z@ = \z@ % arc over/under space \ifdim \dp\z@ = \z@ \ht\z@ = 1ex\relax \fi \fi \dimen@ = #1\wd\z@ \begingroup \let \rs@size@warning = \@gobbletwo \relsize{-10}% \wd\@ne = \z@ \@whiledim \wd\@ne < .95\dimen@ \do {% %AM: This loops keeps on increasing the fontsize %by 1 until the width of the glyph increases the width of %of box zero. \ifx \@currsize \Huge \dimen@ = \z@ \else $%AM: Really? Load the font for each font size! \skip@ = \f@baselineskip \fontencoding{OML}\fontfamily{cmm}\fontseries{m}% \fontshape{it}\fontsize{\ssf@size}{\skip@}\selectfont \global \setbox\@ne = \hbox {% \hss\symbol{"5\ifnum #3=\z@ F\else E\fi}\hss}% \ifdim \wd\@ne < \dimen@ \fontsize{\sf@size}{\skip@}\selectfont \global \setbox\@ne = \hbox {% \hss\symbol{"5\ifnum #3=\z@ F\else E\fi}\hss}% \ifdim \wd\@ne < \dimen@ \fontsize{\tf@size}{\skip@}\selectfont \global \setbox\@ne = \hbox {% \hss\symbol{"5\ifnum #3=\z@ F\else E\fi}\hss}% \fi \fi $%AM: Normally one sets mathsurround to zero. Why is that not done here? \fi \ifdim \wd\@ne < \dimen@ \relsize{+1}% \fi \global \dimen@i = \fontdimen5\the\font }% \endgroup \ifnum #3 = \z@ \dimen@ii = 1.067\ht\z@ \global \divide \dimen@i by \tw@ \global \advance \dimen@i by -\ht\@ne \advance \dimen@ii by .6\dimen@i \else \dimen@ii = -1.05\ht\@ne \advance \dimen@ii by -.75pt \ifdim \dp\z@ > \z@ \advance \dimen@ii by -\dp\z@ \fi \fi \copy\z@ \dimen@ = \wd\z@ \advance \dimen@ by \wd\@ne \kern -.5\dimen@ \raisebox {\dimen@ii}[\z@][\z@]{\copy\@ne}% \dimen@ = \wd\z@ \advance \dimen@ by -\wd\@ne \dimen@ = .5\dimen@ \kern \dimen@ }% } Aditya