試験用紙は解答欄を白くしておく

試験用紙は解答欄を白くしておく

試験用紙のテンプレートを作成します。用紙には質問と回答が含まれており、オン/オフの回答を表示するためのスイッチャーが定義されています。スイッチャーがオンの場合はすべてが表示され、そうでない場合は回答を書くためのスペースが残っている質問のみが表示されます。

その包みtカラーボックス回答場所のスタイルを設定するために使用されます。パッケージハイパーリファレンスまた、質問の番号を参照するためにも使用されることがあります。

しかし、何かが間違っている可能性があります。tcolorbox の代わりに amsmath theorem スタイルを使用すると、回答を「白」(非表示) にすることができず、リンク付きの autoref も非表示にできません。

MWEは以下の通りです。

    \documentclass{article}

    \usepackage{lipsum}
    \def\exampleboxedtext{
         convenient way to generate a new theorem type. On the other hand, it enforces to use a titled
        \begin{equation}x^2 +y^2 =1\end{equation}
        a convenient way to generate a new theorem type. On the other hand, it
    }

    \usepackage[most]{tcolorbox}
    %------------------------
    \newcommand{\drtitt}{ %
        \node[anchor=north east,
        inner xsep=0pt,xshift=0.8em, %yshift=-0.2em,
        font=\bfseries] at (frame.north west) (tit) {\strut \fbox{ans}};
    }
    \newcommand{\drawTCBtopl}{
        \draw[line width=1.5pt,blue]([xshift=-2em,yshift=-0.2em]frame.north west)--([yshift=-0.2em]frame.north east); %top line
        }
    \newcommand{\drawTCBbotl}{
        \draw[line width=1.5pt,blue]([xshift=1.5em,yshift=0.3em]frame.south west)--([yshift=0.3em]frame.south east);
    }
    \newtcolorbox{examsolv}{ %
        empty,breakable,
        beforeafter skip=0pt,
        leftright skip=0pt,
        width=\dimexpr\linewidth+28pt\relax,
        text width=\linewidth-1mm,
        enlarge left by=-12pt,
        overlay unbroken ={\drtitt;\drawTCBtopl;\drawTCBbotl},
        overlay first={\drtitt; \drawTCBtopl},
        overlay middle={},
        overlay last={\drawTCBbotl},
        frame code={},interior code={},
        top=0pt,bottom=0pt,right=0pt
    }

    \newtoggle{showans} %etoolbox
    \togglefalse{showans}

    \newcommand{\yesnoans}[1]{\iftoggle{showans}{#1}{\color{white} #1}}
    \newenvironment{ansonoff}[1][0em]{ %
        \yesnoans
        \begingroup\begin{examsolv} %
        }{\end{examsolv} %
        \endgroup%
    }

    \usepackage{hyperref}

    \begin{document}

    \section{test}\label{sc:testsc}

    Switcher "showans" is off, but only the side text is hidden, the body still is showed. 

    \begin{ansonoff}
    \exampleboxedtext 
    that the ref with link like this \autoref{sc:testsc} cannot be hidden.
    this is a new problem! the typing text also cannot be hidden.
    \end{ansonoff}

    \lipsum[66]

    \begin{examsolv}
    \lipsum[66]
    \end{examsolv}

    \lipsum[66]

    \begin{enumerate}
    \item \lipsum[66]
    \begin{ansonoff}
        \lipsum[66-70]
    \end{ansonoff}
    \item \lipsum[66]
    \end{enumerate}

    \lipsum[66]
    \end{document}

答え1

色を白に設定することで回答部分を非表示にできますが、 の色設定は、tcolorboxたとえば で指定する必要がありますcolupper。これはリンクのフレームの色には影響しないことに注意してください。

\documentclass{article}

\usepackage{lipsum}
\def\exampleboxedtext{
     convenient way to generate a new theorem type. On the other hand, it enforces to use a titled
    \begin{equation}x^2 +y^2 =1\end{equation}
    a convenient way to generate a new theorem type. On the other hand, it
}

\usepackage[most]{tcolorbox}
%------------------------
\newcommand{\drtitt}{ %
    \node[anchor=north east,
    inner xsep=0pt,xshift=0.8em, %yshift=-0.2em,
    font=\bfseries] at (frame.north west) (tit) {\strut \fbox{ans}};
}
\newcommand{\drawTCBtopl}{
    \draw[line width=1.5pt,blue]([xshift=-2em,yshift=-0.2em]frame.north west)--([yshift=-0.2em]frame.north east); %top line
    }
\newcommand{\drawTCBbotl}{
    \draw[line width=1.5pt,blue]([xshift=1.5em,yshift=0.3em]frame.south west)--([yshift=0.3em]frame.south east);
}
\newtcolorbox{examsolv}{%
    empty,breakable,
    beforeafter skip=0pt,
    leftright skip=0pt,
    width=\dimexpr\linewidth+28pt\relax,
    text width=\linewidth-1mm,
    enlarge left by=-12pt,
    overlay unbroken ={\drtitt;\drawTCBtopl;\drawTCBbotl},
    overlay first={\drtitt; \drawTCBtopl},
    overlay middle={},
    overlay last={\drawTCBbotl},
    frame code={},interior code={},
    top=0pt,bottom=0pt,right=0pt
}

\newtoggle{showans} %etoolbox
\togglefalse{showans}

\newcommand{\yesnoans}[1]{\iftoggle{showans}{#1}{\color{white} #1}}

\newenvironment{ansonoff}{%
  \iftoggle{showans}{}{\color{white}\tcbset{colupper=white}}% <------------ Edited 
  \begin{examsolv}%
  }{\end{examsolv}%
}

\usepackage{hyperref}

\begin{document}

\section{test}\label{sc:testsc}

Switcher "showans" is off, but only the side text is hidden, the body still is showed.

\begin{ansonoff}
\exampleboxedtext
that the ref with link like this \autoref{sc:testsc} cannot be hidden.
this is a new problem! the typing text also cannot be hidden.
\end{ansonoff}

\lipsum[66]

\begin{examsolv}
\lipsum[66]
\end{examsolv}

\lipsum[66]

\begin{enumerate}
\item \lipsum[66]
\begin{ansonoff}
    \lipsum[66-70]
\end{ansonoff}
\item \lipsum[66]
\end{enumerate}

\lipsum[66]
\end{document}

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

色を白に設定する代わりに、 の下部にコンテンツを配置することもtcolorboxできます。 下部は で非表示にできますlowerbox=invisible。 これにより、コンテンツ全体が削除されます。

\documentclass{article}

\usepackage{lipsum}
\def\exampleboxedtext{
     convenient way to generate a new theorem type. On the other hand, it enforces to use a titled
    \begin{equation}x^2 +y^2 =1\end{equation}
    a convenient way to generate a new theorem type. On the other hand, it
}

\usepackage[most]{tcolorbox}
%------------------------
\newcommand{\drtitt}{ %
    \node[anchor=north east,
    inner xsep=0pt,xshift=0.8em, %yshift=-0.2em,
    font=\bfseries] at (frame.north west) (tit) {\strut \fbox{ans}};
}
\newcommand{\drawTCBtopl}{
    \draw[line width=1.5pt,blue]([xshift=-2em,yshift=-0.2em]frame.north west)--([yshift=-0.2em]frame.north east); %top line
    }
\newcommand{\drawTCBbotl}{
    \draw[line width=1.5pt,blue]([xshift=1.5em,yshift=0.3em]frame.south west)--([yshift=0.3em]frame.south east);
}
\newtcolorbox{examsolv}{%
    empty,breakable,
    beforeafter skip=0pt,
    leftright skip=0pt,
    width=\dimexpr\linewidth+28pt\relax,
    text width=\linewidth-1mm,
    enlarge left by=-12pt,
    overlay unbroken ={\drtitt;\drawTCBtopl;\drawTCBbotl},
    overlay first={\drtitt; \drawTCBtopl},
    overlay middle={},
    overlay last={\drawTCBbotl},
    frame code={},interior code={},
    top=0pt,bottom=0pt,right=0pt,
    middle=0mm,% unorthodox, but boxsep has a positive value <------------ Edited 
}

\newtoggle{showans} %etoolbox
\togglefalse{showans}

\newcommand{\yesnoans}[1]{\iftoggle{showans}{#1}{\color{white} #1}}

\newenvironment{ansonoff}{%
  \iftoggle{showans}{}{\color{white}\tcbset{lowerbox=invisible}}% <------------ Edited 
  \begin{examsolv}\tcblower%
  }{\end{examsolv}%
}

\usepackage{hyperref}

\begin{document}

\section{test}\label{sc:testsc}

Switcher "showans" is off, but only the side text is hidden, the body still is showed.

\begin{ansonoff}
\exampleboxedtext
that the ref with link like this \autoref{sc:testsc} cannot be hidden.
this is a new problem! the typing text also cannot be hidden.
\end{ansonoff}

\lipsum[66]

\begin{examsolv}
\lipsum[66]
\end{examsolv}

\lipsum[66]

\begin{enumerate}
\item \lipsum[66]
\begin{ansonoff}
    \lipsum[66-70]
\end{ansonoff}
\item \lipsum[66]
\end{enumerate}

\lipsum[66]
\end{document}

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

関連情報