คลาสทดสอบการออกแบบแบบอักษรสำหรับ Sile
FontProof ช่วยให้คุณสามารถผลิตเอกสารทดสอบแบบอักษร PDF โดยไม่ต้องเล่นซอกับการจัดวางหน้าเว็บหรือโปรแกรมการประมวลผลคำอื่น ๆ หรือโปรแกรมการประมวลผลคำอื่น ๆ คุณสามารถใช้หนึ่งในเอกสารการทดสอบที่ได้รับการออกแบบล่วงหน้า (เพื่อเพิ่มในภายหลัง) หรือใช้ FontProof เพื่อสร้างเอกสารการทดสอบแบบอักษรที่กำหนดเองของคุณเอง
โปรดทราบว่า Fontproof เป็นงานที่กำลังดำเนินการอยู่อย่างมากดังนั้นจึงมีหลายอย่างที่ยังไม่ทำงานหรือไม่ทำงานอย่างสง่างาม ใช้ความเสี่ยงของคุณเองและช่วยให้เราทำให้ดีขึ้น
Fontproof ต้องใช้ช่างเรียงพิมพ์ Sile คุณจะต้องติดตั้ง Sile ตามคำแนะนำของแพ็คเกจนั้น
โปรดทราบว่า Sile กำลังเปลี่ยนแปลงอย่างรวดเร็ว คลาสปัจจุบันได้รับการพัฒนาและทดสอบด้วยการเปิดตัว 0.14.0 หรือใหม่กว่า สำหรับการสนับสนุน Sile รุ่นเก่าดู Fontproof รุ่นเก่า
การติดตั้ง Fontproof จะทำเป็นหลักผ่าน Lua Rocks:
$ luarocks install fontproofการติดตั้งที่ใช้งานได้ของ Sile v0.14.0 หรือใหม่กว่าจะถือว่า แต่ไม่ได้ตรวจสอบในเวลาติดตั้ง
คุณสามารถติดตั้งจากด้วยตนเองจากไดเรกทอรีต้นฉบับ:
$ luarocks make Running Fontproof ทำได้ผ่าน 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 เทมเพลตสตาร์ทเตอร์สี่ตัวมีให้ออกจากกล่อง ในการปรับให้เข้ากับพวกเขาสิ่งที่ดีที่สุดที่ต้องทำอาจคัดลอกสิ่งที่คล้ายกับที่คุณวางแผนที่จะมุ่งหน้าและแก้ไขด้วยตัวคุณเอง คุณสมบัติหลักของเทมเพลตคือใช้คลาส Fontproof การใช้คำสั่งพิเศษที่กำหนดนั้นอยู่บนพื้นฐานที่จำเป็น
ตัวอย่างเช่น:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.silณ จุดนี้มีเทมเพลตหลักหนึ่ง - fpfull.sil - แต่จะติดตามมากกว่านี้ เทมเพลตนั้นจะแสดงให้คุณเห็นเกือบทั้งหมดที่ Fontproof สามารถทำได้ Sile นั้นมีความสามารถไกลมากขึ้นและคุณยินดีต้อนรับที่จะเล่นกับมัน
เป็นวิธีทางเลือกในการใช้ FontProof รูปภาพ 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 ระบบ CI ระยะไกลใด ๆ ที่สามารถใช้อิมเมจ Docker เป็นนักวิ่งงานสามารถกำหนดค่าให้เรียกใช้งาน Fontproof นอกจากนี้ยังมีการดำเนินการ 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 โปรดทราบว่าความคิดเห็นในส่วนเกี่ยวกับ Docker เกี่ยวกับเวอร์ชันที่ติดแท็กนอกเหนือจากการใช้งาน latest อย่างเท่าเทียมกันที่นี่ แต่การกระทำของ GitHub ใช้ตัวคั่น @ แทน Docker's :
แต่ละเทมเพลตสามารถมีการทดสอบที่เลือกเต็มรูปแบบ การทดสอบแต่ละครั้งมีการระบุโดยใช้คำสั่งในรูปแบบทั่วไปนี้:
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 ทั้งหมดโดยการเปลี่ยนการตั้งค่าใน ชั้นเรียน/fontproof.lua
รองรับการทดสอบประเภทต่อไปนี้และมีการแสดงใน fpfull.sil :
รายละเอียดเกี่ยวกับคำสั่งที่ใช้เพื่อระบุสิ่งเหล่านี้อยู่ด้านล่าง
Fontproof เป็นลิขสิทธิ์© 2016 SIL International และได้รับใบอนุญาตภายใต้ใบอนุญาต MIT BTW - แม้จะมีความคล้ายคลึงกันชื่อ Sile ก็ไม่ได้พัฒนาโดย Sil International แม้ว่าเราจะชอบโครงการมาก คุณยินดีเป็นอย่างยิ่งที่จะมีส่วนร่วมในทั้ง Fontproof และ 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}
สิ่งนี้สร้างข้อความหลายชุดที่มีอักขระที่หลากหลายในสถานที่สำคัญ บางครั้งสิ่งเหล่านี้เรียกว่า 'การทดสอบเฟรม' ตามเนื้อผ้าการทดสอบทั่วไปของประเภทนี้คือการทดสอบ 'โฮบอน' 'โฮบอน' สำหรับตัวอักษร ABCD จะมีลักษณะ:
haoabaoanaoap hbobbbnbobp 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 และไม่ควรใช้เป็น Chars (รายการของคนที่ปลอดภัยที่แนะนำจะเป็นการเพิ่มที่ดีที่นี่!) มันเป็นความคิดที่ไม่ดีที่จะใช้ตัวละครที่อยู่ใน ตัวแทน
มีพารามิเตอร์เสริมอีกหนึ่งพารามิเตอร์สำหรับคำสั่ง pattern :
มันง่ายกว่าที่จะแสดงสิ่งนี้มากกว่าที่จะอธิบาย ก่อนอื่นตัวอย่างที่จัดรูปแบบจากนั้นคำสั่งที่จะสร้าง:
ooaxoo oobxoo oocxoo
Ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
Ooaxoo
OOBXOO
oocxoo
ooayoo
oobyoo
ไข่ไก่
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 | การผสมผสานขั้นพื้นฐาน diacritics |
| group_09 | ตัวเลขพื้นฐาน |
| group_punct | เครื่องหมายวรรคตอนพื้นฐาน |
Fontproof มีช่วงของข้อความทดสอบในตัว ตั้งค่าเนื้อหาของคำสั่ง proof หรือ pattern เป็นชื่อใด ๆ ที่ตั้งไว้ล่วงหน้า text_xxxx ต่อไปนี้ คุณยังสามารถเพิ่มข้อความของคุณเองใน แพ็คเกจ/fontprooftexts.lua
| เนื้อหา | คำอธิบาย |
|---|---|
| text_az | ตัวอักษรตัวพิมพ์เล็กขั้นพื้นฐาน |
| text_az | ตัวอักษรตัวพิมพ์ใหญ่พื้นฐาน |
| text_combdiacs | การผสมผสานขั้นพื้นฐาน diacritics |
| text_spacingdiacs | diacritics ระยะห่างพื้นฐาน |
| 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 | การทดสอบ kerning จาก“ องค์ประกอบของสไตล์การพิมพ์” ของ Bringhurst |
| text_allkernpairs | ข้อความที่มีตัวอักษรทั้งหมดของละตินและตัวอักษรตัวพิมพ์เล็ก |
| text_jafkerns | การทดสอบ kerning จากเครื่องกำเนิดข้อความของโรงหล่ออื่น ๆ |
สิ่งนี้ใช้พจนานุกรมเพื่อสร้างข้อความขยะที่ประกอบด้วยคำจริงคล้ายกับ lorem อย่างไรก็ตามคำจะมีตัวอักษรจากชุดที่คุณจัดหาเท่านั้น:
adhesion[characters=hamburgefonsiv]
อาร์กิวเมนต์เสริมคือ words จำนวนคำ (การผิดนัดเป็น 120) และ dict เส้นทางของไฟล์พจนานุกรม ชั้นเรียนดูใน /usr/share/dict/words และ /usr/dict/words หากไม่มีตัวเลือก dict คำจะถูกเลือกจากไฟล์พจนานุกรมหากมีเฉพาะอักขระที่ระบุ
การดาวน์โหลดและจัดเรียงข้อความจาก Project Gutenberg
gutenberg[id=100] % The complete works of Shakespeare
เรียงพิมพ์ตัวเลขบางตัวของ pi:
pi[digits=500]
สิ่งนี้สร้างตารางที่ไม่ได้สั่งซื้ออย่างง่ายซึ่งจะแสดงช่วงของ Unicode และร่ายมนตร์ใด ๆ ที่เป็นตัวแทนของ USVs ในช่วงนั้น
ตัวอย่างบางส่วน:
unicharchart[type="all",columns="12",rows="16"]
สิ่งนี้สร้างตารางที่แสดงอักขระที่เข้ารหัสทุกตัวในตัวอักษรจัดรูปแบบเป็นตารางที่เพิ่ม USVs ลงมาคอลัมน์ 16 ตัวอักษรต่อคอลัมน์โดยมีคอลัมน์สูงสุด 12 คอลัมน์ก่อนที่จะบุกเข้าไปในตารางใหม่ สิ่งนี้คล้ายกับตารางในแผนภูมิรหัสมาตรฐาน Unicode และอาจเป็นการตั้งค่าเริ่มต้นสำหรับ unicharchart ง่าย ๆ
unicharchart[type="range",start="AA80",end="AADF"]
สิ่งนี้ผลิตได้เหมือนกันยกเว้นเฉพาะการแสดงช่วง USV ที่กำหนด
งานเหล่านี้ใน Sile แม้จะไม่มี Fontproof แม้ว่าคุณจะต้องโหลดด้วย script[src=packages/specimen]
สิ่งนี้สร้างชุดของ pangrams ที่กำหนดไว้ล่วงหน้า
สิ่งนี้สร้างข้อความ Lorem ipsum ของขยะด้วยจำนวนคำที่ระบุ
สิ่งนี้สร้างตารางที่จัดเรียงอย่างสวยงามของร่ายมนตร์ทั้งหมดในแบบอักษร
นี่คือคำสั่งบางอย่างที่เราหวังว่าจะได้รับการสนับสนุนสักวันหนึ่งด้วยรูปแบบคำสั่งที่แนะนำ บางคนอาจไม่ถูกนำไปใช้ ยินดีต้อนรับคำแนะนำ!
เราชอบที่จะเห็นพารามิเตอร์ที่มีศักยภาพมากขึ้นไปยัง proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
Oooooh