标题的语法是
\caption[listoffigures/tables text]{Text actually displayed under picture/table}
但我想要的是这样的:如果我使用上述命令,浮动对象下的文本应该是
Label #.: listof text -- long text
仅为#
数字,并且--
为任意分隔符(破折号--
本身,甚至可能是\newline
)。这可能吗?
我正在使用 KOMAScript。
答案1
请参阅注释代码。如果你加载任何与浮点相关的包(float
、floatrow
、caption
、algorithmic
……)或执行诸如\newfloat
、\restylefloat
等操作,这是我的调整必须来的后所有这些。
\documentclass{scrartcl}
\makeatletter
\let\x@caption\caption % original \caption
\def\x@@caption[#1]#2{\x@caption[{#1}]{#1 --- #2}} % with optional arg
\def\x@@@caption#1{\x@caption[{#1}]{#1}} % without optional arg
\def\caption{\@ifnextchar[\x@@caption\x@@@caption} % new \caption
\makeatother
\begin{document}
\listoffigures
\begin{figure}
\centering
\rule{5cm}{5cm}
\caption[Optional text.]{Obligatory text.}
\end{figure}
\begin{figure}
\centering
\rule{5cm}{5cm}
\caption{Obligatory text only.}
\end{figure}
\end{document}