LaTeX 故事/神话:包裹里有由作者姓名叠加字母组成的线条?

LaTeX 故事/神话:包裹里有由作者姓名叠加字母组成的线条?

我正在尝试追踪并验证一个我之前读过或听到过的有趣的 LaTeX 轶事:有一些图形/图表包和一些常用的命令,其中输出中看起来像一行的东西实际上并没有实现为一行,而是包作者姓名(或可能是包名称)字母的许多叠加微小副本,因此使用该包的每个文档都包含一个隐藏的“签名”。

我最初的模糊记忆是Paul Taylor 的diagrams包裹,它确实有一些让人联想到这个的功能——它包含一个定时炸弹(如果您使用的版本超过几年,它会抛出一个错误)并给出归属要求作为使用条件。但搜索了一下,我找不到这个特定故事的来源,无论是diagrams或其他任何包。还有人能把这个故事放上来吗?

答案1

最新版本于diagrams.sty2019 年 12 月发布,不再经过混淆处理。但它仍然包含定时炸弹。

阅读代码后,我们看到(第 4045-4099 行)一个宏\the@signature,它根据与“PAUL”的摩尔斯电码相对应的段(加上“TAYLOR”的附加代码,已注释掉)构建了一条水平规则。

%=======================================================================%
%                                                                       %
%       (8A) SIGNATURE                                                 %
%                                                                       %
%=======================================================================%
%
% Now test whether we have enough space to put our Morse Code signature on the
% stretching horizontal. Only do it in diagrams, where both fillers are "-",
% there is no middle, there is enough space and the rule breadth is positive.
% Do it on the 10th and then every 20th subsequent such occasion.
%
\def\test@signature{%
\ifincommdiag
   \ifx\@filla\@fillh
      \ifx\@fillb\@fillh
         \ifdim\dimen3>\z@\else
            \ifdim\dimen2>93\pixel@size % corrected 24.6.94 for P
            \ifdim\dimen2>18\p@ % added 24.6.94 for high resolution
               \ifdim\intended@breadth>\z@
                  \count@\signature@countdown
                  \advance\count@\m@ne
                  \ifnum\count@<\z@
                     \count@ 20%
                     \let\@signature\the@signature
                  \fi
                  \xdef\signature@countdown{\the\count@}%
\fi\fi\fi\fi\fi\fi\fi
%\showthe\skip2 %\expandafter\message{\signature@countdown}%
}%
% Dots, dashes and spaces are 2, 6 and 2 pixels wide, 1 pixel high.
% However at over 596 dpi resolution this unit is increased:
% \dimen2= 3pixels=0.17pt at 1270dpi, and 6pixels=.17pt at 2540dpi
\def\@morse#1{\vrule\horizhtdp width#1\dimen@\kern2\dimen@}%
%
% Paul Taylor =  .--. .- ..- .-..   - .- -.-- .-.. --- .-.
% Code for "P" corrected 24.6.94 (Ralph Loader)
\def\the@signature{\rlap{%
  \dimen@\pixel@size\at@least\dimen@{.182\p@}\pixel@round\dimen@
   \advance\rule@height\dimen@
   \@morse0\@morse0%                                       4
   \@morse2\@morse6\@morse6\@morse2\@morse0\@morse0%    P 28
   \@morse2\@morse6\@morse0\@morse0%                    A 16
   \@morse2\@morse2\@morse6\@morse0\@morse0%            U 20
   \@morse2\@morse6\@morse2\@morse2\@morse0\@morse0%    L 24
%   \@morse0\@morse0%                           space      4
%   \@morse6\@morse0\@morse0%                           T 12
%   \@morse2\@morse6\@morse0\@morse0%                   A 16
%   \@morse6\@morse2\@morse6\@morse6\@morse0\@morse0%   Y 32
%   \@morse2\@morse6\@morse2\@morse2\@morse0\@morse0%   L 24
%   \@morse6\@morse6\@morse6\@morse0\@morse0%           O 28
%   \@morse2\@morse6\@morse2\@morse0\@morse0%%          R 20
%   \@morse0\@morse0%                           space      4
   }}%
\def\signature@countdown{10}%
\def\@signature{}%

我不确定如何触发签名的生成。\test@signature宏是在 中调用的\calc@horiz

相关内容