带有细空白线的可破碎框的背景颜色

带有细空白线的可破碎框的背景颜色

以下文档中的环境的目的mybox是在蓝色背景中排版一个框。该框可以通过分页符进行拆分。使用的算法与包中的算法类似boites

  • 首先将文本格式化为 vbox
  • 然后从 vbox 中提取 vbox 的每一行并将其输出到颜色框中。

该文件:

\documentclass{article}
\usepackage[paperwidth=10cm,paperheight=35mm,margin=3mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{lipsum}
\pagestyle{empty}

\newbox\boxhead
\newbox\boxtail
\newbox\boxtemp

\newdimen\dimtemp

\def\boxsplit{%
  % total height of original box
  \dimtemp\ht\boxtail
  \advance\dimtemp\dp\boxtail
  % split original box in order to retrieve its first line
  \setbox\boxhead\vsplit\boxtail to 0pt
  % fix the height of the first line
  \setbox\boxhead\vbox{\unvbox\boxhead}%
  % restore original size
  \setbox\boxtemp\vbox{\copy\boxhead\copy\boxtail}%
  \advance\dimtemp-\ht\boxtemp
  \advance\dimtemp-\dp\boxtemp
  \advance\dimtemp\dp\boxhead
  \dp\boxhead\dimtemp
}

\newenvironment{mybox}{%
  \ifhmode\par\fi
  \setbox\boxtail\vbox\bgroup
}{%
  \egroup
  {%
    \noindent
    \fboxsep 0pt
    \splittopskip 0pt
    \baselineskip 0pt
    \lineskiplimit 0pt
    \lineskip 0pt
    \vfuzz\maxdimen
    \leavevmode
    \loop
      \ifvoid\boxtail
      \else
        \boxsplit
        \colorbox{blue}{\hbox to \linewidth{\box\boxhead}\hfil}%
        \hfil
        \repeat
  }%
}

\begin{document}

\begin{mybox}
  \lipsum[68]
\end{mybox}

\end{document}

仔细观察时(下图显示在evincepdf 查看器中打开的文档),可以看到环境格式化的文本中的蓝线之间有非常细的白色规则。

样本文件

有人知道如何消灭它们吗?

我知道已经有类似的包mdframed使用不同的算法提供了此功能。但它们不适用于beamer类或多列环境,并且无法嵌套。

编辑:

正如其他人指出的那样,这似乎是 pdf 查看器的问题。我尝试了几个查看器(在 Linux 上),发现其中一些显示细白线,而其他则不显示。

优秀的 pdf 查看器:

  • qpdfview 0.4.9
  • Adobe Reader 9.5.5
  • okular 0.18.3
  • foxit reader 6.1.4.0217 (含 wine)

糟糕的 PDF 查看器:

  • evince 3.10.3
  • epdfviewer 0.1.8
  • 苏门答腊 pdf 2.4 (含 wine)
  • pdf-xchange (使用 wine)

答案1

这很可能是查看器的一个功能,但是您可以通过插入一个小的负跳跃(屏幕上可用的最小点数)来解决此问题,以便彩色框重叠。根据您的要求,这可能足够了,或者您可能希望通过增加框的高度来进行补偿,因此

代替

    \colorbox{yellow}{\box\boxhead}%

就像是

     \vskip-0.1pt
     \colorbox{yellow}{\advance\ht\boxhead0.1pt\box\boxhead}%

相关内容