我遇到了以下问题:我的表格是通过 格式化的caption[title]{long description...}
。现在我需要将来源添加到其中一些表格中,作为添加到标题的脚注,如下例所示:
我尝试过这个:在图的 \caption 中使用 \footnote但问题是脚注也会出现在文档开头的表格列表中。
请注意,“红狐狸 - 属性”是 ,[title]
其余文本是{long description}
,用法如下:从 scrrprt 类中的标题添加表格标题
另外,我不会对每个标题都使用脚注,因此解决方案必须灵活,提供添加脚注的选项(但不是强制性的)。
上面的格式可以吗?
寻找一种既安全又不会产生不良后果的解决方案。
梅威瑟:
\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}
\usepackage[labelfont={small,bf}, textfont=small, labelsep=colon,singlelinecheck=false,format=plain, parindent=1em]{caption}
\newlength\myindention
\setlength\myindention{1em}
\usepackage{chngcntr}
\counterwithout{table}{chapter}
\let\oldcaption\caption
\renewcommand*\caption[2][]{%
\oldcaption[#1]{#1\\\hspace*{\myindention}#2}%
}
\begin{document}
\listoftables
\chapter{Introduction}
\begin{table}[h]
\caption[title table 1]{description table 1}
\fbox{content}
\end{table}
\end{document}
谢谢。
答案1
如果仅有的区别在于,有时您需要\footnotemark
在标题末尾添加一个,您可以定义一个切换按钮(带星号的宏的泛化)+
来添加它。
\documentclass{scrreprt}
\usepackage[labelfont={small,bf}, textfont=small, labelsep=colon,
singlelinecheck=false,format=plain, parindent=1em]{caption}
\usepackage{xparse}
\newlength\myindention
\setlength\myindention{1em}
\let\oldcaption\caption
\RenewDocumentCommand { \caption } { t{+} O{} m } {%
\oldcaption[#2]{%
#2%
\IfBooleanT{#1}{\footnotemark}
\\%
\hspace*{\myindention}#3
}%
}
\begin{document}
\listoftables
\chapter{Introduction}
\begin{table}[h]
\caption[title table 1]{description table 1}
\fbox{content}
\end{table}
\begin{table}[h]
\caption+[title table 2]{description table 2}
\fbox{content}
\end{table}
\footnotetext{Source.}
\end{document}
然后\caption
像在 MWE 中一样工作并\caption+
执行相同的操作,但\footnotemark
在标题末尾添加内容(即行\IfBooleanT
)。为了清楚起见:
- 附有来源的表格:
\caption+[title]{description}
以及\footnotetext
之后 - 未含来源的表格:
\caption[title]{description}
仅
答案2
虽然不是很优雅,但确实有效:
\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}
\usepackage[labelfont={small,bf}, textfont=small, labelsep=colon,singlelinecheck=false,format=plain, parindent=1em]{caption}
\newlength\myindention
\setlength\myindention{1em}
\usepackage{chngcntr}
\counterwithout{table}{chapter}
\usepackage{xparse}
\let\oldcaption\caption
\RenewDocumentCommand\caption{D [] {} D [] {} m}{%
\def\tempa{}%
\def\tempb{#1}%
\def\tempc{#2}%
\ifx\tempa\tempb\def\tempb{#3}\fi%
\ifx\tempa\tempc\let\tempc\tempb\fi%
\oldcaption[\tempb]{\tempc\\\hspace*{\myindention}#3}%
}
\begin{document}
\listoftables
\chapter{Introduction}
\begin{table}[h]
\caption[title table 1][title table 1\footnotemark]{description table 1}
\fbox{content}
\end{table}
Anywhere on the same page where the float appears\footnotetext{blah}
but at least before the next footnote\footnote{the nextone}
\end{document}
我希望其他人能够提出更好的建议,因此,只有在时间紧迫的情况下我才会推荐这个!