使用自定义投影仪样式时,欧姆符号未在数学模式下显示

使用自定义投影仪样式时,欧姆符号未在数学模式下显示

因此,我使用了雇主要求的自定义投影仪样式,并且在尝试用“欧姆”符号排版一些问题示例时,我注意到它并不总是有效。

起初,我注意到它根本没有出现,使用以下代码:

\documentclass[9pt]{beamer}
\mode<presentation>
{
    \usetheme{JuanLesPins}
    \usefonttheme{serif}
    \usecolortheme{beaver}
    \setbeamercovered{invisible} \setbeamertemplate{blocks}[rounded][shadow=true] 
    \setbeamertemplate{navigation symbols}{} 
    \setbeamertemplate{footline}[frame number]
    \usecolortheme[RGB={122,4,24}]{structure}
}

\setcounter{tocdepth}{1}

\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{polyglossia}
\setdefaultlanguage{brazil}

\usepackage{siunitx}
\sisetup{per-mode=symbol,output-decimal-marker={,},math-micro=\text{µ},text-micro=µ,exponent-product = \cdot}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\section*{Sumário}

\begin{frame}{Sumário}
  \tableofcontents
\end{frame}

\begin{frame}{}
    You can see that this doesn't work: \SI{1}{\ohm}

    Nor does this: $ \SI{1}{\ohm} $

    Or this: $$ \SI{1}{\ohm} $$
    Or this: \[ \SI{1}{\ohm} \]
    Or \[ \text{\SI{1}{\ohm}} \]
\end{frame}

\end{document}

detect-all=true添加命令后,\sisetup我设法使\SI文本模式下的宏起作用,但没有一个数学宏起作用,就像这样。

我注意到,如果我\usefonttheme{serif}从样式定义中删除该行(我不知道如何称呼它,抱歉),一切都会照常工作。

代码完全相同,但字体主题“serif”行被注释

我考虑重新定义 siunitx 包使用的 Omega 字符,但无济于事。

\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A}

还尝试更改包中使用的字体(math-rm=\mathrm, text-rm=\rmfamily\sisetup),并使其对外部系列字体不敏感(detect-family=false\sisetup)。但都没有任何明显的结果。

答案1

您遇到的问题很可能是使用该包的(不良)副作用polyglossia,该包在与语言选项一起使用时似乎存在一些问题brazil

除非你绝对必须使用该polyglossia软件包,否则一个简单的补救措施包括(a)删除(或至少注释掉)说明

\usepackage{polyglossia}
\setdefaultlanguage{brazil}

(b)在其位置运行该指令

\usepackage[portuguese]{babel}

单独的评论/观察:我也会删除选项siunitxmath-micro=\text{µ}text-micro=µ当然,当与包一起使用时babel,这些选项在编写时会产生不正确的输出,例如,\si{\micro\ohm}

在此处输入图片描述

\documentclass{beamer}
\mode<presentation>
{
    \usetheme{JuanLesPins}
    \usefonttheme{serif}
    \usecolortheme{beaver}
    \setbeamercovered{invisible} \setbeamertemplate{blocks}[rounded][shadow=true]
    \setbeamertemplate{navigation symbols}{}
    \setbeamertemplate{footline}[frame number]
    \usecolortheme[RGB={122,4,24}]{structure}
}

\usepackage{lmodern}
\usepackage[T1]{fontenc}

%\usepackage{polyglossia}
%\setdefaultlanguage{brazil}
\usepackage[portuguese]{babel}

\usepackage{siunitx}
\sisetup{per-mode=symbol,output-decimal-marker={,},exponent-product = \cdot}

\begin{document}
\begin{frame}{}
    This works now: \SI{1}{\micro\ohm}

    So does this: $\SI{1}{\micro\ohm}$

    And this: $$ \SI{1}{\micro\ohm} $$
    And this: \[ \SI{1}{\micro\ohm} \]
    And this: \[ \text{\SI{1}{\micro\ohm}} \]
\end{frame}
\end{document}

答案2

只需删除\usepackage{lmodern}\usepackage[T1]{fontenc}

\documentclass[9pt]{beamer}
\mode<presentation>
{
    \usetheme{JuanLesPins}
    \usefonttheme{serif}
    \usecolortheme{beaver}
    \setbeamercovered{invisible} \setbeamertemplate{blocks}[rounded][shadow=true] 
    \setbeamertemplate{navigation symbols}{} 
    \setbeamertemplate{footline}[frame number]
    \usecolortheme[RGB={122,4,24}]{structure}
}

\setcounter{tocdepth}{1}

\usepackage{polyglossia}
\setdefaultlanguage{brazil}

\usepackage{siunitx}
\sisetup{
  per-mode=symbol,
  output-decimal-marker={,},
  math-micro=\text{µ},
  text-micro=µ,
  exponent-product = \cdot
}

\begin{document}

\begin{frame}{}
    You can see that this doesn't work: \SI{1}{\ohm}

    Nor does this: $ \SI{1}{\ohm} $

    Or this: \[ \SI{1}{\ohm} \]
    Or \[ \text{\SI{1}{\ohm}} \]
\end{frame}

\end{document}

在此处输入图片描述

相关内容