Метод избегания вариантов греческих букв

Метод избегания вариантов греческих букв

Используя виртуальную греческую клавиатуру и следующие пакеты, можно напрямую реализовать греческие символы Unicode (например, θ)

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

Однако отображаемые в PDF-файле символы всегда представляют собой греческие варианты, \varthetaа не \theta.

Есть ли способ избежать этого, кроме как \let\vartheta\thetaдля каждого персонажа?

решение1

хмммм

Определения Unicode для тета следующие:

U+03b8 GREEK SMALL LETTER THETA

U+03d1 GREEK THETA SYMBOL

Первый из них — тот, что в вашем вопросе, а второй — более закрученный и открытый.

Однако в кодировках, установленных пакетом, ucsпо умолчанию вам будет выдан символ U+03b8 \texttheta(который, вероятно, выдал бы вам правильный символ в текстовом режиме, если бы вы загрузили правильные кодировки шрифтов, я получил неопределенную команду). Но если вы используете опцию, [mathletters]как в вашем фрагменте, он переключается на использование определения

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

в файлеuni-3.def

То есть, предполагает, что вам нужен символ тета в математическом режиме. Так что \letвы предлагаете один способ, или вы можете переопределить это определение:

\documentclass{article}

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

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

\begin{document}

 (e.g. θ)

\end{document}

который производит:

введите описание изображения здесь

Полный набор \var... 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}}%

решение2

Если вы хотите избежать ucs (который конфликтует, например, с biblatex), вы можете использовать lgrxenc.def и lgrenc.dfu, предоставленные здесь:http://milde.users.sourceforge.net/LGR/

lgrenc.dfu сопоставляет, например, U+03BB, \textthetaкоторому, как я думаю, должен соответствовать нужный вам символ.

решение3

Похоже, вы используете устаревшую версию ucs. Начиная с версии 2.0 от апреля 2012 года, как обычные, так и вариантные греческие символы сопоставляются с правильными макросами при использовании опции mathletters. См. статью в моем блогеНовый выпуск пакета ucs LaTeX.

Если вам нужно придерживаться старой ucsверсии, вы также можете изменить сопоставления символов с кодом TeX, что чище, чем переопределение макросов греческих букв через \let. Однако использование \uc@dclc, как в ответе Дэвида Карлайла, не рекомендуется. Команда уровня пользователя для использования — \DeclareUnicodeCharacter. Смотритедокументация пакета.

Связанный контент