双面模式下文章类的边距长度问题

双面模式下文章类的边距长度问题

简单来说,解决我的问题的方法是,对于第一部分之前的所有内容,奇数边距必须与偶数边距交换,反之亦然。在第一部分,一切都必须正常。

问题是我们无法多次修改evensidemargin和oddsidemargin。

我在启用了双面选项的文章类中。(文档将被装订。)我的奇数边距与偶数边距不一样。

要求正文的第一页以 1 为编号;我不需要对标题页、摘要、目录等进行编号。我更喜欢将该部分的第一页放在左侧。在 MWE 中,页面从它们必须的位置开始,即左侧和右侧。

这是我的大纲细节,

\documentclass[twoside,a4paper, 11pt]{article}

 \newcommand{\emptypage}{\clearpage\null\thispagestyle{empty}\clearpage}

\usepackage{lipsum}

    \setlength{\paperheight}{297mm}
    \setlength{\paperwidth}{210mm}
    \setlength{\hoffset}{-1in}
    \setlength{\voffset}{-1in}
    \setlength{\textheight}{252mm}
    \setlength{\textwidth}{150mm}
    \setlength{\evensidemargin}{40mm}
    \setlength{\oddsidemargin}{25mm}
    \setlength{\topmargin}{15mm}
    \setlength{\headheight}{4mm}
    \setlength{\headsep}{6mm}
    \setlength{\footskip}{9mm}
    \setlength{\marginparsep}{5mm}
    \setlength{\marginparwidth}{25mm}
    \setlength{\marginparpush}{0mm}
    %\addtolength{\textheight}{0in}
    %\addtolength{\textwidth}{0in}
    \setlength{\parindent}{0ex}
    \setlength{\parskip}{1ex}
    \renewcommand{\baselinestretch}{1.11}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%é

\begin{document}

\pagenumbering{roman}

\begin{titlepage}

TiTle

\end{titlepage}



\emptypage

\begin{abstract}

Summary
\end{abstract}

\clearpage

\begin{abstract}

Summary number 2
\end{abstract}

\emptypage

\tableofcontents


\clearpage
%\setcounter{page}{1}
\pagenumbering{arabic}
\normalfont
\normalsize

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]
\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]

\section{first section}
\lipsum[11-22]






\end{document}

答案1

我认为这个包geometry 有点过头了(我也不想加载太多包)。我设法用

\advance\hoffset by the difference between \evensidemargin and \oddsidemargin

然而,目录确实是一场噩梦,因为它横跨多页。当然,我无法访问该机制,即使我可以应用上述移位,它仍然是一般性的,右侧的页面没有移位正确的量。

我想知道 patch 命令是否etoolbox有用 如何判断我们是在奇数页还是偶数页ifthenelse包,但我没有想出解决方案,因为我对 LaTeX 的了解非常有限。可以geometry轻松处理 ToC 吗?

好的,使用包确实ifoddpage可以工作,但是我发现这种 hack 非常丑陋,因为它适用于整个文档,而不仅仅是目录)

    \newlength{\diffmargins}
    \setlength\diffmargins{\evensidemargin}
    \addtolength{\diffmargins}{-\oddsidemargin}

 \newcommand{\emptypage}{\clearpage\null\thispagestyle{empty}\clearpage}

\usepackage{ifoddpage}
\makeatletter
\renewcommand\tableofcontents{%
\thispagestyle{empty}%
    \section*{\contentsname
        \@mkboth{}
                {}}%
%    \small%
\checkoddpage
\ifoddpage
\advance\hoffset by \diffmargins
\else
\advance\hoffset by -\diffmargins
\fi
\@starttoc{toc}%
\thispagestyle{empty}%
\checkoddpage
\ifoddpage
\advance\hoffset by 2\diffmargins
\else
\advance\hoffset by -\diffmargins
\fi
}
\makeatother

然后在文档中

\tableofcontents

\emptypage
\emptypage

\advance\hoffset by -\diffmargins

\pagenumbering{arabic}
\normalfont
\normalsize

我相信 \newgeometry 只会在目录中重新定义时使用,而不会在外面使用;所以它会更简单。

相关内容