LuaTeX:在数学模式下使用其他字体的单个符号

LuaTeX:在数学模式下使用其他字体的单个符号

我尝试在数学模式中使用其他 (TrueType) 字体(几种不同的字体)中的特定符号(如数学字母、数学运算符等)。因此,我猜应该通过 DeclareMathSymbol 定义符号。TeX 文件中的 $\mysymbol$ 会产生错误消息“字体形状‘U/MyFont/m/n’未定义”。我无法通过 DeclareSymbolFont 和 DeclareFontShape 修复它。(\MyFont{10509} 和 $\text{\MyFont{10509}}$ 在这里确实有效,但这不是我需要的。)谢谢您的帮助。


%\listfiles
\documentclass{article}
\usepackage{geometry}
\geometry{
 a4paper,
 total={170mm,257mm},
 left=20mm,
 top=20mm,
}
\usepackage{fontspec}
\usepackage{mathtools}

\title{Formula Font Test}
\author{Stefan}
\date{2017-03-15}

\newfontfamily\MyFontFamily[Path=C:/tmp/fonts/]{cambria.ttc}

% \DeclareFontFamily {} {} {}
%\DeclareFontFamily{U}{MyFamilyFont}{m}

\newcommand\MyFont[1]{\MyFontFamily\symbol{#1}}

% \DeclareSymbolFont {} {} {} {} {}
\DeclareSymbolFont{MyFontSymb}{U}{MyFont}{m}{n}

% \DeclareFontShape{U}{MyFontSymb}{m}{n}{  MyFont }{}
%\DeclareFontShape{MyFontSymb}{m}{n}{\UnicodeFontFile{cambria}{\UnicodeFontTeXLigatures}}{}

\DeclareMathSymbol{\othersymbol}{\mathalpha}{letters}{"0B}
\DeclareMathSymbol{\mysymbol}{\mathalpha}{MyFontSymb}{10509}

\usepackage{luacode}
\begin{document}

\maketitle

\MyFont{10509}

$
\othersymbol
\text{ \MyFont{10509} }
\mysymbol
$

\end{document}

答案1

你可以这样做

\documentclass{article}

\usepackage{fontspec}
\usepackage{mathtools}



\newfontfamily\MyFontFamily{cambria.ttc}[NFSSFamily=cambria]
\newcommand\MyFont[1]{{\MyFontFamily\symbol{#1}}}

\DeclareSymbolFont{MyFontSymb}{TU}{cambria}{m}{n}
\Umathchardef\mysymbol="3 \symMyFontSymb 10509


\begin{document}

\MyFont{10509}
$
x_{\mysymbol} {\mysymbol}
$

\end{document}

在此处输入图片描述

但我有点怀疑是否真的需要设置新的符号字体。一个更简单的方法是在这个答案中https://tex.stackexchange.com/a/344462/2388

相关内容