Латекс с дальнейшим dvipdf: неверная иерархия закладок для уровня абзаца - PullRequest
0 голосов
/ 18 ноября 2018

Файл TeX скомпилирован в dvi с помощью dvipdfm.Я использую такую ​​технику около 20 лет.Все было хорошо, пока мне не нужен уровень абзаца.Содержание правильное, гиперссылки работают, но закладки в pdf-файле для абзацев некорректны: каждая закладка абзаца содержит следующую в качестве подуровня.Исходный код (файл test.tex) следующий:

\documentclass[12pt,a4paper,sumlimits,intlimits,namelimits,openany,twoside]{book}

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek,english]{babel}
\usepackage{makeidx,multicol,ifthen,verbatim,layout}

\selectlanguage{english}

\usepackage[hyperindex,bookmarksnumbered,%colorlinks,
     dvipdfmx,bookmarks]{hyperref}
\usepackage{amsmath,amsthm,amsfonts,amssymb}

\numberwithin{paragraph}{chapter}

\begin{document}
\setcounter{secnumdepth}4%\setcounter{tocdepth}{4}
\setcounter{tocdepth}4
\tableofcontents
\newpage

\chapter{The Lebesgue theory}
\section{Set functions}
\paragraph{Definition (ring)}
\paragraph{Definition (additive set function)}
\paragraph{Theorem (continuity of additive set function)}

\section{Construction   of  the  Lebesgue   measure}
\paragraph{Definition (ring of elementary sets)}
\paragraph{Definition (regular set function)}
\end{document}

Файл test.toc (автоматически сгенерированный LaTeX) следующий:

\babel@toc {english}{}
\babel@toc {english}{}
\contentsline {chapter}{\numberline {1}The Lebesgue theory}{2}{chapter.1}
\contentsline {section}{\numberline {1.1}Set functions}{2}{section.1.1}
\contentsline {paragraph}{\numberline {1.1}Definition (ring)}{2}{paragraph.1.1}
\contentsline {paragraph}{\numberline {1.2}Definition (additive set function)}{2}{paragraph.1.2}
\contentsline {paragraph}{\numberline {1.3}Theorem (continuity of additive set function)}{2}{paragraph.1.3}
\contentsline {section}{\numberline {1.2}Construction of the Lebesgue measure}{2}{section.1.2}
\contentsline {paragraph}{\numberline {1.1}Definition (ring of elementary sets)}{2}{paragraph.1.1}
\contentsline {paragraph}{\numberline {1.2}Definition (regular set function)}{2}{paragraph.1.2}

Файл test.out (сгенерированный автоматическиby LaTeX) выглядит следующим образом:

\BOOKMARK [0][-]{chapter.1}{1 The Lebesgue theory}{}% 1
\BOOKMARK [1][-]{section.1.1}{1.1 Set functions}{chapter.1}% 2
\BOOKMARK [2][-]{paragraph.1.1}{1.1 Definition \(ring\)}{section.1.1}% 3
\BOOKMARK [3][-]{paragraph.1.2}{1.2 Definition \(additive set function\)}{paragraph.1.1}% 4
\BOOKMARK [4][-]{paragraph.1.3}{1.3 Theorem \(continuity of additive set function\)}{paragraph.1.2}% 5
\BOOKMARK [1][-]{section.1.2}{1.2 Construction of the Lebesgue measure}{chapter.1}% 6
\BOOKMARK [2][-]{paragraph.1.1}{1.1 Definition \(ring of elementary sets\)}{section.1.2}% 7
\BOOKMARK [3][-]{paragraph.1.2}{1.2 Definition \(regular set function\)}{paragraph.1.1}% 8

Заранее спасибо за любую идею.

1 Ответ

0 голосов
/ 18 ноября 2018

Причиной некоторого странного поведения закладок абзаца является то, что я использовал \paragraph в \section, пропуская два уровня: \subsection и \subsubsection.Таким образом, пакет hyperref рассматривает такой разрыв уровня как проблему и пытается ее исправить, поднимая уровень закладки на 1 (и только на 1) за каждый шаг.У меня есть эти предупреждения в test.log:

Chapter 1.

Package hyperref Warning: Difference (3) between bookmark levels is greater
(hyperref)                than one, level fixed on input line 26.


Package hyperref Warning: Difference (2) between bookmark levels is greater
(hyperref)                than one, level fixed on input line 27.


Package hyperref Warning: Difference (3) between bookmark levels is greater
(hyperref)                than one, level fixed on input line 31.

...

Package hyperref Warning: Difference (2) between bookmark levels is greater
(hyperref)                than one, level fixed on input line 32.

К сожалению, единственное найденное средство - это использование команды секционирования без пропуска уровней;в моем случае мне нужно использовать \subsection вместо '\ абзаца`.Эта странность гиперрефера описана во многих источниках, см., Например, здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...