我想知道是否可以从此 MWE 获取书签列表:
\documentclass{article}
\usepackage{tikz}
\usepackage{blindtext}
\usepackage{hyperref}
\newcommand\mytitle[3]{\begin{tikzpicture} \node[ fill=red!80!white, minimum size=1cm]{#2\pdfbookmark[#3]{#2}{#1}};\end{tikzpicture}}
\begin{document}
\mytitle{labtwo}{lev zero}{0}
\blindtext
\mytitle{labone}{lev one}{1}
\blindtext
\mytitle{labtwo}{lev two}{2}
\blindtext
\end{document}
无需使用 \section、\chapter 等命令。
答案1
有很多种方法可以获取目录和书签,而无需使用\section
、\subsection
以及类似的命令。
以下示例定义了\bkmlevel<roman level>
将级别编号映射到分段级别的宏。然后\addcontentsline
可以使用它来创建书签。
代码还将书签的锚点放在节点的左上角,创建方式如下\mytitle
:
\documentclass{article}
\usepackage{tikz}
\usepackage{blindtext}
\usepackage[colorlinks]{hyperref}
\makeatletter
\newcommand\mytitle[3]{%
\begin{tikzpicture}
\node[
fill=red!80!white,
minimum size=1cm,
name={#1-#3},
]{%
#2%
\def\@currentHref{#1.#3}%
\addcontentsline{toc}{\@nameuse{bkmlevel\romannumeral#3}}{#2}%
};
\node[
inner sep=0pt,
] at (#1-#3.north west) {\hypertarget{#1.#3}{}};
\end{tikzpicture}%
}
\newcommand*{\bkmlevel}{section}
\newcommand*{\bkmleveli}{subsection}
\newcommand*{\bkmlevelii}{subsubsection}
\makeatother
\begin{document}
\tableofcontents
\mytitle{labtwo}{lev zero}{0}
\blindtext
\mytitle{labone}{lev one}{1}
\blindtext
\mytitle{labtwo}{lev two}{2}
\blindtext
\end{document}