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와 비교한 것입니다.
곡예사(자바스크립트로 조판된 숫자, TeX 없음):
.
증거하다(못생긴 빨간색 상자):
.
JS를 지원하지 않는 독자의 원하는 결과( Evince에 표시된 정적 데이터, 유사
\today
)
답변1
이는 문제에 대한 부분적인 해결책으로, Javascript를 지원하지 않는(비활성화된 경우 Acrobat 포함) PDF 뷰어에서 렌더링되는 보기 흉한 빨간색 상자를 최소한 제거합니다.
우연히 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가 비활성화된 경우 날짜 위치에는 빈 공간만 표시됩니다(거의 슬래시가 몇 개 남음).