LaTeX - 获取未编号小节的名称
LaTeX - Get the name of an unnumbered subsection
我正在写一个 LaTeX 文档,我需要一种方法来获取我所在的小节的名称。我知道如何获取小节的名称,只要它有编号,问题是我的小节不是。
编号小节
\let\Subsectionmark\subsectionmark
\def\subsectionmark#1{\def\Subsectionname{#1}\Subsectionmark{#1}}
然后您只需使用以下代码获取您的子部分的名称:
\subsection{numbered}
\Subsectionname %Will be "numbered"
未编号部分
当我尝试执行以下操作时,我的问题来了:
\subsection{numbered}
\subsection*{unnumbered}
\Subsectionname %Will be "numbered"
我想知道是否有一种简单的方法可以获取未编号小节的名称。
点击分段 标记 仅适用于编号为未编号分段单元的分段单元,不会更新任何标记。
下面我们进入 \@startsection
以捕获部分单元的类型 首先 ,然后我们将标题设置为 \@sect
的一部分 - 编号部分单位 - 或 \@ssect
- unnumbered/starred 部分单位。标题在 unit-specific 宏中捕获:\sectiontitle
用于 \section[*]
,\subsectiontitle
用于 \subsection[*]
,等等
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\pretocmd{\@startsection}% <cmd>
{\@namedef{@sectype}{#1}}% <pre>
{}{}% <success><failure>
\patchcmd{\@sect}% <cmd>
{\@xsect}% <search>
{\@namedef{\@sectype title}{#8}\@xsect}% <replace>
{}{}% <success><failure>
\patchcmd{\@ssect}% <cmd>
{\@xsect}% <search>
{\@namedef{\@sectype title}{#5}\@xsect}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\section{A section}
Section name: \sectiontitle
\subsection{A subsection}
Subsection name: \subsectiontitle
\subsection*{Another subsection}
Subsection name: \subsectiontitle
\end{document}
titleref
提供了一个更简单的界面:
\documentclass{article}
% https://tex.stackexchange.com/q/75168/5764
\usepackage{titleref}
\makeatletter
\newcommand*{\currentname}{\TR@currentTitle}
\makeatother
\begin{document}
\section{A section}
Section name: \currentname
\subsection{A subsection}
Subsection name: \currentname
\subsection*{Another subsection}
Subsection name: \currentname
\end{document}
我正在写一个 LaTeX 文档,我需要一种方法来获取我所在的小节的名称。我知道如何获取小节的名称,只要它有编号,问题是我的小节不是。
编号小节
\let\Subsectionmark\subsectionmark
\def\subsectionmark#1{\def\Subsectionname{#1}\Subsectionmark{#1}}
然后您只需使用以下代码获取您的子部分的名称:
\subsection{numbered}
\Subsectionname %Will be "numbered"
未编号部分
当我尝试执行以下操作时,我的问题来了:
\subsection{numbered}
\subsection*{unnumbered}
\Subsectionname %Will be "numbered"
我想知道是否有一种简单的方法可以获取未编号小节的名称。
点击分段 标记 仅适用于编号为未编号分段单元的分段单元,不会更新任何标记。
下面我们进入 \@startsection
以捕获部分单元的类型 首先 ,然后我们将标题设置为 \@sect
的一部分 - 编号部分单位 - 或 \@ssect
- unnumbered/starred 部分单位。标题在 unit-specific 宏中捕获:\sectiontitle
用于 \section[*]
,\subsectiontitle
用于 \subsection[*]
,等等
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\pretocmd{\@startsection}% <cmd>
{\@namedef{@sectype}{#1}}% <pre>
{}{}% <success><failure>
\patchcmd{\@sect}% <cmd>
{\@xsect}% <search>
{\@namedef{\@sectype title}{#8}\@xsect}% <replace>
{}{}% <success><failure>
\patchcmd{\@ssect}% <cmd>
{\@xsect}% <search>
{\@namedef{\@sectype title}{#5}\@xsect}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\section{A section}
Section name: \sectiontitle
\subsection{A subsection}
Subsection name: \subsectiontitle
\subsection*{Another subsection}
Subsection name: \subsectiontitle
\end{document}
titleref
提供了一个更简单的界面:
\documentclass{article}
% https://tex.stackexchange.com/q/75168/5764
\usepackage{titleref}
\makeatletter
\newcommand*{\currentname}{\TR@currentTitle}
\makeatother
\begin{document}
\section{A section}
Section name: \currentname
\subsection{A subsection}
Subsection name: \currentname
\subsection*{Another subsection}
Subsection name: \currentname
\end{document}