![创建三部分页面布局](https://linux22.com/image/458877/%E5%88%9B%E5%BB%BA%E4%B8%89%E9%83%A8%E5%88%86%E9%A1%B5%E9%9D%A2%E5%B8%83%E5%B1%80.png)
我想编写一个仅由 1 张 A4 页组成的乳胶文档,该文档基于文档article
类,并具有以下布局:
在每个“框”内,我几乎需要插入任何内容。不仅仅是文本,还有图形、tikzpicture、列表环境以及脚注(不会有浮动)。
我怎样才能做到这一点?
我的方法是创建 3 minipage
,如下面的 MWE 所示,并在其中输入内容。
这种方法好吗?有没有更好的方法来实现这个页面布局?
如果是,那么我想知道为什么我Overfull \hbox
的代码中仍然会收到警告。
\documentclass[a4]{article}
\thispagestyle{empty}
\setlength\voffset{0pt} \setlength\headsep{0pt}
\setlength\headheight{0pt} \setlength\topmargin{0pt}
\setlength\parindent{0pt} \setlength\marginparsep{0pt}
\setlength\marginparwidth{0pt}
\usepackage[textheight=0.9\paperheight,showframe]{geometry}
\begin{document}
\fbox{\begin{minipage}[b][2in][c]{\dimexpr\textwidth-2\fboxsep}
\center {\Huge Content that extends 100\% of the {\ttfamily textwidth}}
\end{minipage}
}%
\fbox{\begin{minipage}[t][][c]{\dimexpr 0.65\textwidth-2\fboxsep}
\center {\Huge Content that extends 65\% of the {\ttfamily textwidth}}
\end{minipage}
}%
\fbox{\begin{minipage}[t][][c]{\dimexpr 0.35\textwidth-2\fboxsep}
\center {\Huge Content that extends 35\% of the {\ttfamily textwidth}}
\end{minipage}
}
\end{document}
答案1
我建议使用tcbposter
。您可以定义多个tcbposter
框并在里面写任何您想要的内容。在这种情况下,一列有三个框。顶部框(A
)和两个叶框B
和C
,具有特定宽度并C
向右对齐。这两个框被定义为占据顶部框和页面底部之间的所有空间。显示背景颜色以轻松理解几何形状。
\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\begin{document}
\thispagestyle{empty}
\noindent\begin{tcbposter}[%
poster = {columns=1,spacing=0pt},
boxes = {sharp corners, boxrule=0pt}
]
\posterbox[colback=red!10]{name=A, below=top}{Some text on top
\begin{enumerate}
\item One
\item Two
\end{enumerate}}
\posterbox[colback=blue!10]{name=B, span=0.65, between=A and bottom}{\lipsum[1-2]
{\par\centering\includegraphics[width=.7\linewidth]{example-image-a}\par}}
\posterbox[colback=green!10]{name=C, column*=1, span=0.35, between=A and bottom}{\lipsum[2]
{\par\centering\begin{tikzpicture}
\node[fill=red!20, minimum size=2cm, draw=blue, thick]{A};
\end{tikzpicture}\par}}
\end{tcbposter}
\end{document}
答案2
这是一个使用tabularray
包的方法
\documentclass[a4paper]{article}
\thispagestyle{empty}
\setlength\voffset{0pt} \setlength\headsep{0pt}
\setlength\headheight{0pt} \setlength\topmargin{0pt}
\setlength\parindent{0pt} \setlength\marginparsep{0pt}
\setlength\marginparwidth{0pt}
\usepackage[textheight=0.9\paperheight,showframe]{geometry}
\usepackage{tabularray}
\SetTblrInner{%
width=\textwidth,
colspec={X[0.65,c]X[0.35,c]},
cell{1}{1} = {c=2}{},
colsep=0pt,
rowsep=0pt,
rows={font=\Large},
row{1}={rowsep=20pt},
hlines,
vlines,
verb
}
\begin{document}
\begin{tblr}{}
Content that extends to 100\% of \verb!\textwidth!
\\\hline
Content that extends to 65\% of \verb!\textwidth!
&
Content that extends to 35\% of \verb!\textwidth!
\end{tblr}
\end{document}
结果