我正在尝试展开表格中的行,就像可以使用 ocgx 包创建要显示和隐藏的文本一样。这里的问题是,如果我在 ocgx 中输入该行(在表格中创建相应行),它会显示错误(显然,因为完整的表格环境不在 ocg 环境中,只有带有对齐字符的行)。
我想要一个可以根据我的意愿编译或不编译其中编写的代码的环境(通过按下按钮切换)。这可能吗?
平均能量损失
\documentclass{article}
\usepackage{ocgx}
\begin{document}
\begin{tabular}{|c|c|} \hline
Hi&Hello\\ \hline
\begin{ocg}{OCG 1}{ocg1}{1}
Hi&hello \\ \hline
\end{ocg}
\end{tabular}
\switchocg{ocg1}{Button.}
\end{document}
编辑另一个基于 AlexG 的回答的 MWE。
\usepackage{ocgx2}
\usepackage{hyperref}
\begin{document}
\noindent%
\begin{tabular}{|c|c|} \hline
This is &row 1\\ \hline
\end{tabular}\\[-\dimexpr\lineskip+\fboxrule\relax]
\begin{ocg}{OCG 1}{ocg1}{on}
\begin{tabular}{|c|c|}\hline
This is &row 2\\ \hline
\end{tabular}\\[-\dimexpr\lineskip+\fboxrule\relax]
\end{ocg}
\begin{tabular}{|c|c|} \hline
This is &row 3\\ \hline
\end{tabular}
\noindent\switchocg{ocg1}{Button.}
\end{document}
请注意,按下按钮后,第二行将变得不可见,但它仍在那里,这是我不想要的。按下按钮后,它应该被第三行取代。
答案1
对齐字符tabular
不能在任何用户定义的环境。(您可以使用无操作环境来验证这一点,例如\newenvironment{bla}{}{}
)。
解决此问题的一种方法是将每个表行包装在tabular
其自己的行中:
\documentclass{article}
\usepackage{ocgx2}
\usepackage{hyperref}
\newenvironment{blabla}{}{}
\begin{document}
\noindent%
\begin{tabular}{|c|c|} \hline
Hi&Hello\\ \hline
\end{tabular}\\[-\dimexpr\lineskip+\fboxrule\relax]
\begin{ocg}{OCG 1}{ocg1}{on}
\begin{tabular}{|c|c|}\hline
Hi&Hello\\ \hline
\end{tabular}
\end{ocg}
\noindent\switchocg{ocg1}{Button.}
\end{document}
PDF 格式无法“展开”。与 HTML 不同,PDF 是分页内容。排版输入流后,每个字形在一段文本和一页内都有固定位置。
根据要求,“展开”需要在查看时重新排版整个文档,因为段落的排列、页数甚至目录都会发生变化,因为文本被隐藏或通过用户交互显示时,文本会被隐藏或显示。但是,PDF 查看器没有内置的(LaTeX)排版程序。