文档中的两种不同类型的引用

文档中的两种不同类型的引用

我想在文档中使用两种不同类型的引用:一种是使用命令默认的\refa{} “1.1”,另一种是使用命令()添加的。我使用:\ref\ref{} “(1.1)”在 \ref{} 周围添加 () 对于类型 2。

\documentclass{article}
\usepackage{letltxmacro}
\usepackage[colorlinks=true,allcolors=blue]{hyperref}

\AtBeginDocument{%
    \LetLtxMacro\oldref{\ref}%
    \DeclareRobustCommand{\ref}[2][]{[\oldref#1{#2}]}%
}

\begin{document}
\section{Section}
 brackets around cross references: \ref{S}‎\\‎
 default type with \refa{s} i.e 1.1
\subsection{Subsection\label{S}}
This is a subsection.
\end{document}

答案1

你想要这样的东西吗?

\documentclass{article}
\usepackage{letltxmacro}
\usepackage[colorlinks=true,allcolors=blue]{hyperref}

\AtBeginDocument{%
    \LetLtxMacro\refa{\ref}%
    \DeclareRobustCommand{\ref}[2][]{(\refa#1{#2})}%
}

\begin{document}
\section{Section}
 brackets around cross references: \ref{S}‎

 default type with \refa{S} i.e.~1.1
\subsection{Subsection\label{S}}
This is a subsection.
\end{document}

固定交叉引用

答案2

下一个简单的解决方案是您正在寻找的:

  • \ref{...}仅用于引用数字
  • \pref{...}供参考(<number>),其中refp定义为:

    \newcommand{\pref}[1]{(\ref{#1})}

例子:

\documentclass{article}
\usepackage[colorlinks=true,allcolors=blue]{hyperref}

\newcommand{\pref}[1]{(\ref{#1})}

\begin{document}
\section{Section}
 brackets around cross references: \pref{S}‎\\‎
 default type with \ref{S} i.e 1.1
\subsection{Subsection\label{S}}
This is a subsection.
\end{document}

在此处输入图片描述

答案3

对于方程引用,这是自动完成的,\ref{}\eqref{}

相关内容