Une classe de test de conception de polices pour SILE.
FontProof vous permet de produire des documents de test de police PDF sans jouer avec InDesign ou d'autres programmes de mise en page ou de traitement de page manuel. Vous pouvez appliquer l'un des documents de test prédéfinis (à ajouter plus tard) ou utiliser FontProof pour créer votre propre document de test de police personnalisé.
Notez que FontProof est vraiment un travail en cours, donc il y a beaucoup de choses qui ne fonctionnent pas encore ou ne fonctionnent pas très élégamment. Utilisez à vos propres risques et aidez-nous à améliorer.
FontProof nécessite la composition du SILE. Vous devrez installer SILE selon les instructions de ce package.
Notez que SILE change rapidement. La classe actuelle a été développée et testée avec la version 0.14.0 ou plus récente. Pour le support des anciennes versions de SILE, consultez les anciennes versions de FontProof.
L'installation de la police est principalement effectuée via Lua Rocks:
$ luarocks install fontproofUne installation de travail de SILE V0.14.0 ou plus récent est supposée mais non vérifiée au moment de l'installation.
Vous pouvez également installer manuellement à partir du répertoire source:
$ luarocks make Running FontProof est effectué via sa propre 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 Quatre modèles de démarrage sont fournis hors de la boîte. Pour les adapter, la meilleure chose à faire est probablement de copier celle la plus similaire à l'endroit où vous prévoyez de vous diriger et de le modifier vous-même. La caractéristique principale d'un modèle est qu'il utilise la classe Fontsroproof . L'utilisation des commandes spécialisées qu'il définit est au besoin.
Par exemple:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.silÀ ce stade, il y a un modèle principal - fpfull.sil - mais d'autres suivront. Ce modèle vous montrera presque tout ce que les polices peuvent faire. Sile lui-même est capable de loin, de loin, plus, et vous êtes les bienvenus pour jouer avec.
En tant que méthode alternative pour utiliser des images de polices, Docker est disponible auprès de Docker Hub ou du GitHub Container Registry avec SILE et la classe Fontsroproof cuit et prêt à l'emploi. Les versions publiées sont étiquetées pour correspondre (par exemple v2.0.5 ), la dernière version sera étiquetée latest , et une étiquette master est également disponible avec la construction de développement la plus fraîche. Pour être utile, vous devez dire à la commande docker run un moyen d'atteindre vos documents source (et donc également pour lui donner un endroit pour écrire la sortie) ainsi que de lui dire qui vous êtes sur la machine hôte afin que la sortie générée à l'intérieur du conteneur puisse être créée avec les propriétés de propriété attendues. Vous pouvez trouver plus facile de courir avec un alias comme ceci:
$ alias fontproof= ' docker run -it --volume "$(pwd):/data" --user "$(id -u):$(id -g)" siletypesetter/fontproof:latest '
$ fontproof proofs.sil Tout système CI distant qui peut utiliser des images Docker comme coureurs de travail pourrait être configurée pour exécuter des travaux à feuilles de police. De plus, une action GitHub prête à l'emploi est disponible sur le marché:
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 Ajoutez à votre référentiel en tant que .github/workflows/fontproof.yml . Ce flux de travail suppose que votre projet a une proofs.sil de fichiers source.SIL et laissera derrière une fontproof.pdf . Notez que les commentaires de la section sur Docker concernant les versions taguées en plus de latest s'appliquent également ici, mais GitHub Actions utilise un @ séparateur au lieu de Docker : .
Chaque modèle peut contenir une sélection complète de tests. Chaque test est spécifié à l'aide d'une commande dans ce format général:
commandname[set of parameters]{text to be typeset}
Certains tests ne peuvent avoir que des paramètres, ou uniquement du texte, ou ni l'un ni l'autre, comme dans cet exemple qui est soutenu nativement dans SILE lui-même:
pangrams
Plus de détails sur les commandes en cours d'exécution dans SILE peuvent être trouvés dans le manuel SILE.
Par défaut, la tête en cours d'exécution répertorie le nom de fichier, la police (famille ou le nom de fichier), la date et l'heure. Le contenu n'est pas (actuellement) configurable, mais vous pouvez définir la police et la taille avec la commande setRunHeadStyle . Notez que cela n'a aucun rapport avec la police de test.
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
Pour ajouter une section et des titres de sous-section:
section{Heading text}
subsection{Heading text}
Le style de ceux-ci n'est pas actuellement configurable, mais vous pouvez les modifier manuellement pour tous les documents de police en modifiant les paramètres dans les classes / FontProof.lua .
Les types de tests suivants sont pris en charge et sont illustrés dans fpfull.sil :
Les détails des commandes utilisés pour les spécifier sont ci-dessous.
FontProof est Copyright © 2016 SIL International et sous licence sous la licence du MIT. BTW - Malgré la similitude du nom, SILE elle-même n'est pas développée par SIL International, bien que nous aimions beaucoup le projet. Vous êtes les bienvenus pour contribuer à la fois à Fontsroproof et SILE.
Ces commandes sont actuellement prises en charge.
Il s'agit de la commande principale à feuilles de police et peut être utilisée pour définir à la fois des textes de test simples et des cascades. Les paramètres facultatifs incluent la police (par famille ou le nom de fichier) et la (s). Vous pouvez également définir un titre de test ici plutôt que d'utiliser une commande section séparée.
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}
Cela produit plusieurs copies d'un texte avec une gamme de caractères substitués dans des endroits clés. Ceux-ci sont parfois appelés «tests de trame». Traditionnellement, un test commun de ce type était le test «Hobonop». Un `` Hobonop '' pour les lettres ABCD ressemblerait:
haoabaoanaoap hbobbbobnbobp hcocbcocncocp hdodbdoddodp
La commande pour produire cela serait:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
Cela définit un caractère d'espace réservé, puis l'ensemble des lettres utilisés pour le remplacer, puis le modèle de texte contenant les espaces réservés.
Vous pouvez également utiliser plusieurs espaces réservés pour créer toutes les combinaisons, comme dans:
ooaxoo oobxoo oocxoo
ooayoo oobyoo oocyoo
La commande pour cela serait: (assurez-vous de suivre exactement la syntaxe de cela, ou vous pouvez obtenir des erreurs très déroutantes!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
Il y a des personnages qui sont spéciaux pour Sile et Lua et ne devraient pas être utilisés comme chars . (Une liste de produits sûrs suggérés serait un bon ajout ici!) C'est aussi une mauvaise idée d'utiliser un personnage qui est en représentants .
Il y a un paramètre facultatif de plus dans la commande pattern :
Il est plus facile de le démontrer que d'expliquer. D'abord l'exemple formaté, puis la commande pour le produire:
ooaxoo oobxoo oocxoo
ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
ooaxoo
oobxoo
oocxoo
ooayoo
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}
C'est cool! Dites que vous avez un groupe de lettres que vous souhaitez utiliser dans plusieurs tests de motifs, mais que vous ne voulez pas avoir à les définir encore et encore. Vous pouvez les définir comme un groupe de motifs, avec un nom spécifique. Notez que vous devez définir ces groupes dans votre document avant de vous référer. Notez également que cette commande ne produit rien sur la page par elle-même. Il n'est utile que pour les commandes ultérieures pattern .
patterngroup[name="vowels"]{aeiou}
Pour y faire référence dans une commande pattern préfixez le nom de groupe avec "Group_" et utilisez dans le paramètre reps . Par exemple:
pattern[chars="@,#",reps="group_vowels,xy",format="table"]{oo@#oo}
Il existe également quelques groupes prédéfinis, comme indiqué ci-dessous. Vous pouvez également définir vos propres groupes permanents dans des packages / FontProofGroups.lua .
| Nom de groupe | Description |
|---|---|
| group_az | Alphabet en minuscules de base |
| group_az | Alphabet en majuscules de base |
| group_combdiacs | combinaison de base Diacritics |
| groupe_09 | chiffres de base |
| group_punct | ponctuation de base |
FontProof comprend une gamme de textes de test intégrés. Définissez le contenu d'une commande proof ou pattern sur l'un des noms préréglés text_xxxx suivants. Vous pouvez également ajouter vos propres textes dans des packages / fontsprooftexes.lua .
| Contenu | Description |
|---|---|
| text_az | Alphabet en minuscules de base |
| text_az | Alphabet en majuscules de base |
| text_combdiac | combinaison de base Diacritics |
| text_spacediacs | Diacritiques d'espacement de base |
| text_09 | chiffres de base |
| text_numsym | chiffres et symboles connexes |
| text_nummath | symboles mathématiques |
| text_symbols | symboles communs |
| text_punct | ponctuation de base |
| text_pangram | Pangram simple |
| text_verne | Extrait de 20 000 lieues sous la mer |
| text_vernecaps | version en majuscule |
| text_reveng | Extrait de Apocalypse 7 (anglais) |
| text_revfin | Extrait de l'Apocalypse 7 (finnois) |
| text_revger | Extrait de l'Apocalypse 7 (allemand) |
| text_revdut | Extrait de l'Apocalypse 7 (néerlandais) |
| text_revind | Extrait de l'Apocalypse 7 (Indonésie) |
| text_revswa | Extrait de Apocalypse 7 (Swahili) |
| text_arrowroot | Texte de test de police traditionnel |
| text_capslower | Capitales latines contre les lettres de touche minuscules / o et / n |
| text_bringhurst | Test de création des «éléments de style typographique» de Bringhurst |
| text_allkernpairs | Texte contenant toutes les combinaisons de lettres latines supérieures et inférieures |
| text_jafkerns | Test de création à partir du générateur de texte d'une autre fonderie |
Cela utilise des dictionnaires pour produire du texte des ordures composé de vrais mots, similaires à lorem . Cependant, les mots ne contiendraient que des lettres d'un ensemble que vous fournissez:
adhesion[characters=hamburgefonsiv]
Les arguments facultatifs sont words , le nombre de mots (défaut à 120) et dict , le chemin d'un fichier de dictionnaire. La classe regarde dans /usr/share/dict/words et /usr/dict/words si l'option dict n'est pas fournie. Les mots sont sélectionnés dans le fichier du dictionnaire s'ils ne contiennent que les caractères spécifiés.
Cela télécharge et composte un texte du projet Gutenberg.
gutenberg[id=100] % The complete works of Shakespeare
Typette certains chiffres de Pi:
pi[digits=500]
Cela produit une table simple et non conforme qui montrerait une gamme d'Unicode et de tous les glyphes qui représentent les USV dans cette gamme.
Quelques exemples:
unicharchart[type="all",columns="12",rows="16"]
Cela produit une table qui montre chaque caractère codé de la police, formaté comme une table avec des USV croissants descendant une colonne, 16 caractères par colonne, avec un maximum de 12 colonnes avant de pénétrer dans une nouvelle table. Ceci est très similaire aux tableaux des graphiques de code standard Unicode, et pourrait être les paramètres par défaut pour un simple unicharchart .
unicharchart[type="range",start="AA80",end="AADF"]
Cela produit la même chose, sauf ne montrant que la plage donnée des USV.
Ceux-ci fonctionnent dans SILE même sans Fontsroproof, bien que vous ayez alors besoin de les charger avec script[src=packages/specimen] .
Cela produit un ensemble de pangrams prédéfinis.
Cela produit du texte lorem ipsum à ordures, avec le nombre de mots indiqués.
Cela produit une table bien arrangée de tous les glyphes de la police.
Voici quelques commandes que nous espérons un jour soutenir, avec des formats de commande suggérés. Certains peuvent ne jamais être mis en œuvre. Les suggestions sont les bienvenus!
Nous serions ravis de voir encore plus de paramètres potentiels à proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
Oooooh!