宋體 與 粗宋體

2022-05-19 03:50:26 字數 1122 閱讀 3206

這幾日在學習context,拜讀了 liyanrui 同學的若干文章之後,開始想著嘗試點東西。

因為以前一直用ms word,所以想嘗試把一些文件從word轉到context,遇到的第一件事情就是字型。雖然可以直接用liyanrui的zhfonts模組,但是word裡有一些樣式,比如標題設定為黑體初號,宋體加粗什麼的,還是需要乙個像 \hei \bfsong這樣的命令,zhfonts貌似並沒有直接提供這樣的命令,因為他站在乙個更高的層次來看問題^_^。

想到這裡我覺得應該有這麼乙個巨集  \ziti[黑體][小初],第乙個引數是word中的字型,第二個引數是word中的字型大小,這樣可以使人快速從word轉到context。為了達到這目的,應編寫乙個程式自動讀windows中的所有字型,生成乙個tex檔案,使得\ziti可以用到word中的所有字型設定。

上面的發現,讓我放棄了為word編寫那個\ziti巨集的想法,還是按照liyanrui同學的部落格自己動手吧~,不過查了一些關鍵的資訊,記在下面,以便其他同志有同樣想法,或者我以後又想了~

windows字型名 -> 字型檔案

所有windows中安裝的字型都在c:\windows\fonts中,這個安裝字型的資訊,也被對映到登錄檔中:hkey_local_machine\software\microsoft\windows nt\currentversion\fonts,程式設計師可以在這裡找到word中的字型名對應的字型檔名

順便提一句,在windows下不需要為context設定osfontdir環境變數,參見luatools.lua檔案,裡面直接給定了c:\windows\fonts

字型檔案 -> context字型名

word裡的字型名是有中文的,但是 mtxrun --script fonts --list pattern=* --all (參見liyanrui的部落格)列表出來的字型名字裡是沒有中文名的。所有我們還需要從ttf或ttc裡讀出實際的字型名。ttf/ttc的格式也比較複雜,codeproject上有現成的**,參見

how to use a font without installing it ,這位大哥提供了乙個ttf和ttc的類,還提供了示例**,很好使!

另外,猜測了下,context最後生成的字型名,是實際字型名中去掉非字母,並全部整成小寫的結果。

宋體生成mongodb 聚合函式

最近研究宋體生成,稍微總結一下,以後繼續補充 select a,b,sum c csum from coll where active 1 group by a,b db.coll.group cond reduce function obj,prev initial 數參解釋 key group欄...

Docker容器離線安裝字型(宋體)

起因 工作流開發中使用到的字型,本人使用的容器linux預設不存在。安裝字型庫 安裝後會出現資料夾 usr share fonts 和 usr share fontconfig yum y install fontconfig mkfontscale 拷貝字型檔案到容器的 usr share fon...

如何區分黑體 宋體和圓體

黑體字橫豎粗細一致,方頭方尾,沒有多餘的筆畫裝飾,字形緊聚且沒有弧線,屬於非襯線字型的一種。黑體字給人以簡潔明快 嚴肅莊重的性格體現。在現有的很多字形設計中都遵循了黑體字的基本風格。宋體字在筆畫起始和結束的地方都有襯線裝飾,而且筆畫呈現出橫細豎粗的變化特點屬於襯線字型的一種。宋體字不像黑體那樣嚴肅莊...