Como posso obter uma lista de todas as combinações de \fontfamily{...}\fontseries{...}?

Como posso obter uma lista de todas as combinações de \fontfamily{...}\fontseries{...}?

Alguém acabou de me sugerir no contexto deoutra perguntaconsiderar uma ou duas \fontfamily{...}\fontseries{...}combinações; mas não estou muito interessado nessas opções. Como posso verificartodostais combinações instaladas/disponíveis no meu sistema?

Observação:Eu ficaria bem em fazer isso fora do LaTeX, por exemplo, a partir do shell ou até mesmo usando algum mecanismo específico de distribuição do TeX (eu uso o TeXLive) - se não houver opção melhor.

Responder1

Nem todos os valores possíveis, mas você pode obter uma visão geral sobre as opções mais comuns se passar o mouse sobre o comando em questão em texstudio:

(isso não verifica se todas as fontes estão instaladas em seu sistema e quais pesos elas realmente possuem)

insira a descrição da imagem aqui insira a descrição da imagem aqui

Responder2

As descrições das fontes geralmente são mantidas em .fdarquivos (mas não é obrigatório, alguns pacotes podem definir as fontes diretamente no .styarquivo).

O comando shell

fd '^[tT]1.*\.fd$' /usr/local/texlive/2017/texmf-dist/tex/latex | wc -l

(fdé um script que fornece uma interface mais simples que find) retorna 555.

Portanto, existem 555 famílias de fontes que suportam a codificação T1 (e 502 para a codificação OT1, com uma linha de comando semelhante).

Agora sua tarefa é olhar dentro de cada .fdarquivo de seu interesse e extrair as informações relacionadas à forma e série fornecidas na família de fontes. Apenas por exemplo, T1Roboto-LF.fdcontém

%% Generated by autoinst on 2015/09/15
%%
\ProvidesFile{T1Roboto-LF.fd}
    [2015/09/15 (autoinst)  Font definitions for T1/Roboto-LF.]

\expandafter\ifx\csname Roboto@scale\endcsname\relax
    \let\Roboto@@scale\@empty
\else
    \edef\Roboto@@scale{s*[\csname Roboto@scale\endcsname]}%
\fi

\DeclareFontFamily{T1}{Roboto-LF}{}

