
Я пишу свою диссертацию и использую вариант класса report. У меня есть главы, разделы, подразделы и подподразделы местами. При чтении текста длинная строка цифр, букв и римских цифр в названии подразделов и подподразделов выглядит неприятно. Я бы предпочел, чтобы эти заголовки просто имели соответствующее название подраздела или подподраздела, и сделал бы это с помощью:
\renewcommand\thesubsection{\Roman{subsection}}
(В зависимости от того, как все в итоге будет выглядеть, я могу включить счетчик разделов, но я определенно уберу счетчик глав.) Однако, когда я делаю ссылку на подраздел или подподраздел, я бы предпочел, чтобы использовалась вся строка цифр, иначе ссылка будет плохо определена. Может ли кто-нибудь прокомментировать, как это сделать?
Вот минимальный пример.
\documentclass{report}
\begin{document}
\renewcommand\thesection{\arabic{chapter}.\arabic{section}}
\renewcommand\thesubsection{\Roman{subsection}}
\chapter{Chapter}
\section{Section}
\subsection{Subsection}\label{subsection}
\noindent I have the subsections labelled in Roman in the title, because 1.1.I would just be long.
\\
\noindent Here is a reference to the subsection: (\ref{subsection})
\\
\noindent I would like references to the subsection to be (1.1.I), however.
\end{document}
решение1
Переопределить \p@subsection
(префикс, используемый для ссылок на подразделы):
\documentclass{report}
\renewcommand\thesection{\arabic{chapter}.\arabic{section}}
\renewcommand\thesubsection{\Roman{subsection}}
\makeatletter
\renewcommand\p@subsection{\thesection.}
\makeatother
\begin{document}
\chapter{Chapter}
\section{Section}
\subsection{Subsection}\label{subsection}
\noindent I have the subsections labelled in Roman in the title, because 1.1.I would just be long.
\noindent Here is a reference to the subsection: (\ref{subsection})
\end{document}
Кстати, никогда не используйте комбинацию \\ + blank line
; это приведет к появлению предупреждений о неполном заполнении ящиков.
решение2
Ссылки могут автоматически начинаться с префикса \p@<counter>
, см. пример:
\documentclass{report}
\usepackage{parskip}
\renewcommand\thesection{\arabic{chapter}.\arabic{section}}
\renewcommand\thesubsection{\Roman{subsection}}
\makeatletter
\renewcommand*{\p@subsection}{\thesection.}
\makeatother
\begin{document}
\chapter{Chapter}
Here is a reference to the subsection: \ref{subsection}
\section{Section}
\subsection{Subsection}\label{subsection}
\end{document}
Результат: