使用Latex排版ASCII ART
是的, 你没有看错.本帖的目的就是把装机量巨大的Word, 排版自由度极高的InDesign,
诞生了AA的HTML, 一秒就能正确显示的记事本都放在一边,
用晦涩(?)的Latex排版出字符画.
在2017年有这样的一篇论文: https://nips2017creativity.github.io/doc/ASCII_Art_Synthesis.pdf
作者用了当时崭露头角的深度学习方法, 做出了比较优秀的线稿转ASCII ART模型.
然而, 在向世界展示自己的作品的时候, 因为没有一个排版AA的方案,
作者只能以图片的形式加入AA画.
这种妥协让我哭泣.
从那以后, 为了不让其他人经历类似的悲伤.
用Latex排版ASCII ART就成了我一个小小的执念.
今天, 我的愿望终于实现了.
在三名热心网友的帮助下, 一个可以排版AA的包诞生了.
\ProvidesPackage{jart}
\RequirePackage{fancyvrb}
\RequirePackage{xfp}
\usepackage{fontspec}
\newcommand{\turnoffxecjk}{\xeCJKsetup{xeCJKactive=false}}
\newfontfamily\verbatimfont[%
NFSSFamily = {myverbatimfont}%
]{aahub.ttf}
\fvset{fontsize=\tiny,xleftmargin=2em}
\newdimen\jart@num
\jart@num=8pt\relax
\newdimen\jart@px
\jart@px=8pt\relax
\DefineVerbatimEnvironment{jart}{Verbatim}{%
formatcom=\turnoffxecjk,%
fontfamily=myverbatimfont,%
numbers=none,%
framesep=0.5em,%
rulecolor=white,%
baselinestretch=\fpeval{\jart@num/\jart@px}%
}
这个包的使用也非常简单, 只需要把这个文件保存为jart.sty, 放在你的tex主文件旁边,
在加入
\usepackage{jart}
之后在jart环境里插入aa画即可.
\begin{jart}
, - ─ ─ - 、
/ , - 、_ \
/ /`′ ヽ \ 〉
〈 // ./'\ ヽ |/
`' イ l l‐_- ヽト、 ヽ l
| (| | ひ fラlヽト{、
/ ハヽ 。′ノ {
/ /r ヘ 弋l-r ´ス. ヽ
/ / > } }皿r┘ |) }
\end{jart}
注意, 这个包里我用了aahub这个字体, 这个字体可以从 https://font.aahub.org/ 处获取.
下载ttf文件置于sty文件旁边即可.
这个包的原理其实很简单, 我新建立了一个常用于展示代码的verbatim环境,
人工指定了比较合适的字体宽高设置.
这样任何本环境内的字符, 都会以AA画的格式进行排版.
虽然这样说起来很简单, 使用各种Tex命令对一个小白来说真是太困难了.
我手里甚至有一本Latex Companion, 不能说完全理解了, 只能说根本串不起来.
之后好不容易在网友的帮助下跑通了包, 得到了正确的排版.
又发现它和xeCJK(在latex排版中日韩文的最优包之一)不兼容, 我做了一个不可以使用日文的日式ASCII ART排版包.
https://p.sda1.dev/10/58e59c537b2178e18aa4aa17fece76f2/TIM_dg9h6FJyK7.png
但这个问题最终也在有能网友的帮助下解决了.
请看, 一个页良好排版的字符画!
https://p.sda1.dev/10/df487684df209dc4418fd35f8e6c97ab/0001.png
于是从此以后, 再也不会有作者为 "Latex无法排版AA画" 而苦恼了.
私以为我是给AA画做出了卓越的贡献, AA名人堂以后肯定有我一席之地.
牛
论坛助手,iPhone 有必要挖坟吗
页:
[1]