我正在使用该Gill Sans
字体,但我注意到 I、l 和 1 混淆了。所以我想在公式环境中为这些字母使用另一种字体,我以前也\fontspec
这样做过,但它不会改变公式环境中的字体!
我的 MWE (使用 XeLaTeX 编译):
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{Gill Sans}
\setsansfont[ItalicFont={Gill Sans MT Italic}]{Gill Sans}
\newcommand{\vl}{\fontspec{BrushScript}{l}}%BrushScript for l
\newcommand{\vI}{\fontspec{Courier BOLD}{I}} % Courier BOLD for I
\newcommand{\un}{\fontspec{Courier BOLD}{1}} % Courier BOLD for 1
\begin{document}
\begin{frame}{}
\fontspec{Gill Sans}{(l,I,1)}, \vl, \vI,\un. In the equation environment:
\begin{equation*}
\vl, \vI,\un
\end{equation*}
\end{frame}
\end{document}
答案1
如果使用您自己的配置,则需要使用professionalfonts
主题,以避免在不方便的时刻出现意外的怪异情况。
你不需要丰滕克据我所知。
你做需要现代因为否则默认数学仍然会使用计算机现代,尽管字体规格将文本切换为拉丁现代文本。
我不确定你到底想做什么。如果你想要在数学模式下使用文本字符,而不需要明确切换到文本,你可以使用\text{}
使用数学在宏的定义中。
请注意,它\fontspec{}[]
需要一个强制参数和一个可选参数。它不接受第二个强制参数,并且定义中的第二组括号不执行任何操作。
所以
\fontspec{<font name>}[<options>] <whatever>
但是,最好定义一个额外的字体系列,而不是继续使用\fontspec
相同的字体/设置。
\newfontfamily\tgschola{TeXGyreSchola}
\newfontfamily\helvetica{Helvetica Neue}
我没有你在这里使用的字体,所以我用我有的字体替换了。然后我们可以这样说
\newcommand*{\vl}{\text{\tgschola\textit{l}}}
\newcommand*{\vI}{\text{\helvetica I}}
\newcommand*{\un}{\text{\helvetica 1}}
确保\text{}
切换到文本模式。
输出如下
但请注意,如果这些是数学字符,这可能不是您想要的解决方案,您应该将它们定义为数学符号或其他任何符号。
\documentclass{beamer}
\usefonttheme{professionalfonts}
\usepackage{lmodern,amsmath}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{Gill Sans}
\setsansfont[ItalicFont={Gill Sans Italic}]{Gill Sans}
\newfontfamily\tgschola{TeXGyreSchola}
\newfontfamily\helvetica{Helvetica Neue}
\newcommand*{\vl}{\text{\tgschola\textit{l}}}
\newcommand*{\vI}{\text{\helvetica I}}
\newcommand*{\un}{\text{\helvetica 1}}
\begin{document}
\begin{frame}{}
(l,I,1), \vl, \vI,\un. In the equation environment:
\begin{equation*}
\vl, \vI, \un
\end{equation*}
\end{frame}
\end{document}