Я переопределил \-, но это не работает в подписях

Я переопределил \-, но это не работает в подписях

Я определил \+и \-макросы для удобного ввода обозначений. Удивительно, но я заметил, что в подписях к таблицам и рисункам \-не работает, а \+работает. (Та же проблема проявляется и в содержании рисунков, если они сделаны с помощью TikZ.) Есть ли какое-то объяснение такому странному поведению? Возможно, это связано с тем, что \-обычно используется для переносов. Но почему это должно иметь значение после того, как я его переопределил?

Вот минимальный рабочий пример:

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

Скриншот PDF-файла

решение1

Макрос \captionвыполняется \@parboxrestore, который в свою очередь выполняется

\let\-\@dischyph

что означает, что в подписи \-снова получает свое первоначальное значение LaTeX \discretionary{-}{}{}. Действительно, если вы посмотрите в .auxфайл, вы увидите

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

Переопределять такие важные команды — вообще плохая идея.

Связанный контент