字型編輯軟體-FontForge

字型編輯軟體-FontForge


    通常在使用字型時會發現字型中的有些字體或是筆劃覺得不太好看,想加以修改或是造一個新字,但在linux下卻找不到相關的造字軟體或是字型檔的編輯軟體。其實在sourceforge中有個portject名稱為FontForge就是針對這個問題而來的,而且是使用GUI界面,也就是以圖型操作界面,減少對命列模式的使用,大大的增加了軟體的親和性。最棒的是這套軟體是有中文界面的,真是感謝幕後的翻譯人員呀。
    而且在官方網頁上所提供的教學文件是有中文的,有興趣的朋友也不用太擔心入門的問題。可以造著教學一步步的操作,如果手上有現成的字型檔,也可以直接拿來修改,不過如果是修改其他公司的字型檔時,請小心在使用上是否有版權問題哦!
   
其實一開始我只是想做一些數字的虛線的練習字體,雖然有找到一些免費的字型檔,但是在字體的寫法上並符合一般手寫法,所以在給小朋友練習時並不理想,所以
才會找像windows下的造字程式般的軟體,在找到的一些軟體中,就屬這個最方便易用了。所以要紀綠下來。Fedora的使用者只要到官網下載
fontforge-20080927-1.i386.rpm這個檔案回來裝上,就可以使用了。不過在裝好後,在應用程式選單中可能會找不到執行的選項,
可以在命列中下“fontforge”的指令就可以叫出來了。


官方網頁:http://fontforge.sourceforge.net/
官方教學網頁:http://edt1023.sayya.org/fontforge/overview.html


讓ThinkingRock輸出的PDF可以顯示中文

讓ThinkingRock輸出的PDF可以顯示中文


   
之前提到使用ThinkingRock來實現GTD的概念,雖說ThinkingRock實作了GTD的全部功能,但是對於中文的使用者還是有一點不太方
便,其中比較大的問題便是輸出PDF的部份。輸出的PDF檔案並無法正確的顯示出中文來,文中的中文字全變成了方框,這是因為內附PDF使用的字型沒有支
援中文字,可以透過增加字型來讓PDF檔案可以出現中文。在官網的FAQ中有提到如何為PDF報表新增字型,可以參考這裡。由官網的說明可以知道ThinkingRock是使用Apache FOP來產生PDF報表。
    如果對英文過敏的朋友,或是想知道一步步做法而已的朋友,可以參考“为ThinkingRock的REPORT添加中文字体”一文。按此文一步步操作,即可以加入字型到ThinkingRock中以供PDF輸出使用。









(1)由于ThinkingRock只内置了Courier、Helvetica和Times Roman三种字体,我们需要添加一种汉字字体,获得字体,我用的是WinXP的仿宋字体simfang.ttf。


(2)
生成TRUE TYPE(.ttf)的Font Metrics
Files,在命令行状态下,进入ThinkingRock/lib目录下,使用命令“java -cp
{path}\fop.jar;{path}\avalon-framework.jar;{path}\commons-logging.jar;{path}\commons-io.jar
org.apache.fop.fonts.apps.TTFReader simfang.ttf
simfang.xml”来生成simfang.xml,这里{path}是fop.jar,avalon-framework.jar,commons
-logging.jar,commons-io.jar所在的路径,一般在ThinkingRock的lib子目录下,输入时还要注意这几个JAR文件
名字的一致性


(3)复制simfang.ttf以及simfang.xml到ThinkingRock所在目录下的resource/fop子目录里;


(4)编辑resource/fop/目录下的fop.xconf,在<fonts></fonts>段内增加几行,如下:


<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">


<font-triplet name="Simfang" style="normal" weight="normal"/>


</font>


<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">


<font-triplet name="Simfang" style="normal" weight="bold"/>


</font>


<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">


<font-triplet name="Simfang" style="italic" weight="normal"/>


</font>


至此,配置修改好了,打开ThinkingRock程序,在输出报告时字体选择“simfang”,PDF文件即显示正确的汉字。


更详细的说明参见How to add fonts for PDF reports






