参见此 MWE
\documentclass{article}
\usepackage{lipsum}
\usepackage{tcolorbox}
\usepackage{paracol}
\tcbuselibrary{breakable}
\begin{document}
\begin{paracol}{2}
\begin{rightcolumn}
\lipsum[1-2]
\begin{tcolorbox}[breakable]
\lipsum[1]
\end{tcolorbox}
\end{rightcolumn}
\begin{leftcolumn}
\lipsum
\end{leftcolumn}
\end{paracol}
\end{document}
使用 XeLaTeX 编译,右侧的可破坏框导致左侧文本发生位移
我们怎样才能解决这个问题?
答案1
左侧的文本没有位移,而是用白色书写。原因是 vsplitting 导致的颜色堆栈问题。pdflatex
并且xelatex
似乎有不同的颜色实现。
tcolorbox
我根据最近的版本改变了文本颜色的放置位置3.12 (2014/07/29)
。
此版本已使用 MiKTeX 进行了测试。以下测试文件使用不同的引擎编译时没有出现问题:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tcolorbox}
\usepackage{paracol}
\tcbuselibrary{breakable,skins}
\begin{document}
\begin{paracol}{2}
\begin{rightcolumn}
\lipsum[1-2]
\begin{tcolorbox}[breakable,enhanced jigsaw,
size=small,colback=red!10!white,colupper=blue!50!black,
vfill before first,height fixed for=middle,
pad at break=1mm]
\lipsum[1]
\end{tcolorbox}
\end{rightcolumn}
\begin{leftcolumn}
\lipsum
\end{leftcolumn}
\end{paracol}
\end{document}
我使用三个引擎进行编译:
这是 XeTeX,版本 3.1415926-2.5-0.9999.3(MiKTeX 2.9)(预加载格式=xelatex 2014.6.23)
和
这是 pdfTeX,版本 3.1415926-2.5-1.40.14(MiKTeX 2.9)(预加载格式=pdflatex 2013.6.27)
和
这是 LuaTeX,版本 beta-0.76.0-2013062820 (rev 4627) (format=lualatex 2013.12.20)
这三个都产生了相同的输出:
paracol
请注意,如果在框文本中写入颜色命令,则与 结合使用仍然可能引发颜色错误。这些错误在tcolorbox
和mdframed
中都出现。如果发生这种情况,似乎只需\color{.}
在颜色消失或设置错误的列内放置 就足够了。这在我的实验中也适用于tcolorbox
和mdframed
。如果没有在框文本中写入颜色命令,我发现使用 MiKTeX 的开发版本没有任何问题。
答案2
我们mdframed
可以放置一个可破坏的框,而不会导致左栏文本发生偏移
\usepackage{lipsum}
\usepackage{mdframed}
\usepackage{paracol}
\usepackage{xcolor}
\begin{document}
\begin{paracol}{2}
\begin{rightcolumn}
\lipsum[1-2]
\begin{mdframed}[backgroundcolor=red!10]
\lipsum[1]
\end{mdframed}
\end{rightcolumn}
\begin{leftcolumn}
\lipsum
\end{leftcolumn}
\end{paracol}
\end{document}
我们得到了