LaTeX logo 秘密

作者: 千羽之城88 | 来源:发表于2018-09-19 04:06 被阅读1次

今天突然想用 Plain \TeX 实现 \LaTeX 这个 logo,我们先看看 logo:

\documentclass{article}
\begin{document}
\LaTeX
\end{document}

编译就得到:

LaTeX logo

为了弄清楚logo用了什么字体,我们先安装 poppler:

brew install poppler

然后使用 pdffonts 检查字体使用的情况:

pdffonts logo.pdf
------------------------------------
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
TYTLXK+CMR10                         Type 1            Builtin          yes yes no       4  0
CKDUVJ+CMR7                          Type 1            Builtin          yes yes no       5  0

可以看到使用了CMR10CMR7 两种字体。这是 Computer Modern Roman 字体,默认安装的 texlive 都有,是 knuth 创造的字体。我们进去 source2e 看看 logo 的定义:

\DeclareRobustCommand{\LaTeX}{L\kern-.36em% 
    {\sbox\z@ T% 
        \vbox to\ht\z@{\hbox{\check@mathfonts 
            \fontsize\sf@size\z@ 
            \math@fontsfalse\selectfont 
        A}% 
    \vss}% 1
    }% 1
    \kern-.15em% 1
\TeX}

其中 \fontsize\sf@size\z@ 定义了 logo 中 A 的字体大小,\vbox to\ht\@ 定义了一个纵向的盒子,查阅 source2e 可知是 7 号字体,所以我们就可以根据定义,在 plain \TeX 中实现 logo:

\font\Tiny=cmr7 at 7pt
\def\LaTeX{L\kern-.36em%
    \vbox to 7pt{\hbox{\Tiny A}\vss}%
    \kern-.15em% 
\TeX}

\LaTeX
image.png

这里需要注意:默认的 cmr 字体族有 5-10 个不同的字形,knuth 根据同一个字形做了一些压缩产生不同的分支,比如 cmr7 会比 cmr10 更扁一些。

5pt 7pt 10pt

参考:

  1. https://nwalsh.com/tex/texhelp/Plain.html
  2. https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwjB_bKZrsXdAhXHabwKHYjSAQgQFjAAegQIARAB&url=https%3A%2F%2Fwww.tug.org%2Ftexlive%2FContents%2Flive%2Ftexmf-dist%2Fdoc%2Flatex%2Fbase%2Fsource2e.pdf&usg=AOvVaw0jyIqwOmTuUDTHusJfG63J
  3. https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwjFv4uVrsXdAhXGbrwKHeYyAwcQFjAAegQIBRAC&url=https%3A%2F%2Fwww.latex-project.org%2Fhelp%2Fdocumentation%2Ffntguide.pdf&usg=AOvVaw045dBXCgGLgwcHtVSLxBMm

相关文章

网友评论

    本文标题:LaTeX logo 秘密

    本文链接:https://www.haomeiwen.com/subject/dnkbnftx.html