如何调整文档中间的文本宽度和文本高度以适应纸张大小?(以及页眉和页脚的“长度”)

如何调整文档中间的文本宽度和文本高度以适应纸张大小?(以及页眉和页脚的“长度”)

我想在文档中间将文本宽度和文本高度调整为纸张大小,就这么简单。

我打算更改一些页面的纸张大小,但我需要页眉、页脚和文本都调整(如果自动则更好)到纸张大小。

我一直在研究几何包,但无法找到可以帮助我的选项。

梅威瑟:

\documentclass{article}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{fancyhdr}
\begin{document}

\thispagestyle{fancy}
\newlength{\classpageheight} \setlength{\classpageheight}{\pdfpageheight}
\newlength{\classpagewidth} \setlength{\classpagewidth}{\pdfpagewidth}

\lipsum[1-6]
\newpage
\thispagestyle{fancy}
\eject \pdfpagewidth=17in \pdfpageheight=18in
\lipsum[1-6]

\eject \pdfpagewidth=\classpagewidth \pdfpageheight=\classpageheight
\newpage
\thispagestyle{fancy}
\lipsum[1-6]

\end{document}

MWE 编译于此处

答案1

这是我的解决方案,欢迎提出意见

\documentclass{article}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{fancyhdr}

\def\vcoef#1{#1=\dimexpr #1*\pdfpageheight/\paperheight\relax}
\def\hcoef#1{#1=\dimexpr #1*\pdfpagewidth/\paperwidth\relax}

\makeatletter 
\def\adjustpagedim#1#2{%
\newpage
\pdfpagewidth=#1 \pdfpageheight=#2
\hcoef\textwidth
\vcoef\textheight
\vsize=\textheight
\@colroom=\textheight
\@colht=\textheight
\columnwidth=\textwidth
\if@twocolumn%
   \advance\columnwidth-\columnsep
   \divide\columnwidth\tw@%
   \@firstcolumntrue%
\fi%
\hsize=\columnwidth
\linewidth=\hsize
\hcoef\evensidemargin
\hcoef\oddsidemargin
\vcoef\topmargin
\vcoef\headheight
\vcoef\headsep
\vcoef\footskip
\hcoef\marginparwidth
\hcoef\marginparsep
\headwidth=\textwidth
% this is important but does nothing here
\paperwidth=\pdfpagewidth
\paperheight=\pdfpageheight}
\makeatother
\begin{document}

\thispagestyle{fancy}
%----->I change something here
\newlength{\classpageheight} 
\setlength{\classpageheight}{\paperheight}
\newlength{\classpagewidth} 
\setlength{\classpagewidth}{\paperwidth}

\lipsum[1-6]

\adjustpagedim{17in}{18in}
\thispagestyle{fancy}

\lipsum[1-6]

\adjustpagedim{\classpagewidth}{\classpageheight}
\thispagestyle{fancy}

\lipsum[1-6]

\end{document}

相关内容