1

I'm working with transcriptions of medieval texts and so have to deal with diacritic craziness while also being limited to the Libertinus Serif font which has dismal support for superscript letters. The bug report I filed some years ago is still unanswered, the project looks basically dead (the maintainer claims it's not, but there hasn't been much progress). The following superscripts occur in my document:

Letters Oͤ aͤ eͤ iͤ oͤ uͤ Vͦ uͦ vͦ oͧ aͮ iͮ oͮ wͮ aᵉ uᵒ oᵘ aᵛ

As you can see, the diacritics from the Combining Diacritical Marks range (U+0363 through U+036F) in the first four lines are barely bigger than the dot on the i, thus hardly legible also in print, and aren't even working properly in combination with i. Yet the publisher wants you to use proper Unicode wherever possible, so faking them with something along the lines of \overset or \stackrel (see below) is a last resort.

Before I open the can of worms that is editing the font, is there a way to tweak it in LaTeX (XeLaTeX to be specific) so as to increase the size of the combining diacritic letters I need to the size of their non-combining Modifier Letter equivalents (last line in the image above), which pose no problem for legibility? I suppose newunicodechar might serve as a wrapper for the (re)definitions. A similar question has been asked before, although that only involved dots under letters, not letters used as diacritics.

MWE:

\documentclass[varwidth]{standalone}
\usepackage{libertinus}
\begin{document}
Oͤ aͤ eͤ iͤ oͤ uͤ\\
Vͦ uͦ vͦ\\
oͧ\\
aͮ iͮ oͮ wͮ\\
aᵉ uᵒ oᵘ aᵛ
\end{document}

Macro I had previously cobbled together for faking diacritics (#1 = base letter, #2 = diacritic):

\newcommand{\sscr}[2]{$\stackrel{\text{\raisebox{-.4ex}[0pt][0pt]{\smaller \hspace{.5ex}#2}}}{\text{#1}}$}
Jipí
  • 1,037

1 Answers1

2

enter image description here

This substitutes dotless i for the base, and small ascii for the diacritic,and wraps the construct with ActualText with the original so it should cut and paste as Unicode diacritics

\documentclass[varwidth]{standalone}
\usepackage{libertinus,accsupp}
\makeatletter

\def\foo#1#2{% \leavevmode \BeginAccSupp{method=plain,unicode,ActualText=#1#2}% \vbox{% \offinterlineskip \ialign{##\cr \hss \fontsize{.5\dimexpr\f@size pt\relax}\z@\math@fontsfalse\selectfont \ifx ͤ#2e\else \ifx ᵉ#2e\else \ifx ᵒ#2o\else \ifx ͦ#2o\else \ifx ᵘ#2u\else \ifx ͧ#2u\else \ifx ᵛ#2v\else \ifx ͮ#2v\else #2\fi\fi\fi\fi\fi\fi\fi\fi \hss\cr \noalign{\vskip.1\dimexpr\f@size pt\relax} \ifx i#1\i\else#1\fi\cr }% }% \EndAccSupp{}% } \makeatother \begin{document}

Oͤaͤeͤ iͤ oͤ uͤ\ Vͦ uͦ vͦ\ oͧ\ aͮ iͮ oͮ wͮ\ aᵉ uᵒ oᵘ aᵛ

\bigskip

\foo Oͤ\foo aͤ\foo eͤ \foo iͤ \foo oͤ \foo uͤ\ \foo Vͦ\foo uͦ \foo vͦ\ \foo oͧ\ \foo aͮ \foo iͮ \foo oͮ \foo wͮ\ \foo aᵉ \foo uᵒ \foo oᵘ \foo aᵛ \end{document}

David Carlisle
  • 757,742