计算字母坐标(排字机隐写术)

计算字母坐标(排字机隐写术)

有没有办法找出格式化文本中字母的坐标?

假设编译后的文本有三列,字母间距相等。那么我要找的是一个命令,它根据字母的(行、列)坐标决定是否以粗体打印字母。


如果我解释一下它的用途,事情可能就会变得更清楚。它是某种叠加的 ASCII 图像,隐藏在文本中。阅读文本时,您可能会注意到有些字符以粗体打印,有些则不是,这似乎是随机的。

当从远处看文本时,您会看到全局。

一个例子:在此处输入图片描述

点代表常规文本,而“s”则代表粗体字符。

主要的挑战是它需要是多列文本,这使得更难分辨哪些字符需要以粗体打印。


我打算使用它来dvitype满足我的需求。但有人知道吗,例如

131: setchar72 h:=1310720+491521=1802241, hh:=114

可能编码?我所知道的是,根据 ASCII72表示哪个是tex 文件的第一个字母HHello World!

Hello World!
\bye

但其他数字的含义是什么?

答案1

使用KJO的想法并简化输入:

您可以使用一个环境,steganography使两个字符处于活动状态,并定义这两个字符来打印一个点和一个粗体点。

这是一个非常粗略的演示方法(使用.#KJO 示例中的一样):

在此处输入图片描述

\documentclass{article}

\makeatletter
\let\stegchar=.
\newlength\stegVspace  \stegVspace=4\p@
\newlength\stegHspace  \stegHspace=3\p@
\newenvironment{steganography}{%
  \catcode`\.=\active
  \catcode`\#=\active
  \obeylines
  \baselineskip=\stegVspace
  \@steganography
}{}
\begingroup
\catcode`\.=\active
\catcode`\#=\active
\gdef\@steganography{%
  \def.{\leavevmode\hb@xt@\stegHspace{\hss\stegchar\hss}}%
  \def#{\leavevmode\hb@xt@\stegHspace{\hss\textbf{\stegchar}\hss}}%
}
\endgroup
\makeatother

\begin{document}
\pagestyle{empty}

\begin{steganography}
  .##......##..........##..##................##.......##..................##.......##
  .##......##..........##..##................##.......##..................##.......##
  .##......##..#####...##..##..######........##...#...##..######..######..##.......##
  .##########.##...##..##..##.##....##.......##..###..##.##....##..##..#..##...######
  .##......##.#######..##..##.##....##.......##.##.##.##.##....##..##.....##..##...##
  .##......##.##.......##..##.##....##.......####...####.##....##..##.....##..##...##
  .##......##..######.###.###..######........##.......##..######..###.....###..######
\end{steganography}

\end{document}

答案2

这不是一个答案,而只是一种可能方法的概念证明形式?
正如本网站上的一些“有趣”答案所示,肯定还有很多其他潜在的答案。

使用一些输入作为覆盖(在本例中是 figlet 字体),我们可以以此作为输入开始

  .##......##..........##..##................##.......##..................##.......##
  .##......##..........##..##................##.......##..................##.......##
  .##......##..#####...##..##..######........##...#...##..######..######..##.......##
  .##########.##...##..##..##.##....##.......##..###..##.##....##..##..#..##...######
  .##......##.#######..##..##.##....##.......##.##.##.##.##....##..##.....##..##...##
  .##......##.##.......##..##.##....##.......####...####.##....##..##.....##..##...##
  .##......##..######.###.###..######........##.......##..######..###.....###..######  

然后像这样替换#就非常简单了

  .\textbf.\textbf.......\textbf.\textbf...........\textbf.\textbf...\textbf.\textbf.................\textbf.\textbf........\textbf.\textbf...................\textbf.\textbf........\textbf.\textbf.
  .\textbf.\textbf.......\textbf.\textbf...........\textbf.\textbf...\textbf.\textbf.................\textbf.\textbf........\textbf.\textbf...................\textbf.\textbf........\textbf.\textbf.
  .\textbf.\textbf.......\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf....\textbf.\textbf...\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.........\textbf.\textbf....\textbf....\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf...\textbf.\textbf........\textbf.\textbf.
  .\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.\textbf..\textbf.\textbf....\textbf.\textbf...\textbf.\textbf...\textbf.\textbf..\textbf.\textbf.....\textbf.\textbf........\textbf.\textbf...\textbf.\textbf.\textbf...\textbf.\textbf..\textbf.\textbf.....\textbf.\textbf...\textbf.\textbf...\textbf...\textbf.\textbf....\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.
  .\textbf.\textbf.......\textbf.\textbf..\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.\textbf...\textbf.\textbf...\textbf.\textbf..\textbf.\textbf.....\textbf.\textbf........\textbf.\textbf..\textbf.\textbf..\textbf.\textbf..\textbf.\textbf..\textbf.\textbf.....\textbf.\textbf...\textbf.\textbf......\textbf.\textbf...\textbf.\textbf....\textbf.\textbf.
  .\textbf.\textbf.......\textbf.\textbf..\textbf.\textbf........\textbf.\textbf...\textbf.\textbf..\textbf.\textbf.....\textbf.\textbf........\textbf.\textbf.\textbf.\textbf....\textbf.\textbf.\textbf.\textbf..\textbf.\textbf.....\textbf.\textbf...\textbf.\textbf......\textbf.\textbf...\textbf.\textbf....\textbf.\textbf.
  .\textbf.\textbf.......\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf..\textbf.\textbf.\textbf..\textbf.\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.........\textbf.\textbf........\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf...\textbf.\textbf.\textbf......\textbf.\textbf.\textbf...\textbf.\textbf.\textbf.\textbf.\textbf.\textbf.

也许与 \usepackage{easyformat} 一起使用

[编辑]

我已经删除了上述糟糕的结果,因为 Phelype 现在已经对这个想法进行了更进一步的阐释。

此时我不确定这在什么情况下会起作用,因为如果我按照我最初看到的方式应用它,那么它需要比简单的“粗体”更大的强调才能起作用。

参见 wH在日恩博定义译文ay 包含 b低的 ?

在此处输入图片描述在此处输入图片描述

相关内容