我想重新定义\'
几个字符(例如,以便\'t
映射到t')。我曾经用 \DeclareTextComposite 做过这个(我想),它要求我指定编码(T1
、等)。如果我使用 XeLaTeX 和 Brill 字体,编码是什么。(我通过反复试验OT1
排除了T1
、和其他一些。)OT1
更一般地讲,XeLaTeX 是否提供了更好的方法来实现重音命令的重新分配?这种方法是否足够灵活,可以将两个字符的输入(如\'{ky}
)映射到多字符的输出(如'kʸ')。
—————————————————————
MWE 外壳:
% !TEX encoding = UTF-8 Unicode
\documentclass[12pt]{article}
\DeclareTextComposite{\'}{???}{t}{t'}
\setmainfont{Brill Roman}
\begin{document}
\'t
\end{document}
答案1
编码是 TU,但 \DeclareTextComposite 的最后一个参数是一个数字(用于字形/字符位置),因此您无法使用它来获取某种组合。为此,您可以使用 \DeclareTextCompositeCommand(我没有您的字体,所以我伪造了一些东西)。它仅适用于单个字符作为输入。
\documentclass[12pt]{article}
%\DeclareTextComposite{\'}{TU}{t}{65} % gives A
\DeclareTextCompositeCommand{\'}{TU}{t}{blub}
\usepackage{fontspec}
\setmainfont{Arial}
\begin{document}
\'t
\end{document}
答案2
该命令接受 Unicode 参数。
非常方便。另一种映射方式。
最后一个参数可以采用任意代码。
注意Brill
字体包含间距修饰字母和组合变音符号,因此可以直接输入 kʸʼ。
平均能量损失
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{tikz}
\DeclareTextComposite{\'}{TU}{u}{65}
\DeclareTextCompositeCommand{\'}{TU}{t}{b\textit{l}ub}
\DeclareTextCompositeCommand{\'}{TU}{x}{\textbf{bl\textcolor{red}{u}b}}
\DeclareTextCompositeCommand{\'}{TU}{y}{\textbf{bl\textcolor{red}{i}b}}
\DeclareTextCompositeCommand{\'}{TU}{z}{\fmanat