如何交叉引用第三级章节标题,同时包含更高级别的章节编号

如何交叉引用第三级章节标题,同时包含更高级别的章节编号

我的文档结构如下:

I. Example-heading
  1. Example-subheading
  2. Example-subheading 2
    a) Example-subsubheading
    b) Example-subsubheading 2
       (aa) Example-subsubsubheading
       (bb) Example-subsubheading 2
          ...
             ...
               ...
II. Example-heading 2
  1. Example2-subheading

当我现在使用

\subthreesection{Example-subsubsubheading}\label{my-label}

后来在文本中的某个地方

\ref{my-label} \nameref{my-label}

输出如下

(aa)示例-subsubsubheading

但我希望

I.2.a).(aa) 示例-子子标题

并且不仅适用于第三级,还适用于七级或更深级别。

我正在使用文档类汝拉工坊(汝拉学生论文的文档类别)。

我怎样才能实现这个目标?

答案1

由于您使用hausarbeit-jura文档类,我建议您修改“前缀宏” \p@subsection\p@subsubsection\p@subthreesection。具体来说,您应该在序言中插入以下说明:

\makeatletter
\renewcommand\p@subsection{\thesection}
\renewcommand\p@subsubsection{\p@subsection\thesubsection}
\renewcommand\p@subthreesection{\p@subsubsection\thesubsubsection.}
\renewcommand\p@subfoursection{\p@subthreesection\thesubthreesection.}
\renewcommand\p@subfivesection{\p@subfoursection\thesubfoursection.}
\renewcommand\p@subsixsection{\p@subfivesection\thesubfivesection.}
\makeatother

评论:除了您在最初发帖中要求的那些之外,我还添加了三个额外的交叉引用前缀宏级别。我相信您有足够的信息来继续执行第七和第八级别以及段落和小段落...

完整的 MWE:

在此处输入图片描述

\documentclass{hausarbeit-jura}
\usepackage[colorlinks]{hyperref} % for \nameref macro

\makeatletter  % use a recursive approach to define the prefix macros:
\renewcommand\p@subsection{\thesection}
\renewcommand\p@subsubsection{\p@subsection\thesubsection}
\renewcommand\p@subthreesection{\p@subsubsection\thesubsubsection.}
\renewcommand\p@subfoursection{\p@subthreesection\thesubthreesection.}
\renewcommand\p@subfivesection{\p@subfoursection\thesubfoursection.}
\makeatother

\begin{document}
level-1 sub: \ref{my-label1} \nameref{my-label1}

level-2 sub: \ref{my-label2} \nameref{my-label2}

level-3 sub: \ref{my-label3} \nameref{my-label3}

level-4 sub: \ref{my-label4} \nameref{my-label4}

level-5 sub: \ref{my-label5} \nameref{my-label5}

etc.

\section{Section heading}
\subsection{Subsection heading} \label{my-label1}
\subsubsection{Subsubsection heading} \label{my-label2}
\subthreesection{Subthree-heading} \label{my-label3}
\subfoursection{Subfour-heading} \label{my-label4}
\subfivesection{Subfive-heading} \label{my-label5}
\end{document}

答案2

除了编号样式(必须以不同的方式设置,这是不同的zref问题)当需要链接时,可以使用 轻松实现参考样式的“收缩” ,只需\label替换zlabel并设置一个\fullref提取链接的锚点、默认值和标题的命令即可。

\documentclass{book}
\usepackage{hyperref}

\usepackage[user,hyperref,titleref]{zref}


\makeatletter
\newcommand{\fullref}[1]{%
  % Check for existence and provide a hyperlink
  \zref@ifrefundefined{#1}{%
  }{%
    \hyperlink{\zref@extract{#1}{anchor}}{\zref@extract{#1}{default} \zref@extract{#1}{title}}%
  }%    
}
\makeatother


\begin{document}

See \fullref{my-label}

\chapter{Example-heading}
\section{Example-subheading}
\section{Example-subheading 2}
\subsection{Example subsubheading} 

\subsubsection{Example subsubheading} 
\subsubsection{Example subsubheading 2}  \zlabel{my-label}

\chapter{Example-heading 2}
\section{Example-subheading again}

\end{document}

在此处输入图片描述

更新hausarbeit-jura.cls

\documentclass{hausarbeit-jura}

\usepackage{expl3}
\usepackage{hyperref}
\usepackage[counter,user,hyperref,titleref]{zref}


\makeatletter
\zref@newprop{chapterprop}{\thechapter}
\zref@newprop{sectionprop}{\thesection}
\zref@newprop{subsectionprop}{\thesubsection}
\zref@newprop{subsubsectionprop}{\thesubsubsection}
\zref@addprops{main}{chapterprop,sectionprop,subsectionprop,subsubsectionprop}

\ExplSyntaxOn

\cs_new:Npn \extractstructure #1{
  \str_case_x:nn {\zref@extract{#1}{counter} }
  {
    {chapter} {\zref@extract{#1}{chapterprop} }
    {section} {\zref@extract{#1}{chapterprop}~\zref@extract{#1}{sectionprop} }
    {subsection} {\zref@extract{#1}{chapterprop}~\zref@extract{#1}{sectionprop}~\zref@extract{#1}{subsectionprop} }
    {subsubsection} {\zref@extract{#1}{chapterprop}~\zref@extract{#1}{sectionprop}~\zref@extract{#1}{subsectionprop}~\zref@extract{#1}{subsubsectionprop} }
  } 
}
\ExplSyntaxOff

\newcommand{\fullref}[1]{%
  % Check for existence and provide a hyperlink
  \zref@ifrefundefined{#1}{%
  }{%
    \hyperlink{\zref@extract{#1}{anchor}}{\extractstructure{#1} \zref@extract{#1}{title}}
  }%    
}
\makeatother


\begin{document}

See \fullref{my-label} or \fullref{somechapter}

\chapter{Example-heading}
\section{Example-subheading}
\section{Example-subheading 2}
\subsection{Example subsubheading} 

\subsubsection{Example subsubheading} 
\subsubsection{Example subsubheading 2}  \zlabel{my-label}

\chapter{Example-heading 2} \zlabel{somechapter}
\section{Example-subheading again}

\end{document}

在此处输入图片描述

答案3

我对标准文档类有同样的疑问:缩写参考文献:仅列出必要的参考文献,不再赘述

简而言之:如果我在“II.”分支上,则来自例如 II.3.b) 的引用不需要指向 II.1.a),而只需指向 1.a)。但如果我从 III. 下的某个地方引用,则文本中的引用当然必须是 II.1.a)。

我花了一整天的时间并得到了很多帮助才找到这个解决方案:

https://tex.stackexchange.com/a/325871/4736

相关内容