我正在尝试根据内页和外页(奇数页和偶数页)更改颜色框的大小。注释的代码有效,但仅在奇数页上看起来不错。下面的代码(显然)是错误的,但它表示我想根据页面是奇数页还是偶数页来更改四个水平尺寸参数。
在此先感谢您的帮助!
\documentclass[twoside]{scrbook}
\usepackage[outer=2.25in, inner=.75in]{geometry}
\usepackage[many]{tcolorbox}
\usepackage{background}
\usepackage{lipsum}
\usepackage{ifthen,ifoddpage}
\SetBgContents{}
% this code runs
% \newtcolorbox{graybox}[1][]{#1,enhanced,width=5in,left=0cm,right=-2cm,extrude left by=1cm,extrude right by=3cm,colback=black!10!white,fontupper=\footnotesize}
% doesn't work but the sort of thing I want
\newtcolorbox{graybox}[1][]{#1,enhanced,width=5in,
\checkoddpage
\ifoddpageoroneside
left=0cm, right=-2cm, extrude left by=1cm, extrude right by=3cm,
\else
left=-1cm, right=0cm, extrude left by=2cm, extrude right by=1cm,
\fi
colback=black!10!white,fontupper=\footnotesize}
\begin{document}
\lipsum[1-3]
\begin{graybox} \lipsum[1] \end{graybox}
\lipsum[3-4]
\begin{graybox} \lipsum[1] \end{graybox}
\lipsum[5-6]
\end{document}
答案1
如图所示Tcolorbox 软件包手册在第 107 页,您可以使用if odd page
。我创建了一个代码,\newenvironment
而不是\newtcolorbox
。
\documentclass[twoside]{scrbook}
\usepackage[outer=2.25in, inner=.75in]{geometry}
\usepackage[many]{tcolorbox}
\usepackage{background}
\usepackage{lipsum}
\usepackage{ifthen,ifoddpage}
\SetBgContents{}
\newenvironment{mytcb}[1]
{
\begin{tcolorbox}[if odd page={enhanced,width=5in,left=0cm, right=-2cm, extrude left
by=1cm, extrude right by=3cm,colback=black!10!white,fontupper=\footnotesize}
{enhanced,width=5in,left=-1cm, right=0cm, extrude left by=2cm, extrude right
by=1cm,colback=black!10!white,fontupper=\footnotesize}]
#1
\end{tcolorbox}
}
\begin{document}
\lipsum[1-3]
\begin{mytcb}{\lipsum[1]} \end{mytcb}
\lipsum[1-3]
\begin{mytcb}{\lipsum[2]} \end{mytcb}
\lipsum[1-3]
\begin{mytcb}{\lipsum[3]} \end{mytcb}
\end{document}