自动使用图片标题的第一句作为短标题

自动使用图片标题的第一句作为短标题

有没有办法自动使用标题的第一句话作为目录中显示的短标题?我正是想这样写:
\caption{First Sentence. Second Sentence.}编译为:\caption[First Sentence]{First Sentence. Second Sentence.} 在第一句话之后,我不需要只有一句话。

答案1

作为一种快速而粗略的破解方法,请在您的序言中尝试这样做:

\let\oldcaption\caption
\def\splitter #1. #2@@{\oldcaption[#1]{#1. #2}}
\def\caption#1{\splitter #1@@}

但请注意,我假设您的环境非常简单。

答案2

如果您像我一样将所有标签直接写在标题后面:

sed 's/\(\\caption\){\(\\label{[^}]\+}\)\([^.]*\)\.\(.\+\)/\1[\3]{\2\3. \4/' report.tex

在某些情况下,这种方法有效。它使用 GNU sed 扩展,\+否则匹配太多。

相关内容