使用变音符号呈现斜体和小型大写字母,或手动输入变音符号

使用变音符号呈现斜体和小型大写字母,或手动输入变音符号

我尝试使用长音符呈现斜体小写字母u,但结果始终不是小写字母。之所以采用这种组合,是因为我的标题以小写字母呈现,而我的一个章节标题包含日语文学作品的名称,该名称应为斜体。

以下是一个例子:

% !TEX encoding = UTF-8 Unicode
% !TEX program = xelatex
\documentclass{book}
\usepackage{fontspec}
    \defaultfontfeatures{Ligatures=TeX}
    \setmainfont{Linux Libertine}
\begin{document}

\textsc{Test: \emph{Shōchū}}

\end{document}

结果是:

在此处输入图片描述

我的猜测是,我的字体缺少带有变音符号的预制斜体小型大写字母,因此会退回到非小型大写字母字形,但无论我尝试哪种字体,结果总是一样的,所以我猜大多数字体不将其作为预制字形包含。

即使尝试使用 unicode 组合宏命令 (U+0304) 而不是常规宏命令u来手动组成字符也无法解决这个问题。

是否有某种方法可以强制 LaTeX(XeLaTeX)手动组合这个字符,以便它按预期显示,或者有任何其他方法来实现所需的效果?

答案1

你问,

还有...其他方法可以达到想要的效果吗?

Stix Two Text字体具有小写/斜体/带长音符号的字母字形。接下来的两行分别由Linux Libertine O和组成Stix Two Text,同时注意确保两种字体的 x 高度相等。

在此处输入图片描述

可以肯定的是,Stix Two Text是 的克隆Times Roman,它可能适合也可能不适合您的字体相关需求。但是,您可以将 的使用限制Stix Two Text在页眉行中,对吗?

% !TEX program = xelatex  %%% or !TEX program = lualatex
\documentclass{book}
\usepackage{fontspec,iftex}

\begin{document}

\setmainfont{Linux Libertine O}
\textsc{Lorem Ipsum: \textit{Shōchū}}

\ifxetex
   \setmainfont{STIX2Text-Regular}%
     [Path=/Users/mico/Library/Fonts/, % adjust this line as needed
      Scale=MatchLowercase,
      ItalicFont=STIX2Text-Italic]
\else\ifluatex
   \setmainfont{Stix Two Text}%
     [Scale=MatchLowercase]
\fi\fi
\textsc{Lorem Ipsum: \textit{Shōchū}}

\end{document}

答案2

使用 lualatex 时,组合重音或多或少可以起作用(位置并不完美)

\documentclass{book}
\usepackage{fontspec}
    \defaultfontfeatures{Ligatures=TeX}
    \setmainfont{Linux Libertine O}

\begin{document}

\textsc{Test: \emph{Shōchū Sho^^^^0304chu^^^^0304}}

\end{document}

在此处输入图片描述

使用 xelatex(或 harf 模式)时,harfbuzz 会干扰并替换字形。您只能选择定义自己的重音命令来为字符设置规则,或者切换到带有长音符号的小写字母字体。默认的 Latin Modern 字体 eg 也可以使用(左侧是您使用 xelatex 得到的字体):

在此处输入图片描述

相关内容