Контекстно-зависимые перекрестные ссылки с использованием Cleveref и Varioref

Контекстно-зависимые перекрестные ссылки с использованием Cleveref и Varioref

Я не могу создать команду (называемую \pref{<cross-reference>}) для перекрестных ссылок с использованием cleverefи varioref. Я хотел бы, чтобы она могла адаптироваться к контексту:

  • Во-первых, я хотел бы иметь возможность удалять запятую, когда ссылка находится на той же странице, что и объект ссылки. Вот что у меня сейчас есть:
    введите описание изображения здесь

  • Во-вторых, мне бы хотелось узнать, можно ли добавить название главы или раздела, на который делается ссылка, без вызова, \crefformatи, таким образом, иметь возможность использовать команду \crefс ее поведением по умолчанию в других контекстах.

Вот что у меня есть на данный момент:
введите описание изображения здесь

Вот что я хотел бы опубликовать:
введите описание изображения здесь

\documentclass{article}
\usepackage{varioref, hyperref, cleveref}
\setlength{\parindent}{0pt}
\def\reftextcurrent{}
\def\reftextfaraway#1{p.~\pageref{#1}}
\crefformat{figure}{#2\textsc{Fig.}~#1#3}
\crefformat{section}{#2\textsc{Sec.}~#1#3}

\newcommand{\pref}[1]{(\cref{#1}, \vpageref{#1})}

\begin{document}
\pref{fig1}\qquad\pref{sec1}

\clearpage
\pref{fig1}\qquad\pref{sec1}\\
(\cref{sec1} : \textit{\nameref{sec1}}, \vpageref{sec1})% desired behaviour

\clearpage
\section{My section}\label{sec1}
\begin{figure}
    \centering\Huge Figure
    \caption{Bla bla.}
    \label{fig1}
\end{figure}
\pref{fig1}\qquad\pref{sec1}\\
(\cref{fig1})\qquad(\cref{sec1} : \textit{\nameref{sec1}})% desired behaviour

\clearpage
\pref{fig1}\qquad\pref{sec1}

\clearpage
\pref{fig1}\qquad\pref{sec1}
\end{document}

Связанный контент