我正在处理一个文档,使用的字体没有 Unicode 0107 带尖音符号的拉丁小写字母 C(或“ć”)的字形。除此之外,我真的很喜欢这个字体,所以我宁愿不因为缺少这个字形而不得不更改它。
不幸的是,这种字体的另一个问题是它也没有 Unicode 0301 组合重音符号或“◌́”的字形。否则,我(可能?)可以做类似的事情\renewcommand{\'}[1]{\add@accent{`^^^^0301}{#1}}
。
我想做的是从不同的字体中提取组合尖音符字形,并将其放在主字体的“c”字形上。虽然它不会完全匹配,但对于我的目的来说应该足够接近了。
我尝试了一些方法并成功实现了以下操作:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Baskerville Old Face}
% not actually what I'm using,
% but an example of another font lacking the relevant glyphs
\newfontfamily{\ccfont}{TeX Gyre Pagella}
\newfontfamily{\mainfont}{Baskerville Old Face}
\newcommand{\cc}{c\llap{\ccfont\'\ }}
\begin{document}
\cc
\end{document}
但是,如果不定义新的宏(例如),我似乎无法使其工作\cc
。如果我尝试\newcommand{\'c}{...}
,我会收到一条错误消息,Use of \' doesn't match its definition.
是否有办法做到这一点,而不必替换文档和文件中的\'c
每个?\cc
.bib
答案1
就像在 pdftex 中一样,您可以声明复合:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Baskerville Old Face}
% not actually what I'm using,
% but an example of another font lacking the relevant glyphs
\newfontfamily{\ccfont}{TeX Gyre Pagella}
\newfontfamily{\mainfont}{Baskerville Old Face}
\DeclareTextCompositeCommand{\'}{TU}{c}{{\ccfont\'{{\mainfont c}}}}
\begin{document}
ab\'cd
\end{document}