根据页面侧改变相同的tcolorbox规则的侧

根据页面侧改变相同的tcolorbox规则的侧

我正在努力这个盒子通过将规则放在奇数页的右侧,偶数页的左侧,看起来会更好一些。以下是示例:

\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}
\usepackage{ifoddpage}

\newenvironment{boxWarning}[1]{%
  \checkoddpage
  \ifoddpage
    \def\myrule {rightrule}
    \def\posiz {east}
  \else
    \def\myrule {leftrule}
    \def\posiz {west}
  \fi
    \begin{tcolorbox}[breakable,enhanced,arc=0mm,colback=gray!5,colframe=gray, \myrule=12mm,
    overlay={%
       \node[anchor=north \posiz,outer sep=2pt] at (frame.north \posiz) {%
           \includegraphics[width=8mm]{img/attenzione.png}%
       };%
    }]%
    #1%
  }%
{\end{tcolorbox}}

\usepackage{lipsum}
\begin{document}
\begin{boxWarning}
\lipsum[2]
\end{boxWarning}
\newpage
\begin{boxWarning}
\lipsum
\end{boxWarning}
\end{document}

如您所见,当框显示在两个页面上时,就会出现问题:侧边规则在两个页面上都保留在同一侧。另一个“微调”可能是不再显示第二页上的图标。 这是图标

答案1

我决定在问题被问到两天前就回答问题... ;-) tcolorbox 2.33 (2013 年 4 月 7 日) 具有左右切换功能,允许在偶数页上切换左右规则。您可以在 v2.33 的第 22 页找到此功能 :-) 请注意changepage提供偶数/奇数决策规则的包的用法以及\ifoddpage用于覆盖的宏。对于您的示例,您可以像下面这样使用它:

\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\usepackage{changepage}

\newtcolorbox{boxWarning}{enhanced,breakable,
  check odd page,toggle left and right,arc=0mm,
  colback=gray!5,colframe=gray,rightrule=12mm,
  overlay unbroken and first={%
    \ifoddpage\coordinate (X) at ([xshift=-6mm,yshift=-6mm]frame.north east);
         \else\coordinate (X) at ([xshift=6mm,yshift=-6mm]frame.north west);\fi
    \node at (X) {\includegraphics[width=8mm]{attenzione.png}};}
  }

\usepackage{lipsum}
\begin{document}
\begin{boxWarning}
\lipsum[2]
\end{boxWarning}
\newpage
\begin{boxWarning}
\lipsum
\end{boxWarning}
\end{document}

在此处输入图片描述

相关内容