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}
と\setmathfont{...}
( が必要)を省略するとunicode-math
、出力は予想どおりになります。
答え1
パッケージは数学記号として、正確には U+2047 DOUBLE QUESTION MARK、つまり ⁇ をunicode-math
定義します。\Question
\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}