歡迎

本站利用 MathJax 顯示數學式子,請安裝 STIX Font 以確保數學式子顯示無誤,安裝方法請參閱 MathJax Font Help

2007年7月30日 星期一

使用 Emacs 編輯 (X)Html 網頁

對 (X)Html 興趣是接觸到 Blogger 之後的事。有試過其它專門的編輯器,但不是太複雜,就是太簡單。也許是習慣了 Emacs 這種精簡卻功能強大的編輯器,對於其它的編輯器有點難以適應。

剛開始時安裝了 psgml 來搭配 emacs 使用,但是總是無法調到我想要的樣子。所以就放棄了,改用別的套件。在網路上搜尋了 emacs html mode 的關鍵詞,發現 html-helper-mode 是出現最多的。於是下指令安裝

sudo apt-get install html-helper-mode
後,開啟 emacs。編輯新的 html 檔,就有一些預設的東西出現
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>

<body>
<h1></h1>


<hr>
<address></address>
<!-- hhmts start -->Last modified: Thu Jun 21 17:48:08 CST 2007 <!-- hhmts end -->
</body> </html>
看起來還不錯,可是我喜歡使用 XHtml 1.1 的規格。看了一些說明文件和原始碼,在 $HOME/.emacs 這個檔案中加入
(setq html-helper-htmldtd-version "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n ")
(setq html-helper-build-new-buffer t)
(setq html-helper-new-buffer-template
  '(html-helper-htmldtd-version
    "<html  xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n<head>\n"
    "<title>" p "</title>\n</head>\n\n"
    "<body>\n"
    "<h1>" p "</h1>\n\n"
    p
    "\n\n<hr/>\n"
    "<address>" html-helper-address-string "</address>\n"
    html-helper-timestamp-start
    html-helper-timestamp-end
    "\n</body> </html>\n"))
就可以了。

2007年7月27日 星期五

筆電變成存錢筒了

今天在使用筆電時,突然想到試試內建的讀卡機。於是拿起相機的記憶卡準備插上。左瞧右看,好像讀卡機的外觀有點怪異,好像有東西在裡面。

什麼!!!怎麼會有東西在裡面。仔細一看,居然是一個五元硬幣,再仔細一看讀卡機被推入有 3mm 之多。找夾子夾出的過程中,自己又不小心將讀卡機推入一些。歷經困難終於將一個五元硬幣夾出。希望對其它的部分沒有影響才好。

夾出一個硬幣之後,還是覺得不對,好像還有一個硬幣在裡面。果然又夾出了一個五元硬幣。

看來應該是我那個寶貝大兒子 (今年三歲) 的傑作,只是我也不知道他到底是何時弄的。再開機,好像都還正常。再觀察看看。

DPI 的設定

DPI 的設定會影響到字型的大小,這對使用 OpenOffice.org 這類所見即所得的排版軟體會有關係。據我的了解 DPI 是指一英吋的長度內會有多少的像素,而一個像素可以看做一個亮點。對於傳統的映像管螢幕,同一個解析度但是不同的顯示範圍,就會造成 DPI 的值不一樣,所以同樣大小的字在 DPI 高的環境中會比較小,而在 DPI 低的環境中會比較大。所以就要有一個機制將這個情形調整回來。

不過這種情況就有稍微的不同,顯示範圍是固定的。例如我的 CMV 945D 的可顯示範圍是 376mm x 301mm,在解析度為 1280x1024 的情形下,如果我要使 DPI 為 96 的話,我必須設定顯示範圍為 336mm x 252 mm。如果我又按了自動調整的按鈕,那麼顯示範圍又會變成 376mm x 301mm,這時實際的 DPI 是 86。

一般來說, X server 會自行判斷 DPI 值,可使用下列的指令確認

xdpyinfo | grep -B1 dot
在我的機器上會出現這樣的結果 (雙螢幕)
dimensions:    2560x1024 pixels (765x302 millimeters)
  resolution:    85x86 dots per inch
