beamer-lualatex:设置 fontspec 包的编码时发生选项冲突

beamer-lualatex:设置 fontspec 包的编码时发生选项冲突

使用 lualatex 编译 beamer 文档时,我使用fontspec包没有问题。但是,当像在这个 MWE 中一样设置它的编码时,我总是收到此错误

软件包 fontspec 的选项冲突

我应该fontspec在不指定编码的情况下加载吗,或者这里缺少了什么?

\documentclass[lualatex]{beamer}
\usepackage{pgfpages,blindtext}
\usetheme{metropolis}

\usepackage[tuenc]{fontspec}

\begin{document}

\begin{frame}
    \blindtext
\end{frame}

\end{document}

答案1

\documentclass[lualatex]{beamer}
\usepackage{pgfpages,blindtext}
\usetheme{metropolis}
\begin{document}

    \begin{frame}
        \blindtext
    \end{frame}

\end{document}

应该没问题。运行时lualatexfontspec 已经加载了tuenc定义文件:

[...](/usr/local/texlive/2017/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty(/usr/local/texlive/2017/texmf-dist/tex/latex/base/fontenc.sty(/usr/local/texlive/2017/texmf-dist/tex/latex/base/tuenc.def))(/usr/local/texlive/2017/texmf-dist/tex/latex/fontspec/fontspec.cfg)(加载 luc:[...]

答案2

在内部,metropolis 主题针对 xetex 或 luatex 执行以下操作:

\@ifpackageloaded{fontspec}{
  \PassOptionsToPackage{no-math}{fontspec}
}{
  \RequirePackage[no-math]{fontspec}
}

这意味着,只需切换加载软件包的顺序(fontspec在之前metropolis)即可消除选项冲突错误。然而,正如指出的那样Ulrike Fischer 在其评论中,将选项传递给已加载的包也没有多大意义。因此你可以:

\documentclass[lualatex]{beamer}
\usepackage{pgfpages,blindtext}

\PassOptionsToPackage{tuenc}{fontspec}
\usetheme{metropolis}

\begin{document}

\begin{frame}
    \blindtext
\end{frame}

\end{document}

相关内容