Как изменить номер подраздела, используемого в перекрестной ссылке?

Как изменить номер подраздела, используемого в перекрестной ссылке?

Мне было интересно, могу ли я изменить число, которое появляется в моем "\labelcref"? (Я использую hyperref, cleverefи namerefпакеты) Точнее, я пишу документ, в котором есть несколько разделов, которые состоят из нескольких подразделов. Я написал код:

\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\arabic{subsection}}

Таким образом, мои разделы будут иметь вид I,II,III,..., а каждый подраздел — 1,2,3,.. (а не I.1,I.2,..).

Но я бы хотел, чтобы было "see I.1", а не "see 1" (что может сбить с толку читателя, поскольку не указывается, в каком разделе это находится). Мой код выглядит так:

\documentclass[10pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsthm, thmtools}  
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{soul}  
\usepackage{mathrsfs} 
\usepackage{enumitem}  
\usepackage{xcolor}   
\usepackage{hyperref, nameref, cleveref}

\begin{document}

\section {First}
\subsection {one} \label{I.1}
blablabla
\subsection {two}
blablabla
\section {Second}
\subsection {one}
blablabla and see \labelcref{I.1}
\end{document}

Спасибо за любой ответ!

решение1

Ядро LaTeX уже предоставляет механизм для того, что вам нужно: всякий раз, когда \labelвызывается, текущая ссылка создается путем расширения

\p@foo\thefoo

где foo— последний «refstepped» счетчик. Обычно \p@foo(в вашем случае \p@subsection) определяется как расширяющийся в ноль. Так что вот минимальный пример того, что вам следует сделать (я удалил все ненужные пакеты, чтобы лучше показать основную часть кода).

\documentclass[10pt,a4paper]{article}
\usepackage{hyperref, nameref, cleveref}

\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\arabic{subsection}}

\makeatletter
\renewcommand{\p@subsection}{\thesection.}
\makeatother

\begin{document}
\section {First}
\subsection {one} \label{I.1}
blablabla
\subsection {two}
blablabla
\section {Second}
\subsection {one}
blablabla and see \labelcref{I.1} (also known as \cref{I.1})
\end{document}

введите описание изображения здесь

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