提取当前章节标题并包含在 URL 中

提取当前章节标题并包含在 URL 中

我正在编写一个包含&sections=部分的 URL。我想在后面添加一个宏&sections=,这样每当打开 URL 时,当前部分标题都会动态填充。

我尝试了\thepage和,\thesection它们都运行良好,可以显示当前页码或章节编号。但是,我想要的是章节标题,包括编号章节和未编号章节。

我尝试了邮政。

第一的:

\documentclass{article}

\newcommand*\nowtitle{}

\let\oldsectionmark=\sectionmark
\renewcommand*\sectionmark[1]{%
  \renewcommand*\nowtitle{#1}%
  \oldsectionmark{#1}} 

\begin{document}

\section{The first section}

\nowtitle

\section*{The second section}

\nowtitle -- (It shows ``The first section", but should be ``The second section")

\end{document}

问题是未编号的部分显示前一个编号的部分标题。

第二:

\documentclass{article}

\usepackage{etoolbox}

\makeatletter
\patchcmd{\@sect}% <cmd>
  {\ifnum}% <search>
  {\edef\nowtitle{#7}\ifnum}% <replace>
  {}{}% <success><failure>
\patchcmd{\@ssect}% <cmd>
  {\@tempskipa}% <search>
  {\edef\nowtitle{#5}\@tempskipa}% <replace>
  {}{}% <success><failure>
\makeatother 

\begin{document}

\section{The first section}

\nowtitle

\section*{The second section}

\nowtitle

\end{document}

作为最小工作示例,它运行良好,但在我们的项目中不起作用。它似乎与现有包有冲突:

\usepackage[bookmarksopen=true,bookmarksnumbered=true]{hyperref}
\usepackage{nameref}
\usepackage{titlesec}

答案1

实际用例中的所有附加包都会重新定义或影响分段单元。titlesec在游戏中,可以通过 来查看分区单位的标题\ttl@savetitle

在此处输入图片描述

\documentclass{article}

\usepackage[bookmarksopen=true,bookmarksnumbered=true]{hyperref}
\usepackage{nameref}
\usepackage{titlesec}

\begin{document}

\section{The first section}

\makeatletter
\ttl@savetitle
\makeatother

\section*{The second section}

\makeatletter
\ttl@savetitle
\makeatother

\end{document}

相关内容