乳胶多列环境中的文本超出边距

乳胶多列环境中的文本超出边距

我正在为多个环境设置边距配置。例如,firstenvironment使用 设置边距\setlength,然后我在新环境中使用 multicols 包。问题是文本似乎不尊重下边距在第一页中,环境刚刚被使用,但下一页中的文本确实尊重边距。当我创建具有自己的边距配置的第二个环境时,也会发生同样的情况。不确定为什么环境开始时边距没有立即激活。欢迎提出任何建议,谢谢!

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage{showframe} % show the frame margins
\usepackage{multicol}

\newenvironment{firstenvironment}{
    \setlength{\hoffset}{0mm}
    \setlength{\voffset}{0mm}
    \setlength{\headsep}{20pt}
    \setlength{\headheight}{4em}
    \setlength{\textheight}{6in}
    \setlength{\footskip}{10mm}}{}

\newenvironment{secondenvironment}{
    \setlength{\hoffset}{0mm}
    \setlength{\voffset}{0mm}
    \setlength{\headsep}{5pt}
    \setlength{\headheight}{2em}
    \setlength{\textheight}{5in}
    \setlength{\footskip}{20mm}}{}

\begin{document}
\begin{firstenvironment}
\setlength\columnsep{30pt}
\begin{multicols}{2}
        {\Large\bf 1ST LIPSUM}\\
        \lipsum[1-10]
    \end{multicols}
\end{firstenvironment}

\newpage

\begin{secondenvironment}
\begin{multicols}{2}
    {\Large\bf 2ND LIPSUM}\\
    \lipsum[1-10]
\end{multicols}
\end{secondenvironment}

\end{document}

在此处输入图片描述

答案1

我只是想知道如何修复它。我利用了包更改页面。这个想法是在这个命令的参数中包含新利润旧边距。无需使用环境来设置具有不同边距的页面(其中考虑了页眉、页脚和边距注释),但是为了保持原始帖子的结构相同,我提供了一个可以轻松比较的解决方案。

\documentclass[12pt]{article}
\usepackage[paperheight=11in,paperwidth=8.5in,includeheadfoot]{geometry}
\usepackage{lipsum}
\usepackage{showframe} 
\usepackage{multicol}
\usepackage{changepage}
\usepackage{calc}

\newenvironment{firstenvironment}{}{}
\newenvironment{secondenvironment}{}{}

\begin{document}

\setlength{\textheight}{7in}
\setlength{\headsep}{20pt}
\setlength{\headheight}{4em}
\setlength{\footskip}{10mm}

\begin{firstenvironment}
    \begin{multicols}{2}
        {\Large 1ST LIPSUM}\\
        \lipsum[1-10]
    \end{multicols}
\end{firstenvironment}

\newpage
\changepage{-2in}{}{}{}{}{}{2em-4em}{5pt-20pt}{20mm-10mm}
%\changepage{textheight}{textwidth}{evensidemargin}{oddsidemargin}{columnsep}{topmargin}{headheight}{headsep}{footskip}

\begin{secondenvironment}
    \begin{multicols}{2}
        {\Large 2ND LIPSUM}\\
        \lipsum[1-10]
    \end{multicols}
\end{secondenvironment}

\restoregeometry

\begin{firstenvironment}
    \begin{multicols}{2}
        {\Large 3rd LIPSUM}\\
        \lipsum[1-10]
    \end{multicols}
\end{firstenvironment}

\end{document}
  • 该命令\changepage考虑以下参数: \changepage{textheight}{textwidth}{evensidemargin}{oddsidemargin}{columnsep}{topmargin}{headheight}{headsep}{footskip}
  • 该命令下留空的边距\changepage将视为文章类。如果你想在设置新边距后恢复边距,只需使用命令\restoregeometry

在此处输入图片描述

相关内容