조판된 오래된 스페인어 약어: 마침표에 따라 끝나는 가운데

조판된 오래된 스페인어 약어: 마침표에 따라 끝나는 가운데

17세기 스페인 제국 음악의 현대판을 위해서는 원고 출처에 있는 특정 구식 약어를 조판해야 합니다. 이 관례에서는 단어의 중간 부분을 축약하고 어미를 마침표 중심으로 지정합니다. 예를 들어:

여기에 이미지 설명을 입력하세요

호기심이 있으신 분들을 위해 이 곡은 "Al Santisimo [Sacramento]. a 8"로 확장됩니다. 이는 이 곡이 성체성사(Corpus Christi 또는 성체 봉헌에 사용됨)에 헌정되었음을 의미하며 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

나는 상황에 맞는 역사적인 S(불행히도 EGBaramond는 그렇지 않음)와 기준선에 없는 중앙 점을 사용하는 Steven B. Segletes의 솔루션에 대한 작은 변형을 제안하지 않을 수 없었습니다. 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"는 왼쪽 문자에서 너무 멀리 떨어져 있습니다. 그 문제를 해결하는 방법을 잘 모르겠습니다.

이 역시 글꼴 독립적이어야 합니다. 그게 당신의 목표를 달성합니까?

관련 정보