LaTeX `exam` クラスの `align` 環境内に `\fillin[]` を配置する適切な方法はありますか?

LaTeX `exam` クラスの `align` 環境内に `\fillin[]` を配置する適切な方法はありますか?

私は、\fillin[]LaTeXexamクラスのコマンドを使用して、次の出力を生成しています。

ここに画像の説明を入力してください

Convert the following angles from degrees to radians:
\begin{questions}
    \begin{multicols}{4}
        \question
        \begin{align*}
            180 \degree 
            &= \fillin[$1$] \pi \\
            &= \fillin[$\frac{1}{2}$] \tau \\
            &\approx \fillin[$3.14159$]
        \end{align*}

        \columnbreak

        \question
        \begin{align*}
            90 \degree
            &= \fillin[$\frac{1}{2}$] \pi \\
            &= \fillin[$\frac{1}{4}$] \tau \\
            &\approx \fillin[$1.57079$]
        \end{align*}

        \columnbreak

        \question
        \begin{align*}
            270 \degree
            &= \fillin[$\frac{3}{2}$] \pi \\
            &= \fillin[$\frac{3}{4}$] \tau \\
            &\approx \fillin[$4.71238$]
        \end{align*}

        \columnbreak

        \question
        \begin{align*}
            360 \degree
            &= \fillin[$2$] \pi \\
            &= \fillin[$1$] \tau \\
            &\approx \fillin[$6.28318$]
        \end{align*}
    \end{multicols}
    \vspace*{\stretch{1}}
\end{questions}

出力はまさに私が期待したとおりです。ただし、Overleaf からいくつかのエラーが発生しています。

ここに画像の説明を入力してください

\fillin[]環境内に配置するのは適切ではないと思われますalign。また、環境内では通常許可されないドル記号を削除してみましたalignが、これは役に立たず、分数が正しくレンダリングされなくなりました。

\fillin[]環境内で適切な対処方法はありますかalign?

\fillin[]さらに、これは別の質問のために保存しておいた方がよいかもしれませんが、クラス外exam、たとえばクラス内で機能するコマンドを作成する方法はありますかkaobook?

答え1

これらは決してエラーではありません。Overleaf エディターは、$既知の数式表示環境内に記号がある場合にマークするように指示されています。

括弧内に入力したテキストが正解であり、\fillin数式モードであるかどうかを「認識」しません。いずれにしても、テキスト モードで引数が使用されます。

「エラー」の通知を回避するには、

\fillin[\ensuremath{\frac{1}{2}}]

または、数式モードで使用される引数のエイリアスを定義します。

\documentclass[answers]{exam}
\usepackage{multicol,amsmath}

\NewDocumentCommand{\mathfillin}{oo}{%
  \IfNoValueTF{#1}{\fillin}{%
    \IfNoValueTF{#2}{\fillin[$#1$]}{%
      \fillin[$#1$][#2]%
    }%
  }%
}

% guesses to make the code to compile
\newcommand{\degree}{\ensuremath{^\circ}}
\setlength{\fillinlinelength}{3em}
%%%

\begin{document}

Convert the following angles from degrees to radians:

\begin{questions}
  \begin{multicols}{4}
        \question
        $\begin{aligned}[t]
            180 \degree 
            &= \mathfillin[1] \pi \\
            &= \mathfillin[\frac{1}{2}] \tau \\
            &\approx \mathfillin[3.14159]
        \end{aligned}$

        \question
        $\begin{aligned}[t]
            90 \degree
            &= \mathfillin[\frac{1}{2}] \pi \\
            &= \mathfillin[\frac{1}{4}] \tau \\
            &\approx \mathfillin[1.57079]
        \end{aligned}$

        \question
        $\begin{aligned}[t]
            270 \degree
            &= \mathfillin[\frac{3}{2}] \pi \\
            &= \mathfillin[\frac{3}{4}] \tau \\
            &\approx \mathfillin[4.71238]
        \end{aligned}$

        \question
        $\begin{aligned}[t]
            360 \degree
            &= \mathfillin[2] \pi \\
            &= \mathfillin[1] \tau \\
            &\approx \mathfillin[6.28318]
        \end{aligned}$
    \end{multicols}
    \vspace*{\stretch{1}}
\end{questions}

\end{document}

ただし、これはalign*この作業に適したツールではないことに注意してください。`$\begin{aligned}[t]...\end{aligned}$ の方がはるかに優れています。

ここに画像の説明を入力してください

オプションなしの場合answers:

ここに画像の説明を入力してください

関連情報