
Я нахожусь на 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
.