2009年6月22日 星期一

在Debian下使用Lyx(LaTex)打中文

現在偶爾會需要打些中文加數學式子的文件,但之前都是用writer,writer的確是不錯的選擇,輔以math也可以打出很好看的式子,但怎麼樣看爽度就是差了那麼一點。再者math有時排出來的式子就是有一點沒有那麼好看,所以還是用latex最好,唯一的問題就是如何要在latex中打中文。

linux下有許多不錯的latex編輯器,但大部份都是需直接打代碼的,就目前為止只用來打些小文件的我來說並不適用,Lyx倒就是個不錯的選擇,它有unicode支援,基本上算是個所見即所得的編輯器,功能也很完全,也不會太難用。於是便先安裝Lyx。

aptitude install lyx

要使用中文的話當然要再安裝中文相關套件

aptitude install latex-cjk-common latex-cjk-chinese latex-cjk-chinese-arphic-bkai00mp latex-cjk-chinese-arphic-bsmi00lp

接者去[文件]->[設定值]->[語言]->[encoding]選unicode
再去
[文件]->[設定值]->[LaTex前文]中加入

\RequirePackage{CJK}
\AtBeginDocument{\begin{CJK}{UTF8}{bsmi}}
\AtEndDocument{\end{CJK}}

這裡若要換中文字型則把bsmi換成bkai即可。

其它的都不用動,這樣子就可以了!
試打一下應該就可以看到有中文的LaTex了!

另外如果要打在kile上的話則要打上

\documentclass[12pt]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{bsmi}
正體中文
\end{CJK}
\end{document}

2009年5月14日 星期四

利用python找關鍵句

這個問題起源於我的好室友問我的一個小題目(還真是看的起我..汗..),他想要寫一個程式可以分析一篇文章,再利用關鍵字選出有出現關鍵字的句子,這不是很難的問題,因此也正好拿來練習不熟的python。

程式碼如下:

import sys
import re
out1=[]
source=open('test').readlines()
x_re=re.compile(r'[.?]')

find=sys.argv[1]

for i in xrange(len(source)):
for t in x_re.split(source[i]):
out1.append(t)

for x in out1:
if(x.count(find)):
print x

雖然結果不是非常完美,但也足夠了,至少我想練習的都有練習到,像是用正規表示法來切句子。
聽說他們用java寫搞的非常複雜,弄了幾百行才弄出來,聽到這個我就不免在心裡偷笑。一如所有程式設計師的想法,簡單的事就要用簡單的方法解決。

2009年5月8日 星期五

在python中使用參數傳遞

參數傳遞要使用的是sys模組中的argv,要此在檔案之前要先import sys。
一個簡單的範例程式如下:

import sys

a=int(sys.argv[1])
b=int(sys.argv[2])
print a+b

這裡要注意的是參數是從1開始算,因為參數0,sys.argv[0]表示的是檔名,例如執行

import sys

print sys.argv[0]

就會出現檔名,如test.py

在執行時只要輸入

python test.py 1 2

就會可以出現執行結果,3。

2009年5月4日 星期一

記錄一下opensoure的網頁應用程式

* Laconica (Twitter)
* Elgg (Facebook)
* WordPress (Blogger)
* Pligg (Digg)
* PHPmotion (Daily Motion)
* Piwik (Google Analytics)
* Tiny Tiny RSS (Google Reader)
* AfterLogic (Google Mail)
* GForge (Google Code)
* osTube (YouTube)
* MyOwnSpace (MySpace)
* Magento (Amazon)
* Gallery (Flickr)
* AtMail (Hotmail)
* eyeOS (Windows)

說不定以後用的著∼

2009年4月26日 星期日

openoffice math 筆記

其實我覺得office 2007的方程式編輯器的功能已經很好用了,功能也頗為齊全,甚至可以打出一些math打不出來的式子,還好這種情況不太多。不過在打一大串式子時,math的好處就瞬間浮現,因為不再要用滑鼠移到移去選要用的樣式,也不用點來點去找輸入的位置。但是math還是有些小問題要解決,以下是我遇到並解決的問題。

1. 如何在math中打出and?

and是math中的保留字,如果直接打and的話就會出現特殊符號,預設字型是斜體,所以可以輸入

ital "and"

就可以打出and,其中雙引號是告訴math要直接輸出字串。

2. 如何打出鑲嵌在文字中的方程式?

似乎沒有指令可以做到這件事,不過好險,可以用選的。只要在勾取format->text mode就可以實現這個效果。

2009年4月21日 星期二

修改mp3tag的編碼

編碼問題在linux中早已履見不鮮,尤其是在播放音樂時。
當聽著歌卻只能看著亂碼的歌名實在是一件很不快樂的事情。
此時便可使用mutagen這個用python寫的程式來改編碼。
首先當然要先安裝mutagen

emerge mutagen

再來就可以切換到想要轉換編碼的目錄之下進行編碼轉換了。
再輸入

mid3iconv -e big5 *.mp3

就大功告成了,之後就可以在amarok中顯示正確的歌名了!

若是想要大量修改編碼,則可配合find指令。例如我的歌都放在music下,這時候要先切換到music的目錄之下,再輸入

find . -iname "*.mp3" -execdir mid3iconv -e big5 {} \;

就可以一次搞定全部了!

2009年4月20日 星期一

在linux上快速分享檔案

若欲在linux上分享檔案卻不想設定任何伺服器,那你需要的就是python。只要在終端機下先切換到你要分享的目錄,再輸入

'python -m SimpleHTTPServer'

接下來只要在瀏覽器上輸入http://:8000/就可以了!

雖然可能有些許上功能的限制,但是還是個快速方便又簡單的好東西。