我定义了\+
和\-
宏以便于输入符号。令人惊讶的是,我注意到表格和图形中的标题\-
不起作用,而\+
起作用。(如果图形是用 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?
重新定义这些重要的命令通常不是一个好主意。