Набранная старая испанская аббревиатура: центральное окончание над точкой

Набранная старая испанская аббревиатура: центральное окончание над точкой

Для современного издания музыки Испанской империи XVII века мне нужно набрать некоторые устаревшие сокращения в рукописных источниках. В этом соглашении средняя часть слова сокращается, а окончание центрируется над точкой. Например:

введите описание изображения здесь

Для любопытных это можно расширить до «Al Santissimo [Сакраменто]. a 8», что означает, что произведение посвящено Святому Причастию (и поэтому используется для богослужения Тела Христова или Евхаристии) и рассчитано на восемь голосов.

Команда в MWE делает это с помощью \rlap, но окончание выравнивается по левому краю с точкой. При использовании курсива (по крайней мере при использовании ebgaramond) окончание сталкивается с предыдущей буквой.

Как мне лучше расставить пробелы, чтобы окончание располагалось по центру точки без коллизий, как при прямом, так и при курсивном начертании?

\documentclass[12pt]{article}

\usepackage{ebgaramond}
\usepackage[T1]{fontenc}

\newcommand{\oldabbrev}[2]{#1\rlap{.}\textsuperscript{#2}}

\begin{document}

\oldabbrev{M}{o} Salazar, \oldabbrev{Villan}{co} al \oldabbrev{SS}{mo} a 8

\itshape
\oldabbrev{M}{o} Salazar, \oldabbrev{Villan}{co} al \oldabbrev{SS}{mo} a 8

\end{document}

введите описание изображения здесь

решение1

Благодарность ДжозефуОпределить, какой «режим» текста (обычный, курсив, полужирный и т. д.) используется в данный момент?для помощи в определении курсивной формы. Если это так, то к надстрочному тексту (относительно точки ниже) применяется дополнительный керн, чтобы сделать его эстетически совместимым с курсивной формой.

Обратите внимание, что я решил разместить точку по центру под первой буквой надстрочного текста, как показано на рисунке автора.

\documentclass[12pt]{article}
\usepackage{ebgaramond}
\usepackage[T1]{fontenc}
\usepackage{stackengine}
\makeatletter
\newcommand*{\IfItalicTF}{%
  \ifx\f@shape\my@test@it
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
}
\newcommand*{\my@test@it}{it}
\makeatother
\newcommand\oldabbrev[2]{#1\nobreak%
  \def\stacktype{L}\setstackgap{L}{.5\baselineskip}\oldabbhelp#2\relax\relax}
\def\oldabbhelp#1#2\relax{\bgroup\scriptsize%
  \stackon{\normalsize.}{\IfItalicTF{\kern1.5pt}{}#1}\stackon{}{#2}\egroup}
\begin{document}
\oldabbrev{M}{o} Salazar, \oldabbrev{Villan}{co} al \oldabbrev{SS}{mo} a 8

\itshape
\oldabbrev{M}{o} Salazar, \oldabbrev{Villan}{co} al \oldabbrev{SS}{mo} a 8
\end{document}

введите описание изображения здесь

Если бы кто-то действительно хотел точку подцентрнадсценария, то это простое переопределение

\def\oldabbhelp#1\relax{\bgroup\scriptsize%
  \stackon{\normalsize.}{\IfItalicTF{\kern1.5pt}{}#1}\egroup}

будет иметь эффект:

введите описание изображения здесь

решение2

Центрирование выполняется легко; столкновение устраняется с помощью \/.

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}

\usepackage{ebgaramond}

\newcommand{\oa}[1]{%
  \/{\ooalign{\textsuperscript{#1}\cr\hidewidth.\hidewidth\cr}}%
}

\begin{document}

M\oa{o} Salazar, Villan\oa{co} al SS\oa{mo} a 8

{\itshape
M\oa{o} Salazar, Villan\oa{co} al SS\oa{mo} a 8}

\end{document}

Хотя не уверен, что это хорошо.

введите описание изображения здесь

решение3

Я не мог удержаться и не предложить небольшой вариант решения Стивена Б. Сеглетеса, используя шрифт, который имеет контекстную историческую S (EBGaramond, к сожалению, не имеет), и центрированную точку не на базовой линии. Он компилируется с помощью xelatexили lualatex..

\documentclass[12pt]{article}

\usepackage{stackengine}
\usepackage{fontspec}
\setmainfont{Sabon Next LT Pro}


\newcommand{\myoldabbrev}[2]{#1\textsuperscript{\smash{\stackunder[0.5ex]{#2}{\normalsize.}}}}%

\begin{document}
\upshape \myoldabbrev{M}{o} Salazar, \myoldabbrev{Villan}{co} al \myoldabbrev{SS}{mo} a 8

\addfontfeature{StylisticSet={2, 4,5}, Ligatures=Historic}

\itshape
\myoldabbrev{M}{o} Salazar, \myoldabbrev{Villan}{co} al  \myoldabbrev{SS}{mo} 8

\myoldabbrev{M}{o} Salazar, \myoldabbrev{Villan}{co} al  \myoldabbrev{\char"017F\char"017F\kern0.25em}{mo} 8

\end{document} 

введите описание изображения здесь

решение4

Да, это, конечно, можно сделать. Попробуйте следующее:

\documentclass{article}
\thispagestyle{empty}
\newlength{\dotcenterwd}
\def\dotcenter#1{%
    \settowidth{\dotcenterwd}{\textsuperscript{#1}}%
    \hbox to\dotcenterwd{\textsuperscript{#1}}%
    \kern-\dotcenterwd%
    \hbox to\dotcenterwd{\hfil.\hfil}%
}%
\begin{document}
\Huge
M\dotcenter{o}
\textit{M\dotcenter{o}}
M\dotcenter{co}
\textit{M\dotcenter{co}}
SS\dotcenter{mo}
\textit{SS\dotcenter{mo}}
\end{document}

Это должно дать вам то, что, как я полагаю, вы хотите:

Надстрочные сокращения

С этим решением есть некоторые проблемы: а именно, не задействован кернинг, специфичный для символов. На самом деле, "m" в верхнем индексе слишком близко к символам слева, но если мы это исправим, то "o" будет слишком далеко от них. Я не уверен, как решить эту проблему.

Обратите внимание, что это также должно быть независим от шрифта. Достигает ли это вашей цели?

Связанный контент