如果是 17 吋的螢幕, 1280x1024 解析度的 DPI 是 96。公式是 解析度×25.4÷顯示範圍,以 CMV 945D 為例
1280×25.4÷376=86.46
1024×25.4÷301=86.41

Gnome 預設的 dpi 為 96,但是我的是 86,所以必須要調整一下字型的大小才會一比一的顯示。調整方法

主選單 → 系統 → 偏好設定 → 字型 → 詳細設定(E)...
將解析度 (dpi) 調為 86 就可以了。

另外,我那台筆電的 DPI 為 125。調整後,對照二台相同尺寸的字型,看起來是差不多。未調整前筆電的字型看來很小。

2007年7月21日 星期六

繪圖套件 TikZ 和 PGF

說到 TikZ 和 PGF 這二個繪圖套件,它們的作者就是開發 beamer 的那位 Till Tantau。剛接觸 beamer 的時候,稍微有瞄了一下覺得 PGF 是一個蠻不錯的繪圖工具,語法比原先 LeTeX 內建的環境 picture 要來得豐富許多。而且還有一個原因 PGF 是專為 beamer 設計的。只是對我來說一直沒有繪圖上的需求,所以就不太注意。後來大約在 2005 年左右, Tantau 推出一個進階的版本,那就是 TikZ。看了一下使用手冊,覺得不錯就將它印出來。那時就告訴自己說:如果將來有機會一定要使用 TikZ 這個套件來繪圖。

最近在整理微積分的筆記,需要大量的圖形。於是就趁這個機會學一下 TikZ 的語法。將心得整理一下。首先,我們要先了解座標的表示方法,有直角座標表示法和極座標表示法。沒錯,TikZ 支援這二種座標表示法。直角座標表示

(x,y)
極座標表示
(角度:半徑)
注意,直角座標表示法長度單位可加也可不加,但要加就二個位置都要加,不加的話二個位置都不要加(不加的時候,預設值為公分)。而極座標表示時,半徑的單位一定要加。所以正確的表示法如下:
(1,5), (1cm,5cm), (1mm, 5pt), (30:1cm)
接下來畫直線(從 (0,0) 到 (2,5) 的直線)
\begin{tikzpicture}
  \draw (0,0) -- (2,5);
\end{tikzpicture}
最讓我覺得神奇的地方,是座標還有另一種表示法,那就是取二條直線的交點。例如
(intersection of 0,0--30:1cm and 1,0--1,1)
你會發現這不是線段的交集,而是取直線的交集。接著是畫圓形
\draw 圓心 circle (半徑);
同樣,半徑要有長度單位。畫弧形
\draw 起點 arc 終點;
畫格線(預設每一公分畫一條水平線和垂直線)
\draw 左下點 grid 右上點;
也可以改變成每 0.5 公分畫一條水平線和垂直線
\draw[step=0.5cm] (-1.4,-1.4) grid (1.4,1.4);

最後,TikZ 還能夠畫函數的圖形。例如

\begin{tikzpicture}[domain=0:4]
  \draw plot[id=x] function{x};
\end{tikzpicture}
說明一下,每一個函數要有唯一的 id。這個指令會呼叫外部程式 GNUPLOT, id 是用來存檔案用的。如果你的檔案為 test.tex,那麼函數的部分將會存在 test.x.gnuplot 這個檔案,再使用 GNUPLOT 執行。將結果存為 test.x.table 這個檔案。然後再匯入資料。

一般, TeX 系統會關閉執行外部程式的功能,所以只會產生 test.x.gnuplot 這個檔案,而不會產生 test.x.table。可以下選項

--shell-escape 或 --enable-write18
例如
pdflatex --shell-escape test.tex
當然也可更改 texmf.cnf 的設定,將
shell-escape=f
改為
shell-escape=t

就不用使用額外的選項了。

2007年7月20日 星期五

繪圖軟體 --- The Ipe extensible drawing editor

