menu Menu
Utilizando demais caracteres de uma fonte em LaTeX
Algumas fontes possuem um conjunto de caracteres muito extensos, muito além do que o teclado permite acessar facilmente. Aqui vai uma maneira de acessá-los, de forma menos onerosa, pelo LaTeX.
By Jean Pimenta Posted in LaTeX, Tradução, Transcrição on 04/08/2022 0 Comments 5 min read
Anterior Estruture seus arquivos TeX com o pacote import Próximo

Principalmente se você está realizando traduções, e necessite citar palavras ou letras do texto original, pode ter caído no problema em digitar tal palavra ou caractere. Eu me dei ao trabalho, inicialmente, em transcrever alguns textos antigos para um formato digital, que não fosse OCR (reconhecimento ótico de caracteres), até porque não possuo equipamento para tal.

Foi assim que conheci a fonte Junicode (link para os interessados), uma fonte com uma extensa opção de caracteres latinos, gregos, góticos e rúnicas. De acordo com o site, possui um total de 3.002 glifos, que pode ser de muito interesse para quem trabalha com tais textos.

Primeiro, então, instale a fonte em seu sistema operacional. No windows, basta fazer o download e instalar as fontes baixadas, seja clicando em cada uma para instalar ou copiando-as para a pasta de fontes do sistema.


Encontrando os códigos hexadecimais

A idéia é definir vários comandos, que chamem o caractere pedido pelo seu código hexadecimal (ou pelo de base 10, caso haja). Tal método pode trazer uma dificuldade em caso de necessidade em usar muitos caracteres diferentes – se for este o caso, é interessante criar um documento com o caractere e seu comando, afim de consultá-lo).

A primeira maneira de acessar os códigos hexadecimais e um mapa de caracteres, é navegando pelo site do Junicode e acessando os pdf’s que contenham listas de mapas de caracteres, com seus hexadecimais, e buscar.

No caso, 2E0D é o código a ser utilizado, caso for este o caractere desejado.

Outra maneira é utilizando o Mapa de Caracteres (Character Map no windows). Ao acessá-lo, escolha a fonte desejada e será mostrado todos os caracteres inseridos. Na imagem ao lado, o código hexadecimal aparece na parte inferior (U+2E0D).


Agora no LaTeX

No \LaTeX, a compilação precisará ser realizada por XeLaTeX ou LuaLaTeX. Geralmente se usam o pdflatex como padrão, então olhe pelo software que utiliza como usar, ou modificar, o compilador por um dos dois. Tudo que eu faço, utilizo o XeLaTeX.

Será necessária a utilização dos pacotes fontspec e, para arrumar quaisquer problemas com espaçamento, o xspace (opcional, mas como utilizo nos comandos, citarei ele).

% Utilize XeLaTeX
\documentclass[20pt,b5paper,extrafontsizes]{memoir}

\usepackage{fontspec}
%%%%%------------------------------------
\setmainfont{Lato}
%%%%%------ Define a fonte Lato como a fonte principal a ser utilizada (\normalfont). No caso, ele pega pelo nome instalado no sistema operacional.

\usepackage{xspace}
%%%%%------ xspace para contornar possíveis problemas de espaçamento

\newfontfamily\junicode{Junicode}
%%%%%------ \newfontfamily define o comando \junicode (você define o nome) para chamar a fonte entre colchetes (no caso, Junicode)


%%%%%------ Daqui para frente, utiliza-se \def para definir determinadas letras, recolhidas no mapa de caracteres da fonte chamada (no caso, da Junicode)
\def\TesteA{\junicode \char0242\normalfont}
\def\TesteB{\junicode \char"16D7\normalfont}
\def\que{\junicode \symbol{"E8BF}\xspace\normalfont}
%def\que{\junicode\char"E8BF\xspace\normalfont}
\def\nb{\"{\junicode\char"0273}\xspace\normalfont}
%\def\nb{\"{\junicode\symbol{"0273}\xspace\normalfont}}
\def\ee{\junicode\char"0119\normalfont}
\def\ct{\junicode\char"EEC5\normalfont}
\def\utraco{\junicode\char"016B\normalfont}
\def\VRmin{\junicode \char"A776\xspace\normalfont}


\begin{document}

\TesteA

\TesteB

Usando \que e {\nb}, voltando para o normal, para escrever como antes. \VRmin

\noindent \ee \hfill \ct \hfill \utraco
\end{document}

O \newfontfamily, comando fornecido pelo fontspec, define uma fonte. É possível adicionar vários recursos para a fonte chamada, mas isso fica para alguma explicação futura específica para o fontspec. Portanto, ele define um comando que, quando chamado no texto, modifica a fonte para a especificada no newfontfamily.

\char e \symbol

Existem duas maneiras, semelhantes, de se chamar um caractere específico do conjunto destes, fornecido pela fonte. Pelos comandos \char e \symbol.

Com \char, basta colocar logo à frente a numeração correspondente do caractere, informado no mapa de caracteres. Caso se use o código hexadecimal, deve-se adicionar aspas (“) à frente de \char e, logo após, o código hexadecimal. Caso não haja aspas, o \LaTeX buscará como se fosse um código decimal, achando ou não algo relacionado, e retornando o que achar.

Assim, em \def\que{\junicode\char”E8BF\xspace\normalfont}, definiu-se que o comando \que correspode a chamar a fonte devido ao \junicode e, utilizando o seu mapa de caracteres, voltar o que houver no campo de código hexadecimal – devido às aspas – E8BF, pelo \char. Após foi necessário a execução de um espaçamento pelo \xspace (dado pelo pacote xspace) e a volta para uma fonte padrão pelo \normalfont.

Uma mesma forma de fazer isso, é com o \symbol. A diferença é que deve-se utilizar, com ele, colchetes e indicar com aspas se o código for hexadecimal. Portanto, \def\que{\junicode \symbol{“E8BF}\xspace\normalfont} faz o mesmo que o comando por \char.

Um exemplo de um texto que usa Lato como fonte principal, e chama alguns caracteres da Junicode está abaixo. Outro que estou utilizando Junicode em todo ele, é a transcrição do Ars Magna de Cardano que estou realizando.

Utilizando-demais-caracteres-de-uma-fonte-em-LaTeX

diagramação editoração fonte fontspec junicode LaTeX livro otf tcc tese tradução ttf


Anterior Próximo

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Cancel Publicar comentário

keyboard_arrow_up