\DeclareUnicodeCharacter{2212}{-} не работает для компилятора LuaLatex

\DeclareUnicodeCharacter{2212}{-} не работает для компилятора LuaLatex

Я нахожусь на overleaf, где я могу переключить компилятор, который я использую. Я работаю над постером и мне нужно использовать LuaLatex в качестве компилятора. Однако строка "\DeclareUnicodeCharacter{2212}{-}" вызывает ошибку "undefined control sequence".

Приведу пример, иллюстрирующий мою точку зрения.

\documentclass[pt]{beamer}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{upgreek}
\usepackage{mathtools}
\usetheme{Berlin}

\DeclareUnicodeCharacter{2212}{-}

\begin{document}
\begin{frame}{Example}
    The equation is
    \begin{equation}
    y=mx+c
    \end{equation}
\end{frame}
\end{document}

Компиляция проходит нормально, когда я выбираю компилятор "pdfLatex", но ломается, когда я использую компилятор "LuaLatex". Есть ли альтернативная строка (для \DeclareUnicodeCharacter{2212}{-}), которую я могу использовать для компилятора LuaLatex? Спасибо.

решение1

Я предлагаю вам изменить преамбулу так, чтобы вы могли скомпилировать документ с помощью pdfLaTeX или LuaLaTeX.

\documentclass[pt]{beamer}
\usetheme{Berlin}
\usepackage[brazil]{babel}

\usepackage{iftex} % for '\iftutex' and related conditionals
\iftutex
   \usepackage{fontspec} % optional
\else
   \usepackage[T1]{fontenc}
   %\usepackage[utf8]{inputenc} % 'utf8' is the default nowadays
   \DeclareUnicodeCharacter{2212}{-}
   \usepackage{upgreek}
\fi

\usepackage{mathtools} % no need to load 'amsmath' separately

\begin{document}
\begin{frame}{Example}
    The equation is
    \begin{equation}
    y=mx-c
    \end{equation}
\end{frame}
\end{document}

При такой настройке пакеты inputencи fontencзагружаются только в том случае, если для компиляции документа используется pdfLaTeX.

Примечание: поскольку mathtoolsпакет загружается amsmathавтоматически, нет необходимости загружать его amsmathотдельно. (А с beamerклассом amsmathпакет загружается по умолчанию...)

решение2

Вы можете использовать newunicodecharпакет в любом движке:

\usepackage{newunicodechar}

\newunicodechar{−}{-} % U+2212

Однако если вы хотите использовать ввод Unicode в LuaLaTeX, вам, вероятно, лучше загрузить файл unicode-mathс professionalfontsопцией beamer.

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