4

I want to introduce a new type of math accent that is basically an overbar, but also has small (scriptscriptsize?) text set to the right of the bar. Basically something like

$\bar{A}^{\mathrm{co}}$

but I'd like the text to be set higher---preferably centered vertically on the bar. And I'd like to not have to tweak the height because I'll be making arbitrarily many of these. Is this feasible?

The context is: I'm working on some math that requires an unusually large number of operations similar to complex conjugation. There is no consensus in the literature on which symbols to use for which operations (Hermitian dagger, overbar, overtilde, overset smiley, etc.), which is endlessly confusing. I want to introduce a new notation. My goal is to use an overbar for everything, but also have a short string describing which type of conjugate this is. The string will always be just two or three characters; co in the example above.

1

3 Answers 3

3

Here is an option that uses a combination of things:

enter image description here

\documentclass{article}
\usepackage{amsmath,graphicx}% http://ctan.org/pkg/{amsmath,graphicx}
\makeatletter
\newcommand*{\math@auxii}[2][3]{{}\mkern#1mu\overline{\mkern-#1mu#2}}
\newcommand*{\math@auxi}[3][3]{\overset{\mkern#1mu\text{\scalebox{0.7}{#3}}\mkern-#1mu}{\smash{\math@auxii[#1]{#2}}\vphantom{#2}}}
\newcommand*{\mathco}[2][3]{\math@auxi[#1]{#2}{co}}
\newcommand*{\mathabc}[2][3]{\math@auxi[#1]{#2}{abc}}
\makeatother
\begin{document}
$\bar{A}^{\mathrm{co}} \quad \mathco{A} \quad \mathabc{A} \quad \mathco{XYZ} \quad \mathabc{A}_{\mathabc{B}_{\mathabc{C}}}$
\end{document}

The text in the "accent" (the operation) is scaled to 70% of its original using graphicx's \scalebox{<factor>}{<stuff>}. The \bar is replaced with a "slanted" \overline, pushed to the right a default of 3mus.

Using it in subscripts is not the best... bit I'm not sure whether your use would extend that far.

1
  • That's good, and I'll keep it in mind, but I really wanted the text to be set on the side. I've added an answer below. Feel free to improve on that.
    – Mike
    Apr 24, 2013 at 15:52
3

I've come up with the following:

\makeatletter
\newcommand{\conjug@te}[3]{\overline{#1}^{\mathpalette{\@conjug@te{#3}}{#2}}}
\newcommand{\@conjug@te}[3]{\raisebox{#1}{$#2\text{\tiny{#3}}$}}
\newcommand{\co}[1]{\conjug@te{#1}{co}{.4pt}}
\makeatother

This allows me to write (in my amsmath + revtex4-1 document)

$\co{C}$

and obtain

C with conjugate

It's not automatic. (I tried using .5\height for the argument to \raisebox, but couldn't find any number that worked well.) I can probably live with it, but any improvements are welcome.

1
  • The \mathpalette command is useless, as you always choose \tiny: \newcommand{\conjug@te}[3]{\overline{#1}^{\raisebox{#3}{\tiny#2}}} gives essentially the same result.
    – egreg
    Apr 24, 2013 at 17:55
1

There is a first step, based on a plainTeX construction. Several adjustments are needed. What should be done, if an argument is short, e.g. \barca{A}?

\def\myhrulefill{\cleaders\hbox{---}\hfill}


\makeatletter
\def\barca#1{\vbox{ion\m@th\ialign{##\crcr
\myhrulefill{ca}\crcr\noalign{\kern1pt\nointerlineskip}
$\hfil\displaystyle{#1}$\crcr}}}
\makeatother


$\barca{AAA}$

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .