我想将某个字体系列中的字母“f”替换为另一个字体系列中的字母“f”。我目前的尝试如下。
\documentclass{minimal}
\usepackage{graphicx}
\usepackage{physics}
\usepackage{mathspec}
\defaultfontfeatures{Mapping=tex-text,}
\setmathsfont(Digits){Old Standard}
\setmathsfont(Latin)[Uppercase=Italic,Lowercase=Italic]{Old Standard}
\makeatletter
\DeclareSymbolFont{alphabets}{\encodingdefault}{pmn}{m}{it}
\SetSymbolFont{alphabets}{normal}{\encodingdefault}{pmn}{m}{it}
\SetSymbolFont{alphabets}{bold}{\encodingdefault}{pmn}{b}{it}
\DeclareMathSymbol{f}{\mathalpha}{alphabets}{"66}
\makeatother
\begin{document}
Print $f$.
\begin{align*}
F(x)
& = \sum_{d\mid n}f(d)
\end{align*}\\[1cm]
\end{document}
但是,它不会生成“f”的数学/斜体版本,只有纯文本版本。我该如何将其变为斜体?
未回答此问题的相关问题:如何替换字母?和XeLaTeX:mathtools、unicode-math 和 \text spoil \mathtt
答案1
我假设您想要 Minion Pro。要成功,您需要声明一个字体系列并为其分配一个 NFSS 名称。
\documentclass{article}
\usepackage{amsmath}
%\usepackage{graphicx}
%\usepackage{physics}
\usepackage{mathspec}
\defaultfontfeatures{Mapping=tex-text,}
\setmathsfont(Digits){Old Standard}
\setmathsfont(Latin)[Uppercase=Italic,Lowercase=Italic]{Old Standard}
\newfontfamily{\minion}{Minion Pro}[NFSSFamily=pmn]
\DeclareSymbolFont{alphabets}{\encodingdefault}{pmn}{m}{it}
\SetSymbolFont{alphabets}{bold}{T1}{pmn}{b}{it}
\DeclareMathSymbol{f}{\mathalpha}{alphabets}{"66}
\begin{document}
Print $f$.
\begin{equation*}
F(x) = \sum_{d\mid n}"f(d)
\end{equation*}
\end{document}
如果没有这种方法,您会收到关于不存在的字体可以用其他字体替代的警告。