使用菜单栏在右侧 LaTeX 创建自定义布局

使用菜单栏在右侧 LaTeX 创建自定义布局

首先:我几乎没有使用过 LaTeX,所以我正在寻找一个静态布局,可以将文本/图片放入其中。遗憾的是,我已经无法创建真正的布局,因为创建文档时可以指定的东西太多了。

我想为我的文档创建自定义布局。我设想以下布局:

       |   
       |
       |
       |
       | 
       |
<3cm>  |                   The usual stuff (Text/Images etc.)
       |
       |
       |
       |
       |

而对于正确的网站,我希望获得某种导航栏,以便读者可以看到他当前正在阅读的章节(我想手动指定这些选项卡的文本,因此它们不需要与目录匹配)。遗憾的是我不知道如何创建它。我想象以下内容:

这是我想象中的右侧网站。右侧不应该有太多空间

我发现我可以使用以下方式指定页面尺寸

\pdfpagewidth 8.25in
\pdfpageheight 10.75in

但是我错过了左侧的水平线(边缘之后的右侧)以及在哪里/如何访问右侧的菜单栏。

所以我假设地点,边注可能会对此有所帮助,但它似乎没有覆盖整页。

这是我目前的代码:

\documentclass{article}
\pdfpagewidth 21cm
\pdfpageheight 21cm
\usepackage[
%bindingoffset=0.2in,%
left=3cm,right=0cm,top=3cm,bottom=3cm,%
footskip=.25in]{geometry}

\begin{document}


Some placeholder Text


\end{document}

目前看来,这似乎完成了部分格式化。现在我仍然面临虚线和菜单栏的问题。有人能给我提示吗?

答案1

我认为这样的功能可能非常有用,因为对于许多文档来说,屏幕查看正在成为默认设置。当然,要真正有用,标签不仅应该显示当前章节(如 OP 所要求的),还应该显示超链接到其他章节。下面的代码生成带有超链接的文档,如下所示:

在此处输入图片描述

大部分工作是由蒂克兹。额外的技巧是:

  • 使用以下方式将标签添加到每个页面\AddEverypageHook每一页包裹
  • 文档中的章节总数存储在辅助文件中\numberofchapters,默认为0
  • 每个章节都会在辅助文件中自动赋予一个标签(chapter1,,chapter2...),以便超链接可以创建指向它的链接
  • 我发现我必须\rotatebox使用图形因为旋转文本蒂克兹 \node没有旋转超链接
  • 使用tikzpage节点,第一个章节标签与页眉底部对齐

理想情况下,菜单栏与页边距的距离、旋转角度和颜色选择等细节应该由一些不错的界面来处理。其中一些(但不是全部)细节可以使用tikz代码顶部的样式轻松更改。如果有很多章节,标签将超出页面底部,因此这种方法不太好用。解决这个问题的一种方法是提供仅显示章节号的选项。可以想象对章节也这样做……

以下是代码:

\documentclass[svgnames]{book}
\usepackage[
    a4paper,
    left=3cm,
    right=0cm,
    top=3cm,
    bottom=3cm,
    footskip=.25in
]{geometry}

\usepackage{etoolbox}
\usepackage{everypage}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{tikzpagenodes}

\usepackage{hyperref}
\hypersetup{
  colorlinks = false,%
  linkbordercolor = LightSkyBlue
}

% define some tikz styles to control the chapter tabs
\usetikzlibrary{calc}
\tikzset{
  chaptertab/.style = {
    rectangle,
    anchor = north west,
    rounded corners,
    draw=DodgerBlue,
    line width=1mm,
    fill=LightSkyBlue,
    text=NavyBlue,
    %rotate=270,
    inner sep=1mm,
    minimum height=24mm,
    minimum width=10mm,
    font=\bfseries
  },
  current chapter/.style={
    text=red
  },
  menu background/.style = {
     fill=LightSteelBlue
  }
}

% we keep track of the total number of chapters in the aux file. By
% default this is 0
\providecommand\numberofchapters{0}
\makeatletter
\AtEndDocument{
   \write\@auxout{\string\gdef\string\numberofchapters{\arabic{chapter}}}
}
\makeatother

% the chapter tabs are added to each page using the following command
\newcommand\addchaptertabs{%
  \begin{tikzpicture}[remember picture, overlay]
    \draw[menu background](current page.north west) rectangle ($ (current page.south west)+(1.2,0) $);
    \foreach \chap [evaluate=\chap as \offset using {2.4*(1-\chap)}] in {1,...,\numberofchapters} {
       \ifnum\value{chapter}=\chap
          \def\chapterextra{current chapter}
       \else
          \def\chapterextra{}
       \fi
       \node[chaptertab,\chapterextra] (chapter\chap) at
          ($ (current page.north west|-current page header area.south west)+(0,\offset) $)
          {\rotatebox{-270}{\hyperref[chapter\chap]{Chapter \chap}}};
     }
  \end{tikzpicture}%
}

% create a label (and hence a hyperlink) to each to chapter
\appto\chapter{\relax\label{chapter\arabic{chapter}}}

\AddEverypageHook{\addchaptertabs}

\begin{document}

  \chapter{One}
  \chapter{Two}
  \chapter{Three}

\end{document}

相关内容