Fora do mundo *TeX

Fora do mundo *TeX

no tópico de reivindicações duplicadas - eu testeiDizer ao Latex para ignorar TODOS os erros Unicode?- "solução" resultou na exibição do LaTeX "?" em vez de "⌀".

Obrigado às pessoas que forneceram respostas de alta qualidade e muito úteis.


Eu adicionei ⌀ ao texto e agora o pdflatex está travando

Erro de entrada do pacote: Unicode char \u8:⌀ não configurado para uso com LaTeX.

Eu sei que posso usar \DeclareUnicodeCharacter ou similar para introduzir o tratamento especial desse caractere, mas fazê-lo toda vez que um novo caractere UTF-8 aparecer na entrada não é aceitável.

Ele precisa funcionar em pdflatex (ou outro compilador de látex gerador de pdf), pois eu uso o látex apenas como gerador de pdf (o LaTeX é gerado a partir da entrada, o pdflatex gera a saída em pdf).

MWE:

\begin{document}
\end{document}

MWE com minhas declarações de documentos presentes

\documentclass{article}
\usepackage[a4paper, total={6.5in, 10.5in}]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cprotect}
\usepackage{fvextra}
\usepackage{textcomp}

% make TOC work correctly
\makeatletter
\def\l@section{\@dottedtocline{1}{1em}{2em}}
\makeatother
\usepackage{index}
\makeindex

\DeclareUnicodeCharacter{00A0}{~}

\DefineVerbatimEnvironment{escape}
  {Verbatim}
  {fontfamily=\rmdefault,breaklines,breaksymbolleft={}}
\CustomVerbatimCommand\escapeinline{Verb}{fontfamily=\rmdefault,breaklines,breaksymbolleft={}}

\begin{document}
\end{document}

Responder1

Você pode pensar desta forma: para o LaTeX (ou qualquer sistema) desenhar “⌀” (ou qualquer caractere) na página/tela, a “forma” (aparência visual) desse caractere deve estar disponível para eleem algum lugar.

Fora do mundo *TeX

Na maioria dos aplicativos “modernos”, editores de texto, navegadores e assim por diante, isso é implementado por meio de umfonte alternativamecanismo:

  1. o aplicativo (digamos, seu navegador) primeiro tenta encontrar um glifo para esse caractere na fonte atual. (À medida que digito essas letras no site tex.stackexchange.com, elas são exibidas na fonte “Lucida Grande”, especificada pelo CSS deste site.)
  2. se a fonte atual não suportar o caractere, o aplicativo tentará encontraralgunsfonte instalada no sistema que contém um glifo para esse caractere e, em seguida, seleciona o glifo dessa fonte. (Neste caso, com as fontes instaladas no meu computador, meu navegador mostra o caractere “⌀” da fonte “Cambria”, pois o caractere não está presente na fonte “Lucida Grande”.) insira a descrição da imagem aqui

  3. Se não houver tal fonte, você poderá ver uma caixa quadrada, um ponto de interrogação, um espaço em branco ou alguma representação de que o caractere está faltando (possivelmente de uma fonte substituta de “Último recurso”). Por exemplo, nos textos a seguir que mostram os dígitos de 0 a 9, para os dígitos ímpares eu uso primeiro os dígitos doBloco Unicode “Brahmi”(para o qual tenho uma fonte instalada) e depois a partir doBloco Unicode “Masaram Gondi”(adicionado ao Unicode na versão 10.0.0, lançada há apenas alguns dias em junho de 2017), para a qual eu (e provavelmente você também) não tenho uma fonte instalada:

    0

Responder2

Você recebe um erro informando que não há definição padrão para , que não está presente em nenhuma das fontes padrão.

A Lista Abrangente nos diz que \diameteré fornecida por

  • mathabx
  • MnSymbol
  • wasysym

e seria muito discutível adicionar um desses pacotes apenas para disponibilizar algum símbolo.

Você recebe uma mensagem de erro informando os detalhes precisos; faça uma escolha, por exemplo wasysym, e mude seu código para

\documentclass{article}
\usepackage[a4paper, total={6.5in, 10.5in}]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cprotect}
\usepackage{fvextra}
\usepackage{textcomp}

\usepackage{wasysym} % for \diameter

% make TOC work correctly
\makeatletter
\def\l@section{\@dottedtocline{1}{1em}{2em}}
\makeatother
\usepackage{index}
\makeindex

%\DeclareUnicodeCharacter{00A0}{~} % not needed in recent versions of LaTeX
\DeclareUnicodeCharacter{2300}{\diameter}

\DefineVerbatimEnvironment{escape}
  {Verbatim}
  {fontfamily=\rmdefault,breaklines,breaksymbolleft={}}
\CustomVerbatimCommand\escapeinline{Verb}{fontfamily=\rmdefault,breaklines,breaksymbolleft={}}

\begin{document}
\end{document}

Você não precisa inputenccom LuaTeX, mas vocêfazerprecisa de uma fonte que suporte o glifo.

Observe que outro software pode fazer substituições automáticas de fontes quando um glifo não estiver disponível na fonte atual. LuaLaTeX e XeLaTeX não, porque visam uma boa tipografia e uma substituição automática pode causar conflito. A mesma ideia de antes: o kernel não pode fornecer uma definição para cada caractere Unicode, porque isso requer a escolha de fontes alternativas.


É possível, porém, que o usuário tenha digitado U+2300 para obter o \varnothingsímbolo, o que é bastante provável se o documento for sobre matemática e não sobre tecnologia. Neste caso, o pacote a ser carregado é amssymb:

\usepackage{amssymb}

\DeclareUnicodeCharacter{2300}{\varnothing}

informação relacionada