裁剪、(新)几何和 iftoggle 之间的干扰

裁剪、(新)几何和 iftoggle 之间的干扰

要将裁剪后的页面居中,\newgeometry可以添加

\makeatletter\CROP@center\makeatother

每次几何形状改变后(https://tex.stackexchange.com/a/118824/61658)。

使用该\etoolbox包,可以定义一个开关来通过以下方式打开或关闭裁剪

\usepackage{etoolbox}
\newtoggle{crop}
\settoggle{crop}{true}

结合

\iftoggle{crop}{...}{}.

当我执行此操作时(参见下面的源代码),出现以下错误:

未定义控制序列。<argument> \makeatletter \CROP @center \makeatother

移除切换开关即可修复该错误。

以下是 MWE:

\documentclass[
    paper=a4,
    DIV=10,
    twoside=true,
    titlepage=on
]{scrbook}

\usepackage[
    pass,
]{geometry}

\usepackage{etoolbox}
    \newtoggle{crop}
    \settoggle{crop}{true}

\iftoggle{crop}{
    \usepackage[
        width=21.6truecm, height=30.3truecm,
        cross, axes,
        pdftex,
        center,
        noinfo
    ]{crop}
}

\usepackage{blindtext}


\begin{document}

% Standard page (right)
\Blindtext[2]

% Centered page (left)
\newgeometry{centering}
%%% TODO Delete following line to fix error.
\iftoggle{crop}{
    \makeatletter \CROP@center \makeatother
%%% TODO Delete following line to fix error.
}
\Blindtext[2]
\restoregeometry
%%% TODO Delete following line to fix error.
\iftoggle{crop}{
    \makeatletter \CROP@center \makeatother
%%% TODO Delete following line to fix error.
}

% Standard page (right)
\Blindtext[2]

% Standard page (left)
\newpage
\Blindtext[2]

% Standard page (right)
\newpage
\Blindtext[2]

\end{document}

答案1

  • \iftoggle參數。

    \iftogle{<toggle>}{<true>}{<false>}
    

    你错过了这个<false>案例每个使用时间(也在序言中)

  • \makeatletter\makeatother 外部条件的。一旦读取(并标记)了它的参数,就不@能再\CROP@center更改了。这就是为什么更改必须在读取参数之前发生的原因。

    \makeatletter
      \iftoggle{crop}
        {\CROP@center}
        {}
    \makeatother
    

相关内容