cht電腦資訊文書排版TeX
adm Find login register

LaTeX 的時鐘

本人已不在此站活動
1 LaTeX 的時鐘
Promote 0 Bookmark 02008-03-12quote  

LaTeX 中排版時間日期或時鐘,通常都是靜態的,畢竟 LaTeX 本身是一個平面排版系統,在很多情形下要印刷至紙本上的。

通常要排版時間日期標誌,可以使用 datetime 或 clock package 來排版。但這些當然都是靜態的。近年來的 TeX/LaTeX 輸出,漸漸的以 PDF 格式為常,於是一些花樣就出來了,畢竟電子版的書現在已為大眾普遍接受。

PDF 格式可以嵌入 JavaScript,這可以做一些動態版面的處理,例如,即時時鐘之類的。本文就是想探討即時時鐘要怎麼達成。也就是說 JavaScript 要怎麼嵌入 PDF 檔裡頭。

但這些 JavaScript 並不是一般的 web JavaScript,基本語法差不多,但物件就差異頗大,無法把 web JavaScript 完全不修改就用在 PDF JavaScript。PDF 界面畢竟和 web 界面是不同的。而且,你要使用支援 JavaScript 的 PDF 瀏覽器,例如 acroread。

powerdot class 有很方便的選項(clock=true)來排版即時時鐘,畢竟即時時鐘是用在 presentation 時較有意義存在。 如果不是簡報型式的話,要嵌入 JavaScript,我們可以使用 insdljs package。但要在 PDF 格式呈現,則需要一個 form 容器,所以我們可以使用 eforms package,eforms package 會事先載入 insdljs 及 hyperref 兩個 package。以下是一個簡單的例子:

\documentclass[pdftex,12pt]{article}
\usepackage[bookmarks=false,pdfstartview=FitH]{hyperref}
\usepackage{eforms}
\begin{insDLJS}{x}{}
function CLOCK(){
d = util.printd("yyyy.mm.dd, hh:MM:sst", new Date());
this.getField("TIME").value = d;
this.getField("TIME").readonly = true;
}
t = app.setInterval("CLOCK()",1000);
\end{insDLJS}
\newcommand{\JClock}{%
\textField[\BC{0 0.4 0}\BG{0 0.4 0}%
\textSize{10}%
\textColor{1 1 1 rg}]%
{TIME}{9em}{2ex}}
\begin{document}
\section*{Clock Test}
Here is a digital clock test. \JClock
\end{document}

實際的 PDF 可以在此下載:
http://edt1023.sayya.org/tex/tmp/clock-2.pdf

 

edited: 3
本人已不在此站活動
2
Promote 0 Bookmark 02008-03-12quote  

想深入的朋友請參考:

http://www.tug.org/tugboat/Articles/tb22-3/tb72story.pdf

http://www.adobe.com/devnet/acrobat/pdfs/AcroJSGuide.pdf
http://www.adobe.com/devnet/acrobat/pdfs/AcroJS.pdf

不過,那個大部頭的書,大概不會有人真的去讀完吧?通常是有需要時再來查,主要是看有什麼物件可以用,和 HTML/web 不一樣。
 

edited: 1
guest
3
Promote 0 Bookmark 02008-05-20quote  

Looks cool.  However, on Linux I have tried evince and gv, and neither supports JavaScript.  Is there a PDF viewer on Linux that works (apart from AcroRead)?

Best regards

 

Danai Sae-Han

本人已不在此站活動
4
Promote 0 Bookmark 02008-05-21quote  
guest

Looks cool.  However, on Linux I have tried evince and gv, and neither supports JavaScript.  Is there a PDF viewer on Linux that works (apart from AcroRead)?

Hi, Danai. Welcome! :)

I'm afraid, no. You need acroread.
 

cht電腦資訊文書排版TeX
adm Find login register
views:15281