SILEのフォント設計テストクラス。
FontProofを使用すると、InDesignやその他の手動ページレイアウトやワードプロセッシングプログラムをいじることなく、PDFフォントテストドキュメントを作成できます。事前に設計されたテストドキュメントのいずれかを適用するか(後で追加する)、FontProofを使用して独自のカスタムフォントテストドキュメントを作成できます。
フォントプルーフは非常に進行中の作業であるため、まだ機能していないか、非常にエレガントに機能しないことがたくさんあります。あなた自身の責任で使用し、私たちがそれをより良くするのを助けてください。
fontproofには、Sile Typesetterが必要です。そのパッケージの指示に従ってSileをインストールする必要があります。
Sileは急速に変化していることに注意してください。現在のクラスは、リリース0.14.0以降で開発され、テストされました。 SILEの古いバージョンのサポートについては、FontProofの古いバージョンを参照してください。
FontProofの設置は、主にLua Rocksを介して行われます。
$ luarocks install fontproofSile V0.14.0以降の動作中の設置は想定されていますが、設置時にはチェックされません。
また、ソースディレクトリから手動でインストールすることもできます。
$ luarocks make フォントプルーフを実行することは、独自のCLIを通じて行われます。
$ 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 4つのスターターテンプレートが箱から出して提供されます。それらを適応させるために、最善のことは、おそらく自分でそれを率いて修正する予定の場所に最も似たものをコピーすることです。テンプレートの主な機能は、フォントプルーフクラスを使用することです。定義する専門コマンドの使用は、必要に応じて行われます。
例えば:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.silこの時点で、1つのメインテンプレート-fpfull.sil-がありますが、さらに続きます。そのテンプレートは、フォントプルーフができるほぼすべてを示します。 Sile自体は、はるかに、はるかに、それ以上の能力があります。
フォントプルーフを使用する代替方法として、DockerイメージはDocker HubまたはGithub Container RegistryからSILEとFontProofクラスが焼かれ、使用可能な準備ができています。リリースされたバージョンのタグ付け(例: 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画像を使用できるリモートCIシステムは、フォントプルーフジョブを実行するように構成できます。さらに、既製の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に関するセクションのコメントは、ここで等しく適用されますが、GitHubアクションはDockerの代わりに@ Separatorを使用しています:
各テンプレートには、完全な選択のテストを含めることができます。各テストは、この一般的な形式のコマンドを使用して指定されます。
commandname[set of parameters]{text to be typeset}
一部のテストには、Sile自体内でネイティブにサポートされているこの例のように、パラメーターのみ、またはテキストのみ、またはどちらもありません。
pangrams
Sileの実行コマンドの詳細については、Sileマニュアルをご覧ください。
デフォルトでは、実行中のヘッドには、ファイル名、フォント(ファミリまたはファイル名)、日付、および時間がリストされています。コンテンツは(現在)構成可能ではありませんが、 setRunHeadStyleコマンドでフォントとサイズを設定できます。これにはテストフォントとの関係がないことに注意してください。
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
セクションとサブセクションの見出しを追加するには:
section{Heading text}
subsection{Heading text}
これらのスタイルは現在構成できませんが、クラス/fontproof.luaの設定を変更することにより、すべてのフォントプルーフドキュメントに対して手動でそれらを調整できます。
次の種類のテストがサポートされており、 fpfull.silに示されています。
これらを指定するために使用されるコマンドの詳細は以下にあります。
FontProofは著作権©2016 SIL Internationalであり、MITライセンスに基づいてライセンスされています。ところで - 名前の類似性にもかかわらず、Sile自体はSil Internationalによって開発されていませんが、プロジェクトは非常に好きです。 FontproofとSileの両方に貢献できることを歓迎します。
これらのコマンドは現在サポートされています。
これは主なフォントプルーフコマンドであり、簡単なテストテキストと滝の両方を設定するために使用できます。オプションのパラメーターには、フォント(ファミリまたはファイル名)とサイズが含まれます。別の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}
これにより、主要な場所に置き換えられたさまざまな文字を含むテキストの複数のコピーが生成されます。これらは「フレームテスト」と呼ばれることもあります。従来、このタイプの一般的なテストは「ホブノップ」テストでした。 ABCDの文字の「Hobonop」は次のようになります。
haoabaoaanaoap hbobbbobnbobp hcocbcocncocp hdodbdodndodp
これを作成するコマンドは次のとおりです。
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
これにより、プレースホルダー文字が定義され、次にそれを置き換えるために使用される文字のセット、次にプレースホルダーを含むテキストパターンが定義されます。
複数のプレースホルダーを使用して、次のようにすべての組み合わせを作成することもできます。
ooaxoo oobxoo ooocxoo
ooayoo oobyoo oocyoo
これのコマンドは次のとおりです。(これの正確な構文に従うか、非常に混乱するエラーが発生する可能性があります!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
SileとLuaに特別なキャラクターがあり、 Charsとして使用すべきではありません。 (提案された安全なもののリストはここに良い追加になるでしょう!)また、担当者にあるキャラクターを使用することも悪い考えです。
patternコマンドにもう1つのオプションのパラメーターがあります。
説明するよりもこれを示す方が簡単です。最初にフォーマットされた例、次にそれを作成するコマンド:
ooaxoo oobxoo ooocxoo
ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
ooaxoo
oobxoo
ooocxoo
ooayoo
oobyoo
oocyoo
pattern[chars="@,#",reps="abc,xy",format="list"]{oo@#oo}
ooaxoo oobxoo ooocxoo ooayoo ooobyoo ooocyoo
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名のいずれかに設定します。パッケージ/fontProoftexts.luaに独自のテキストを追加することもできます。
| コンテンツ | 説明 |
|---|---|
| text_az | 基本的な小文字アルファベット |
| text_az | 基本的な大文字のアルファベット |
| text_combdiacs | ディクリティックスの基本的な組み合わせ |
| text_spacingdiacs | 基本的な間隔ディクリティックス |
| text_09 | 基本的な数字 |
| text_numsym | 数字と関連記号 |
| text_nummath | 数学的記号 |
| text_symbols | 一般的なシンボル |
| text_punct | 基本的な句読点 |
| text_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の「タイポグラフィスタイルの要素」からのカーニングテスト |
| text_allkernpairs | ラテン語の高級文字と小文字のすべての組み合わせを含むテキスト |
| text_jafkerns | Just Another FoundryのテキストジェネレーターからのKerningテスト |
これは、辞書を使用して、 loremに似た実際の単語で構成されるゴミテキストを作成します。ただし、単語には、提供するセットからの文字のみが含まれます。
adhesion[characters=hamburgefonsiv]
オプションの引数は、 words 、単語の数( dictの120)、および辞書ファイルのパスです。クラスは、 dictオプションが提供されていない場合/usr/share/dict/wordsおよび/usr/dict/wordsに表示されます。単語は、指定された文字のみが含まれている場合、辞書ファイルから選択されます。
これにより、Project Gutenbergからテキストをダウンロードして入力します。
gutenberg[id=100] % The complete works of Shakespeare
Piのいくつかの数字をタイプセットします:
pi[digits=500]
これにより、範囲のユニコードとその範囲のUSVを表すグリフを示す単純な非積極的なテーブルが生成されます。
いくつかの例:
unicharchart[type="all",columns="12",rows="16"]
これにより、フォント内のすべてのエンコードされた文字を表示するテーブルが生成され、新しいテーブルに侵入する前に、列あたり16枚の列、列あたり16枚の列、列あたり16枚のcharを下に下りてUSVが増加するとテーブルとしてフォーマットされます。これは、Unicode標準コードチャートのテーブルに非常に似ており、単純なunicharchartのデフォルト設定になる可能性があります。
unicharchart[type="range",start="AA80",end="AADF"]
これは、与えられたUSVの範囲のみを表示することを除いて、同じことを生成します。
これらは、フォントプルーフがなくてもSileで機能しますが、 script[src=packages/specimen]をロードする必要があります。
これにより、事前定義されたパングラムのセットが生成されます。
これにより、単語の数が示されているゴミLorem Ipsumテキストが生成されます。
これにより、フォント内のすべてのグリフのきれいに配置されたテーブルが生成されます。
提案されたコマンド形式を使用して、いつかサポートしたいコマンドをいくつか紹介します。いくつかは決して実装されないかもしれません。提案を歓迎します!
proofにさらに潜在的なパラメーターを見てみたいです:
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
oooooh!