在 cref 中的“图”前面添加“附录”

在 cref 中的“图”前面添加“附录”

我正在尝试创建附录表格/图片列表,其格式为:“附录表格/图片#”。我使用以下代码:

\renewcommand{\figurename}{Appendix Figure}
\renewcommand{\tablename}{Appendix Table}
\setcounter{figure}{0} 
\setcounter{table}{0}

\begin{figure}[H]
\centering
\caption{Sources of Data}
\label{fig:appx_source}
\centering
\includegraphics[width=0.8\textwidth]{"Source"}
\end{figure}

但是,当我使用\cref{fig:appx_source}它时,它似乎输出的是“图 1”而不是“附录图 1”。有没有办法可以让 cref 输出“附录图 1”?

答案1

前面有一条评论:我实际上并不建议您实施查询中列出的并在此答案中进一步探讨的方法。首先,如果您的文档hyperref也使用了该包,并且文档的正文和附录中都有figuretable环境,则指向附录中的图形和表格的超链接将无法正确显示。其次,交叉引用将非常长,并且很快就会显得笨拙。(相反,假设附录部分是“编号的” AB等等,我建议您通过和语句将figuretable环境的编号系统从“1”,“2”,...更改为“A.1”,“A.2”,...。这样,超链接将被正确设置,并且从一开始就不需要与 cleveref 相关的调整。)\counterwithin{figure}{section}\counterwithin{table}{section}


您可以通过利用软件包用户指南第 6 节“覆盖交叉引用类型”中描述的别名机制来实现格式化目标cleveref。具体来说,我建议您\crefname在序言中提供两个语句,以定义figure和环境的别名标签,并在到达附录材料时table发出两个语句。\crefalias

在此处输入图片描述

\documentclass{article} 
%\usepackage[colorlinks,allcolors=blue]{hyperref}
\usepackage[capitalize,noabbrev]{cleveref}
\crefname{appfig}{Appendix Figure}{Appendix Figures}
\crefname{apptab}{Appendix Table}{Appendix Tables}

\begin{document} 
\section{Hello}  
Cross-references  to \cref{fig:source,fig:info,tab:there,tab:material}.

% A minimalist way of creating "labels":
\refstepcounter{figure} \label{fig:here}
\refstepcounter{table}  \label{tab:there}


\appendix
\renewcommand{\figurename}{Appendix Figure}
\renewcommand{\tablename}{Appendix Table}
\setcounter{figure}{0} 
\setcounter{table}{0}
\crefalias{figure}{appfig}
\crefalias{table}{apptab}

\section{World}

\refstepcounter{figure} \label{fig:source}
\refstepcounter{figure} \label{fig:info}
\refstepcounter{table}  \label{tab:material}

Cross-references  to \cref{fig:here,fig:source}.
\end{document}

相关内容