![可通过 accsupp 复制的数学代码在分页符处的对齐环境中中断](https://linux22.com/image/411919/%E5%8F%AF%E9%80%9A%E8%BF%87%20accsupp%20%E5%A4%8D%E5%88%B6%E7%9A%84%E6%95%B0%E5%AD%A6%E4%BB%A3%E7%A0%81%E5%9C%A8%E5%88%86%E9%A1%B5%E7%AC%A6%E5%A4%84%E7%9A%84%E5%AF%B9%E9%BD%90%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%B8%AD%E6%96%AD.png)
我广泛使用 align 作为我的显示数学环境,并且我希望 pdf 中数学方程式的可选文本是用于生成它的 latex 代码。理想情况下,我会重新定义 align 环境以自动执行此操作,但目前我只是在测试。
使用答案这个问题,我设法使用来制作一些半工作的东西。
\usepackage{accsupp}
\newcommand\copypaste[1]{%
\BeginAccSupp{method=escape,ActualText={\detokenize{#1}}}%
#1%
\EndAccSupp{}%
}
我可以通过这种方式使简单的方程式可源代码复制
\begin{align}
\copypaste{
\frac14&=(\frac12)^2
&=(\frac12)^{1+1}
}
\end{align}
从 PDF 复制此内容可得到\frac 14&=(\frac 12)^2 \\ &=(\frac 12)^{1+1}
,这基本上就是我想要的。
然而,这种方法有一个主要问题和一个小问题。
- 主要问题是,如果环境中有分页符,它就无法工作;例如,对于长时间的开发。它可以编译,但数学是不可选的。实际上,在显示的公式的开始和结束之间没有任何东西可以选择,甚至页码或脚注也不行。
- 小问题是,只有环境的第一行是可选的,其中包含环境中的所有代码。这很不方便,但并不是什么大问题。我可以用自己的
\copypaste
调用包装每一行,但重新定义对齐环境以自动执行此操作会很繁琐。在长环境中这样做时,我也遇到了一些奇怪的错误。
如能提供任何关于如何解决这些问题、如何正确实施或参考已经正确执行此操作的软件包的指示,我们将不胜感激。
我在用着pdfTex 3.14159265-2.6-1.40.20 (TeX Live 2019)
。