重新定义 \autoref 并使用节号作为参数

重新定义 \autoref 并使用节号作为参数

在中文中, 产生的语序\autoref与英文不同,例如,

Section2.1 中文阅读Di 2.1 jie

那么是否有可能重新定义\sectionautorefname以生成所需的交叉引用?例如

\documentclass{article}
\usepackage{hyperref}
\renewcommand{\sectionautorefname}{di secnum jie}
\begin{document}
\section{test}\label{sec:test}
\subsection{test2}
\autoref{sec:test} will looks like `di 1 jie` instead of `di secnum jie 1`?
\end{document}

答案1

您想使用功能更强大的软件包cleveref

\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}

\crefformat{section}{di~#2#1#3~jie}

\begin{document}

\section{test}\label{sec:test}

\cref{sec:test} will look like `di 1 jie'

\end{document}

在此处输入图片描述

答案2

我发现答案受到海科·奥伯迪克,当然,正如这条评论中提到的,这个修复并不强大。

我定义了一个命令来处理chapter/section/subsection所有这些:

\newcommand{\myautoref}[2]{
\expandafter\def\csname #1autorefname\endcsname##1##2\null{The ##2#2}
}

那么我们可以使用它作为

\myautoref{chapter}{Chapter}
\myautoref{section}{jie}

然后\auroref{lab}会产生类似于 的东西The 1 ChapterThe 2 jie取决于 的级别lab

相关内容