![使用用户定义的“myCaption”时图形编号(通过“\ref{fig-label-name}”)](https://linux22.com/image/274021/%E4%BD%BF%E7%94%A8%E7%94%A8%E6%88%B7%E5%AE%9A%E4%B9%89%E7%9A%84%E2%80%9CmyCaption%E2%80%9D%E6%97%B6%E5%9B%BE%E5%BD%A2%E7%BC%96%E5%8F%B7%EF%BC%88%E9%80%9A%E8%BF%87%E2%80%9C%5Cref%7Bfig-label-name%7D%E2%80%9D%EF%BC%89.png)
我想更改的字体Figure
和标题文本。
我尝试了caption
软件包。但是\usepackage[labelfont=bf,font=it]{caption}
引发了一个错误Command \caption@ContinuedFloat already defined.
。
然后我只需定义我的快速而肮脏的\myCaption
:\newcommand{\myCaption}[1]{\textbf{\caption{\textnormal{\textit{#1}}}}}
。
但我注意到图形编号(通过\ref
)有点像章节编号而不是之后的数字Figure
。
编辑添加一个例子,它会引发错误! LaTeX Error: Command \caption@ContinuedFloat already defined
\documentclass[10pt]{book}
%%%%%% other packages in my doc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amssymb, amstext, amsmath}
\usepackage{tikz}
\usepackage{pgfplots} % only 4 figure caroleError
%\usepackage{subfig}
\usepackage[caption=false]{subfig}
% for landscape figure
\usepackage{rotating}
\usepackage{color}
%\usepackage{minipage}
\usepackage{todonotes}
%\usepackage{xparse}
%\usepackage{fontspec,xltxtra,xunicode}
\usepackage{docmute}
\usepackage{here}
\usepackage{float}
%\usepackage{hliFigure}
\usepackage{csquotes}
\usepackage{afterpage}
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% for this minimum example:
% expand \figure to multi pages
\makeatletter
\renewenvironment{figure}[1][]{%
\def\@captype{figure}%
\par\nobreak\begin{center}\nobreak}
{\par\nobreak\end{center}}
\makeatother
\usepackage{graphicx}
\usepackage[labelfont=bf,font=it]{caption}
\usepackage[caption=false]{subfig}
\begin{document}
\begin{figure}\centering
\subfloat[]{\label{}\includegraphics[width=0.95\linewidth{linux_penguin.jpg}}\\
\subfloat[]{\label{}\includegraphics[width=0.95\linewidth]{linux_penguin.jpg}}\\
\subfloat[]{\label{}\includegraphics[width=0.95\linewidth]{linux_penguin.jpg}}\\
\subfloat[]{\label{}\includegraphics[width=0.95\linewidth]{linux_penguin.jpg}}\\
\caption{many figures}
\label{}
\end{figure}
\end{document}
答案1
我只知道一种情况会导致错误Command \caption@ContinuedFloat already defined
:
\documentclass{report}
\usepackage[caption=false]{subfig}
\usepackage{caption}
\begin{document}
A
\end{document}
发生这种情况:subfig
包加载时带有选项caption=false
,这意味着“不,我真的不想使用 caption 包”。之后包caption
被加载,导致错误,因为subfig
包已经定义了一些命令,这些命令对于没有包的子图支持是必需的caption
。
解决方案很简单:请决定是否要使用该caption
软件包,是或否。(尤其是不要像我的示例文档中所述那样“否和是”。)
现在进入第 2 部分,“章节编号而不是图后编号”问题:
\label
必须与 放在同一个组中\caption
,因此{\caption{...}}\label{...}
失败。但这是您在 的定义中所做的\myCaption
,\caption
命令在 中排版\textbf{...}
,而\label
不是。因此\ref
注定会在这里失败,而是为您提供对最后一个标签命令(例如 )的引用\section
。