فئة اختبار تصميم الخط لـ Sile.
يمكّنك Fontproof من إنتاج مستندات اختبار خط PDF دون التملص مع InDesign أو غيرها من برامج تخطيط الصفحة اليدوية أو برامج معالجة النصوص. يمكنك تطبيق واحدة من مستندات الاختبار المصممة مسبقًا (المراد إضافتها لاحقًا) أو استخدام Fontproof لإنشاء مستند اختبار الخط الخاص بك.
لاحظ أن Fontproof هو إلى حد كبير عملًا محددًا ، لذلك هناك الكثير الذي لا يعمل بعد ، أو لا يعمل بأناقة للغاية. استخدم على مسؤوليتك الخاصة ، وساعدنا في جعلها أفضل.
يتطلب Fontproof typeetter Sile. ستحتاج إلى تثبيت Sile وفقًا لتعليمات تلك الحزمة.
لاحظ أن Sile يتغير بسرعة. تم تطوير الفئة الحالية واختبارها مع الإصدار 0.14.0 أو الأحدث. للحصول على دعم الإصدارات القديمة من Sile ، انظر الإصدارات القديمة من FontProof.
يتم تثبيت Fontproof في المقام الأول من خلال Lua Rocks:
$ luarocks install fontproofيُفترض أن تثبيت العمل لـ Sile v0.14.0 أو الأحدث يُفترض ولكن لم يتم فحصه في وقت التثبيت.
يمكنك أيضًا التثبيت يدويًا من دليل المصدر:
$ luarocks make يتم تشغيل 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 - ولكن سوف يتبع المزيد. سيظهر لك هذا القالب تقريبًا كل ما يمكن أن يفعله الخطي. Sile نفسها قادرة على بعيد ، وأكثر من ذلك ، ونرحب بك للغاية للعب معها.
كطريقة بديلة لاستخدام Fontproof ، تتوفر صور Docker من Docker Hub أو سجل حاوية Github مع Sile و Fontproof Class المخبوزات وجاهزة للاستخدام. يتم وضع علامة على الإصدارات التي تم إصدارها للمطابقة (على سبيل المثال 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 حيث يمكن تكوين المتسابقين في الوظائف لتشغيل وظائف مقاومة للخطوط. بالإضافة إلى ذلك ، يتوفر إجراء جيثب جاهز في السوق:
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 تطبيق على قدم المساواة هنا ، ولكن تستخدم إجراءات 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. راجع للشغل - على الرغم من تشابه الاسم ، لم يتم تطوير Sile نفسها بواسطة SIL International ، على الرغم من أننا نحب المشروع كثيرًا. اهلا وسهلا بكم في المساهمة في كل من Fontproof و Sile.
هذه الأوامر مدعومة حاليا.
هذا هو أمر مقاوم للخطوط الرئيسي ، ويمكن استخدامه لوضع كل من نصوص الاختبار البسيطة والشلالات. تتضمن المعلمات الاختيارية الخط (حسب العائلة أو اسم الملف) والحجم (S). يمكنك أيضًا تعيين عنوان اختبار هنا بدلاً من استخدام أمر منفصل 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". "Hobonop" للرسائل التي يبدو أن ABCD تبدو:
haoabaaanaoap hbobbbobnbobp hcocbcocncocp hdodbdodndodp
سيكون الأمر لإنتاج هذا هو:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
هذا يحدد حرفًا نائبًا ، ثم مجموعة الحروف المستخدمة لاستبدالها ، ثم نمط النص الذي يحتوي على العنصر النائب.
يمكنك أيضًا استخدام أصحاب نائبة متعددة لإنشاء جميع المجموعات ، كما في:
OOAXOO OOBXOO OOCXOO
ooayoo oobyoo ocyoo
سيكون أمر هذا: (تأكد من اتباع بناء جملة هذا بالضبط ، أو قد تحصل على أخطاء مربكة للغاية!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
هناك بعض الشخصيات المميزة لـ Sile و Lua ولا ينبغي استخدامها كـ chars . (قائمة الآمنة المقترحة ستكون إضافة جيدة هنا!) إنها أيضًا فكرة سيئة لاستخدام شخصية في الممثلين .
هناك معلمة اختيارية أخرى لأمر pattern :
من الأسهل إظهار هذا من شرح. أولاً ، المثال المنسق ، ثم الأمر لإنتاجه:
OOAXOO OOBXOO OOCXOO
ooayoo oobyoo ocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
ooaxoo
OOBXOO
Oocxoo
ooayoo
أووبيو
البويضات
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 التالية. يمكنك أيضًا إضافة النصوص الخاصة بك في الحزم/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 | العواصم اللاتينية ضد الحروف المفتاح الصغيرة /س و /ن |
| 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 chars لكل عمود ، بحد أقصى 12 عمودًا قبل اقتحام جدول جديد. هذا يشبه إلى حد كبير الجداول في مخططات رمز Unicode القياسية ، ويمكن أن تكون الإعدادات الافتراضية لسيارة بسيطة unicharchart .
unicharchart[type="range",start="AA80",end="AADF"]
هذا ينتج نفس الشيء ، باستثناء فقط إظهار النطاق المعطى من USVs.
هذه العمل في Sile حتى بدون مقاومة للخطوط ، على الرغم من أنك ستحتاج بعد ذلك إلى تحميلها باستخدام script[src=packages/specimen] .
هذا ينتج مجموعة من pangrams محددة مسبقا.
هذا ينتج نص القمامة lorem ipsum ، مع وجود عدد من الكلمات المشار إليها.
هذا ينتج طاولة مرتبة بشكل جيد لجميع الحروف الرسومية في الخط.
فيما يلي بعض الأوامر التي نأمل في دعمها يومًا ما ، مع تنسيقات القيادة المقترحة. قد لا يتم تنفيذ البعض. اقتراحات ترحيب!
نود أن نرى المزيد من المعلمات المحتملة إلى proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
واو!