Kelas Pengujian Desain Font untuk Sile.
Fontproof memungkinkan Anda untuk menghasilkan dokumen uji font PDF tanpa mengutak -atik InDesign atau tata letak halaman manual lainnya atau program pengolah kata. Anda dapat menerapkan salah satu dokumen pengujian yang telah dirancang (untuk ditambahkan nanti) atau menggunakan Fontproof untuk membangun dokumen uji font khusus Anda sendiri.
Perhatikan bahwa fontproof adalah pekerjaan dalam proses, jadi ada banyak hal yang belum berfungsi, atau tidak bekerja dengan sangat elegan. Gunakan dengan risiko Anda sendiri, dan bantu kami membuatnya lebih baik.
Fontproof membutuhkan pengetik Sile. Anda harus menginstal Sile sesuai dengan instruksi paket itu.
Perhatikan bahwa Sile berubah dengan cepat. Kelas saat ini dikembangkan untuk dan diuji dengan rilis 0.14.0 atau lebih baru. Untuk dukungan dari versi Sile yang lebih lama, lihat versi Fontproof yang lebih lama.
Instalasi Fontproof terutama dilakukan melalui Lua Rocks:
$ luarocks install fontproofInstalasi kerja Sile V0.14.0 atau yang lebih baru diasumsikan tetapi tidak diperiksa pada waktu instalasi.
Anda juga dapat menginstal secara manual dari direktori sumber:
$ luarocks make Running Fontproof dilakukan melalui CLI sendiri:
$ 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 Empat templat starter disediakan di luar kotak. Untuk mengadaptasi mereka, hal terbaik untuk dilakukan adalah menyalin yang paling mirip dengan tempat Anda berencana untuk pergi dan memodifikasinya sendiri. Fitur utama dari templat adalah menggunakan kelas FontProof . Penggunaan perintah khusus yang didefinisikannya adalah berdasarkan kebutuhan.
Misalnya:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.silPada titik ini ada satu templat utama - fpfull.sil - tetapi lebih banyak akan mengikuti. Template itu akan menunjukkan kepada Anda hampir semua yang dapat dilakukan dengan tahan font itu. Sile sendiri mampu jauh, jauh, lebih banyak, dan Anda sangat dipersilakan untuk bermain -main dengannya.
Sebagai metode alternatif untuk menggunakan fontproof, gambar Docker tersedia dari Docker Hub atau Github Container Registry dengan Sile dan kelas FontProof yang dipanggang dan siap digunakan. Versi yang dirilis ditandai untuk mencocokkan (misalnya v2.0.5 ), rilis terbaru akan ditandai latest , dan tag master juga tersedia dengan pembangunan pengembangan segar. Agar berguna, Anda perlu memberi tahu perintah Docker Run cara untuk mencapai dokumen sumber Anda (dan karenanya juga untuk memberikan tempat untuk menulis output) serta memberi tahu siapa Anda di mesin host sehingga output yang dihasilkan di dalam wadah dapat dibuat dengan properti kepemilikan yang diharapkan. Anda mungkin merasa paling mudah untuk dijalankan dengan alias seperti ini:
$ alias fontproof= ' docker run -it --volume "$(pwd):/data" --user "$(id -u):$(id -g)" siletypesetter/fontproof:latest '
$ fontproof proofs.sil Sistem CI jarak jauh apa pun yang dapat menggunakan gambar Docker karena pelari kerja dapat dikonfigurasi untuk menjalankan pekerjaan tahan font. Selain itu tindakan github siap pakai tersedia di pasar:
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 Tambahkan ke repositori Anda sebagai .github/workflows/fontproof.yml . Aliran kerja ini mengasumsikan proyek Anda memiliki proofs.sil file sumber.sil dan akan meninggalkan fontproof.pdf . Perhatikan bahwa komentar di bagian tentang Docker mengenai versi yang ditandai selain latest berlaku di sini, tetapi tindakan GitHub menggunakan @ pemisah, bukan Docker : .
Setiap templat dapat berisi pilihan penuh tes. Setiap tes ditentukan menggunakan perintah dalam format umum ini:
commandname[set of parameters]{text to be typeset}
Beberapa tes mungkin hanya memiliki parameter, atau hanya teks, atau keduanya, seperti dalam contoh ini yang secara asli didukung dalam Sile itu sendiri:
pangrams
Rincian lebih lanjut tentang menjalankan perintah di Sile dapat ditemukan di manual Sile.
Secara default, kepala yang berjalan mencantumkan nama file, font (keluarga atau nama file), tanggal, dan waktu. Konten tidak (saat ini) dapat dikonfigurasi, tetapi Anda dapat mengatur font dan ukuran dengan perintah setRunHeadStyle . Perhatikan bahwa ini tidak ada hubungannya dengan font uji.
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
Untuk menambahkan bagian dan judul ayat:
section{Heading text}
subsection{Heading text}
Gaya ini saat ini tidak dapat dikonfigurasi, tetapi Anda dapat mengubahnya secara manual untuk semua dokumen fontproof dengan mengubah pengaturan di kelas/fontproof.lua .
Jenis -jenis tes berikut didukung, dan diilustrasikan dalam fpfull.sil :
Detail pada perintah yang digunakan untuk menentukan ini di bawah ini.
Fontproof adalah hak cipta © 2016 SIL International dan berlisensi di bawah lisensi MIT. BTW - Terlepas dari namanya kesamaan, Sile sendiri tidak dikembangkan oleh SIL International, meskipun kami sangat menyukai proyek ini. Anda sangat dipersilakan untuk berkontribusi pada Fontproof dan Sile.
Perintah ini saat ini didukung.
Ini adalah perintah tahan font utama, dan dapat digunakan untuk mengatur teks uji sederhana dan air terjun. Parameter opsional termasuk font (berdasarkan keluarga atau nama file) dan ukuran. Anda juga dapat mengatur tes heading di sini daripada menggunakan perintah section terpisah.
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}
Ini menghasilkan banyak salinan teks dengan berbagai karakter yang diganti di tempat -tempat utama. Ini kadang -kadang disebut sebagai 'tes bingkai'. Secara tradisional tes umum dari jenis ini adalah tes 'hobonop'. Sebuah 'hobonop' untuk huruf ABCD akan terlihat seperti:
haoabaoanaoap hbobbbobnbobp hcocbcocncocp hdodbdodndodp
Perintah untuk menghasilkan ini adalah:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
Ini mendefinisikan karakter placeholder, kemudian set huruf yang digunakan untuk menggantinya, kemudian pola teks yang berisi placeholder.
Anda juga dapat menggunakan beberapa placeholder untuk membuat semua kombinasi, seperti dalam:
OOAXOO OOBXOO OOCXOO
OOAYOO OOBYOO OOCYOO
Perintah untuk ini adalah: (pastikan untuk mengikuti sintaks ini dengan tepat, atau Anda mungkin mendapatkan kesalahan yang sangat membingungkan!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
Ada beberapa karakter yang istimewa untuk Sile dan Lua dan tidak boleh digunakan sebagai chars . (Daftar yang aman yang disarankan akan menjadi tambahan yang baik di sini!) Ini juga merupakan ide yang buruk untuk menggunakan karakter yang ada di repetisi .
Ada satu lagi parameter opsional untuk perintah pattern :
Lebih mudah untuk menunjukkan ini daripada menjelaskan. Pertama contoh yang diformat, lalu perintah untuk memproduksinya:
OOAXOO OOBXOO OOCXOO
OOAYOO OOBYOO OOCYOO
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
Ooaxoo
Oobxoo
Oocxoo
Ooayoo
Oobyoo
oosyoo
pattern[chars="@,#",reps="abc,xy",format="list"]{oo@#oo}
ooxoo oobxoo oocxoo ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="para"]{oo@#oo}
Ini keren! Katakan bahwa Anda memiliki sekelompok huruf yang ingin Anda gunakan dalam beberapa tes pola, tetapi tidak ingin harus mendefinisikannya berulang kali. Anda dapat mendefinisikan ini sebagai grup pola, dengan nama tertentu. Perhatikan bahwa Anda harus mendefinisikan grup ini dalam dokumen Anda sebelum Anda merujuknya. Perhatikan juga bahwa perintah ini tidak benar -benar menghasilkan apa pun di halaman dengan sendirinya. Ini hanya berguna untuk perintah pattern nanti.
patterngroup[name="vowels"]{aeiou}
Untuk merujuk ini di awalan perintah pattern nama grup dengan "group_" dan gunakan dalam parameter reps . Misalnya:
pattern[chars="@,#",reps="group_vowels,xy",format="table"]{oo@#oo}
Ada juga beberapa kelompok yang telah ditentukan, seperti yang tercantum di bawah ini. Anda juga dapat mendefinisikan grup permanen Anda sendiri dalam paket/fontproofgroups.lua .
| Nama grup | Keterangan |
|---|---|
| group_az | Alfabet huruf kecil dasar |
| group_az | Alfabet Hulu Dasar |
| group_combdiacs | Kombinasi Dasar Diakritik |
| grup_09 | angka dasar |
| group_punct | tanda baca dasar |
Fontproof mencakup berbagai teks uji bawaan. Atur konten perintah proof atau pattern ke salah satu nama preset text_xxxx berikut. Anda juga dapat menambahkan teks Anda sendiri dalam paket/fontprooftexts.lua .
| Isi | Keterangan |
|---|---|
| text_az | Alfabet huruf kecil dasar |
| text_az | Alfabet Hulu Dasar |
| text_combdiacs | Kombinasi Dasar Diakritik |
| text_spacingdiacs | Diakritik spasi dasar |
| text_09 | angka dasar |
| text_numsym | angka dan simbol terkait |
| text_nummath | Simbol matematika |
| text_symbols | simbol umum |
| text_punct | tanda baca dasar |
| text_pangram | Pangram sederhana |
| text_verne | kutipan dari 20.000 liga di bawah laut |
| text_vernecaps | versi huruf besar |
| text_reveng | Kutipan dari Wahyu 7 (Bahasa Inggris) |
| text_revfin | Kutipan dari Wahyu 7 (Finlandia) |
| text_revger | Kutipan dari Wahyu 7 (Jerman) |
| text_revdut | Kutipan dari Wahyu 7 (Belanda) |
| text_revind | Kutipan dari Wahyu 7 (Indonesia) |
| text_revswa | Kutipan dari Wahyu 7 (Swahili) |
| text_arrowroot | teks pengujian font tradisional |
| text_capslower | Ibukota Latin terhadap huruf kunci kecil /o dan /n |
| text_bringhurst | Tes kerning dari "Elemen Gaya Tipografi" Bringhurst |
| text_allkernPairs | Teks yang berisi semua kombinasi huruf besar dan kecil Latin |
| text_jafkerns | Tes kerning dari hanya generator teks pengecoran lainnya |
Ini menggunakan kamus untuk menghasilkan teks sampah yang terdiri dari kata -kata nyata, mirip dengan lorem . Namun kata -kata itu hanya akan berisi huruf dari set yang Anda berikan:
adhesion[characters=hamburgefonsiv]
Argumen opsional adalah words , jumlah kata (default ke 120), dan dict , jalur file kamus. Kelas terlihat di /usr/share/dict/words dan /usr/dict/words Jika opsi dict tidak disediakan. Kata -kata dipilih dari file kamus jika hanya berisi karakter yang ditentukan.
Ini mengunduh dan mengamankan teks dari Project Gutenberg.
gutenberg[id=100] % The complete works of Shakespeare
Mengamankan beberapa digit pi:
pi[digits=500]
Ini menghasilkan tabel sederhana yang tidak terbebas yang akan menunjukkan serangkaian unicode dan mesin terbang apa pun yang mewakili USV dalam kisaran itu.
Beberapa contoh:
unicharchart[type="all",columns="12",rows="16"]
Ini menghasilkan tabel yang menunjukkan setiap karakter yang dikodekan dalam font, diformat sebagai tabel dengan meningkatnya USV turun ke bawah kolom, 16 chars per kolom, dengan maksimum 12 kolom sebelum membobol tabel baru. Ini sangat mirip dengan tabel dalam grafik kode standar Unicode, dan bisa menjadi pengaturan default untuk unicharchart sederhana.
unicharchart[type="range",start="AA80",end="AADF"]
Ini menghasilkan hal yang sama, kecuali hanya menunjukkan kisaran USV yang diberikan.
Ini bekerja di Sile bahkan tanpa tahan font, meskipun Anda kemudian perlu memuatnya dengan script[src=packages/specimen] .
Ini menghasilkan satu set pangram yang telah ditentukan sebelumnya.
Ini menghasilkan teks ipsum lorem sampah, dengan jumlah kata yang ditunjukkan.
Ini menghasilkan tabel yang diatur dengan baik dari semua mesin terbang di font.
Berikut adalah beberapa perintah yang kami harapkan untuk dukungan suatu hari nanti, dengan format perintah yang disarankan. Beberapa mungkin tidak pernah diimplementasikan. Saran selamat datang!
Kami ingin melihat lebih banyak parameter potensial untuk proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
Oooooh!