将页面拆分为不同的部分

将页面拆分为不同的部分

我是 TikZ 软件包的新手。我正在尝试将一些 LaTeX 页面拆分为不同的部分。在每个部分中,我希望能够编写文本并绘制​​简单的 Tikz 图形(例如线条\draw (0,0) -- (4,0);),并在每个部分中应用不同的样式(文本颜色、背景颜色)。第一页应处于横向位置,并应包含 2 个部分。第二页应处于正常(纵向)位置并包含 4 个部分。 本页包含 2 个部分 本页包含 4 个部分

到目前为止我得到的只是以下内容:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{eso-pic}
\usepackage{lscape}
\usepackage{pdflscape}
\pagenumbering{gobble} % Turn off page numeration

\begin{document}
\AddToShipoutPictureBG{%
\begin{tikzpicture}[overlay,remember picture]
\draw[line width=0.1pt]
    ($ (current page.north west) + (1.2cm,-15.2cm) $)
    rectangle
    ($ (current page.south east) + (-1.2cm,1.2cm) $);
\end{tikzpicture}
}
\begin{landscape}
Lorem ipsum dolor sit amet 
\end{landscape}
\newpage
second page
\end{document}

我不知道该如何继续。有什么建议吗?我还应该尝试使用 TikZ 还是应该尝试其他方法?提前谢谢。

答案1

我认为不可能在同一文档中轻易地混合横向和纵向页面。geometry包允许更改文本尺寸,但不允许更改纸​​张尺寸或页面方向,因此我建议在一个文档中定义横向页面并在主文档中通过帮助将它们包含在主文档中pdfpages

页面设计可以用其他包来完成,但我建议使用tcolorbox及其tcbposter工具。它允许在页面上定义灵活的盒式分布。

水平页面的制作方法是:

\begin{tcbposter}[%
    coverage = spread,
    poster = {columns=2, rows=1}
]
\posterbox{name=left, column=1, row=1}{\lipsum[1-3]}
\posterbox{name=right, column=2, row=1}{\lipsum[1]}
\end{tcbposter}

这是一张海报,它将覆盖整个页面,由两个相等的列组成。样式是 tcolorbox 默认的,但您可以根据需要进行更改。结果如下所示:

在此处输入图片描述

对于肖像页,我也定义了一个tcbposter,有五列,但左侧文本将使用其中三列,而右侧文本将使用另外两列。左右黑色部分绘制为overlay。此海报的代码为:

\begin{tcbposter}[%
    coverage = spread,
    poster = {columns=5, rows=1, spacing=-.5mm},
    boxes={sharp corners, colback=white}
]
\posterbox[left=12mm, enhanced, 
     overlay={\fill[black!70] (frame.north west) rectangle 
         node[font=\sffamily\bfseries,text=white,rotate=90]
         {Lorem ipsum dolor sit amet} ([xshift=9mm]frame.south west);} 
]{name=left, column=1, span=3, rowspan=1}{\lipsum[1-2]}
\posterbox[right=12mm, enhanced, 
      overlay={\fill[black!70] (frame.north east) rectangle 
          node[font=\sffamily\bfseries,text=white,rotate=270]
          {Lorem ipsum dolor sit amet} ([xshift=-9mm]frame.south east);} 
]{name=right, column=4, span=2, rowspan=1}{\lipsum[1]}
\end{tcbposter}

在此处输入图片描述

两个文件的完整代码是:

%landscape pages
\documentclass[a4paper, landscape]{article}
\usepackage[most]{tcolorbox}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage{geometry}

\pagestyle{empty}
\begin{document}

\begin{tcbposter}[%
    coverage = spread,
    poster = {columns=2, rows=1}
]
\posterbox{name=left, column=1, row=1}{\lipsum[1-3]}
\posterbox{name=right, column=2, row=1}{\lipsum[1]}
\end{tcbposter}

\end{document}

主文件包含纵向页面,并包括横向页面includepdf

\documentclass[a4paper]{article}
\usepackage[most]{tcolorbox}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage{geometry}
\usepackage{pdfpages}
\usepackage{pdflscape} %shows landscape pages in landscape

\pagestyle{empty}
\begin{document}

\begin{landscape}
\includepdf[landscape]{445940b}
\end{landscape}

\begin{tcbposter}[%
    coverage = spread,
    poster = {columns=5, rows=1, spacing=-.5mm},
    boxes={sharp corners, colback=white}
]
\posterbox[left=12mm, enhanced, 
          overlay={\fill[black!70] (frame.north west) rectangle 
          node[font=\sffamily\bfseries,text=white,rotate=90]{Lorem ipsum dolor sit amet} 
          ([xshift=9mm]frame.south west);} 
]{name=left, column=1, span=3, rowspan=1}{\lipsum[1-2]}
\posterbox[right=12mm, enhanced, 
          overlay={\fill[black!70] (frame.north east) rectangle 
          node[font=\sffamily\bfseries,text=white,rotate=270]{Lorem ipsum dolor sit amet} 
          ([xshift=-9mm]frame.south east);} 
]{name=right, column=4, span=2, rowspan=1}{\lipsum[1]}
\end{tcbposter}

\end{document}

在此处输入图片描述

相关内容