Eu redefini \- mas não funciona nas legendas

Eu redefini \- mas não funciona nas legendas

Eu defini \+macros \-para inserir notações de maneira conveniente. Surpreendentemente, notei que nas legendas de tabelas e figuras \-não funciona enquanto \+funciona. (O mesmo problema aparece também no conteúdo das figuras se forem feitas com TikZ.) Existe alguma explicação para este comportamento estranho? Talvez isso esteja relacionado ao fato de \-normalmente ser usado para hifenização. Mas por que isso deveria importar depois que eu o redefinisse?

Aqui está um exemplo mínimo de trabalho:

\documentclass{article}

\usepackage{amssymb}
\newcommand{\+}{\boxplus}
\renewcommand{\-}{\boxminus}

\begin{document}
  Plus $\+$ and minus $\-$ work here.
  \begin{figure}
    \caption{Why does $\-$ not work in a caption while $\+$ works?}
  \end{figure}
  \begin{table}
    \caption{Why does $\-$ not work in a caption while $\+$ works?}
  \end{table}
\end{document}

Captura de tela do PDF

Responder1

A macro \captioné executada \@parboxrestore, que por sua vez executa

\let\-\@dischyph

o que significa que, em uma legenda, \-obtém novamente o significado original do LaTeX de \discretionary{-}{}{}. Na verdade, se você olhar no .auxarquivo, verá

Why does $\discretionary {-}{}{}$ not work in a caption while $\boxplus $ works?

Geralmente é uma má ideia redefinir comandos tão importantes.

informação relacionada