如何展开表格中的行

如何展开表格中的行

我正在尝试展开表格中的行,就像可以使用 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)排版程序。

相关内容