我想\raisebox
在 中使用caption
。我知道\protect
在这些情况下经常需要 ,但是这个(以及我尝试过的其他组合)不起作用:
\documentclass{article}
\begin{document}
\begin{figure}
\caption{\protect\raisebox{\protect\depth}{X}}
\end{figure}
\end{document}
给出
! Missing number, treated as zero.
<to be read again>
\protect
l.4 ...ption{\protect\raisebox{\protect\depth}{X}}
尽管
\documentclass{article}
\begin{document}
\begin{figure}
\caption{\protect\raisebox{\depth}{X}}
\end{figure}
\end{document}
给出
! Undefined control sequence.
<argument> ...respaces \protect \raisebox {\depth
答案1
\protect
这里没有帮助,因为\relax
当在图中设置标题时,它是。还\depth
由 本地定义\raisebox
。这允许一个技巧,如果\depth
是不是否则使用。而不是未定义的命令,\depth
可以变得健壮:
\let\depth\relax
文件:
\documentclass{article}
\let\depth\relax
\begin{document}
\listoffigures
\begin{figure}
\caption{\protect\raisebox{\depth}{g}}
\end{figure}
\end{document}
另一种方法是定义一个强宏,其中包含以下参数:
\documentclass{article}
\DeclareRobustCommand*{\RaiseBoxByDepth}{%
\raisebox{\depth}%
}
\begin{document}
\listoffigures
\begin{figure}
\caption{\RaiseBoxByDepth{g}}
\end{figure}
\end{document}