我需要使用 gfsartemisia-euler 包将一本原本使用 palatine 字体书写的书的字体改为 artemisia 字体。我的问题如下:
当我使用\textsc
或\scshape
字符ú被替换为ý
这只发生在这个角色上,其他角色似乎都正常工作。这是一个最小的例子。
\documentclass{scrbook}
\usepackage{gfsartemisia-euler}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{tipa}
\begin{document}
\scshape
Os números \\
Os n\'umeros \\
Nos capítulos, nas equações...\\
É mesmo? Então faça com as próprias mãos
Höla e também H\"ola. (Exige tipa)
\end{document}
编译此文件后,它会产生输出
答案1
这确实是 GFSArtemisia T1 版本的一个 bug。这是字体表中与拉丁小写字母对应的部分:
您可以看到 Ý 被列出两次,而第一个条目应该是 Ú。应将此问题报告给维护人员,以便修复。
然而,OTF版本来自https://ctan.org/tex-archive/fonts/greek/gfs/gfsartemisia/opentype 做有小写字母 ú。因此,如果您愿意,可以使用一种相当复杂的解决方法将此字符与 pdfLaTeX 一起使用。这个想法是创建一个只包含此字符的 pdf 文件,并在 pdfLaTeX 中设置从 ú 到包含此 pdf 的映射,但仅适用于小写字母(并映射到\'u
所有其他字体样式)。
独立版 ú smallcaps,使用 XeLaTeX 或 LuaLaTeX 编译。在下面的代码中,此文件称为artemisscu.pdf
。
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{GFSArtemisia.otf}
\begin{document}
\textsc{ú}
\end{document}
映射,使用小型大写字母检测https://tex.stackexchange.com/a/31660:
\documentclass{scrbook}
\usepackage{gfsartemisia-euler}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{tipa}
\usepackage{newunicodechar}
\usepackage{graphicx}
\makeatletter
\newcommand*{\IfSmallCapsTF}{%
\ifx\f@shape\my@test@sc
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}
\newcommand*{\my@test@sc}{sc}
\makeatother
\newunicodechar{ú}{\IfSmallCapsTF{\raisebox{-0.02Ex}{\includegraphics[width=1.12Ex]{artemisscu}}}{\'u}}
\begin{document}
Os números
\scshape Os números
\Huge Os números
\tiny Os números
\normalsize Os n\'umeros
Nos capítulos, nas equações...
É mesmo? Então faça com as próprias mãos
Höla e também H\"ola. (Exige tipa)
\normalfont
Os números
\end{document}
请注意,图形的大小和位置是以Ex
单位设置的,因此它会随着字体大小而缩放。
结果:
请注意,它\'u
本身并未映射,因此您需要实际的 ú 作为输入才能使其工作。