如何获得特定字体的重音字母(ogonek)?

如何获得特定字体的重音字母(ogonek)?

我需要使用特定字体(New Aster LT Standard),但文本中的 2 个字符出现了问题。一个是名称“Dąbrówka”上的波兰 ogonek,另一个是名称“Matanić”中的重音 c。奇怪的是,该字体似乎有 ogonek 变音符号(参见 PDF 图像的第 2 行),但组合使用时无法正确显示,只能单独显示。我的序言中有 和\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}我必须使用 XeLaTeX 进行编译。我的 .tex 文档采用 UTF8 编码。我尝试了各种方法(参见示例),但都不起作用(参见屏幕截图)。

帮助?

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}

\setmainfont{New Aster LT Std}

\setmainlanguage{french}
\setotherlanguage{polish}

      
\begin{document}

       Johannes Dąbrówka.  A. Matanić.
       \par

       ‬Johannes Da˛brówka.  A. Matani\'c.
        \par

       Johannes D\k{a}brówka.  A. Matani\'{c}.
       \par
        

\end{document}

屏幕截图

答案1

您可以尝试以下任一方法:

加载现代字体fontspec并输入字符 ą (U+0105)。在 XeLaTeX 或 LuaLaTeX 中,您也可以写^^^^0105

字体可能还支持组合重音 ą (a + U+0328)。您也可以将其键入为a^^^^0328。Latin Modern Roman 没有此重音,但 New Computer Modern 有。

LaTeX 命令是\k{a}。如果这对您的字体不起作用,但^^^^0105可以,您可以尝试加载uninormalize以转换为 NFC 格式。

如果您的字体包含非组合 ogonek ˛ (U+02DB),您可能能够将其与 TeX 基元 叠加\accent"02DB a。对于 Latin Modern Roman,下面的 ogonek 位置错误,但上面的重音应该更好。

\documentclass{article}
\tracinglostchars=2 % Warn if a font does not contain a character!
\usepackage{newcomputermodern}

\newcommand\aogonek{\accent a ^^^^02db}

\begin{document}
^^^^0105
a^^^^0328
\accent"02DB a
\k{a}
\end{document}

和奥贡尼克

在 PDFTeX 中,a-with-ogonek 属于 T1 编码。预组合字符和 应该可以正常工作,\k{a}但组合重音符在 PDFTeX 中通常不起作用。

所有相同的方法也应该适用于,按照您尝试它们的顺序,ć (U+0107)、ć (c + U+0301) \'{c}、、、\accent"02CA c\accent"00B4 c

答案2

使用具有您需要的字母的字体,例如 TexGyre。 名称(使用 TexGyre)

但如果你真的需要使用该字体,你可以使用以下方法定义新字母newunicodechar4

% !TeX program = xelatex
\documentclass[xetex,twoside]{article}
\tracinglostchars=3 % Warn if a font does not contain a character
\usepackage{fontspec}
%\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\setmainfont[Ligatures=TeX]{New Aster LT Std}
\usepackage{polyglossia}

\setmainlanguage{french}
\setotherlanguage{polish}

\usepackage{newunicodechar}
\makeatletter
\newunicodechar{ć}{\add@accent{`^^^^00b4}{c}}
\newunicodechar{ó}{\add@accent{`^^^^00b4}{o}}
\newunicodechar{á}{\add@accent{`^^^^00b4}{a}}
\newunicodechar{ą}{\add@accent{`^^^^02db}{a}}
\makeatother
      
\begin{document}

       Johannes Dąbrówka.  A. Matanić.\par

\end{document}

名称(带(旧款)新款 Aster LT Std) 名称(带newunicodechar

相关内容