Codificação de fonte em LaTeX

Codificação de fonte em LaTeX

Eu uso LaTeX há algum tempo e li muitas discussões sobre codificações de fontes.

Alguns sugerem usar fontes T1 adicionando \usepackage[T1]{fontenc}, outros sugerem não adicionar nada, outros sugerem usar T1além do pacote, aeenquanto outros dizem que isso está obsoleto e outra fonte deve ser usada em seu lugar...

Estou muito confuso, existe algum recurso atualizado que explique bem o problema e resolva o assunto?

Na minha experiência, adicionar nada funciona bem, mas às vezes preciso de conjuntos de caracteres adicionais, como versalete em negrito. Nesse caso, posso usar a codificação T1, mas a qualidade é ruim. Tudo parece estar consertado se eu usar o aeou os lmodernpacotes. O que realmente está acontecendo e o que devo realmente fazer?

PS: Me desculpe se isso já foi perguntado antes, encontrei muita discussão sobre isso, mas estou postando na esperança de obter uma resposta definitiva.

PPS: Atualmente estou usando latex+ dvips+ ps2pdf. Prefiro usar pdflatexse puder mas, como trabalho com outros, nem sempre isso é possível.

Responder1

A regra básica é: Experimente se conseguir melhores resultados usando \usepackage[T1]{fontenc}em seu documento.

A explicação: quando você escreve um texto em inglês você provavelmente conseguirá passar sem essa linha e não sentirá nenhuma diferença/dificuldade na maioria das situações.

Quando Knuth introduziu o TeX, ele o lançou com a fonte chamada 'Computer Modern'. Esta fonte possui apenas um conjunto de caracteres muito limitado (em comparação com as fontes OpenType atuais). Por exemplo, caracteres como 'ö' e 'ü' não estavam presentes. Isso não causará nenhum dano se você não digitar nenhum idioma que use esses caracteres. Mas assim que precisar renderizá-los, você pode ajudar combinando dois pontos '¨' em cima de 'o' ou 'u'. Existe uma primitiva TeX para isso: \accent. Isto tem o efeito colateral de desabilitar a hifenização, o que não é aceitável.

Assim, um dia, os usuários do TeX chegaram a um acordo sobre como codificar fontes que podem renderizar a maioria dos idiomas europeus (a codificação T1). Esta codificação informa qual código colocar no arquivo DVI ou PDF quando o usuário solicitar um 'ö' ou 'ü'. Agora que esses caracteres não precisam mais ser compostos por dois glifos, eles não quebram a hifenização.

Agora, por que se preocupar com T1 se você não tem esses personagens engraçados? Ao preparar uma fonte para LaTeX, você deve criar arquivos de métricas de fonte ( tfm). Como T1 é a codificação mais usada atualmente (com certeza na Europa), algumas pessoas não se preocupam mais com codificações não-T1 e, portanto, uma fonte pode não estar disponível na OT1codificação antiga e padrão.

MAS: ao usar o Computer Modern, você pode querer manter a codificação antiga (e não usar T1), já que a variante PostScript (que leva a melhores resultados de renderização) só está disponível com a codificação OT1. Para Computer Modern codificado em T1 (que você deve usar quando precisar de hifenização em palavras com esses caracteres especiais), você pode usar o aepacote ou alterar sua fonte para cm-super (pornãocarregando aee alterando a codificação para T1 - mas eu não gostaria de fazer isso). Eu sugiro fortemente usar o substituto do Computer Modern chamado 'Latin Modern', que vem em vários sabores (PostScript Type 1, fontes OpenType). Ative-o em \usepackage{lmodern}.

Responder2

Uma XeLaTeXalternativa

O OP nomeia explicitamente LaTeXno título da pergunta. Existe um compilador relacionado chamado XeLaTeXque se destina a lidar com caracteres estrangeiros de uma maneira mais suave do que LaTeX. Achei que seria útil mencioná-lo aqui. Já faz algum tempo que o uso para compor o francês com grande sucesso. O seguinte trecho de código no preâmbulo verificará se XeLaTeXestá sendo chamado e carregará os programas de acordo.

No código abaixo, para ser inserido dentro do preâmbulo, carrego a fonte de domínio público Libertine. Isto é apenas uma ilustração: neste caso, configurar a fonte com as setmainfontopções de comando é bastante tedioso, então um pacote específico chamado libertinefoi criado para facilitar a configuração da fonte.

\usepackage[oldstyle]{libertine}% public domain font % alternative to \setmainfont line commented out below
\usepackage{ifxetex}% load different packages with/without XeLaTex
\ifxetex
    \usepackage{fontspec}% provides \setmainfont
    %\setmainfont[Numbers=OldStyle,Ligatures=Common,Mapping=tex-text]{Linux Libertine O}% public domain font % or use the libertine package instead
\else  % packages below are not needed with utf8 based engines
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern} 
\fi%

Quando pesquisei há algum tempo, descobri que era uma boa combinação (especialistas, por favor, corrijam-me se eu estiver errado). Não sou um XeLaTeXguru nem nada, apenas descobri que isso me ajudou muito com meus textos em francês e o adotei recentemente.

informação relacionada