我遇到了一个问题,上一个问题,而现在它又回来了。
这个想法是使用\ref
颜色的内部链接A,并\cref
提供(!) 和颜色nameinlink
选项cleveref
乙获取包含数学内容的链接。
Audrey Blumsohn 好心地为我提供了以下解决方案:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[usenames,dvipsnames]{xcolor}
\newtheorem{theorem}{Theorem}
\usepackage{varioref}
\usepackage{hyperref}
\usepackage[noabbrev,capitalise,nameinlink]{cleveref}
\hypersetup{colorlinks={true},linkcolor={blue},citecolor=green}
\newcommand{\mref}[3][red]{\hypersetup{linkcolor=#1}\cref{#2}{#3}\hypersetup{linkcolor=blue}}%<<<changed
\begin{document}
\section{Bla}
\label{sec:bla}
\begin{theorem}
\label{th:gauss}
Gauss
\end{theorem}
\section{blabla}
In section \ref{sec:bla} we found \mref{th:gauss}
And again \ref{sec:bla} we found \mref{th:gauss}
\end{document}
但仍然存在问题。也就是说,当我在证明环境中使用它进行交叉引用时,此解决方案不起作用,得到如下结果
定理1的证明。
原则上我应该写
\begin{proof}[\mref{thm:1} 的证明]
使用 写出的“定理 1” \mref
。
有沒有方法可以得到結果?
提前谢谢您!
答案1
该命令\cref
只需要一个参数,而不是两个。
\newcommand{\mref}[2][red]{%
\hypersetup{linkcolor=#1}%
\cref{#2}%
\hypersetup{linkcolor=blue}%
}
这将解决问题。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{varioref}
\usepackage{hyperref}
\usepackage[noabbrev,capitalise,nameinlink]{cleveref}
\hypersetup{colorlinks={true},linkcolor={blue},citecolor=green}
\newtheorem{theorem}{Theorem}
\newcommand{\mref}[2][red]{%
\hypersetup{linkcolor=#1}%
\cref{#2}%
\hypersetup{linkcolor=blue}%
}
\begin{document}
\section{Bla}
\label{sec:bla}
\begin{theorem}
\label{th:gauss}
Gauss
\end{theorem}
\begin{proof}[Proof of \mref{th:gauss}]
Obvious.
\end{proof}
\section{blabla}
In section \ref{sec:bla} we found \mref{th:gauss} which is nice.
And again \ref{sec:bla} we found \mref{th:gauss} which is nice.
\end{document}