私は自分のセクションなどを参照するためにパッケージ\autoref
から作業しています。hyperref
現在取り組んでいること:
\documentclass[a4paper, 12pt, parskip]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[hidelinks]{hyperref}
\addto\extrasenglish{%
\renewcommand{\chapterautorefname}{Chapter}%
\renewcommand{\sectionautorefname}{Section}%
\renewcommand{\subsectionautorefname}{Section}%
\renewcommand{\subsubsectionautorefname}{Section}%
\renewcommand{\paragraphautorefname}{Paragraph}%
}
私のはデフォルト値を使用しているため、secnumdepth
段落に番号が付けられません。そのため、現在使用しているのは
\autoref{example} (\nameref{example})
段落を参照します。もちろん、そのためのコマンドを書くこともできますが、ドキュメントを再構成する場合には変更する必要があります (これは の考え方に反しますautoref
)。
カウンターに応じて、つまり番号なしのすべてのセクション(スター付きセクションの行を参照することはありません)に応じて、\autoref
コマンドの動作を上記のようなものに変更できるかどうか疑問に思いました。secnumdepth
\section*
どうすればいいのか全く分からないので、私の唯一のアイデアは、\paragraphautorefname
コマンドを次のように再定義することでした。
\def\paragraphautorefname~#1\null{%
Section~#1 (<paragraphname>)\null
}
しかし、段落の名前にアクセスする方法がわかりません。
これについて何かご意見はありますか? 私が知らないもっと簡単な方法はありますか?
編集: 私が求めている結果を明確にします。
\documentclass[a4paper, 12pt, parskip]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[hidelinks]{hyperref}
\addto\extrasenglish{%
\renewcommand{\chapterautorefname}{Chapter}%
\renewcommand{\sectionautorefname}{Section}%
\renewcommand{\subsectionautorefname}{Section}%
\renewcommand{\subsubsectionautorefname}{Section}%
\renewcommand{\paragraphautorefname}{Paragraph}%
}
\begin{document}
\chapter{Chapter 1}\label{cha:1}
\section{Section 1}\label{sec:1}
\subsection{Subsection 1}\label{sub:1}
\subsubsection{Subsubsection 1}\label{subsub:1}
\paragraph{Paragraph 1}\label{par:1}
\section{Another Section}
Here I can happily reference \autoref{cha:1}, \autoref{sec:1}, \autoref{sub:1}, and \autoref{subsub:1}.
If I'm trying to reference the paragraph, as expected, I will get the result of the next enclosing numbered section \autoref{par:1}.
I want that \verb|\autoref| applied to \texttt{par:1} outputs something like \verb|\nameref{par:1} (\autoref{par:1})| would, so: \nameref{par:1} (\autoref{par:1}), without me doing that manually.
\end{document}