Uma classe de teste de design de fonte para o Sile.
A fonte à prova permite produzir documentos de teste de fonte em PDF sem mexer com o InDesign ou outro layout de página manual ou programas de processamento de texto. Você pode aplicar um dos documentos de teste pré -designado (a serem adicionados posteriormente) ou usar a Fontropproof para criar seu próprio documento de teste de fonte personalizado.
Observe que a fontproof é um trabalho em andamento, então há muito que ainda não funciona ou não funciona com muita elegância. Use por seu próprio risco e ajude -nos a melhorar.
A fonte de fonte requer o sileato Sile. Você precisará instalar o Sile de acordo com as instruções desse pacote.
Observe que o Sile está mudando rapidamente. A classe atual foi desenvolvida e testada com a versão 0.14.0 ou mais recente. Para apoiar as versões mais antigas do Sile, consulte versões mais antigas da fonte à prova de fontes.
A instalação do fontproof é feita principalmente através de rochas Lua:
$ luarocks install fontproofUma instalação funcional do Sile v0.14.0 ou mais recente é assumida, mas não é verificada no momento da instalação.
Você também pode instalar a partir do diretório de origem:
$ luarocks make A prova de fontes é feita através de sua própria 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 Quatro modelos iniciais são fornecidos fora da caixa. Para adaptá -los, a melhor coisa a fazer é provavelmente copiar a mais semelhante à de onde você planeja liderar e modificá -lo sozinho. O principal recurso de um modelo é que ele usa a classe à prova de fontes . O uso dos comandos especializados que ele define é de forma necessária.
Por exemplo:
$ cp /usr/local/share/lua/ < version > /fontproof/templates/full.sil mytemplate.sil
$ fontproof -- mytemplate.silNeste ponto, há um modelo principal - fpfull.sil - mas mais se seguirá. Esse modelo mostrará quase todo o que a fonte da fonte pode fazer. O próprio Sile é capaz de longe, muito, mais, e você é muito bem -vindo de brincar com ele.
Como um método alternativo para usar a fonte à prova de fontes, as imagens do Docker estão disponíveis no Docker Hub ou no Registro de Container Github com o Sile e a classe à prova de fontes assada e pronta para uso. As versões lançadas são marcadas para corresponder (por exemplo, v2.0.5 ), a versão mais recente será marcada latest e uma tag master também está disponível com a construção de desenvolvimento mais fresca. Para ser útil, você precisa dizer ao comando do Docker Run uma maneira de alcançar seus documentos de origem (e, portanto, também para dar um lugar para escrever a saída), além de dizer quem você está na máquina host para que a saída gerada dentro do contêiner possa ser criada com as propriedades de propriedade esperadas. Você pode achar mais fácil correr com um pseudônimo como este:
$ alias fontproof= ' docker run -it --volume "$(pwd):/data" --user "$(id -u):$(id -g)" siletypesetter/fontproof:latest '
$ fontproof proofs.sil Qualquer sistema de IC remoto que possa usar imagens do Docker como corredores de trabalho pode ser configurado para executar trabalhos à prova de fontes. Além disso, uma ação do GitHub pronta está disponível no 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 Adicione ao seu repositório como .github/workflows/fontproof.yml . Este fluxo de trabalho pressupõe que seu projeto tenha um arquivo de origem proofs.sil e deixará para trás um fontproof.pdf . Observe que os comentários na seção sobre o Docker sobre versões marcadas além de latest se aplicam igualmente aqui, mas o GitHub Actions usa um separador @ em vez do Docker's : .
Cada modelo pode conter uma seleção completa de testes. Cada teste é especificado usando um comando neste formato geral:
commandname[set of parameters]{text to be typeset}
Alguns testes podem ter apenas parâmetros, ou apenas texto, ou nenhum, como neste exemplo que é suportado nativamente no próprio Sile:
pangrams
Mais detalhes sobre a execução de comandos no Sile podem ser encontrados no manual do Sile.
Por padrão, a cabeça em execução lista o nome do arquivo, fonte (família ou nome de arquivo), data e hora. O conteúdo não é (atualmente) configurável, mas você pode definir a fonte e o tamanho do comando setRunHeadStyle . Observe que isso não tem relação com a fonte de teste.
%setRunHeadStyle[filename="Example-Bold.ttf", size="12pt"]
Para adicionar uma seção e títulos de subseção:
section{Heading text}
subsection{Heading text}
O estilo destes não é configurável no momento, mas você pode ajustá -los manualmente para todos os documentos à prova de fontes alterando as configurações nas classes/fontproof.lua .
Os seguintes tipos de testes são suportados e são ilustrados em fpfull.sil :
Detalhes sobre os comandos usados para especificá -los estão abaixo.
A Font Proper é Copyright © 2016 SIL International e licenciada sob a licença do MIT. BTW - Apesar da similaridade do nome, o próprio Sile não é desenvolvido pela SIL International, embora gostemos muito do projeto. Você é muito bem -vindo para contribuir com a fonte à prova de fontes e ao Sile.
Atualmente, esses comandos são suportados.
Este é o comando principal à prova de fontes e pode ser usado para definir textos e cachoeiras simples de teste. Os parâmetros opcionais incluem font (por família ou nome do arquivo) e tamanho (s). Você também pode definir um título de teste aqui, em vez de usar um 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}
Isso produz várias cópias de um texto com uma variedade de caracteres substituídos em locais -chave. Às vezes, estes são chamados de 'testes de quadro'. Tradicionalmente, um teste comum desse tipo era o teste 'Hobonop'. Um 'hobonop' para as cartas ABCD seria:
Haoabaoanaoap hbobbbobnbobp hcocbcoccncococp hdodbdodndodp
O comando para produzir isso seria:
pattern[chars="@",reps="abcd"]{h@o@b@o@n@o@p}
Isso define um caráter de espaço reservado, então o conjunto de letras usadas para substituí -lo e o padrão de texto que contém o (s) espaço (s) espaço (s).
Você também pode usar vários espaço reservado para criar todas as combinações, como em:
ooaxoo oobxoo oocxoo
ooayoo oobyoo oocyoo
O comando para isso seria: (Certifique -se de seguir exatamente a sintaxe disso, ou você pode obter erros muito confusos!)
pattern[chars="@,#",reps="abc,xy"]{oo@#oo}
Existem alguns personagens que são especiais para Sile e Lua e não devem ser usados como chars . (Uma lista de seguros sugeridos seria uma boa adição aqui!) Também é uma má idéia usar um personagem que está em repetições .
Há mais um parâmetro opcional para o comando pattern :
É mais fácil demonstrar isso do que explicar. Primeiro o exemplo formatado, depois o comando para produzi -lo:
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}
Isso é legal! Digamos que você tenha um grupo de letras que deseja usar em vários testes de padrões, mas não deseja defini -las repetidamente. Você pode defini -los como um grupo de padrões, com um nome específico. Observe que você deve definir esses grupos em seu documento antes de se referir a eles. Observe também que este comando realmente não produz nada na página por si só. É útil apenas para comandos posteriores pattern .
patterngroup[name="vowels"]{aeiou}
Para se referir a isso em um comando pattern prefixo o nome do grupo com "group_" e use no parâmetro reps . Por exemplo:
pattern[chars="@,#",reps="group_vowels,xy",format="table"]{oo@#oo}
Existem também alguns grupos predefinidos, conforme listado abaixo. Você também pode definir seus próprios grupos permanentes em pacotes/fontproofGroups.lua .
| Nome do grupo | Descrição |
|---|---|
| group_az | alfabeto minúsculo básico |
| group_az | Alfabeto básico em alta |
| group_combdiacs | Diacrítica de combinação básica |
| grupo_09 | números básicos |
| group_punct | Pontuação básica |
A fonte à prova inclui uma variedade de textos de teste interno. Defina o conteúdo de um comando proof ou pattern para qualquer um dos seguintes nomes predefinidos text_xxxx . Você também pode adicionar seus próprios textos em pacotes/fontproofTexts.lua .
| Contente | Descrição |
|---|---|
| text_az | alfabeto minúsculo básico |
| text_az | Alfabeto básico em alta |
| text_combdiacs | Diacrítica de combinação básica |
| text_spacacingdiacs | Diacrítico de espaçamento básico |
| text_09 | números básicos |
| text_numsym | números e símbolos relacionados |
| text_nummath | Símbolos matemáticos |
| text_symbols | símbolos comuns |
| text_punct | Pontuação básica |
| text_pangram | Pangram simples |
| text_verne | trecho de 20.000 ligas sob o mar |
| text_vernecaps | Versão em alta |
| text_reveng | Trecho do Apocalipse 7 (inglês) |
| text_revfin | Trecho do Apocalipse 7 (finlandês) |
| text_revger | Trecho do Apocalipse 7 (alemão) |
| text_revdut | Trecho do Apocalipse 7 (holandês) |
| text_revind | Trecho do Apocalipse 7 (Indonésia) |
| text_revswa | Trecho do Apocalipse 7 (Swahili) |
| text_arrowroot | Texto tradicional de teste de fonte |
| text_capslower | Capitais latinos contra as letras principais minúsculas /o e /n |
| text_bringhurst | Teste de Kerning de "Elementos de estilo tipográfico" de Bringhurst |
| text_allkernpairs | Texto contendo todas as combinações de letras superiores e minúsculas latinas |
| text_jafkerns | Teste de kerning de apenas mais um gerador de texto da fundição |
Isso usa dicionários para produzir texto de lixo composto de palavras reais, semelhantes a lorem . No entanto, as palavras conteriam apenas letras de um conjunto que você fornece:
adhesion[characters=hamburgefonsiv]
Argumentos opcionais são words , o número de palavras (inadimplentes de 120) e dict , o caminho de um arquivo de dicionário. A classe olha em /usr/share/dict/words e /usr/dict/words se a opção dict não for fornecida. As palavras são selecionadas no arquivo de dicionário se contiverem apenas os caracteres especificados.
Isso downloads e digita um texto do Projeto Gutenberg.
gutenberg[id=100] % The complete works of Shakespeare
TIPO DESTENHOS ALGUNS DIDITOS DE PI:
pi[digits=500]
Isso produz uma tabela simples não fundida que mostraria uma variedade de unicode e quaisquer glifos que representam os USVs nesse intervalo.
Alguns exemplos:
unicharchart[type="all",columns="12",rows="16"]
Isso produz uma tabela que mostra todos os caracteres codificados na fonte, formatados como uma tabela com o aumento dos USVs descendo uma coluna, 16 chars por coluna, com um máximo de 12 colunas antes de invadir uma nova tabela. Isso é muito semelhante às tabelas nos gráficos de código padrão Unicode e pode ser as configurações padrão para um simples unicharchart .
unicharchart[type="range",start="AA80",end="AADF"]
Isso produz o mesmo, exceto apenas mostrando a gama dada de USVs.
Eles funcionam no Sile mesmo sem a prova de fontes, embora você precise carregá -los com script[src=packages/specimen] .
Isso produz um conjunto de pangramas predefinidos.
Isso produz texto de lixo lorem ipsum , com o número de palavras indicado.
Isso produz uma mesa bem organizada de todos os glifos da fonte.
Aqui estão alguns comandos que esperamos apoiar um dia, com formatos de comando sugeridos. Alguns podem nunca ser implementados. Sugestões são bem -vindas!
Adoraríamos ver ainda mais parâmetros em potencial para proof :
proof[
size = "10, 11/13, 12/16",
columns = 3,
lines = 12
]{Text}
Oooooh!