使条形码“脚”达到文本基线

使条形码“脚”达到文本基线

具有以下 MWE:

\documentclass{minimal}
\usepackage{pst-barcode}
\begin{document}
\begin{pspicture}(3.5,3)
    \psbarcode{3-88309-455}{includetext}{isbn}
\end{pspicture}
\end{document}

我得到这样的条形码:

所以,这有点烦人,因为我希望防护栏(左、中、右)达到底部数字的基线或像这样越过:

那么,是否有一个选项可以\pstbarcode强制保护线比默认行为更长?

答案1

生成条形码图像的 postscript 代码位于pst-barcode.pro中的 TEXMF 树中的文件中/dvips/pst-barcode。您可以将此文件复制到文档目录中,然后pst-barcode包将加载本地文件而不是系统文件。

修改编码器中的以下几行ean13(在我的版本中从第 1165 行开始pst-barcode):

includetext {
        /bhs [height height 12{height .075 sub}repeat height height 12{height .075 sub}repeat height height] def
        /bbs [0 0 12{.075}repeat 0 0 12{.075}repeat 0 0] def
    }

改为:

includetext {
        /bhs [2{height 0.1 add}repeat 12{height .075 sub}repeat 2{height 0.1 add}repeat 12{height .075 sub}repeat 2{height 0.1 add}repeat] def
        /bbs [-0.1 -0.1 12{.075}repeat -0.1 -0.1 12{.075}repeat -0.1 -0.1] def
    }

确保修改了正确的行,其他编码器有很多类似的行,但这是编码器ean13使用的行isbn

解释(请注意,这可能是错误的,我根本不了解 Postscript):该bhs线控制条的长度。它从两个长度为 的条开始height,然后是十二个长度为 的条height-0.075,然后是两个正常条,等等。第二条线控制线的基线,前两个为 0,接下来的十二个为 0.075,等等。因此,您需要做的就是增加长条的长度(使用指令0.1 add)并降低基线(在示例中为 -0.1)。

结果:

在此处输入图片描述

可能可以动态修补代码(类似于etoolbox/ xpatch),而不是复制和修改文件,但我不知道如何做到这一点。

相关内容