這裡有一個簡單的問題:如何使章節標題不可見,但仍然獲得目錄和標題中正確的章節清單?例如,在第 10 頁上,如果我執行 a \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
):