\DeclareUnicodeCharacter{2212}{-} não funciona para o compilador LuaLatex

\DeclareUnicodeCharacter{2212}{-} não funciona para o compilador LuaLatex

Estou no verso, onde posso mudar o compilador que uso. Estou trabalhando em um pôster e preciso do uso do LuaLatex como compilador. No entanto, a linha "\DeclareUnicodeCharacter{2212}{-}" causa o erro de "sequência de controle indefinida".

Darei um exemplo para ilustrar meu ponto.

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

Ele compila bem quando escolho o compilador "pdfLatex", mas quebra quando uso o compilador "LuaLatex". Existe uma linha alternativa (para \DeclareUnicodeCharacter{2212}{-}) que eu possa usar para o compilador LuaLatex? Obrigado.

Responder1

Sugiro que você modifique seu preâmbulo para que possa compilar o documento com pdfLaTeX ou 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}

Com esta configuração, os pacotes inputence fontencsão carregados somente se o pdfLaTeX for usado para compilar o documento.

Além: como o mathtoolspacote é carregado amsmathautomaticamente, não há necessidade de carregá-lo amsmathseparadamente. (E, com a beamerclasse, amsmatho pacote é carregado por padrão...)

Responder2

Você pode usar o newunicodecharpacote em qualquer mecanismo:

\usepackage{newunicodechar}

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

No entanto, se você quiser usar entrada Unicode no LuaLaTeX, provavelmente será melhor carregar unicode-mathcom a professionalfontsopção beamer.

informação relacionada