自定义 \ref 命令

自定义 \ref 命令

有没有办法自定义\ref{}命令中出现的数字?更确切地说,我想减小此类数字的大小,但不影响数字字体(样式)。如果我使用像\small之前的命令\ref{},数字字体仍然不一样(例如,参见两张照片)。

使用 \small 命令的结果

没有使用 \small 命令的结果

一个最小的工作示例:

\documentclass[11pt, pagesize=auto, version=last, chapterprefix=true]{scrbook}

\usepackage[latin1]{inputenc}

\usepackage[T1]{fontenc}

\usepackage{charter}

\usepackage[expert]{mathdesign}

\usepackage[frenchb]{babel}

\usepackage[babel=true]{csquotes}

\usepackage{amsmath}

\usepackage{amsthm}

\newtheorem{theorem}{Th\'eor\`eme}[section]

\begin{document}

\begin{theorem}\label{thm} blablabla. \end{theorem}

{\small theorem~\ref{thm}}\\

theorem~\ref{thm}.

\end{document}

答案1

\small要自动对所有实例使用字体大小指令\ref,您可以在文档的序言中发出以下命令:

\usepackage{etoolbox}
\pretocmd{\ref}{\bgroup\small}{}{}
\apptocmd{\ref}{\egroup}{}{}

命令\bgroup\egroup用于形成一个明确的 TeX“组”,以便命令的范围在完成其工作\small后结束。\ref

如果你babel也加载了该包(至少带有frenchb语言选项——我还没有检查过其他语言选项……),请务必插入上面给出的代码正在加载babel包裹。

以下示例基于您的 MWE。为了使字体大小变化的效果立即显现出来,我使用\tiny而不是\small作为示例。

在此处输入图片描述

\documentclass[11pt, pagesize=auto, version=last, 
   chapterprefix=true]{scrbook}
\usepackage{etoolbox}
\pretocmd{\ref}{\bgroup\tiny}{}{} % be sure to execute these commands before loading "babel"
\apptocmd{\ref}{\egroup}{}{}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{charter}
\usepackage[expert]{mathdesign}
\usepackage[frenchb]{babel}
\usepackage[babel=true]{csquotes}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Th\'eor\`eme}[section]

\begin{document}
\begin{theorem}\label{thm} blablabla. \end{theorem}

{\tiny Th\'eor\`eme~\ref{thm}}

Th\'eor\`eme~\ref{thm}.
\end{document}

答案2

\normalfont我终于找到了一种替代方法来做我想做的事情。它包括在命令前使用命令\tiny

\stackrel{\mathclap{\normalfont\mbox{\tiny formule~\ref{e2}}}}{=}

而且效果非常好!

相关内容