我正在尝试创建一个简单的文档,其中包含问题,这些问题的答案“隐藏”在鼠标单击之后。问题是当我尝试使用带有默认标签以外的标签的列表(通过 enumitem)实现这一点时。我的 MWE 如下:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{ocgx}
\usepackage{enumitem}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{ex}{\bf Example}[section]
\newenvironment{mysolution}{\begin{ocg}{OCG\theex\theenumi}{ocg\theex\theenumi}{0}\leavevmode\marginpar{SOLUTION}}{\end{ocg}\hfill\switchocg{ocg\theex\theenumi}{$\Box$}}
\begin{document}
\section{Math}
\begin{ex}
A math question
\begin{enumerate}
\item
What is $1+1$?
\begin{mysolution}
$1+1=2$
\end{mysolution}
\end{enumerate}
\end{ex}
\end{document}
我想将[label=\bfseries(\alph*)]
其作为 enumerate 的参数,但这会导致\theenumi
重命名为{\theenumi}
(您可以在 PDF 中看到)的问题,并且ocgx
无法读取;这会导致一串错误。这似乎只是软件包的问题,enumitem
因为它可以毫无问题地处理 alpha 标签,但我无法将它们加粗。有什么建议我应该尝试吗?
答案1
环境选项从原来的含义[label=\bfseries(\alph*)]
重新定义为,由于引入了格式化指令( ),因此不再具有扩展性。\theenumi
\number\c@enumi
\protect \bfseries (\alph {enumi})
\bfseries
但是,ocg
环境的名称和引用参数必须是可扩展的。名称用于 PDF 文件中,并出现在 PDF 查看器的“图层”导航选项卡中,而引用则在 LaTeX 运行期间用于内部识别 OCG。
为了确保其在参数中的可扩展性,我们使用而不是 来ocg
剥离枚举项计数器的格式。此外,在示例中添加了一个复选标记,以便在解决方案揭晓时显示。为此,在链接文本参数中使用了一个环境 (pkg ) 。(\alph{enumi})
\theenumi
ocmd
ocgx2
\switchocg
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{ocgx2}
\usepackage{enumitem}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{ex}{\bf Example}[section]
\newenvironment{mysolution}{%
\begin{ocg}{Example \theex\ (\alph{enumi})}{ocg\theex.\alph{enumi}}{off}
\marginpar{SOLUTION}%
}{%
\end{ocg}\hfill%
\switchocg{ocg\theex.\alph{enumi}}{%
\begin{ocmd}{\AllOn{ocg\theex.\alph{enumi}}}
\makebox[0pt][l]{\large\checkmark}
\end{ocmd}$\Box$%
}%
}
\begin{document}
\section{Math}
\begin{ex}
A math question
\begin{enumerate}[label=\bfseries(\alph*)]
\item
What is $1+1$?
\begin{mysolution}
$1+1=2$
\end{mysolution}
\end{enumerate}
\end{ex}
\end{document}