4

I try to combine the macron and the breve accent. This post already helped me to get a good adaptive macron, and the \u command produces a nice breve, but I have problems combining them.

How can I combine them cleanly or – better – how can I draw a breve like \u produces combined with the \supersmartmacron macron (see link)? Thank you a lot for helping me out!

PS: I am aware of \textbrevemacron from the tipa package, but it's just ugly in combination with \usepackage{mathpazo}.

Edit 1

Thanks to Alenanno I found a good way for stacking diacritics in this post:

\documentclass{article}
\usepackage{stackengine}
\begin{document}
\renewcommand\stacktype{L}
\stackon[3pt]{\={a}}{\u{}}
\end{document}  

This produces nice combinations of the \= and \u diacritics (using the selected font, which \textbrevemacron does not → "ugly" – sorry for not pointing that out), but: Especially with the \i it gives a rather oversized symbol. That is what \supersmartmacron does, it creates a macron which length depends on the character width. Is there a way to scale \u down a little bit?

MWE for the problem:

\documentclass{article}
\usepackage{stackengine}
\begin{document}
\renewcommand\stacktype{L}
\stackon[1.5pt]{\={\i}}{\u{}}
\end{document}

Thank you!

Edit 2

Another problem of the solution with stackengine is that the distance needs to be specified. The above example works well with fontsize=12pt only, for greater or smaller symbols it's necessary to adjust the value.

  • 1
    U+E537 is private use area so not generally defined as a character, Is that really the codepoint that you mean? – David Carlisle Jan 8 '16 at 14:59
  • unicode U+1DCB and U+1DCC are COMBINING BREVE-MACRON and COMBINING MACRON-BREVE a᷋ a᷌ – David Carlisle Jan 8 '16 at 15:01
  • Have you seen this question? Multiple diacritics on one character – Alenanno Jan 8 '16 at 15:03
  • Also, define "ugly": is the accent too low? high? Ugly is a very vague and unreliable concept. – Alenanno Jan 8 '16 at 15:05
  • 1
    @dessert -- unfortunately, it is not true for everyone that private use area characters appear correctly; they certainly don't for me. pua characters are closely tied to particular fonts, and without "private" agreements, are unlikely to be reliable. – barbara beeton Jan 8 '16 at 18:06
4

You may want to build it by hand:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{mathpazo}

\DeclareRobustCommand{\brevemacron}[1]{%
  \leavevmode
  \vbox{\offinterlineskip
    \ialign{\hfil##\hfil\cr
      \u{}\cr\noalign{\kern-1ex}
      \={}\cr\noalign{\kern-1ex}
      #1\cr
    }%
  }%
}

\begin{document}
\brevemacron{a}\u{a}\={a}

\brevemacron{a}\brevemacron{e}\brevemacron{\i}\brevemacron{o}\brevemacron{u}

\brevemacron{A}\brevemacron{E}\brevemacron{I}\brevemacron{O}\brevemacron{U}

\end{document}

enter image description here

  • Thank you very much, that helped me a lot building my own version! – dessert Jan 9 '16 at 10:20
  • I used your macro to build stacked diacritics with Linux Libertine italics (macron + acute). Both were set too much to the right, so it was possible to move the macron a little with \hskip0.3ex \= (and then the acute the same). It is also possible with Unicode Combining Diacritical marks, for example k and U+0311 which poses problems for Libertine. – Kubo Jan 23 '18 at 2:18
  • As this seems applicable to any font, this looks like a great workaround for stacked diacritics in general and got me quite far without having to tinker with the font-files. Are you willing to enhance your answer regarding some explanation what you did after ´\vbox´, @egreg? I only understand very little after that, and I guess this could be of great general interest. Certain combinations of letters+diacritics looked so terrible, I spent much time on font-selection before I found this. – Kubo Jan 23 '18 at 2:21
  • @Kubo It’s a streamlined version of \begin{tabular}[b]{@{}c@{}}\breve{}\\[-1ex]\={}\\[-1ex]#1\end{tabular}, with \arraystretch set to 0. – egreg Jan 23 '18 at 7:03
1

Combining egreg's version with the adaptive macron:

\DeclareRobustCommand{\brevemacron}[1]{%
 \settowidth{\tmpa}{#1}% width of letter
 \leavevmode
 \vbox{\offinterlineskip
 \ialign{\hfil##\hfil\cr
  \u{}\cr\noalign{\kern-1ex}% upper diacritic
  \rule{0.6\tmpa}{0.05em}\cr\noalign{\kern0.1ex}% lower diacritic: a bar with the legth of 0.6 times the letter width and a thickness of 0.05em, 0.1ex above the character
  #1\cr% character
  }%
 }%
}

v0.1

Scaling of the upper diacritic relative to the character width can be achieved with the graphicx package by changing the relevant line to

\resizebox{0.8\tmpa}{!}{\u{}}\cr\noalign{\kern-1.1\tmpa}% upper diacritic: \u with the width of 0.8 times the letter width

v0.2

Scaling the breve down just for the letter \i can be done with the xstring package, the \u line then reads

\IfStrEq{#1}{\i}{\resizebox{0.8\tmpa}{!}{\u{}}\cr\noalign{\kern-1.1\tmpa}}{\u{}\cr\noalign{\kern-1ex}}% upper diacritic: scaled down \u just for \i

v0.3 Thank you for helping me out!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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