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)即可消除選項衝突錯誤。然而,正如所指出的烏爾里克費雪在她的評論中,將選項傳遞給已載入的套件也沒有太大意義。所以你可以:

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

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

\begin{document}

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

\end{document}

相關內容