試著以simsun.ttc去操作,是可以讓PDF文件正常顯示出中文而不再只是方框而已。但是同樣的作法用在ukai.ttf(文鼎PL中楷Uni)
上,卻仍無法讓中文順利出現,原本呈現方框的中文套用上ukai.ttf後反而都變成透明,什麼都看不到了,但是使用PDF文件中的複製功能,可以順利的
將文字複製出來。可以知道文字是有順利加入到文件中,但是不知什麼原因而無法正確的顯示出來,如有遇到相同問題的朋友,可以先用simsun.ttc來試
試看在做法上是否有問題,但是似乎simsun.ttc這個字型版權並不是開放的,所以在使用上請小心。
    最後要提醒的是,fop.xconf檔案中的編輯,請小心位置,不要加錯地方,否則會徒勞無功的。加入的內容需注意加入的字型檔案名稱做適當的修改。以simsun.ttc為例,則內容應該如下
        <!-- simsun Font -->
        <font metrics-url="simsun.xml" kerning="yes" embed-url="simsun.ttc">

        <font-triplet name="simsun" style="normal" weight="normal"/>
        </font>
        <font metrics-url="simsun.xml" kerning="yes" embed-url="simsun.ttc">
        <font-triplet name="simsun" style="normal" weight="bold"/>
        </font>
        <font metrics-url="simsun.xml" kerning="yes" embed-url="simsun.ttc">
        <font-triplet name="simsun" style="italic" weight="normal"/>
        </font>

意紅色字體的部份,需視情況而加以修改的。當字型順利的加入後,還需設定在ThinkingRock的PDF輸出時使用的字體,設定的位置在
ThinkingRock主視窗的“Tools”==>“Options”==>“Miscellaneous”==>“Action
Screens”這個頁面中,可以看到PDF目前所使用的字型,只要將字型透過下拉式選單選到所要使用的那一個就可以了,如果在“Font”的下拉式選單
中沒看到新加入的字型,就表示加入失敗囉,請重新檢查一次看是否有那裡有問題。完成以上動作後,就可以讓ThinkingRock順利的輸出中文PDF
檔,也就可以列印出來帶在身上隨時看囉!



參考資訊:



















[1]“红旗下的蛋 - 为ThinkingRock的REPORT添加中文字体”; http://www.fallleaf.net/content/view/148/9/.
 
[2]“Thinking Rock FAQs”; http://www.thinkingrock.com.au/faq.php#faq6.
 

 


用指令模式搜尋檔案並直接刪除-使用find指令


用指令模式搜尋檔案並直接刪除-使用find指令


使用指令來搜尋硬碟中的檔案,使用locate指令是最快速的,但是使用locate搜尋的結果並不能直接做處理,需要一些小技巧才能套進其他指令裡。但
是使用find指令卻可以克服這個問題,因為find指令有一個"-exec"的參數,可以讓我們針對搜尋出來的結果直接套用到指令裡。舉個例子來說,通
常系統中總會有一些無用的小檔案零散分佈在各個目錄中,例如log檔或是文字的備份檔。若是要一個個的去找出來再使用rm指令來刪除的話,做完這些事,大
概鍵盤也快散了吧!其實可以使用find指令配合"-exec"參數就可以做到了。

以檔案thumbs.db來做例子,這個檔案常出現在各個角落裡,但幾乎沒什麼特別作用。



# find . -name thumbs.db -exec rm {} ";"



其中的{}代表的就是使用find指令所查詢到的所有結果,exec參數需要以分號結尾,但必須要加上引號""或是跳脱字元\。-name參數也可以使用
萬用字元*,但是必須加上引號,才不會發生錯誤。以上的指令也可以改寫成以下的指令:


# find . -name thumbs.db -exec rm {} \;


以下是使用萬用字元的例子


# find . -name "*.bak" -exec rm {} ";"


會將目前這個目錄以下所有目錄中副檔名是bak的檔案予以刪除。

dnf upgrade fails with Error: GPG check FAILED

 OS: Fedora 36 今天在做  dnf  更新的時候,突然有很多 package 都出現簽章問題無法更新。類似如下的錯誤訊息 .... is not signed. ...... is not signed. ......... is not...