Una clase de prueba de diseño de fuentes para SILE.
FONTPROWN le permite producir documentos de prueba de fuentes PDF sin jugar con InDesign u otros programas de diseño de página manual o procesamiento de textos. Puede aplicar uno de los documentos de prueba prediseñados (que se agregarán más adelante) o use Font -Probar para crear su propio documento de prueba de fuente personalizado.
Tenga en cuenta que FontProof es un trabajo en progreso, por lo que hay muchas cosas que aún no funcionan o no funciona muy elegantemente. Úselo bajo su propio riesgo y ayúdanos a mejorarlo.
Font a prueba de fuentes requiere el Sile Typeetter. Deberá instalar SILE de acuerdo con las instrucciones de ese paquete.
Tenga en cuenta que Sile está cambiando rápidamente. La clase actual fue desarrollada y probada con la versión 0.14.0 o más nueva. Para el apoyo de versiones anteriores de SILE, vea versiones anteriores de FontProof.
La instalación de FontProof se realiza principalmente a través de Lua Rocks:
$ luarocks install fontproofSe supone una instalación de trabajo de SILE V0.14.0 o más nueva pero no se verifica en el momento de la instalación.
También puede instalar desde manualmente desde el directorio de origen:
$ luarocks make Ejecutar FontProof se realiza a través de su propio 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 Se proporcionan cuatro plantillas de inicio de la caja. Para adaptarlos, lo mejor que puede hacer es probablemente copiar el más similar al que planea dirigirse y modificarlo usted mismo. La característica principal de una plantilla es que utiliza la clase de fuente . El uso de los comandos de especialidad que define es según lo necesario.
Por ejemplo:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.silEn este punto hay una plantilla principal, fpfull.sil , pero seguirá más. Esa plantilla le mostrará casi todo lo que puede hacer a prueba de fuente. Sile en sí es capaz de lejos, lejos, más, y puedes jugar con él.
Como un método alternativo para usar Font -Protes, Docker Images están disponibles en Docker Hub o en el Registro de contenedores GitHub con SILE y la clase a prueba de fuentes horneadas y listas para su uso. Las versiones lanzadas están etiquetadas para que coincida (por ejemplo, v2.0.5 ), el último lanzamiento se etiquetará latest , y una etiqueta master también está disponible con la construcción de desarrollo más fresca. Para ser útil, debe decirle al comando Docker Ejecutar una forma de comunicarse con sus documentos fuente (y, por lo tanto, también para darle un lugar para escribir la salida), así como decirle quién está en la máquina host para que la salida generada dentro del contenedor pueda crearse con las propiedades de propiedad esperadas. Puede que sea más fácil correr con un alias como este:
$ alias fontproof= ' docker run -it --volume "$(pwd):/data" --user "$(id -u):$(id -g)" siletypesetter/fontproof:latest '
$ fontproof proofs.sil Cualquier sistema de CI remoto que pueda usar imágenes de Docker como corredores de trabajo podría configurarse para ejecutar trabajos a prueba de fuentes. Además, una acción de GitHub preparada está disponible en el mercado:
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 Agregue a su repositorio como .github/workflows/fontproof.yml . Este flujo de trabajo supone que su proyecto tiene un archivo fuente proofs.sil fontproof.pdf Tenga en cuenta que los comentarios en la sección sobre Docker con respecto a las versiones etiquetadas además de latest se aplican por igual aquí, pero las acciones de GitHub usan un @ separador en lugar de Docker : .
Cada plantilla puede contener una selección completa de pruebas. Cada prueba se especifica utilizando un comando en este formato general:
commandname[set of parameters]{text to be typeset}
Algunas pruebas pueden tener solo parámetros, o solo texto, o ninguno de los dos, como en este ejemplo que se admite de forma nativa dentro de SILE:
pangrams
Se pueden encontrar más detalles sobre la ejecución de comandos en Sile en el manual de SILE.
Por defecto, el cabezal en ejecución enumera el nombre de archivo, la fuente (familia o nombre de archivo), la fecha y la hora. El contenido no es (actualmente) configurable, pero puede establecer la fuente y el tamaño con el comando setRunHeadStyle . Tenga en cuenta que esto no tiene relación con la fuente de prueba.
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
Para agregar una sección y encabezados de subsección:
section{Heading text}
subsection{Heading text}
El estilo de estos no es actualmente configurable, pero puede ajustarlos manualmente para todos los documentos a prueba de fuentes cambiando la configuración en clases/fontproof.lua .
Los siguientes tipos de pruebas son compatibles y se ilustran en fpfull.sil :
Los detalles sobre los comandos utilizados para especificar estos están a continuación.
FontProof es Copyright © 2016 SIL International y con licencia bajo la licencia MIT. Por cierto, a pesar del nombre de similitud, SIL no está desarrollado por SIL International, aunque nos gusta mucho el proyecto. Eres bienvenido a contribuir tanto a Font -Profess como a Sile.
Estos comandos son actualmente compatibles.
Este es el comando principal a prueba de fuente, y se puede usar para establecer textos de prueba simples y cascadas. Los parámetros opcionales incluyen fuente (por familia o nombre de archivo) y tamaño (s). También puede establecer un encabezado de prueba aquí en lugar de usar un comando section separado.
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}
Esto produce múltiples copias de un texto con una variedad de caracteres sustituidos en lugares clave. A veces se les conoce como 'pruebas de marco'. Tradicionalmente, una prueba común de este tipo fue la prueba 'Hobonop'. Un 'hobonop' para las letras ABCD se vería:
haoabaoanaoap hbobbbobnbobp hcocbcocncocp hdodbdodndodp
El comando para producir esto sería:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
Esto define un carácter de marcador de posición, luego el conjunto de letras utilizadas para reemplazarlo, luego el patrón de texto que contiene los marcadores de posición.
También puede usar múltiples marcadores de posición para crear todas las combinaciones, como en:
ooaxoo oobxoo oocxoo
ooayoo oobyoo oocyoo
El comando para esto sería: (¡asegúrese de seguir la sintaxis de esto exactamente, o puede recibir errores muy confusos!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
Hay algunos personajes que son especiales para Sile y Lua y no deben usarse como caracteres . (¡Una lista de los seguros sugeridos sería una buena adición aquí!) También es una mala idea usar un personaje que esté en representantes .
Hay un parámetro opcional más para el comando pattern :
Es más fácil demostrar esto que explicar. Primero el ejemplo formateado, luego el comando para producirlo:
ooaxoo oobxoo oocxoo
ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="table"]{oo@#oo}
ooaxoo
oobxoo
oocxoo
ooayoo
oobyoo
ovocio
pattern[chars="@,#",reps="abc,xy",format="list"]{oo@#oo}
ooaxoo oobxoo oocxoo ooayoo oobyoo oocyoo
pattern[chars="@,#",reps="abc,xy",format="para"]{oo@#oo}
¡Esto es genial! Diga que tiene un grupo de letras que desea usar en múltiples pruebas de patrones, pero no quiere tener que definirlas una y otra vez. Puede definirlos como un grupo de patrones, con un nombre específico. Tenga en cuenta que debe definir estos grupos en su documento antes de referirse a ellos. También tenga en cuenta que este comando realmente no produce nada en la página por sí solo. Solo es útil para los comandos pattern posteriores.
patterngroup[name="vowels"]{aeiou}
Para consultar esto en un comando pattern prefijo el nombre del grupo con "Group_" y use en el parámetro reps . Por ejemplo:
pattern[chars="@,#",reps="group_vowels,xy",format="table"]{oo@#oo}
También hay algunos grupos predefinidos, como se enumeran a continuación. También puede definir sus propios grupos permanentes en paquetes/font -inproufoups.lua .
| Nombre de grupo | Descripción |
|---|---|
| grupo_az | alfabeto en minúsculas básicas |
| grupo_az | alfabeto básico en mayúsculas |
| Group_combdiacs | diacrítico de combinación básica |
| Group_09 | números básicos |
| grupo_punct | puntuación básica |
Font a prueba de fuentes incluye una gama de textos de prueba incorporados. Establezca el contenido de un comando proof o pattern en cualquiera de los siguientes nombres de text_xxxx preestablecidos_xxxx. También puede agregar sus propios textos en paquetes/fontprooftexts.lua .
| Contenido | Descripción |
|---|---|
| text_az | alfabeto en minúsculas básicas |
| text_az | alfabeto básico en mayúsculas |
| text_combdiacs | diacrítico de combinación básica |
| text_spacingdiacs | Diacrítico de espaciado básico |
| text_09 | números básicos |
| text_numsym | números y símbolos relacionados |
| text_nummath | símbolos matemáticos |
| text_symbols | símbolos comunes |
| text_punct | puntuación básica |
| text_pangram | Pangram simple |
| text_verne | Extracto de 20,000 leguas bajo el mar |
| text_vernecaps | versión en mayúsculas |
| text_reveng | Extracto de Revelation 7 (inglés) |
| text_revfin | Extracto de Revelation 7 (finlandés) |
| text_revger | Extracto de Apocalipsis 7 (alemán) |
| text_revdut | Extracto de Revelation 7 (holandés) |
| text_revind | Extracto de Revelation 7 (Indonesia) |
| text_revswa | Extracto de Apocalipsis 7 (Swahili) |
| text_arrowroot | texto de prueba de fuente tradicional |
| text_capslower | Capitales latinos contra las letras clave en minúsculas /o /n |
| text_bringhurst | Prueba de kerning de "Elementos de estilo tipográfico" de Bringhurst |
| text_allkernpairs | Texto que contiene todas las combinaciones de letras latinas superiores y minúsculas |
| text_Jafkerns | Prueba de kerning del generador de texto solo de otra fundición |
Esto utiliza diccionarios para producir texto de basura formado por palabras reales, similar a lorem . Sin embargo, las palabras solo contendrían letras de un conjunto que suministra:
adhesion[characters=hamburgefonsiv]
Los argumentos opcionales son words , el número de palabras (por defecto a 120) y dict , la ruta de un archivo de diccionario. La clase se ve en /usr/share/dict/words y /usr/dict/words si no se proporciona la opción dict . Las palabras se seleccionan del archivo del diccionario si contienen solo los caracteres especificados.
Esto descarga y escribe un texto de Project Gutenberg.
gutenberg[id=100] % The complete works of Shakespeare
Tipos de compensación algunos dígitos de PI:
pi[digits=500]
Esto produce una mesa simple sin borde que mostraría una gama de unicode y cualquier glifos que representen los USV en ese rango.
Algunos ejemplos:
unicharchart[type="all",columns="12",rows="16"]
Esto produce una tabla que muestra cada carácter codificado en la fuente, formateado como una tabla con un aumento de USVS descendiendo por una columna, 16 caracteres por columna, con un máximo de 12 columnas antes de irrumpir en una nueva tabla. Esto es muy similar a las tablas en los gráficos de código estándar Unicode, y podría ser la configuración predeterminada para un simple unicharchart .
unicharchart[type="range",start="AA80",end="AADF"]
Esto produce lo mismo, excepto que solo muestra el rango dado de USVS.
Estos funcionan en SILE, incluso sin fuente, aunque necesitaría cargarlos con script[src=packages/specimen] .
Esto produce un conjunto de pangrams predefinidos.
Esto produce texto de basura lorem ipsum , con el número de palabras indicadas.
Esto produce una mesa bien arreglada de todos los glifos de la fuente.
Aquí hay algunos comandos que esperamos para algún día de apoyo, con formatos de comando sugeridos. Algunos nunca pueden ser implementados. ¡Sugerencias bienvenidas!
Nos encantaría ver aún más parámetros potenciales para proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
¡Oooooh!