
我正在使用該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 檢視器中呈現的醜陋的紅色框(包括禁用它的 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,日期的位置將只顯示空白(幾乎只剩下幾個斜杠)。