Я определил \+
и \-
макросы для удобного ввода обозначений. Удивительно, но я заметил, что в подписях к таблицам и рисункам \-
не работает, а \+
работает. (Та же проблема проявляется и в содержании рисунков, если они сделаны с помощью 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}
решение1
Макрос \caption
выполняется \@parboxrestore
, который в свою очередь выполняется
\let\-\@dischyph
что означает, что в подписи \-
снова получает свое первоначальное значение LaTeX \discretionary{-}{}{}
. Действительно, если вы посмотрите в .aux
файл, вы увидите
Why does $\discretionary {-}{}{}$ not work in a caption while $\boxplus $ works?
Переопределять такие важные команды — вообще плохая идея.