Método para evitar letras gregas variantes

Método para evitar letras gregas variantes

Usando um teclado grego virtual e os seguintes pacotes é possível implementar diretamente caracteres unicode gregos (por exemplo, θ)

\usepackage[mathletters]{ucs}
\usepackage[utf8]{inputenc}

No entanto, os caracteres exibidos no PDF são sempre as variantes gregas, \varthetapor exemplo, em oposição a \theta.

Existe alguma maneira de evitar isso além \let\vartheta\thetade cada personagem?

Responder1

hummm

As definições Unicode para theta são:

U+03b8 GREEK SMALL LETTER THETA

U+03d1 GREEK THETA SYMBOL

Sendo o primeiro o da sua pergunta e o segundo o mais aberto e encaracolado.

No entanto, nas codificações configuradas pelo ucspacote, um caractere U+03b8 fornecerá por padrão \texttheta(o que provavelmente forneceria o caractere correto no modo de texto se você carregasse as codificações de fonte corretas, recebi o comando indefinido) [mathletters]. como no seu fragmento ele muda para usar a definição

\uc@dclc{952}{mathletters}{\ensuremath{\vartheta}}%

no arquivouni-3.def

Ou seja, assume que você deseja o caractere do símbolo teta no modo matemático. Portanto, o que \letvocê sugere seria uma maneira, ou você poderia substituir esta definição:

\documentclass{article}

\usepackage[mathletters]{ucs}
\usepackage[utf8x]{inputenc}

\makeatletter
\uc@dclc{952}{mathletters}{\ensuremath{\theta}}%
\makeatother

\begin{document}

 (e.g. θ)

\end{document}

que produz:

insira a descrição da imagem aqui

O conjunto completo de \var... em uni-3.defé

5 matches for "\\var" in buffer: uni-3.def
    174:\uc@dclc{949}{mathletters}{\ensuremath{\varepsilon}}%
    183:\uc@dclc{952}{mathletters}{\ensuremath{\vartheta}}%
    210:\uc@dclc{961}{mathletters}{\ensuremath{\varrho}}%
    213:\uc@dclc{962}{mathletters}{\ensuremath{\varsigma}}%
    225:\uc@dclc{966}{mathletters}{\ensuremath{\varphi}}%

Responder2

Se você quiser evitar ucs (que entra em conflito, por exemplo, com biblatex), você pode usar lgrxenc.def e lgrenc.dfu fornecidos aqui:http://milde.users.sourceforge.net/LGR/

lgrenc.dfu mapeia, por exemplo, U+03BB para \textthetao qual eu acho que deveria ser o símbolo que você deseja.

Responder3

Parece que você está usando uma versão desatualizada do ucs. A partir da versão 2.0 de abril de 2012, os caracteres gregos normais e variantes são mapeados para as macros adequadas ao usar a mathlettersopção. Veja o artigo do meu blogNova versão do pacote ucs LaTeX.

Se você precisar manter sua ucsversão mais antiga, também poderá modificar os mapeamentos de caracteres para o código TeX, o que é mais limpo do que redefinir as macros de letras gregas via \let. No entanto, usar \uc@dclc, como na resposta de David Carlisle, não é recomendado. O comando de nível de usuário a ser usado é \DeclareUnicodeCharacter. Vera documentação do pacote.

informação relacionada