측면의 섹션 이름을 섹션 제목으로 변경

측면의 섹션 이름을 섹션 제목으로 변경

package 를 사용하고 etoolbox있는데 섹션 번호를 제목으로 바꾸고 싶은데 코드가 익숙하지 않아서 애를 먹었습니다.

각 페이지 오른쪽에 클릭 가능한 챕터가 있습니다.

위에는 제가 사용한 링크입니다. 5개의 섹션(소개, 자르기, 처리, 추가 정보 및 참조)이 필요합니다. 내가 귀찮게 하지 않기를 바랍니다.

도와 주셔서 감사합니다.

답변1

여기 있습니다 (질문에 언급된 내 답변의 변형입니다).

여기에 이미지 설명을 입력하세요

코드:

\documentclass{article}
\usepackage[a5paper,vmargin=2cm]{geometry}
\usepackage{background}
\usepackage{etoolbox}
\usepackage{graphicx}
\usepackage{totcount}
\usepackage{lipsum}
\usepackage{hyperref}

% to have access to the total number of sections
\regtotcounter{section}

% every section starts on a new page
\pretocmd{\section}{\clearpage}{}{}

% auxiliary lengths for the height of the frame and the width of each tab
\newlength\mylen
\newlength\mylena

% style for the section tabs
\tikzset{
tab/.style={
  text width=\mylena,
  draw=gray,
  thick,
  rectangle,
  rounded corners=12pt,
  align=center,
  text width=53pt,
  inner sep=0pt,
  fill=gray!20,
  font=\sffamily\LARGE
  }
}
% style for the current section tab
\tikzset{selectedtab/.style={tab,color=white,fill=gray!90}}

% the page number is showed in the background material
\pagestyle{empty}

\AtBeginDocument{
% calculation of the width for each tab
\setlength\mylen{\dimexpr\textheight+2cm\relax}
\ifnum\totvalue{section}>0
\setlength\mylena{\dimexpr\mylen/\totvalue{section}\relax}
\fi

% the main part; as background material we place the border, 
% the section (current and other) tabs and the page number 
\backgroundsetup{
scale=1,
color=black,
angle=0,
opacity=1,
contents= {
  \begin{tikzpicture}[remember picture, overlay]
  \node[
    inner sep=0pt,
    text width=\the\dimexpr\textwidth+1.5cm\relax
  ] 
    at (current page.center) (border) {\rule{0pt}{\dimexpr\textheight+2cm\relax}};
  \foreach \valsection in {0,...,\numexpr\totvalue{section}-1\relax}
  {
    \node[
      \ifnum\thesection<\numexpr\valsection+1\relax 
        tab%
      \else 
      \ifnum\thesection>\numexpr\valsection+1\relax 
        tab%
      \else selectedtab%
      \fi\fi,
      minimum height=\mylena
      ] 
      at ([yshift=-(0.5+\valsection)*\mylena]border.north east) 
      (tab-\valsection) 
      {\hspace*{25pt}\rotatebox{-90}{%
        \hyperlink{sec:\valsection}{\nameref{sec:\valsection}}%
        }
      };
  }
  \node[
    draw=gray,
    line width=2pt,
    rectangle,
    rounded corners=10pt,
    inner sep=0pt,
    text width=\the\dimexpr\textwidth+1.5cm\relax,
    fill=white
  ] 
    at (current page.center) 
    {\rule{0pt}{\dimexpr\textheight+2cm\relax}};
  \node[font=\LARGE\sffamily,fill=white] 
    at (border.south) 
    {\makebox[3em][c]{\thepage}};
\end{tikzpicture}}
  }
}

\begin{document}

\section{Introduction}
\label{sec:0}
\lipsum[1-3]
\section{Crops}
\label{sec:1}
\lipsum[1-3]
\section{Processing}
\label{sec:2}
\lipsum[1-3]
\section{Additional info}
\label{sec:3}
\lipsum[2]
\section{References}
\label{sec:4}
\lipsum[2]

\end{document}

주의해야 할 유일한 것은 다음을 사용하여 섹션에 레이블을 지정하는 것입니다. \label{sec:0}, \label{sec:1}...

관련 정보