排版旧西班牙语缩写:中心结束于句号

排版旧西班牙语缩写:中心结束于句号

对于 17 世纪西班牙帝国音乐的现代版本,我需要排版手稿来源中的某些过时的缩写。按照这种惯例,单词的中间部分被缩写,结尾部分则置于句号的中央。例如:

在此处输入图片描述

对于好奇的人来说,这可以扩展为“Al Santissimo [Sacramento]。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

感谢 Joseph检测当前正在使用哪种文本“模式”(正常、斜体、粗体等)?帮助确定是否为斜体。如果是,则对上标应用额外的字距(相对于下面的点),以使其在美学上与斜体兼容。

请注意,我选择将点置于上方文字的第一个字母下方的中心,如 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}

在此处输入图片描述

如果有人真的想要中心过度脚本,然后是这个简单的重新定义

\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

我忍不住要提出一个对 Steven B. Segletes 解决方案的小变体,使用一种具有上下文历史 S 的字体(不幸的是,EBGaramond 没有),并且中心点不在基线上。它可以编译xelatexlualatex……

\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”就离它们太远了。我不确定如何解决这个问题。

请注意,这也应该与字体无关。这样能达到你的目标吗?

相关内容