在标题中使用 \raisebox 和 \depth

在标题中使用 \raisebox 和 \depth

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

结果

相关内容