Ipe 是一個繪圖軟體,和其它的繪圖軟體最大的不同處,是文字的處理是使用 LaTeX。所以很容易就可以將數學式子放上去。另一個不同處就是圖檔只能存為 .pdf, .ps, 或 .xml。

現在的版本為 7.0.0,不過還未釋出。官網上寫說要等到九月。上一個版本是 6.0pre28。非常有趣,6.0 還沒正式推出,就要推 7.0 版了。看來會是一個大改版。另外,官網上也說 6.0 這個版本無法使用 1.40 版的 pdflatex 來產生 PDF 的輸出,而很不幸的是, MikTeX 2.6 和 TeXLive 2007 都包含這個版本的 pdflatex。

2007年7月18日 星期三

製作 CJK LaTeX 的中文字型

之前在李果正先生的部落格上看到製作 CJK LaTeX 中文字型的新方法(替 LaTeX CJK 新增字型新宋、新中楷(New Sung/New Kai)Type 1 字型 1.4.2 釋出)。李先生也提供了一個 shell script: mkt1.sh 方便其他人使用。可惜李先生使用的版本和我的不太相同,所以我必須自己修改。

先看原版本執行的結果

jeangjs@jeangjs-desktop:~/Desktop$ sh mkt1.sh 
tail: Warning: "+number" syntax is deprecated, please use "-n +number"
tar:無效的選項 ─ y
請嘗試‘tar --help’或‘tar --usage’來獲取更多資訊。
使用 lv 來看這個檔案,找到 tail 這一行
# cat mkcjkt1.sh# cat mkcjkt1.sh toolsdata.tar.bz2 > mkt1.sh
tail +174 $0 > toolsdata.tar.bz2 && tar -yxf toolsdata.tar.bz2
原來李先生將 mkcjkt1.sh 和 toolsdata.tar.bz2 合成一個檔案,所以開始執行 mkt1.sh 時要先將這二個檔案分開。不過我的 tail 必須要加上 -n 這個參數才行,而且 tar 不支援 bz2 這種壓縮檔。只好手動一下
tail -n +174 mkt1.sh > toolsdata.tar.bz2
bunzip2 toolsdata.tar.bz2
tar xvf toolsdata.tar
再使用編輯器,將 mkt1.sh 第 174 行以後的內容刪掉,再將和 rm_toolsdata 相關的程式碼刪除 (原來的 mkt1.sh 執行完後,會將 toolsdata.tar.bz2 和其它相關的檔案砍掉),然後另存新檔為 mkcjkt1.sh。另外,還要下載 aglfn13.txt

接著將要轉換的字型檔放到相同的目錄下。

sh mkcjkt1.sh myxxx xxx.ttf
快的話,只要一小時就能完成了。慢的話,可能要五、六個小時。完成後將製作出來的字型檔放到相對應的目錄。按照我之前提到的方法設定完成就可以了。

因為我有很多很多機器要管理,所以我弄一個目錄 texmf,把這些字型放到這個目錄後,再壓縮起來。拿到別台機器解壓縮就可以了。

2007年7月13日 星期五

Toshiba Protege M500 (3)---Touchpad 之調校

自從換了筆電 (Toshiba Protege M500) 後,對於觸控板的使用實在是不習慣。沒關係買一個 USB 滑鼠來接就可以了。但是打字的時候,就得小心謹慎。不過還是常常發生大姆指去碰到觸控板,字就不知道跳到哪裡去了。

也曾經使用外接 USB 鍵盤來改善這種情形,卻發現滑鼠的操控變得非常奇怪,或者是整個 X 視窗當掉,另外就是鍵盤在攜帶上非常的不方便。前一陣子,在網路上看到可以將觸控板調整為在打字的時候沒有作用。一直到昨天才有時間來作設定。

首先,安裝套件 qsynaptics

