仅为复杂性包使用自由数学字体

仅为复杂性包使用自由数学字体

我目前正在使用该complexity包,其中我为复杂性类定义了许多新命令,并且我正在使用该libertine字体编写文档。除了复杂性包呈现的命令外,我希望对所有内容使用常规数学字体...也就是说,我希望包定义的命令complexity使用数学字体libertinust1math,而其余数学应以常规数学字体呈现。

我想象一定有一个简单的命令可以改变特定命令的字体,但我不知道它是什么。

答案1

acmart课程使用 Linux Libertine 字体作为文本,并且

\RequirePackage[libertine]{newtxmath}

如果您执行相同的操作(\usepackage当然使用),您将得到想要的结果,并避免混合视觉上不兼容的字体。

使用代码由 frugon 提供

\documentclass{article}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\usepackage{amsmath}
\usepackage{complexity}

\begin{document}

\[
   \begin{array}{l}
     \P \subseteq \NP\\
     \CVP \leq_m \SAT\\
     \polylog \in O(\poly)\\
     \PSPACE \subseteq \EXP\\
     \SAT \leq_T \MaxSAT\\
     \polylog \in \Omega(\llog)
   \end{array}
\]

\newcommand{\diff}{\mathop{}\!d}% https://tex.stackexchange.com/a/84308/73317
\[
  \forall z\in \mathbb{C},
    \Bigl(
      \Re(z) > 0 \implies \Gamma(z) =
        \int_{0}^{+\infty} x^{z-1} e^{-x} \diff x
    \Bigr)
\]
\end{document}

在此处输入图片描述

这将使用 Linux Biolinum 作为无衬线字体。如果你想要 使用的无衬线字体libertinust1math,那么你可以这样做

\documentclass{article}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\usepackage{amsmath}
\usepackage{complexity}

\DeclareFontEncoding{LS1}{}{}
\DeclareFontSubstitution{LS1}{libertinust1mathsf}{m}{n}
\DeclareMathAlphabet{\mathsf}{LS1}{libertinust1mathsf}{m}{n}
\SetMathAlphabet{\mathsf}{bold}{LS1}{libertinust1mathsf}{b}{n}

\begin{document}

\[
   \begin{array}{l}
     \P \subseteq \NP\\
     \CVP \leq_m \SAT\\
     \polylog \in O(\poly)\\
     \PSPACE \subseteq \EXP\\
     \SAT \leq_T \MaxSAT\\
     \polylog \in \Omega(\llog)
   \end{array}
\]

\newcommand{\diff}{\mathop{}\!d}% https://tex.stackexchange.com/a/84308/73317
\[
  \forall z\in \mathbb{C},
    \Bigl(
      \Re(z) > 0 \implies \Gamma(z) =
        \int_{0}^{+\infty} x^{z-1} e^{-x} \diff x
    \Bigr)
\]
\end{document}

在此处输入图片描述

答案2

下面的操作按照问题的要求进行(已测试pdflatex)。我让作者自行选择匹配的字体。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}     % for instance
\usepackage{amsmath}     % only for stuff in the last formula
\usepackage{amsfonts}    % ditto
\usepackage{complexity}

\makeatletter
% Define math alphabet \mathsfliti using LibertinusT1Math (adapted from
% libertinust1math.sty)
\unless\ifdefined\iflibus@sansmath
  \newif\iflibus@sansmath
\fi

\DeclareFontEncoding{LS1}{}{}
\DeclareFontSubstitution{LS1}{libertinust1math}{m}{n}
\DeclareMathAlphabet{\mathsfliti}{LS1}{libertinust1mathsf}{m}{n}

% Adapted from complexity.sty: use \mathsfliti for everything in complexity.sty
\renewcommand{\complexity@fontcommand}{\mathsfliti}
\renewcommand{\lang}[1]{{\ensuremath{\mathsfliti{#1}}}}
\renewcommand{\func}[1]{{\ensuremath{\mathsfliti{#1}}}}
\makeatother

\begin{document}

% \showoutput % Uncomment to verify which font is used for which glyph
\[
   \begin{array}{l}
     \P \subseteq \NP\\
     \CVP \leq_m \SAT\\
     \polylog \in O(\poly)\\
     \PSPACE \subseteq \EXP\\
     \SAT \leq_T \MaxSAT\\
     \polylog \in \Omega(\llog)
   \end{array}
\]

\newcommand{\diff}{\mathop{}\!d}% https://tex.stackexchange.com/a/84308/73317
\[
  \forall z\in \mathbb{C},
    \Bigl(
      \Re(z) > 0 \implies \Gamma(z) =
        \int_{0}^{+\infty} x^{z-1} e^{-x} \diff x
    \Bigr)
\]
\end{document}

在此处输入图片描述

相关内容