我正在使用该tdclock
包显示当前日期和时间。它在 Acrobat 中看起来不错,但在其他查看器(如 Evince)中看起来很糟糕,因为它们不支持 Javascript,而是显示一个红色框(见下文)。
\documentclass{article}
\usepackage{tdclock}
\begin{document}
\initclock
Date: \tddate
\end{document}
是否有办法根据是否使用 Acrobat 查看文档有条件地使用一种渲染或另一种渲染。或者更具体地说,如果支持 Javascript,则使用一种渲染,如果不支持,则使用另一种渲染?
类似这样的事情可能吗?
\documentclass{article}
\usepackage{tdclock}
\begin{document}
\initclock
% not real code:
\ifJavascriptSupported{\tddate}{\today} % should show dynamic date in Acrobat, and static data in Evince
\ifJavescriptSupported{\tdchorno}{}
\end{document}
解释这个问题的另一种方式是,如果查看器不支持某项功能(如media9
支持),则允许使用替代文本。(如果没有其他选择,甚至根本没有文本也比红色框要好。)
以下是 Acrobat 和 Evince 与当前代码的比较:
杂技演员(数字由 Javascript 排版,没有 TeX):
。
表明(丑陋的红色方框):
。
阅读器不支持 JS 的预期结果(Evince中显示的静态数据,类似于
\today
)
答案1
这是问题的部分解决方案,至少消除了在没有 Javascript 支持的 PDF 查看器(包括禁用 Javascript 的 Acrobat)中呈现的丑陋的红框。
偶然间我发现了一个隐藏的选项hyperref
偶然间我发现了这里https://tex.stackexchange.com/a/79979/1871叫Fld@bordercolor
。
\documentclass{article}
\usepackage{tdclock}
\makeatletter
\def\Fld@bordercolor{1 1 1} % set TextField border to white, there is also Fld@bcolor
\makeatother
\begin{document}
\initclock
Date: \tddate
\end{document}
如果禁用 Javascript,日期位置将只显示空白(几乎只剩下几个斜线)。