如何解決運動包和 unicode-math 包的不相容性問題?

如何解決運動包和 unicode-math 包的不相容性問題?

我想在使用 LuaLaTeX 處理的 LaTeX 文件中使用練習包。在這種情況下,我遇到了問題的編號和格式無法正常工作的問題。

我如何使用這兩個包,即如何調試和修復這種不相容性?

我將這個問題簡化為 MWE,如下所示:

\documentclass{book}

\usepackage{amsmath}
\usepackage[lastexercise,answerdelayed]{exercise}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{unicode-math}% Incompatible with exercise package
\usepackage{fontspec}% I want to select a different font

\setmainfont{Linux Libertine O}
\setmathfont{Tex Gyre Pagella Math}% this requires unicode-math

\begin{document}

\chapter{List of problems}
\begin{ExerciseList}
    \Exercise Prove Bernoulli's inequality
    \[
        (1+x)^n \geq 1+nx, \text{ for } x\geq -1 \text{ and } n\geq 0.
    \]
    \Exercise Find out if the following equations are true.
        \Question $(1 + 5)^2 \geq 11$
        \Question $1 < 5$
        \Question $1 > 5$
\end{ExerciseList}

\end{document}

使用lualatex(或xelatex- 兩者都使用該-8bit選項)處理此問題會產生一個問題編號不正確的文件。

省略\usepackage{unicode-math}和 the \setmathfont{...}(需要unicode-math),則輸出如預期。

答案1

unicode-math包定義\Question為一個數學符號,準確地說是 U+2047 雙問號,即 ⁇。

\documentclass{book}

\usepackage{amsmath}
\usepackage[lastexercise,answerdelayed]{exercise}
\usepackage{polyglossia}
\usepackage{unicode-math}

\setmainlanguage{english}

\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}% this requires unicode-math

\let\exerciseQuestion\Question
\AtBeginDocument{%
  \let\mathQuestion\Question
  \let\Question\exerciseQuestion
}

\begin{document}

\chapter{List of problems}
\begin{ExerciseList}
    \Exercise Prove Bernoulli's inequality
    \[
        (1+x)^n \geq 1+nx, \text{ for } x\geq -1 \text{ and } n\geq 0.
    \]
    \Exercise Find out if the following equations are true.
        \Question $(1 + 5)^2 \geq 11$
        \Question $1 < 5$
        \Question $1 > 5$
\end{ExerciseList}

\end{document}

在此輸入影像描述

相關內容