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