![全宽便笺框 (tikzpicture) 和带边距的簇绒书式布局](https://linux22.com/image/366417/%E5%85%A8%E5%AE%BD%E4%BE%BF%E7%AC%BA%E6%A1%86%20(tikzpicture)%20%E5%92%8C%E5%B8%A6%E8%BE%B9%E8%B7%9D%E7%9A%84%E7%B0%87%E7%BB%92%E4%B9%A6%E5%BC%8F%E5%B8%83%E5%B1%80.png)
我正在尝试创建一个特殊的框,用于放置表格/图片/文本,该框横跨整个页面的宽度,其中页面的几何形状设置为提供边距(左/右交替,奇数/偶数)。我希望能够自定义框框和填充的外观,因此我选择了 tikz 包,因为它让我可以绘制任何东西。要全面了解我要完成的任务,请查看邮政信箱1'BOX 3.2' 是一个框架环境,其中包含许多复杂的子项,例如图形和文本等。
关于类似问题的许多 stack-exchange 帖子都无法为我的问题提供可行的解决方案(或者我太愚蠢而无法整合它)。
首先,我希望 MWE 中的“图形”(见下文)占据整个宽度(减去 1.5 厘米的细边距),从而有效地忽略使用“几何”设置的 5 厘米边距默认值。此外,这应该适用于任何地方(偶数页和奇数页)。
\documentclass[twoside,openany]{book}
\usepackage[paper=a4paper,margin=1in]{geometry}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{kantlipsum}
\definecolor{LightOcean}{RGB}{81, 147, 229 }
\definecolor{DeepOcean}{RGB}{51, 131, 229}
\begin{document}
\newgeometry{top=3cm,bottom=3cm,left=1.5cm,right=5cm,headsep=10pt}
\lipsum[1-6]
\begin{figure}
\begin{tikzpicture}
\draw (0,0) node[fill=LightOcean!10, text width=\textwidth, text justified, rectangle, draw=DeepOcean, thick, rounded corners=8pt, minimum height=6em]
{\kant[2]};
\end{tikzpicture}
\caption{\kant[1]}
\end{figure}
\lipsum[3-10]
\end{document}
我在考虑用迷你页面来封装 ... 子迷你页面?但是如何告诉 tikzpicture 在哪里绘制框架?
提前谢谢了。
答案1
我认为tcolorbox
这是一个比TikZ
绘制框架(浮动或非浮动)更好的解决方案:
\documentclass[twoside,openany]{book}
\usepackage[a4paper, vmargin={3cm, 3cm}, hmargin={1.5cm, 5cm}, headsep=10pt]{geometry}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{kantlipsum}
\usepackage[most]{tcolorbox}
\usepackage{multicol}
\definecolor{LightOcean}{RGB}{81, 147, 229 }
\definecolor{DeepOcean}{RGB}{51, 131, 229}
\newtcolorbox{mybox}[1][]{%
float,
floatplacement=t,
enhanced,
colback=LightOcean!10,
colframe=DeepOcean,
% show bounding box,
notitle,
grow to right by=\marginparsep+\marginparwidth-15mm,
toggle enlargement=evenpage,
#1
}
\begin{document}
\lipsum[1-3]
\begin{mybox}
\begin{multicols}{2}
\kant[1]
\end{multicols}
\begin{minipage}[c]{.4\linewidth}
\centering
\includegraphics[width=.8\linewidth]{example-image-a}
\end{minipage}\hfill
\begin{minipage}[c]{.55\linewidth}
\kant[1]
\end{minipage}
\end{mybox}
\lipsum[3-6]
\begin{mybox}
\kant[2]
\end{mybox}
\end{document}