5

I have a macro that contains the title for the current section, however when using the titlesec package, it no longer works for \section and \subsection. I know titlesec redefines the functions I'm using, but have not been able to figure out a workaround.

MWE:

\documentclass{article}

\usepackage{etoolbox}

\makeatletter
\pretocmd{\@sect}{\gdef\currtitle{#7}}{}{}
\pretocmd{\@ssect}{\gdef\currtitle{#5}}{}{}
\pretocmd{\@part}{\gdef\currtitle{#1}}{}{}
\pretocmd{\@spart}{\gdef\currtitle{#1}}{}{}
\makeatother

\usepackage{titlesec}

\begin{document}
\tableofcontents

\part*{First Starred part}
\currtitle

\part{First Un-starred part}
\currtitle

\section*{First Starred Section}
\currtitle

\section{Second Un-starred Section}
\currtitle

\subsection*{First Starred Subsection}
\currtitle

\subsection{Second Un-starred Subsection}
\currtitle

\end{document}
2

For \section and lower level titles you can do

\apptocmd{\ttl@straight@i}{\global\let\currtitle\ttl@savetitle}{}{}

However, if you're not going to hide titles in groups, the simple

\makeatletter
\newcommand{\currtitle}{\ttl@savetitle}
\makeatother

should suffice.

For \part your code still works and I believe also the similar one for \chapter.

  • The first approach was exactly what I was looking for. Thanks! – lyineyes Nov 21 '11 at 22:37
  • Could you please explain how to use these commands? An example would really help. – wkschwartz Nov 9 '15 at 17:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.