我想使用来自pdfcol易碎盒子的包装。
\pdfcolSwitchStack
切换堆栈,但使用黑色作为初始颜色,而不是我的应用程序所需的当前颜色。
有\pdfcolSetCurrentColor
哪个用当前颜色替换堆栈最顶部的条目。不幸的是,它似乎还实际设置了当前颜色(再次)?至少,它以某种方式干扰了垂直列表(添加了什么内容?)。在几种情况下,\pdfcolSetCurrentColor
使用时会添加/更改垂直空间。
我正在寻找一种方法来切换颜色堆栈,以当前颜色作为最顶层的条目没有再次设置此颜色或干扰垂直列表。
以下 MWE 显示了该问题。
版本 A(未使用\pdfcolSetCurrentColor
):
\documentclass{article}
\usepackage{xcolor,lipsum}
\usepackage{pdfcol,parskip}
\pdfcolInitStack{mycolstack}
\newbox\mwebox
\newbox\firstbox
\makeatletter
\newcommand{\splitexample}[1]%
{%
\setbox\mwebox\vbox%
{%
\pdfcolSwitchStack{mycolstack}%
%\pdfcolSetCurrentColor%------------------------------------------
\color@begingroup%
\hsize=11cm\relax%
#1%
\color@endgroup%
}%
\setbox\firstbox\vsplit\mwebox to 7cm%
\fbox%
{%
\color@begingroup%
\pdfcolSetCurrent{mycolstack}%
\box\firstbox%
\pdfcolSetCurrent{}%
\color@endgroup%
}
\par inter text \par
\fbox%
{%
\color@begingroup%
\pdfcolSetCurrent{mycolstack}%
\box\mwebox%
\pdfcolSetCurrent{}%
\color@endgroup%
}
}%
\makeatother
\begin{document}
\color{blue}
before text
\splitexample{%
\begin{minipage}{9cm}
\begin{enumerate}
\item abc
\end{enumerate}
\end{minipage}\par
\lipsum[1]
{\itshape\bfseries\color{red}
\lipsum[2]
}
\lipsum[3]
}
after text
\end{document}
此处,主色调为蓝色。颜色堆栈mycolstack
切换为黑色。
版本 B(使用\pdfcolSetCurrentColor
):
\documentclass{article}
\usepackage{xcolor,lipsum}
\usepackage{pdfcol,parskip}
\pdfcolInitStack{mycolstack}
\newbox\mwebox
\newbox\firstbox
\makeatletter
\newcommand{\splitexample}[1]%
{%
\setbox\mwebox\vbox%
{%
\pdfcolSwitchStack{mycolstack}%
\pdfcolSetCurrentColor%------------------------------------------
\color@begingroup%
\hsize=11cm\relax%
#1%
\color@endgroup%
}%
\setbox\firstbox\vsplit\mwebox to 7cm%
\fbox%
{%
\color@begingroup%
\pdfcolSetCurrent{mycolstack}%
\box\firstbox%
\pdfcolSetCurrent{}%
\color@endgroup%
}
\par inter text \par
\fbox%
{%
\color@begingroup%
\pdfcolSetCurrent{mycolstack}%
\box\mwebox%
\pdfcolSetCurrent{}%
\color@endgroup%
}
}%
\makeatother
\begin{document}
\color{blue}
before text
\splitexample{%
\begin{minipage}{9cm}
\begin{enumerate}
\item abc
\end{enumerate}
\end{minipage}\par
\lipsum[1]
{\itshape\bfseries\color{red}
\lipsum[2]
}
\lipsum[3]
}
after text
\end{document}
现在,颜色堆栈mycolstack
正如预期的那样接管了主要的蓝色。
但是,请注意1. abc
插入后垂直位置发生了变化\pdfcolSetCurrentColor
。
有没有办法在不改变垂直列表的情况下使用颜色堆栈的当前颜色?