Abreviatura espanhola antiga composta: centro terminando ao longo do período

Abreviatura espanhola antiga composta: centro terminando ao longo do período

Para uma edição moderna de música do império espanhol do século XVII, preciso compor certas abreviaturas antiquadas nas fontes manuscritas. Nesta convenção, a parte central da palavra é abreviada e a terminação é centralizada no ponto final. Por exemplo:

insira a descrição da imagem aqui

Para os curiosos, expande-se para "Al Santissimo [Sacramento]. a 8", o que significa que a peça é dedicada ao Santíssimo Sacramento (e portanto usada para Corpus Christi ou devoção eucarística), e é pontuada para oito vozes.

O comando no MWE faz isso usando \rlap, mas o final é alinhado à esquerda com o ponto final. Ao usar itálico (pelo menos ao usar ebgaramond), o final colide com a letra anterior.

Como eu poderia espaçar melhor para que o final fique centralizado no ponto final sem colisões, tanto em tipo romano quanto em itálico?

\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}

insira a descrição da imagem aqui

Responder1

Crédito para Joseph emDetectar qual "modo" de texto (normal, itálico, negrito, etc.) está em uso atualmente?por ajudar a determinar se está em itálico. Nesse caso, um Kern extra é aplicado ao sobrescrito (em relação ao ponto abaixo) para torná-lo esteticamente compatível com a forma em itálico.

Observe que optei por centralizar o ponto abaixo da primeira letra do sobrescrito, conforme mostrado na figura do OP.

\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}

insira a descrição da imagem aqui

Se alguém realmente quisesse o ponto sob oCentrodo over-script, então esta simples redefinição

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

terá o efeito:

insira a descrição da imagem aqui

Responder2

Centralizar é fácil; a colisão é curada por \/.

\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}

Não tenho certeza se é bom, no entanto.

insira a descrição da imagem aqui

Responder3

Não pude resistir em propor uma pequena variante da solução de Steven B. Segletes usando uma fonte que tem histórico contextual S (EBGaramond não tem, infelizmente) e um ponto centralizado fora da linha de base. Ele compila com xelatexou 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} 

insira a descrição da imagem aqui

Responder4

Sim, isso certamente pode ser feito. Experimente o seguinte:

\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}

Isso deve lhe dar o que acredito que você deseja:

Abreviações sobrescritas

Existem alguns problemas com esta solução: ou seja, não há kerning específico de caractere envolvido. Na verdade, o “m” no sobrescrito está muito próximo dos caracteres à esquerda, mas se corrigirmos isso, então o “o” está muito longe deles. Não tenho certeza de como resolver esse problema.

Observe que isso também deve ser independente da fonte. Isso atinge seu objetivo?

informação relacionada