\DeclareFontShape{T1}{Roboto-LF}{l}{sc}{
      <-> \Roboto@@scale Roboto-Light-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{l}{n}{
      <-> \Roboto@@scale Roboto-Light-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{l}{it}{
      <-> \Roboto@@scale Roboto-LightItalic-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{l}{scit}{
      <-> \Roboto@@scale Roboto-LightItalic-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{l}{scsl}{
      <-> ssub * Roboto-LF/l/scit
}{}

\DeclareFontShape{T1}{Roboto-LF}{l}{sl}{
      <-> ssub * Roboto-LF/l/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{k}{sc}{
      <-> \Roboto@@scale Roboto-Black-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{k}{n}{
      <-> \Roboto@@scale Roboto-Black-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{k}{it}{
      <-> \Roboto@@scale Roboto-BlackItalic-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{k}{scit}{
      <-> \Roboto@@scale Roboto-BlackItalic-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{k}{scsl}{
      <-> ssub * Roboto-LF/k/scit
}{}

\DeclareFontShape{T1}{Roboto-LF}{k}{sl}{
      <-> ssub * Roboto-LF/k/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{b}{sc}{
      <-> \Roboto@@scale Roboto-Bold-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{b}{n}{
      <-> \Roboto@@scale Roboto-Bold-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{b}{it}{
      <-> \Roboto@@scale Roboto-BoldItalic-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{b}{scit}{
      <-> \Roboto@@scale Roboto-BoldItalic-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{b}{scsl}{
      <-> ssub * Roboto-LF/b/scit
}{}

\DeclareFontShape{T1}{Roboto-LF}{b}{sl}{
      <-> ssub * Roboto-LF/b/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{mb}{sc}{
      <-> \Roboto@@scale Roboto-Medium-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{mb}{n}{
      <-> \Roboto@@scale Roboto-Medium-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{mb}{it}{
      <-> \Roboto@@scale Roboto-MediumItalic-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{mb}{scit}{
      <-> \Roboto@@scale Roboto-MediumItalic-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{mb}{scsl}{
      <-> ssub * Roboto-LF/mb/scit
}{}

\DeclareFontShape{T1}{Roboto-LF}{mb}{sl}{
      <-> ssub * Roboto-LF/mb/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{m}{sc}{
      <-> \Roboto@@scale Roboto-Regular-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{m}{n}{
      <-> \Roboto@@scale Roboto-Regular-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{m}{it}{
      <-> \Roboto@@scale Roboto-Italic-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{m}{scit}{
      <-> \Roboto@@scale Roboto-Italic-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{m}{scsl}{
      <-> ssub * Roboto-LF/m/scit
}{}

\DeclareFontShape{T1}{Roboto-LF}{m}{sl}{
      <-> ssub * Roboto-LF/m/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{t}{sc}{
      <-> \Roboto@@scale Roboto-Thin-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{t}{n}{
      <-> \Roboto@@scale Roboto-Thin-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{t}{it}{
      <-> \Roboto@@scale Roboto-ThinItalic-lf-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{t}{scit}{
      <-> \Roboto@@scale Roboto-ThinItalic-lf-sc-t1
}{}

\DeclareFontShape{T1}{Roboto-LF}{t}{scsl}{
      <-> ssub * Roboto-LF/t/scit
}{}

\DeclareFontShape{T1}{Roboto-LF}{t}{sl}{
      <-> ssub * Roboto-LF/t/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{bx}{sl}{
      <-> ssub * Roboto-LF/b/sl
}{}

\DeclareFontShape{T1}{Roboto-LF}{bx}{scsl}{
      <-> ssub * Roboto-LF/b/scsl
}{}

\DeclareFontShape{T1}{Roboto-LF}{bx}{sc}{
      <-> ssub * Roboto-LF/b/sc
}{}

\DeclareFontShape{T1}{Roboto-LF}{bx}{n}{
      <-> ssub * Roboto-LF/b/n
}{}

\DeclareFontShape{T1}{Roboto-LF}{bx}{it}{
      <-> ssub * Roboto-LF/b/it
}{}

\DeclareFontShape{T1}{Roboto-LF}{bx}{scit}{
      <-> ssub * Roboto-LF/b/scit
}{}

\endinput

que diz que a fonte fornece a série

  • l(luz)
  • k(preto)
  • b(audacioso)
  • mb(negrito médio)
  • m(médio ou regular)
  • t(afinar)

e define bxcomo um alias para b.

Os descritores, além de me, bsão strings essencialmente arbitrárias. O LaTeX Font Guide ( texdoc fntguide) lista apenas alguns valores “comuns”. O que um pacote de fontes chama kpode ser muito diferente de outro.

Responder3

Este site pode ajudar. Útil para verificar as fontes disponíveis.

https://tug.org/FontCatalogue/

Responder4

A lista é ainda maior que isso. É aberto. A resposta é x.

Agora que xelatex e lualatex podem acessar fontes do sistema, não apenas fontes tex/latex, a lista cresceu muito.

Avançar,

Suponha que eu use o fontspecpacote e defina uma família de fontes \setromanfont{Noto Serif}[e, em seguida, nomeie uma de suas séries 仢ule atribua uma fonte não relacionada a essa série, FontFace={仢ul}{n}{Font=SimSun},e faça isso várias vezes,

e tem \DeclareRobustCommand{\仢ulseries}{\fontseries{仢ul}\selectfont}

e

\DeclareTextFontCommand{\仢textul}{\仢ulseries}

e então chame a série com

\仢textul{\sampletext} {\仢ulseries \sampletext}

onde \sampletexté definido como

\newcommand\sampletext{了亶他件}

e faço isso para quantas séries (e formas) eu quiser ou precisar,

então eu recebo

minha série

A lista seria limitada por restrições do sistema.

informação relacionada