\DeclareUnicodeCharacter{2212}{-} funktioniert nicht für den LuaLatex-Compiler

\DeclareUnicodeCharacter{2212}{-} funktioniert nicht für den LuaLatex-Compiler

Ich bin auf der Rückseite, wo ich den von mir verwendeten Compiler wechseln kann. Ich arbeite an einem Poster und benötige die Verwendung von LuaLatex als Compiler. Die Zeile "\DeclareUnicodeCharacter{2212}{-}" verursacht jedoch den Fehler "undefinierte Steuersequenz".

Ich werde meinen Standpunkt anhand eines Beispiels verdeutlichen.

\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}

Wenn ich den Compiler „pdfLatex“ wähle, läuft die Compilierung einwandfrei, aber wenn ich den Compiler „LuaLatex“ verwende, bricht sie ab. Gibt es eine alternative Zeile (zu \DeclareUnicodeCharacter{2212}{-}), die ich für den LuaLatex-Compiler verwenden kann? Danke.

Antwort1

Ich schlage vor, dass Sie Ihre Präambel so ändern, dass Sie das Dokument möglicherweise entweder mit pdfLaTeX oder LuaLaTeX kompilieren können.

\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}

Bei dieser Einstellung werden die Pakete inputencund fontencnur geladen, wenn pdfLaTeX zum Kompilieren des Dokuments verwendet wird.

Abgesehen davon: Da das mathtoolsPaket amsmathautomatisch geladen wird, muss es nicht amsmathseparat geladen werden. (Und mit der beamerKlasse amsmathwird das Paket standardmäßig geladen ...)

Antwort2

newunicodecharSie können das Paket in jeder Engine verwenden :

\usepackage{newunicodechar}

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

Wenn Sie jedoch Unicode-Eingabe in LuaLaTeX verwenden möchten, sind Sie unicode-mathmit der professionalfontsOption zum Laden wahrscheinlich besser bedient beamer.

verwandte Informationen