Cleveref と Varioref を使用したコンテキスト依存の相互参照

Cleveref と Varioref を使用したコンテキスト依存の相互参照

\pref{<cross-reference>}を使用して相互参照を行うコマンド ( ) の作成がうまくいきません。 コンテキスト に適応できるようにしたいと思います。cleverefvarioref

  • まず、参照が参照先オブジェクトと同じページにある場合にコンマを削除できるようにしたいと思います。現在、次のようになっています:
    ここに画像の説明を入力してください

  • 次に、 on を呼び出さずに参照先の章またはセクションの名前を追加し、他のコンテキストでデフォルトの動作で\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}

関連情報