ConTeXt + LuaTeX + Chinese

最近這幾天玩了一下 ConTeXt,搭配最近開始 beta 的 LuaTeX,想辦法設定中文,有了小小的成果……

請參考這個文件原始檔

因為急著要跟大家分享,所以可能寫的不是很清楚或有所遺漏,還請不吝指教 😀

持續測試、改版中。

PS. 文中不能複製貼上的部份放在下面

$ export TEXMFCNF=/usr/share/texmf/web2c
$ export TEXMF='{/usr/share/texmf,/usr/share/texmf-texlive,/home/kanru/texmf}'
$ export TEXMFCACHE=/tmp
$ export OSFONTDIR='{/usr/share/fonts/truetype,/home/kanru/.fonts}'

\enableregime[utf]
\usemodule[chi-00]
\directlua0{
    function wrap(str)
        rt = ''
        for u in string.utfvalues(str) do
            up = math.ceil(u / 0x100)
            low = u - math.ceil(u / 0x100) * 0x100
            if u < 127 then % need to be replace by cjk range
                rt = rt .. unicode.utf8.char(u)
            else
                rt = rt .. '\\lookaheaduchar{' .. up ..'}{' .. low ..'}'
            end
        end
        return rt
    end
    callback.register('process_input_buffer', wrap)
}
\beginLUATEX\insertunicodeglyph
    \unexpanded\def\insertunicodeglyph
    {\doinsertunicodeglyph\unicodeone\unicodetwo}
    \unexpanded\def\doinsertunicodeglyph#1#2%
    {\char\numexpr(#2+(#1*256))\relax}
\endLUATEX
\def\en#1{%
    \hskip\chinesesurroundskip
    \hskip\chineseinterglyphskip\relax
    #1%
    \hskip\chineseinterglyphskip\relax
    \hskip\chinesesurroundskip
    \hskip\chinesesurroundskip
    \hskip\chinesesurroundskip
    \hskip\chinesesurroundskip
    \hskip\chinesesurroundskip
    \hskip\chinesesurroundskip
    \hskip\chinesesurroundskip
    \ignorespaces
}
\starttypescript [sans] [cwheib] [name]
    \definefontsynonym [Sans]              [cwheib]
    \definefontsynonym [SansItalic]        [cwheib]
    \definefontsynonym [SansSlanted]       [cwheib]
    \definefontsynonym [SansBold]          [cwheib]
    \definefontsynonym [SansBoldSlanted]   [cwheib]
    \definefontsynonym [SansBoldItalic]    [cwheib]
\stoptypescript
\starttypescript [my] [cwheib]
    \definetypeface [cwheib][ss][sans][cwheib][default]
\stoptypescript
\usetypescript[my][cwheib]
\setupbodyfont[cwheib,ss,10pt]

轉眼間暑假要過去了

雖然本來就沒放什麼暑假 @@

颱風過境這兩天,都窩在宿舍當宅宅,哀傷的七夕下著大雨,不過完成一項工作,可喜可賀 🙂

下禮拜要回家探親加上高中同學會,真是期待 XD

收到入學通知了,體檢、學籍單,好像還有好多東西要辦…

再過一天就要上台報告了,最近看了很多關於如何做簡報的,不過很少提到怎麼做主要是傳達資訊的
技術性簡報,這種技術分享為主的報告,似乎還是以條列式最為清楚易懂?

先把簡報整理好,等報告完再來試試看各種不同風格。

有圖的水銀

根據 yungyuc有圖的水銀這篇,裝了 ActiveTCL 之後,終於把 hgk 在 Windows 上給跑了起來,不過我一直很好奇的是,Windows 版的 Python installer 預設會安裝 tcl/tk 的 module Tkinter 跟相關的 dll,難道不能用這個來跑 hgk 嗎?

原本是想把 hgk 一行一行搬到 python,不過這樣太慢了,後來發現有 Tkinter.Tk.eval 可以用

剛剛做了一下實驗,證明以下 code 可以執行:

# run-hgk.py
import sys
import Tkinter

# read hgk file
hgk = ''.join(open('hgk', 'r').readlines())
tk = Tkinter.Tk()
tk.eval('set argv [list ' + ' '.join(sys.argv[1:]) + ']')
tk.eval('set env(HG) "hg"')
try:
    tk.eval(hgk)
    tk.mainloop()
except Tkinter.TclError, e:
    print e

不過要真的可以用,還要改一下路徑的處理跟環境變數的取得 😛

接下來,想要真的把 hgk port 到 python,現在的 hgk 幾乎是 copynpaste gitk,連 help menu 裡面都沒改過,程式裡面還參考到 GIT_DIR 環境變數… Orz

口白人生

看這片之前,只看過短短的簡介,大概知道故事是怎麼開始的,可是不知道怎麼發展及收尾,對電影的設定還滿有興趣的,所以就看了 XD

主角某一天早上突然可以聽到某個聲音,以文雅的口白的方式描述他的行動,在一次過馬路的時候不小心提到主角最後會死去,之後就展開神祕、愛情交織的故事。

嗯…

  1. 口白很有趣,一開始以為只是電影的旁白而已
  2. 主角的能力很有趣,可以一瞬間計算身邊可以計算的東西
  3. 很詭異的是難道小說中詳細到描寫主角的生活這麼久 @@

有趣有趣…,主角知道故事將怎麼結束之後,選擇接受,如果我一開始就知道故事是個悲劇,我會繼續看嗎 ~“~

很偷懶的心得… 這是為了讓有興趣的人自己去看 Orz

神祕大樓

我今天早上在校園裡閒晃,順著宿舍旁的林蔭小路漫無目的的走著,只是想要享受一下晨間的輕鬆。走著走著我的視野寬廣了起來,看看身後的小路以及腳下的風景,我才意識到已經越走越高,身邊不再是高大的樹木而是被濃密且翠綠的草叢取代,微風徐徐吹來,天空清澈點綴著幾朵小雲,空氣舒適涼爽,雖走了一大段路卻不感到悶熱,這就是清晨的美妙。

口中哼著小曲,兀自欣賞路旁的風景,突然發現草叢裡好像有什麼東西,仔細一看原來是地磚,灰色白色交錯排列的的梅花狀地磚在草叢後乎隱乎現。「這裡我似乎沒有來過……這草叢後有什麼東西,還鋪著這麼漂亮的地板?」時間還早,我決定跨過草叢一探究竟。

草叢後面是一個還滿陡峭的山坡,以至於我從小路上沒發現到山坡下所隱藏的這個東西。草叢後的地磚那柔和的灰白色一直延伸到山坡的盡頭,連接著一個向下的台階,我往下一看,看到了一個球狀的木造建築物!「裡面應該有人吧,它似乎有窗子」巨大的建築讓我看的目瞪口呆,著實愣了一會兒。

看了看錶,早餐店沒這麼早開,所以我有足夠的時間可以下去探險一番。走下台階,越是接近這個不知名建築物就越感到它異常的巨大,遠比在台階上所以為的大得多了。「五樓……還是十樓?圓圓的看不清楚頂端」還好才走近那球體,就看到接近地面的部份有個小門,門旁還掛了個排子「『禁閉室』……!難道這麼一大個都是嗎?學校裡面怎麼會有這種東西!」腦袋一片混亂。

門一推就開了,這個門和球體是用一樣的木材製作的,摸起來光滑且溫暖,不知我怎麼從老遠就知道它是門,門後是幽暗的走道,旁邊只有微微的光源,不知是什麼在發光。再看看錶,才過了幾分鐘而已,「我該進去嗎?」……

I’m coming back.

總算度過這辛苦的一週了,前幾天都睡在實驗室,一天 24 小時都在想要怎麼做才對……

總算,放個假,把 Debian Birthday Party 2007 結束掉之後,就要開始畢業論文的研究了

Finally, I’ve passed the terrible week. I slept in laboratory past three days and thought how could I do it right 24 hours a day.

Finally, I can take a break, enjoy the Debian Birthday Party 2007. After that, I would start the research of my master.