2016-08-31 94 views
1

我正在写一个LaTeX文档,我需要一种方法来获取我所在的子部分的名称。只要知道如何获取子部分的名称,编号,问题是我的小节不是。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" 

我想知道是否有一个简单的方法来获取无编号的小节的名称。

+0

看到的是https ://tex.stackexchange.com/questions/75168/get-current-section-name-without-label – Robert

回答

2

敲入部分标记仅适用于编号为未编号的部分单位的部分单位不更新任何标记。

下面我们打入\@startsection捕获截面单元第一,之后我们设置的标题的\@sect零件的类型 - 一个编号的剖单元 - 或\@ssect - 无编号/出演截面单元。用于\section[*]\subsectiontitle\subsection[*]\sectiontitle

enter image description here

\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}{\[email protected]} 
\makeatother 

\begin{document} 

\section{A section} 
Section name: \currentname 

\subsection{A subsection} 
Subsection name: \currentname 

\subsection*{Another subsection} 
Subsection name: \currentname 

\end{document}