Mailing List CyrTeX-ru@vsu.ru Message #2918
From: Юра Полищук <CyrTeX-ru@vsu.ru>
Subject: Как определить TOC level для pdfbookmark в собственной section
Date: Fri, 06 May 2011 20:06:09 +0400
To: <CyrTeX-ru@vsu.ru>
День добрый.
Я создал свой тип секции (sectionapp).
В самом тексте документа все выглядит как нужно, ну а вот с PDF загладками есть проблема.
По уровню вложенности созданная sectionapp по уровню вложенности в оглавлении должна
соответствовать стандартной section
, т.е. TOC level = 1 !!!
Но на PDF закладках это не так. См. приложенное изображение.
В тексте документа все НОРМАЛЬНО!
Как задать TOC level внутри созданной sectionapp?


Это пример:
\documentclass[a4paper,14pt,twoside]{extarticle}

\usepackage{cmap}

\usepackage[pdftex, unicode=true, plainpages=true, pdfpagelabels=true]{hyperref}

\usepackage[T2A]{fontenc}

\usepackage{pscyr}

\usepackage[cp1251]{inputenc}

\usepackage[english,russian]{babel}

\usepackage[a4paper, left=30mm, right=15mm, top=20mm, bottom=20mm]{geometry}

\usepackage{indentfirst}

\makeatletter

\setlength{\parindent}{1.25cm}

\renewcommand{\rmdefault}{ftm}

\renewcommand{\baselinestretch}{1.35}

%-------------оформление разделов--------------%

\renewcommand{\l@section}{\@dottedtocline{1}{0em}{1em}}

\renewcommand\section{\@startsection{section}{1}

{\parindent}

{-3.5ex \@plus -1ex \@minus -.2ex}

{2.3ex \@plus.2ex}

{\normalfont\large\bfseries}}

\renewcommand{\l@subsection}{\@dottedtocline{2}{1em}{2em}}

\renewcommand\subsection{\@startsection{subsection}{2}

{\parindent}

{-3.25ex\@plus -1ex \@minus -.2ex}

{1.5ex \@plus .2ex}

{\normalfont\large\bfseries}}

\renewcommand{\l@subsubsection}{\@dottedtocline{3}{2em}{2.5em}}

\renewcommand\subsubsection{\@startsection{subsubsection}{3}

{\parindent}

{-3.25ex\@plus -1ex \@minus -.2ex}%

{1.5ex \@plus .2ex}%

{\normalfont\normalsize\bfseries}}

%

\def\preffix{ПРИЛОЖЕНИЕ}

\newcounter{app}

\renewcommand{\theapp}{\Asbuk{app}}

\newcommand*\l@sectionapp[2]{%

\ifnum \c@tocdepth >\z@

\addpenalty\@secpenalty

% \addvspace{1.0em \@plus\p@}%

\setlength\@tempdima{1.5em}%

\begingroup

\parindent \z@ \rightskip \@pnumwidth

\parfillskip -\@pnumwidth

\leavevmode {%\bfseries

% \advance\leftskip\@tempdima

\hskip -\leftskip

#1}\nobreak\

\leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}

\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par

\endgroup

\fi}

%--------------------------------------

\def\sectionapp{\@ifnextchar[%]

\numberedsectionwithtwoarguments\numberedsectionwithoneargument}

\def\numberedsectionwithoneargument#1{\numberedsectionwithtwoarguments[#1]{#1}}

\def\unnumberedsectionwithoneargument#1{\unnumberedsectionwithtwoarguments[#1]{#1}}

\def\numberedsectionwithtwoarguments[#1]#2{%

\refstepcounter{app}

\phantomsection

\goodbreak\noindent{\indent\large\bf\hbox to 8.5em{\preffix~\theapp}~#2}%

\nobreak\noindent%

\addcontentsline{toc}{sectionapp}{\texorpdfstring{\hbox to 8.0em{\preffix~\theapp}}{\preffix~\theapp}~#1}

\vspace{1.0em}\par}

\makeatother

\begin{document}

\tableofcontents

\newpage

\section{Вставлена секция №1}

Текст секции.

\sectionapp{Проба}

Текст приложения.

\sectionapp{Проба}

В разделе~\ref{link} написано!

\sectionapp{Проба}

Текст приложения.

\section{Вставлена секция №2}

\subsection{Вставлена подсекция №1}

Текст секции.

\sectionapp[ПРИМЕР ДОКУМЕНТА <<РУКОВОДСТВО\\ПОЛЬЗОВАТЕЛЕЙ АРМ>>]{ПРИМЕР ДОКУМЕНТА <<РУКОВОДСТВО ПОЛЬЗОВАТЕЛЕЙ АРМ>>}\label{link}

Ссылка на это приложение!

\sectionapp[АКТЫ ВНЕДРЕНИЯ И ДИПЛОМ\\ЛАУРЕАТА ПРЕМИИ ГУБЕРНАТОРА]{АКТЫ ВНЕДРЕНИЯ И ДИПЛОМ ЛАУРЕАТА ПРЕМИИ ГУБЕРНАТОРА}

Текст приложения.

\section{Вставлена секция №3}

Текст секции.

\end{document}

Subscribe (FEED) Subscribe (DIGEST) Subscribe (INDEX) Unsubscribe Mail to Listmaster