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

Text out of margin in latex multicols environment

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

PD。使用 Xelatex

编译的 PDF
\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}

照片、文字超出下边距:image

我只是想知道如何修复它。我使用了包 changepage。这个想法是在这个命令的参数中包含 new marginsold margins 之间的差异。不需要使用环境来设置不同边距的页面(考虑页眉、页脚和边注),但要保持与原始结构相同post,我提供了一个可以轻松比较的解决方案。

\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 命令下留空的页边距考虑文章 class 的默认页边距。如果你想在设置新的边距后恢复,只需使用命令 \restoregeometry