Простой вопрос: как сделать заголовки разделов невидимыми, но при этом получить правильный список разделов в оглавлении и заголовках? Например, на странице 10, если я делаю \section{New section}
, я не должен видеть текст «X. Новый раздел», но я все равно хочу, чтобы раздел был в оглавлении и на \rightmark
следующих страницах, до нового раздела, конечно.
Я использую минималистичный документ (статья класса, без пакетов, которые используются для настройки стиля заголовков разделов)
решение1
Что-то вроде этого:
\newcommand\invisiblesection[1]{%
\refstepcounter{section}%
\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}%
\sectionmark{#1}}
...
\invisiblesection{Blah}
решение2
Решение Бориса работает хорошо, но \nameref
к разделу не будет работать правильно. Вот еще одно, которое построено на их решении.
До\begin{document}
\makeatletter
\def\invisiblesection#1{%
\refstepcounter{section}%
\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}%
\sectionmark{#1}}
\protected@edef\@currentlabelname{#1} % Set correct name
...}
\makeatother
\invisiblesection{Blah} \label{blah}
...
\nameref{blah}
Минимальный рабочий пример (MWE):
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\usepackage[unicode=true,pdfusetitle,
bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=3,
breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
{hyperref}
\usepackage[demo]{graphicx}
\newcommand\invisiblesectionwithoutname[1]{%
\refstepcounter{section}%
\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}%
\sectionmark{#1}\phantom{}
}
\makeatletter
\def\invisiblesection#1{%
\refstepcounter{section}%
\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}%
\sectionmark{#1}\phantom{}
\protected@edef\@currentlabelname{#1} % Set correct name
}
\makeatother
\begin{document}
\tableofcontents{}\clearpage{}
\invisiblesectionwithoutname{One} \label{one}
\begin{figure}
\caption{\protect\includegraphics{logo}}
\end{figure}
\clearpage{}
\invisiblesection{Two} \label{two}
\begin{figure}
\caption{\protect\includegraphics{logo}}
\end{figure}
\\
Without setting correct label: \nameref{one}
With setting correct label: \nameref{two}
\end{document}
Выход ( \nameref
):