enumitem 与 ocgx 包交互的问题

enumitem 与 ocgx 包交互的问题

我正在尝试创建一个简单的文档,其中包含问题,这些问题的答案“隐藏”在鼠标单击之后。问题是当我尝试使用带有默认标签以外的标签的列表(通过 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})\theenumiocmdocgx2\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}

相关内容