Sile的字體設計測試類。
FONTPROFFRAVER使您能夠生產PDF字體測試文檔,而無需擺弄Indesign或其他手動頁面佈局或文字處理程序。您可以應用預定的測試文檔之一(稍後添加),也可以使用Fontproof來構建自己的自定義字體測試文檔。
請注意,Fontproof是一個正在進行的工作,因此有很多尚不正常的工作,或者效果不佳。出於您自己的風險使用,並幫助我們使其變得更好。
FONTPROOX需要Sile排水器。您需要根據該軟件包的說明安裝Sile。
請注意,Sile正在迅速變化。當前類是為版本的0.14.0或更新的版本開發和測試的。為了支持較舊版本的Sile,請參閱Fontproff的較舊版本。
Fontproof的安裝主要是通過Lua Rocks完成的:
$ luarocks install fontproof假定Sile V0.14.0或更新的工作安裝,但在安裝時間未檢查。
您也可以從源目錄手動安裝:
$ luarocks make 通過自己的CLI完成運行Fontproof:
$ fontproof --help
Usage: fontproof [OPTIONS] [--] [SILEARGS-1 [SILEARGS-2 [...]]]
ARGUMENTS:
SILEARGS All remaining args are passed directly to SILE
(optional)
OPTIONS:
-F, --family=VALUE Specify the font to be tested as a family name
(ignored if --filename used)
-f, --filename=VALUE Specify the font to be tested as a path to a
font file
-o, --output=FILE output file name
-p, --features=VALUE Specify the test font features
-s, --size=VALUE Specify the test font size
-S, --style=VALUE Specify the test font style (ignored if
--filename used)
-t, --template=VALUE Use the bundled template by name (full,
gutenberg, test, unichar);
-w, --weight=VALUE Specify the test font weight (ignored if
--filename used)
-h, --help display this help, then exit
-v, --version display version information, then exit 開箱即用的四個起動器模板。為了適應它們,最好的辦法可能是複制與您打算親自進行修改的最相似的方法。模板的主要功能是它使用Fontproof類。它定義的專業命令的使用是基於需求的。
例如:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.sil在這一點上,有一個主要模板-fpfull.sil-但會有更多模板。該模板幾乎可以向您顯示Fontprove的所有功能。 Sile本身俱有遠,更遙遠的能力,非常歡迎您與之相處。
作為使用Fontproof的替代方法,可以從Docker Hub或帶有Sile的Github容器註冊表和Fontproof Class插入並準備使用的Github容器註冊表中獲得。發布的版本被標記為匹配(例如v2.0.5 ),最新版本將標記為latest ,並且最新鮮的開發版本也可以使用master標籤。為了有用,您需要告訴Docker Run命令一種到達源文檔的方法(因此,還可以給它一個寫入輸出的地方),並告訴您您在主機上是誰,以便可以使用預期的所有權屬性來創建容器內部生成的輸出。您可能會發現最容易與這樣的別名運行:
$ alias fontproof= ' docker run -it --volume "$(pwd):/data" --user "$(id -u):$(id -g)" siletypesetter/fontproof:latest '
$ fontproof proofs.sil 任何可以使用Docker Images作為工作跑步者的遠程CI系統都可以配置為運行Fontproof Wosp。此外,在市場上還提供現成的GitHub動作:
name : FontProof
on : [push, pull_request]
jobs :
fontproof :
runs-on : ubuntu-latest
name : FontProof
steps :
- name : Checkout
uses : actions/checkout@v4
- name : FontProof
uses : sile-typesetter/fontproof@latest
with :
args : proofs.sil將您的存儲庫添加到.github/workflows/fontproof.yml中。該工作流程假設您的項目具有源文件proofs.sil ,將留下fontproof.pdf 。請注意,除latest版本外,關於Docker的部分中有關Docker的評論在此處同樣適用,但是GitHub Actions使用@ Separator而不是Docker's :
每個模板都可以包含完整的測試選擇。使用此通用格式的命令指定每個測試:
commandname[set of parameters]{text to be typeset}
某些測試可能只有參數,或者僅具有文本,或者既不具有文本,否則在本身內部本身支持的示例中:
pangrams
有關Sile運行命令的更多詳細信息,請參見Sile手冊。
默認情況下,運行的頭列出了文件名,字體(家庭或文件名),日期和時間。內容無法(當前)可配置,但是您可以使用setRunHeadStyle命令設置字體和大小。請注意,這與測試字體無關。
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
添加一個部分和小節標題:
section{Heading text}
subsection{Heading text}
這些樣式目前不可配置,但是您可以通過更改類/fontproof.lua的設置來手動調整所有fotproffood文檔。
支持以下類型的測試,並在fpfull.sil中進行了說明:
有關指定這些指定命令的詳細信息如下。
Fontproof IS版權所有©2016 SIL International,並獲得了MIT許可證的許可。順便說一句 - 儘管名稱相似,但Sile本身並未由SIL International開發,儘管我們非常喜歡該項目。非常歡迎您為Fontprove和Sile做出貢獻。
這些命令當前得到支持。
這是主要的Fontproof命令,可用於設置簡單的測試文本和瀑布。可選參數包括字體(由家族或文件名)和尺寸。您還可以在此處設置測試標題,而不是使用單獨的section命令。
proof{This is basic proof text using the test font}
proof[family="Gentium Plus",heading=A basic family test]{This is basic text with a font defined by family}
proof[size="10pt",filename="Example-Light.ttf",heading=A basic filename test]{This is another basic text with common parameters}
proof[size="10pt,11pt,12pt,16pt"]{This is basic proof text in a range of sizes}
proof[size="10,11,12,13,20"]{This is basic proof text in a range of sizes with numbers only}
proof[features="Ligatures=Rare, Ligatures=Discretionary"]{This is a proof with rare ligatures turned on}
proof[features="+dlig,+hlig"]{This is a proof with features manipulated manually}
proof[language="grk",direction = "rtl"]{Here are some options which are passed on to the font command}
proof[color="green"]{Here are some options which are passed on to the color command}
proof[shapers="ot,fallback"]{Here we pass a list of subshapers to Harfbuzz}
這會產生多個文本的副本,其中包含一系列字符在關鍵位置替換。這些有時稱為“幀測試”。傳統上,這種類型的常見測試是“ Hobonop”測試。 ABCD的字母的“霍霍普”看起來像:
haoabaoAnaoap hbobbbobnbobp hcocbcocncocp hdodbdodndodp
生產此產品的命令是:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
這定義了一個佔位符角色,然後定義了用於替換其的字母集,然後是包含佔位符的文本模式。
您也可以使用多個佔位持有人來創建所有組合,如:
OOAXOO OOBXOO OOCXOO
Ooayoo oobyoo oocyoo
這樣做的命令是:(請確保准確地遵循該語法,否則您可能會遇到非常令人困惑的錯誤!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
Sile和Lua有些特殊的角色,不應用作字符。 (在這裡,建議安全的列表將是一個很好的補充!)使用代表中的角色也是一個壞主意。
pattern命令還有另一個可選參數:
證明這一點比解釋要容易。首先是格式化的示例,然後是生成它的命令:
OOAXOO OOBXOO OOCXOO
Ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
Ooaxoo
OOBXOO
oocxoo
哦
Oobyoo
oocyoo
pattern[chars="@,#",reps="abc,xy",format="list"]{oo@#oo}
Ooaxoo Oobxoo Oocxoo Ooayoo Oobyoo Oocyoo
pattern[chars="@,#",reps="abc,xy",format="para"]{oo@#oo}
這很酷!假設您有一組字母,您想在多個模式測試中使用,但不想一遍又一遍地定義它們。您可以將這些定義為具有特定名稱的模式組。請注意,您必須在文檔中定義這些組,然後再參考它們。另請注意,此命令本身並未在頁面上真正產生任何內容。它僅對以後的pattern命令有用。
patterngroup[name="vowels"]{aeiou}
在pattern命令前綴“ group_”的組名稱中引用此內容,然後在reps參數中使用。例如:
pattern[chars="@,#",reps="group_vowels,xy",format="table"]{oo@#oo}
如下所示,還有一些預定義的組。您還可以在包裝/fontproofgroups.lua中定義自己的永久組。
| 組名 | 描述 |
|---|---|
| group_az | 基本小寫字母 |
| group_az | 基本大寫字母 |
| group_combdiacs | 基本結合變量 |
| group_09 | 基本數字 |
| group_punct | 基本標點符號 |
Fontproof包括一系列內置測試文本。將proof或pattern命令的內容設置為以下任何預設text_xxxx名稱。您也可以在包裝/fontprooftrooftexts.lua中添加自己的文本。
| 內容 | 描述 |
|---|---|
| text_az | 基本小寫字母 |
| text_az | 基本大寫字母 |
| text_combdiacs | 基本結合變量 |
| text_spacingdiacs | 基本的間距變音符 |
| text_09 | 基本數字 |
| text_numsym | 數字和相關符號 |
| text_nummath | 數學符號 |
| text_symbols | 常見符號 |
| text_punct | 基本標點符號 |
| text_pangram | 簡單的pangram |
| text_verne | 摘自海底20,000個聯賽 |
| text_vernecaps | 大寫版本 |
| text_reveng | 啟示錄7(英語)摘錄 |
| text_revfin | 啟示錄7(芬蘭)的摘錄 |
| text_revger | 啟示錄7(德語)摘錄 |
| text_revdut | 啟示錄7(荷蘭)摘錄 |
| text_revind | 啟示錄7(印度尼西亞)摘錄 |
| text_revswa | 啟示錄7(斯瓦希里語)的摘錄 |
| text_arrowroot | 傳統字體測試文本 |
| text_capslower | 拉丁首都針對小寫的鍵字母 /o和 /n |
| text_bringhurst | 來自Bringhurst的“印刷風格元素”的Kerning測試 |
| text_allkernpairs | 包含拉丁上下案例字母的所有組合的文本 |
| text_jafkerns | 來自另一個鑄造廠的文本生成器的Kerning測試 |
這使用字典來產生由真實單詞組成的垃圾文本,類似於lorem 。但是,這些單詞只會包含您提供的集合的字母:
adhesion[characters=hamburgefonsiv]
可選的參數是words ,單詞數( dict為120),以及字典文件的路徑。如果未提供dict選項,則該類外觀/usr/share/dict/words和/usr/dict/words 。如果單詞文件僅包含指定的字符,則從字典文件中選擇單詞。
這是從項目Gutenberg Project下載的文本。
gutenberg[id=100] % The complete works of Shakespeare
排版Pi的一些數字:
pi[digits=500]
這會產生一個簡單的未排序表,該表將顯示一系列Unicode和代表該範圍內USV的任何字形。
一些例子:
unicharchart[type="all",columns="12",rows="16"]
這會產生一個表,該表顯示了字體中的每個編碼字符,格式為表格,增加了USV下降的列,每列16個字符,最多12列,然後分解為新表格。這與Unicode標準代碼圖中的表非常相似,並且可能是簡單unicharchart的默認設置。
unicharchart[type="range",start="AA80",end="AADF"]
除了顯示給定的USV範圍外,這會產生相同的情況。
這些在Sile中的工作即使沒有Fontprood,儘管您需要加載它們script[src=packages/specimen] 。
這會產生一組預定義的pangrams。
這會產生垃圾lorem ipsum文本,並指示單詞數。
這會產生一個很好的佈置表中字體上所有字形的表格。
以下是一些命令,我們希望有一天能提供建議的命令格式。有些可能永遠不會實施。歡迎建議!
我們希望看到更多的潛在參數proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
哦!