暂时关闭全局选项

暂时关闭全局选项

参见这个最小示例

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{marathi}
\usepackage[no-math]{fontspec}
\setmainfont[Script=Devanagari,Mapping=devanagarinumerals]{Shobhika}

\begin{document}
    \ensuremath{\frac{१}{२}}
\end{document}

我需要no-math选项来实现此 MWE 中不必要的目的,但我还想输入一次命令。如何在文档中\frac关闭选项(最初是全局声明的)以缩短范围。no-math

答案1

使用\text

\documentclass{article}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{marathi}
\setmainfont[Script=Devanagari,Mapping=devanagarinumerals]{Shobhika}
\usepackage{amsmath}

\begin{document}

$\frac{\text{१}}{\text{२}}$

\end{document}

在此处输入图片描述

答案2

您问如何暂时关闭全局选项。

通常,您必须查看设置全局选项的代码(在类或包中),创建一个否定该代码的宏以及一个恢复选项代码的宏。大致如下:

\documentclass[opta]{...}
\newcommand{\killopta}{...}
\newcommand{\enableopta}{...}
%
\begin{document}
bla bla bla
\killopta % disable option opta
more blas
\enableopta % reenable option opta
yet more blas
\end{document}

添加

在评论中,OP 询问如何处理包nomath中的选项fontspec

我从未使用过fontspec,但查看fonspec给出的代码,fontspec-luatex.sty有以下代码:

\DeclareOption {math}    {\bool_gset_true:N \g__fontspec_math_bool }
\DeclareOption {no-math} { \bool_gset_false:N \g__fontspec_math_bool }

我猜测创建两个新命令,比如和,\mathon它们的定义与和选项\mathoff相同,这样你就可以在文档中在它们之间切换。mathno-math

相关内容