在我的整个文档中,我都有带标题的图表,如下例所示:
\caption[Surface elevation change for Antarctica and Greenland]{Rate of change of surface elevation for Antarctica and Greenland over the period 2003-2007. Source: \citet{pritchard:09}.}
我的问题是我想将图表列表中的短标题改为长标题。有没有办法做到这一点而\listoffigures
不必更改每个图表\caption
?
我的缩短工作文件:
\documentclass[12pt,twoside]{report}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\pagestyle{headings}
\usepackage[top=3.4cm,left=2.2cm,right=3.5cm,bottom=3.0cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{natbib}
\renewcommand\bibname{Reference List}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage[section]{placeins}
\usepackage[compact]{titlesec}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\renewcommand{\topfraction}{.85}
\renewcommand{\bottomfraction}{.7}
\renewcommand{\textfraction}{.15}
\renewcommand{\floatpagefraction}{.66}
\renewcommand{\dbltopfraction}{.66}
\renewcommand{\dblfloatpagefraction}{.66}
\usepackage{amssymb}
\usepackage{epstopdf}
\usepackage{rotating}
\usepackage{setspace}
\usepackage{fixltx2e}
\usepackage{multirow}
\usepackage{tocloft}
\usepackage{longtable}
\renewcommand\contentsname{Contents}
\renewcommand\cftpartpresnum{PART }
\usepackage[pdftex,bookmarks=true,hidelinks,bookmarksopen=true]{hyperref}
\usepackage{lscape} \linespread{1.6} \DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\setlength{\belowcaptionskip}{18pt} % space below table caption
\begin{document}
\newgeometry{top=3.4cm,left=3.5cm,right=2cm,bottom=3.0cm}
\include{./title/1_tex/title}
\restoregeometry
\newpage
\thispagestyle{empty}
\mbox{}
\pagenumbering{roman} \setcounter{page}{1}
\include{./declaration/1_tex/declarations}
\begin{spacing}{1.1}
\tableofcontents
\newpage
\phantomsection \label{listoffig}
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
\newpage
\phantomsection \label{listoftab}
\addcontentsline{toc}{chapter}{List of Tables}
\listoftables
\end{spacing}
\bibliographystyle{copernicus}
\newpage
\newgeometry{top=3.4cm,left=3.5cm,right=2cm,bottom=3.0cm}
\titlespacing{\chapter}{0pt}{-10mm}{40pt}
\setlength{\parindent}{25pt}
\begin{spacing}{1.5}
\pagenumbering{arabic} \setcounter{page}{1}
\include{./chapter1/1_tex/chapter1}
...
\end{document}
答案1
您可以在序言末尾添加以下内容来“恢复”可选参数的存在:
\let\origcaption\caption
\renewcommand\caption[2][]{\origcaption{#2}}
答案2
该caption
软件包确实提供了用于此目的的选项list-entry=heading
,至少从 v3.3 开始:
\documentclass[12pt,twoside]{report}
\usepackage[list-entry=heading]{caption}
\usepackage[demo]{graphicx}
\begin{document}
\listoffigures
\begin{figure}
\includegraphics{test}
\caption[Short caption text]{Full caption text}
\end{figure}
\end{document}
有关详细信息,请参阅endfloat
包文档的“8.4.1 删除标题”部分。
答案3
这在很大程度上取决于您使用的类以及是否使用任何字幕格式化包,而您尚未显示这些内容。请总是发布一个完整的说明问题的小文档,其中显示了所使用的相关软件包。
如果您使用标准类,那么这会将 toc 更改为使用#3
(主要参数)而不是#2
(可选参数)。
\makeatletter
\long\def\@caption#1[#2]#3{%
\par
\addcontentsline{\csname ext@#1\endcsname}{#1}%
%%%%%%{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #3}}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
\makeatother