如何在每个页面上增加一个区块

如何在每个页面上增加一个区块

我希望每页右侧都有一个实心框,显示该页面的手动设置类别。到目前为止,这个功能还不错,但这个框没有正确调整/居中,我不知道如何调整。

完美的是,在页面右侧有一个显示文本的框,颜色分级框围绕文本,边距为 0.15 厘米。现在我手动设置了两者,但效果不太好……

我的目标只是改变pageCategory并为我的员工提供一个解决方案^^。

这是我目前尝试过的方法。虽然有效,但没有增长。

\documentclass{article}
\usepackage[a4paper,left=2cm,right=2cm,top=2in,bottom=2in]{geometry}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{calc}
\usepackage{eso-pic}
\usepackage{ifthen}
\usepackage{etoolbox}
\usetikzlibrary{calc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}

\newcommand{\pageCategory}[1]{\def \varPageCategory {#1}}
\pageCategory{}
\definecolor{MyBlue}{rgb}{0.41,0.2,0.6}
\definecolor{MyRed}{rgb}{0.97,0.2,0.41}

%\usepackage{showframe}
\AddToShipoutPicture{%
    \ifdefempty{\varPageCategory}{}%
    {%
    \begin{tikzpicture}[overlay, remember picture]%
        \draw[white,top color=MyBlue,bottom color=MyRed] ($(current page.east)+(0cm,4cm)$) -- ($(current page.east)+(0cm,8cm)$) -- ($(current page.east)+(-1cm,8cm)$) -- ($(current page.east)+(-1cm,4cm)$) -- ($(current page.east)+(0cm,4cm)$);%
        \node[white,rotate=90, thick, line width=2pt] at ($(current page.east)+(-0.5cm,5cm)$) {\fontsize{10}{12} \varPageCategory};%
    \end{tikzpicture}
    }
}

\begin{document}
    \pageCategory{Page One}
    \lipsum
    \pagebreak
    \clearpage
    \pageCategory{Page Two and Three}
    \lipsum
    \pagebreak
    \lipsum
\end{document}

答案1

我认为这个清晰的代码可以帮助你改进和调整它。

节点锚点south在旋转后位于右侧。您可以通过更改参数来控制与右侧纸张边缘的距离outer sep

节点大小取决于其内容,以中心为中心。

在此处输入图片描述在此处输入图片描述

\documentclass{article}
\usepackage[a4paper,left=2cm,right=2cm,top=2in,bottom=2in]{geometry}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{calc}
\usepackage{eso-pic}
\usepackage{ifthen}
\usepackage{etoolbox}
\usetikzlibrary{calc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}

\newcommand{\pageCategory}[1]{\def\varPageCategory{#1}}
\pageCategory{}
\definecolor{MyBlue}{rgb}{0.41,0.2,0.6}
\definecolor{MyRed}{rgb}{0.97,0.2,0.41}

\tikzset{%
  mynode/.style={%
    top color=MyBlue,
    bottom color=MyRed,
    white,
    rotate=90,
    draw=black,
    line width=2pt,
    align=center,
    anchor=south,
    font=\fontsize{10}{12},
    inner sep=5pt,
    outer sep=10pt
  }%
}
%\usepackage{showframe}
\AddToShipoutPicture{%
    \ifdefempty{\varPageCategory}{}%
    {%
    \begin{tikzpicture}[overlay, remember picture]%
        \node[mynode] at (current page.east) {\varPageCategory};%
    \end{tikzpicture}
    }
}

\begin{document}
    \pageCategory{Page One}
    \lipsum
    \pagebreak
    \clearpage
    \pageCategory{Page Two and Three}
    \lipsum
    \pagebreak
    \lipsum
\end{document}

相关内容