我遇到了一些困难:
在我编写完文档(复杂)后,pdf 文件中各节的书签不指向其自身章节的相应节。目前有 5 个章节,未编号(\chapter*{...}
)。第 2 章第 1 节的书签指向第 1 章第 1 节,第 2 章第 2 节的书签指向第 1 章的书签,对于同一节层次结构中的所有其他节,当它们存在于第 1 章中时,它们指向第 1 章的书签。
在这里,我在我的 .tex 文件上添加了确切的序言。我想要取消章节编号,我想要重新初始化每个章节的编号部分和脚注...所以,书签有问题。(?)
% !Mode:: "TeX:UTF-8"
%!TEX vérification orthographique = fr-FR
% ----------------------------------------------------
\documentclass[11pt,a4paper,openany]{book}% smfbook
\special{papersize=210mm,297mm}
% ---------------------------------------------------
% encodage caractères ; gestion des accents; rendu pdf
\usepackage{etex}%
\usepackage{ucs}%
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}%
\usepackage{lmodern}
\usepackage{tipa}%
\usepackage{tipx}%
\usepackage{aeguill}
\usepackage{xspace}
\usepackage{relsize}
% ---------------------------------------------------
% style de mise en page général du document
% autres: Glenn,Lenny,Conny,Rejne et Bjarne, Bjornstrup
\usepackage[Sonny]{fncychap}%
\usepackage[geometry,weather,misc,clock]{ifsym}%
% ---------------------------------------------------
% gestions des mathématiques : l'AMS + mathtools ; caractères
\usepackage{mathtools,amsmath,amssymb,amsfonts,mathrsfs,bm}
\usepackage{latexsym}
\usepackage{dcolumn}%
\usepackage[nice]{nicefrac}%
\allowdisplaybreaks
% Système international d'unité - l'indispensable
\usepackage{siunitx}%
% ---------------------------------------------------
% Geometrie du document + Notes en marge
% ---------------------------------------------------
%\usepackage{layout}
\usepackage{geometry}%
\geometry{margin=22.5mm,%
includeheadfoot,footskip=32pt}
% réglages fin de la zone de texte imprimable
\textwidth 15.5cm%
\textheight 23cm%
\oddsidemargin 0pt%3mm%
\evensidemargin 0pt%3mm%
\topmargin -20pt
\headsep 20pt %4mm%
\headheight 20pt%8mm
% ---------------------------------------------------
% Gestion des pieds de page
\usepackage[bottom]{footmisc}
% ---------------------------------------------------
% Francisation complète du document
% ---------------------------------------------------
\usepackage[french]{babel}
\DecimalMathComma %supprime l'espace fin après la virgule en mode math
\AddThinSpaceBeforeFootnotes
\frenchspacing% better looking spacing
\frenchbsetup{FrenchSuperscripts=true}
% ---------------------------------------------------
% Customize (header and) footer
% ---------------------------------------------------
\usepackage{fancyhdr}
\pagestyle{fancy}
\rhead{}
\chead{\footnotesize Cadran Info \No{}35 --- Mai 2017}% A modifier ici
\lhead{}
\cfoot{}
\rfoot{\footnotesize ~\\ \thepage}
\renewcommand{\headrulewidth}{0.0pt}% no bar on top of page
\renewcommand{\footrulewidth}{0.0pt}% bar on bottom of page
% ---------------------------------------------------
\usepackage[active]{srcltx}% pour passer du source au pdf et vice versa
% ---------------------------------------------------
% --- Liens Hypertextes%
\usepackage[pdftex,%
plainpages={false},%
breaklinks={true},%
colorlinks={true},%
urlcolor={blue},%
citecolor={blue},%
linkcolor={blue},%
linktocpage={true},%
filecolor={red},%
bookmarks={true},%
bookmarksopen={true},%
bookmarksopenlevel={4},%
bookmarksnumbered={true},%
pdflang={fr},%
pdftitle={Cadran Info num\'ero 35 - Mai 2017},%
pdfauthor={Philippe Sauvageot, Dominique Collin},%
pdfsubject={Bulletin de la Commission des Cadrans Solaires de la Soci\'et'e Astronomique de France},%
pdfkeywords={cadran solaire \`a r\'eflexion;bloc gnomonique;histoire, \'Equation du temps;cadran en Corse;cadran crucifix;th\'eorie;r\'ealisation},%
% pdfproducer{Commission des Cadrans Solaires},%
pdfpagelabels,%
pdfpagemode={FullScreen},%
pdfview={Fit},%
pdfstartview={Fit},%
pdfpagelayout={SinglePage},%
pdfdisplaydoctitle,%
pdfpagetransition={Dissolve}%Glitter;Wipe;Split;Box;Blinds;
]{hyperref}% Activate hyperlinks
% ---to ensure the hyperlinks actually jump to the right place
\makeatletter
\newcommand\org@hypertarget{}
\let\org@hypertarget\hypertarget
\renewcommand\hypertarget[2]{%
\Hy@raisedlink{\org@hypertarget{#1}{}}#2%
}
\makeatother
%
\usepackage[%
open,%
openlevel=2,%
atend,%
numbered%
]{bookmark}%
\bookmarksetup{%
addtohook={%
\ifnum\bookmarkget{level}<1 %
\bookmarksetup{bold}%
\fi}
}%
% --------
% supprime le numero de page sur la premiere page de chaque chapitre...
\makeatletter
\let\ps@plain=\ps@empty
\makeatother
%
\makeatletter
\renewcommand{\@chapapp}{}
\makeatother
% Profondeur de \subsubsection = 4
\setcounter{tocdepth}{4} % Dans la table des matieres
\setcounter{secnumdepth}{4} % Avec un numero.
% ---------------------------------------------------
% redefinition de l'index : index en Trois colonnes...
\makeatletter
\renewenvironment{theindex}{%
\protect
\begin{multicols}{3}[\chapter*{\indexname}][10\baselineskip]%
\addcontentsline{toc}{chapter}{\indexname}%
\setlength\parindent{0pt}\pagestyle{plain}\let\item\@idxitem}
{\end{multicols}}%
\protect
\makeatother
% -------
\makeindex % pour creer un index.
\thispagestyle{empty}
% --------------------------------------------------
\begin{document}
% --------------------------------------------------
\renewcommand{\bibname}{R\'ef\'erences}
\addtocontents{toc}{~\hfill\textbf{Page}\par}
% ------
\setcounter{page}{1} % forçage du compteur de page à 1
\pdfbookmark[1]{Contents}{table}
\cleardoublepage
% Une table des matières...
\renewcommand{\contentsname}{Sommaire} % Dans le corps du document,avant la commande\tableofcontents.
{\relsize{-1}{\tableofcontents}} % Fr
% ------ pour re-initialiser la numérotation des chapitres et sections
\renewcommand{\thechapter}{}
\renewcommand{\thesection}{\arabic{section}}
% ------
\setcounter{section}{0}
\setcounter{figure}{0}%
\setcounter{table}{0}%
\setcounter{footnote}{0}% renouvelle la numérotation des notes de bas de page pour le chapitre.
% ------------------------
\phantomsection
\chapter*{\textbf{Premier chapitre\dots} par \textsc{toto 1}\label{toto1}}
\addcontentsline{toc}{chapter}{\textbf{Premier chapitre\dots} par \textsc{toto}}
% ------------------------
\hypertarget{test1}{~}
% ------------------------
\emph{Ceci constitue le premier chapitre}.
Il est non numéroté.
Mais les sections le sont quand à elles.
%
% ------------------------
\section{Une section du chapitre 1}
bla , bla.
Une note de bas de page\footnote{Test de note de bas de page}
\newpage
\subsection{Une sous section du chapitre 1}
Sans commentaire\ldots\footnote{Encore unee autre note de bas de page.}
% ------------------------
\setcounter{section}{0}
\setcounter{figure}{0}%
\setcounter{table}{0}%
\setcounter{footnote}{0}% renouvelle la numérotation des notes de bas de page pour le chapitre.
% ------------------------
\phantomsection
\chapter*{\textbf{Deuxième chapitre\dots} par \textsc{toto 2}\label{toto2}}
\addcontentsline{toc}{chapter}{\textbf{Deuxième chapitre\dots)} par \textsc{toto}}
% ------------------------
\hypertarget{test2}{~}
% ------------------------
\emph{Ceci constitue le 2\ième{} chapitre}\footnote{Test de note de bas de page. Les compteurs sont bien remis à zéro.}
Il est non numéroté...
% ------------------------
\section{Une section du chapitre 2}
bla , bla.
Une note de bas de page\footnote{Test de note de bas de page}
\newpage
\subsection{Une sous section du chapitre 2}
Sans commentaire\ldots\footnote{Encore une autre note de bas de page}
\subsection{Une sous section du chapitre 2}
Allez, encore une autre\ldots\footnote{Encore une autre note de bas de page}
% --------------------------------------------------
\end{document}
% --------------------------------------------------
例如:\section*{}
.aux 文件中的每一章都有相同的 ID 号。因此,在 pdf 文件中,我调用第 3 章第 2 节的书签,这指向第 1 章第 2 节...另一章也是如此...
如何使第 2 章第 2 节的书签指向正确位置?如何解决此书签问题?当我\chapter*{}
在 documentclass 中使用时出现问题,并且各节的自动编号与文件中的book
编号相同。{section.0.1}
.aux
我感谢您帮助我找到更正书签地址的方法。
D. 科林
答案1
问题在于,章节(子章节、子子章节)的编号在每个未编号的章节处重新开始。然后,章节编号不再是唯一的。这些编号用于构造锚点名称,锚点名称必须是唯一的。
软件包hyperref
已使用\theH<counter>
if available 为 获得唯一编号\the<counter>
。可通过\theHchapter
为未编号的章节定义来修复此问题,例如:
\chapter*{Premiere chapitre}
\def\theHchapter{1}
...
\chapter*{Deuxième chapitre}
\def\theHchapter{2}
...
LaTeX 以一种困难的方式扩展了软件包的选项,这可能会破坏文本中给出的信息条目的任意 TeX 代码。因此,应在 中加载软件包后给出这些选项\hypersetup
。此外,建议使用pdfencoding=auto
或pdfencoding=unicode
来在书签和 PDF 信息条目中启用 Unicode。
\usepackage[pdfencoding=auto, ...]{hyperref}
\hypersetup{
pdftitle={...},
pdfauthor={...},
% ...
}
多次指定软件包geometry
。然后,使用它并删除低级内容\special{papersize=...}
(使用正确的驱动程序完成geometry
)。此外,设置\textwidth=...
, ... 可以用选项替换。
% More or less right after \documentclass, when
% the package is loaded the first time:
\usepackage[
includefootheight,
headheight=20pt,
footskip=22pt,
% ...
]{geometry}