\DeclareUnicodeCharacter{2212}{-} は LuaLatex コンパイラでは動作しません

\DeclareUnicodeCharacter{2212}{-} は LuaLatex コンパイラでは動作しません

私は overleaf で、使用するコンパイラを切り替えることができます。私はポスターに取り組んでおり、コンパイラとして LuaLatex を使用する必要があります。ただし、行 "\DeclareUnicodeCharacter{2212}{-}" によって "未定義の制御シーケンス" エラーが発生します。

私の主張を説明するために例を挙げます。

\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」コンパイラを使用するとコンパイルが失敗します。LuaLatex コンパイラに使用できる代替行 (\DeclareUnicodeCharacter{2212}{-} の代わり) はありますか? よろしくお願いします。

答え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}

この設定では、ドキュメントのコンパイルに pdfLaTeX が使用される場合にのみ、inputencおよびパッケージがロードされます。fontenc

補足:mathtoolsパッケージは自動的にロードされるためamsmath、別途ロードする必要はありませんamsmath。(また、クラスではbeameramsmathパッケージはデフォルトでロードされます...)

答え2

newunicodecharどのエンジンでもこのパッケージを使用できます:

\usepackage{newunicodechar}

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

ただし、LuaLaTeX で Unicode 入力を使用する場合は、のオプションunicode-mathを使用してロードする方がよいでしょう。professionalfontsbeamer

関連情報