Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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.

share|improve this question
    
Give the \widebar command from this answer a try! –  Hendrik Vogt Apr 24 '13 at 18:15
add comment

3 Answers 3

up vote 3 down vote accepted

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.

share|improve this answer
    
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 '13 at 15:52
add comment

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.

share|improve this answer
    
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 '13 at 17:55
add comment

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.