如何使用项目自动填充页面高度?

如何使用项目自动填充页面高度?
\documentclass{article}
\usepackage{multido}
\usepackage{booktabs}
\usepackage{graphics}
\usepackage[a4paper,left=0.5cm,top=2cm,bottom=1cm,right=0cm]{geometry}
\usepackage{polyglossia}
\setmainlanguage[numerals=Devanagari]{bengali}
\setmainlanguage{bengali}
\setotherlanguage{english}
%\newfontfamily\englishfont[Scale=MatchLowercase]{Linux Biolinum O}
\newfontfamily\bengalifont[Script=Bengali]{Akaash}

\usepackage{pgffor}
\newcommand{\ListItem}[1]{\underline{\makebox[6cm][l]{#1}}}
\newcommand{\minicontent}{\foreach \x in {প্লেট,সসপেন(ঢাকনাসহ) \hfill সেট,বাটি/বোল,ভাত বাড়ার ছোট প্লেট,বন প্লেট,লবণ দানী,গ্লাস,হামান দিস্তা,চাকু,আলু ছেলার কাটার,মাজনী,ভিম,ক্লিপ,বালতি,জগ,মগ,দস্তরখানা,চামচ,বটি,ঘুটনি,লুস্নি,দড়ি(রং সহ),বাজারের ব্যাগ,চুলা,সিলিন্ডার}{\ListItem{\x}\par\bigskip}}
\begin{document}
\noindent
\multido{}{3}{\begin{minipage}{0.33333333333333333333333\textwidth}
জিম্মাদারঃ \\
সাথীসংখ্যাঃ\\
\minicontent
সামানার হেফাজত ঈমানের হেফাজত\\
সামানা গুছিয়ে রাখাও দাওয়াত\\
ইস্তেমায়ী সামানার হেফাজতে ইস্তেমায়ীয়াত  রক্ষা হয়\\
জামাত থেকে এসে তালিকা জমা দিয়ে দিলে ভাল হয়\\
\end{minipage}
}
\end{document}

在此处输入图片描述

for 循环中的项目数会波动。我希望始终使页面适合内容。

答案1

这是一个基于 Ti 的过度解决方案Z,更准确地说tikzpagenodes。请原谅我无法显示孟加拉语(?)字符,但我认为这些东西会对这些字体起作用。此答案附带一个宏,该宏会\SpreadVertically在页面的剩余空间中垂直分布一些项目,并且也适用于小页面。红色框架只是为了检查它是否有效。

\documentclass{article}
\usepackage{multido}
\usepackage{booktabs}
\usepackage[a4paper,left=0.5cm,top=2cm,bottom=1cm,right=0cm]{geometry}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\newcommand{\SpreadVertically}[2][]{%
\noindent\tikz[remember picture,baseline=(XL.base)]{\node(XL){\strut};}
\global\let\myw=\linewidth
\begin{tikzpicture}[overlay,remember picture]
\path let \p1=($(XL.north)-(current page text area.south)$) in 
\pgfextra{\typeout{\y1}\xdef\myh{\y1}};
\foreach \X [count=\Z] in {#2}
{\xdef\numtot{\Z}}
\typeout{\numtot}
\foreach \X [count=\Z] in {#2}
{\pgfmathsetmacro{\myy}{-(\Z-((\numtot-\Z)/\numtot))*\myh/\numtot-((\numtot-\Z)/\numtot)*height("\X")}
\typeout{\myy:\X}
\node[anchor=south west,text width=\myw] at ([yshift=\myy*1pt]XL.north){\ListItem{\X}};}
\end{tikzpicture}
}
\newcommand{\ListItem}[1]{\underline{\makebox[6cm][l]{#1}}}
\newcommand{\minicontent}{\foreach \x in {AAA,BBB \hfill
CCC,DDD,EEE,FFF,GGG,HHH}{\ListItem{\x}\\\vfill}}
\begin{document}
\noindent
\multido{}{3}{\begin{minipage}{0.33333333333333333333333\textwidth}
\SpreadVertically{AAA,BBB \hfill CCC,DDD,EEE,FFF,GGG,HHH}
\end{minipage}
}
% just for verification
\begin{tikzpicture}[overlay,remember picture]
\draw[red] (current page text area.south west) rectangle 
(current page text area.north east);
\end{tikzpicture}
\end{document}

在此处输入图片描述

我想您可能也会从页面右侧的小边框中受益,但这当然取决于您。

相关内容