sudo apt-get install qsynaptics
再來就是修改 /etc/X11/xorg.cong 這個設定檔。原先的設定已經有
Section "InputDevice"
Identifier "Synaptics Touchpad"
...
...
所以只要在這一段加上
Option "SHMConfig" "on"
然後,再到
Section "ServerLayout"
...
...
InputDevice "Synaptics Touchpad"
...
改為
InputDevice "Synaptics Touchpad" "AlwaysCore"
最後,重新啟動 X 視窗。執行 qsynaptics 就可以設定了。

2007年7月10日 星期二

IP 分享器莫名重設

早上在家中使用網路,突然無法上網。還沒遇過這種情形,所以先重開中華電信和 IP 分享器,發覺還是一樣。接下來重跑 network

sudo /etc/init.d/networking restart
顯示出的訊息為
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth1/00:11:2f:46:5d:cf
Sending on   LPF/eth1/00:11:2f:46:5d:cf
Sending on   Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 16
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
看來應該是 IP 分享器的問題。翻出記錄的密碼,試著進入分享器的設定網頁,卻一直無法進入,看來是密碼不對。非常地奇怪,自從買來設定好了之後,就再也沒進過這個設定網頁了。突然想到不輸入密碼試試看,果然進入了。看來是 IP 分享器自己重設了,真得是很奇怪,難道是機器快要壞了嗎。

重新將設定填好,順便更新軔體。再觀察看看吧。

中華電信的 MOD 機上盒

昨天中華電信的工程人員來家中安裝 MOD 機上盒。發現一個很有趣的事情,那就是在設定的過程中,居然顯示

OS Linux 2.6.*.*
看來 Linux 的內崁應用正逐漸地增加中。

題外話:中華電信還有很多網頁都是 only for IE,不知什麼時候才會改變。

2007年7月7日 星期六

讀書(2)

上個月說到要訂一個讀書的計畫。到目前為止,毫無進展。也可以說,完全忘記有這一回事了。說真的,我完全不知道該如何訂定一個可行的方法。

我想應該要先檢查究竟有多少書。第一步就是先列書單,分為數理類、英文類、電腦類和其它等四大類。第二步是找出每天規律的讀書時閰。第三步是如何作到「過目不忘」。

忙碌的高中生

前幾天和幾位高中生聊了一下,發現他們的暑期活動排的真是精彩。有校外的研習營、學校的暑期輔導、還要安排出國遊玩。回想當初,了不起就只有個學校的暑期輔導課程。不像現在這麼多的活動。

心裡有些感概。看到現在的學生那麼地用功,再看看自己。真得有一些汗顏。

2007年7月3日 星期二

第一次使用 ipod

前幾天買了一台號稱是第五代的 ipod,白色、容量是 30GB。但一直沒時間拆封,一直到昨天才有時間。聽說可以在 Linux 底下管理 ipod ,所以裝了 gtkpod 後就直接將 ipod 的 usb 接頭插入,不過一直都沒有任何反應,只有 ipod 上一直顯示不要移除的訊息。後來上網查了一下才知道原因,原來第一次使用一定要用 itunes 這個軟體,它會根據你是使用 Windows 或是 Mac 來作硬碟的格式化動作。也就是說剛買回來的 ipod 必須要格式化以後才能使用。

後來只好將 Linux 先關機,再將 usb 接頭拔掉。換到 Windows 的機器上去作設定,之後再放回 Linux 就可以了。

教與學

今天在報紙上看到一份研究報告,說現在大學教授主要還是採用課堂講授的教學法,而學生的反應是這樣的上課法很無趣,且不容易跟上教授的進度。大多數的大學生表示應該要採用互動式的教學法,多一點實驗,多一點以解題為導向的教學。

看到最後一句,我不禁笑了出來。看來理論的東西還是不能讓一般的大學生所接受。我想這是中學教育的悲哀,分數重於一切,而技巧是得分的捷徑。所以中學生學了一大堆的技巧,卻不知何時用。常常會有這種情形發生:之前那個題目可以用這個方法,為什麼這個題目用這個方法卻行不通?不過一般的學生是不會在意為什麼方法行不通,而是哪一個方法才行得通。