今天突然想用 Plain 实现 这个 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
可以看到使用了CMR10
和 CMR7
两种字体。这是 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 中实现 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
更扁一些。
参考:
- https://nwalsh.com/tex/texhelp/Plain.html
- 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
- 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
网友评论