仅更改一个图形的自动引用和标题名称

仅更改一个图形的自动引用和标题名称

我看见仅在一幅图中更改图形标题名称,而不是全部如何仅更改一个图形的标题名称,但我也需要更改自动引用名称。

使用

\begin{figure} 
   \renewcommand\figurename{Example}
      ....
      \caption{This is an example.}
\end{figure}

图形标题更改为“示例”,但在自动引用中它显示为“图形”。

我怎样才能仅覆盖一个图形的figurename和autorefname?

谢谢

答案1

\autoref使用锚点名称中的计数器名称来获取参考术语。

有多种解决方法。

图示:

\begin{figure}
  \renewcommand*{\figurename}{Example}
  ...
  \caption{This is an example.}
  \label{exp}
\end{figure}

解决方法:

  • \ref代替\autoref

    Example~\ref{exp}
    
  • \ref而不是\autoref在链接中包含“示例”:

    \hyperref[exp]{Example~\ref*{exp}}
    
  • 重新定义\p@figure以包含“示例”作为参考的前缀:

    \begin{figure}
      \makeatletter
      \renewcommand*{\p@figure}{Example~}
      \makeatother
      ... % see above
    \end{figure}
    
    \ref{exp}% -> Example <number>
    
  • 新柜台example

    % preamble
    \newcounter{example}
    \def\exampleautorefname{Example}
    
    \begin{figure}
      \setcounter{example}{\value{figure}}
      \refstepcounter{example}
      \label{exp}
      ...
      \caption{This is an example.}
    \end{figure}
    
    \autoref{exp}
    

答案2

我建议你使用软件包的功能cleveref来实现排版目标。你应该

  • cleveref使用选项nameinlinknoabbrev和加载包capitalize;这将使 的输出\cref看起来像autoref。 (注意:cleveref必须在 之后加载hyperref。)

  • example为指令提供可选参数\label

    \label[example]{fig:xyz}
    

当然,继续发出指令\renewcommand\figurename{Example} 里面环境figure,按照之前的解决方案。

无需进行其他更改。

在此处输入图片描述

\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage[nameinlink,noabbrev,capitalize]{cleveref}
\begin{document}

\setcounter{figure}{7} % just for this case
\begin{figure} 
\renewcommand\figurename{Example} % as per the earlier solution
\centering
ABC
\caption{This is an example.} 
\label[example]{fig:xyz}  % note the optional argument: "example"
\end{figure}

A cross-reference to \cref{fig:xyz}.
\end{document}

答案3

您可能会考虑定义一种新的浮点类型。

仅供参考,\floatname定义了\fname@example所使用的\caption

\documentclass{article}
\usepackage{float}% for \newfloat
\usepackage{hyperref}

\newfloat{example}{htbp}{lox}
\floatname{example}{Example}
\newcommand{\examplename}{Example}

\begin{document}
\begin{example} 
   \caption{This is an example.}\label{test}
\end{example}

\autoref{test}
\end{document}

相关内容