LaTeX 之 shapepar 宏包

记录一个 “无实际意义” 的宏包:shapepar,宏包名由 “shape” 和 “par” 构成,见名之意,该宏包和形状有关。
01-文本以心形的方式输出.png

由 Donald Arseneau 开发的宏包 shapepar 定义了命令 \shapepar , 它可以按预定义的形状排版段落。段落的尺寸自动被调整,以使得整个造型中都添满了文本。但是被排版的段落中应不含有显示公式或 \vadjust 内容,因为其中含有 \vspace 命令.

LaTeX 中常见的图文混排的宏包有 picinpar、wrapfigure 和 cutwin 等,它们的功能大致相当,都是实现图表和文字的混排。这里要讲的 shapepar 宏包非常有意思,可以将一段文字排成一些有趣的图案,已经预定义的有 \circlepar(圆形)、\CDlabel (CD 光盘)、\heartpar (心形)、\starpar (五角形) 等等。下面以 \heartpar 为例。

02-宏包预定义好的形状.png

案例分析

1
2
3
4
5
\documentclass{ctexart}
\usepackage{shapepar}
\begin{document}
\heartpar{壬戌之秋,七月既望,苏子与客泛舟,游于赤壁之下。清风徐来,水波不兴,举酒属客,诵明月之诗,歌窈窕之章。少焉,月出于东山之上,徘徊于斗牛之间,白露横江,水光接天;纵一苇之所如,陵万顷之茫然。浩浩乎如凭虚御风,而不知其所止;飘飘乎如遗世独立,羽化而登仙。}
\end{document}

01-文本以心形的方式输出.png

另外,其他已经预定义好的形状(不太常用的形状),可通过 ∗shape.def 在电脑中搜索,但是需要 include 来引入

拓展应用

宏包作者提供了自定义形状的一些命令,比如如下形状 ,具体请参阅宏包手册,这里暂时没有需求就不做深入研究了。
关于这个自定义形状,有兴趣的同学可自行搜索 ShapePatch by Christian Gollwitzer

03-自定义形状.png

参考资料