提起 LaTeX,很多人的第一印象可能是数学公式、学术论文、毕业论文和科研排版。
但 LaTeX 的能力远不止于此。
如果你喜欢桌面角色扮演游戏(RPG)、奇幻冒险、魔法卡牌,或者科幻世界观设定,那么今天介绍的这个开源项目,可能会让你重新认识 LaTeX 的排版能力。
它就是 RPG LaTeX Template(rpgtex):一个专门用于制作角色扮演游戏相关文档的 LaTeX 模板项目。
GitHub 项目地址:
https://github.com/DrFraserGovil/rpgtex
网盘链接:https://pan.quark.cn/s/719f85ad0838
rpgtex 的定位非常明确:利用 LaTeX 制作角色扮演游戏中的各种出版物,包括冒险故事、游戏规则书、玩家手册、道具卡牌、法术卡牌等。
它采用了模块化设计,将底层排版功能与视觉主题分离。简单来说,你可以使用同一套核心功能,切换不同的视觉风格,而不必从头设计整份文档。
项目目前提供了三种主题:
更有意思的是,这些主题不仅可以用于整份文档,还可以在同一份文档中途切换。项目也支持用户自行创建主题,定制字体、颜色、页面设计和信息框等元素。
rpgtex 并非只是一个美化页面的模板,它还提供了多种文档类型。
1. 游戏规则书与冒险手册
通过 rpgbook 文档类,可以制作完整的游戏规则书或冒险手册,支持封面、章节分隔页、双栏排版和装饰性页脚。
2. 玩家手册与任务说明
rpghandout 适合制作篇幅较短的文档,例如玩家需要阅读的背景资料、任务说明和游戏提示。
3. 道具卡、法术卡与能力卡
使用 rpgcard,可以将物品、法术和角色能力排版成独立卡片,方便屏幕展示或打印使用。
如果需要把多张卡片组合起来进行排版,还可以使用 rpgdeck,将卡牌集中编排成一套适合打印的卡组。
此外,如果你已经有自己的 LaTeX 文档,也可以直接加载 rpgtex 宏包,而不必完全更换原有文档类。
对于熟悉 LaTeX 的读者来说,rpgtex 更值得关注的地方,是它不仅能控制外观,还能对游戏内容进行结构化排版。
1. 自动排版怪物与角色数据
项目提供了 RpgStat 等环境,用于排版角色、怪物等数据。
在 D&D 主题中,部分属性还可以自动计算。例如,输入生物的能力值和挑战等级后,模板能够计算属性调整值、豁免、技能加值、熟练加值、经验值、攻击加值以及法术豁免 DC 等内容。
这意味着,你不必每次修改角色属性后,都手动检查和更新所有相关数值。
2. 骰子表达式也能统一处理
例如:
\RpgDice{2d6+3}
可以用于排版骰子表达式。不同主题可以采用不同的显示样式,而 D&D 主题还可以显示平均伤害值。
3. 地图区域可以自动编号
对于包含多个地点的冒险地图,rpgtex 支持对地点进行自动编号,并允许使用名称引用对应区域。
它还支持嵌套编号,例如 1B-iii,对于结构复杂的地下城、迷宫和冒险场景尤其有用。
4. 同一份文档可以生成不同版本
游戏主持人通常需要掌握完整信息,而玩家只能看到公开内容。
rpgtex 提供了秘密内容的处理机制,可以在同一份源文件中编写主持人版本和玩家版本,并选择最终打印哪一类内容。
对于需要同时维护多个版本的规则文档,这种设计很实用。
除了游戏专用功能,rpgtex 还提供了一系列常见的排版组件:
因此,它既能处理规则书中的大段说明文字,也能处理结构化的数据内容,适合制作内容丰富、版式多样的游戏出版物。
如果你已经安装了 LaTeX,并且具备基本使用经验,可以按照项目文档安装。
第一步:下载项目
在终端中执行:
mkdir -p "$(kpsewhich -var-value TEXMFHOME)/tex/latex"
git clone https://github.com/DrFraserGovil/rpgtex.git \
"$(kpsewhich -var-value TEXMFHOME)/tex/latex/rpgtex"这会将项目克隆到个人 TeX 树中,使 LaTeX 能够查找相应文件。
第二步:编写一个简单的游戏规则书
例如,下面是一份使用 D&D 主题的最小示例:
\documentclass[theme=dnd]{rpgbook}
\title{The Sunken Temple}
\author{A. Writer}
\begin{document}
\maketitle
\chapter{Into the Depths}
\begin{RpgNarration}
The air grows cold as you descend the steps.
\end{RpgNarration}
\begin{RpgStat}{Temple Guardian}
[str=18, dex=12, con=16, cr=5]
\section{Actions}
\melee{Slam}
[dmg=2d8+\RpgStatMod{str},
dmg-type=bludgeoning]
\end{RpgStat}
\end{document}这个示例创建了一份名为 The Sunken Temple 的冒险规则书,包含章节标题、叙事文本框,以及一个具有属性和攻击动作的神殿守卫。
第三步:编译文档
rpgtex 使用 fontspec 加载字体,因此需要使用 XeLaTeX 或 LuaLaTeX 编译,例如:
xelatex main.tex项目还提供了一个名为 rpglatex 的 Python 3 编译脚本,可以帮助运行所需的编译轮次、整理辅助文件,并从命令行切换打印模式。
需要注意的是,项目假设使用者已经具备基本的 LaTeX 环境。官方文档提供了更完整的安装说明、配置方法和示例文件。
rpgtex 提醒我们:LaTeX 并不局限于论文、公式和学术出版。
从奇幻冒险规则书,到可打印的游戏卡牌,再到具有未来科技感的任务简报,这个开源项目展示了 LaTeX 在创意出版领域的另一种可能。
如果你正在寻找一个有趣的 LaTeX 项目,不妨去 GitHub 看看它的示例和官方文档。
项目地址: https://github.com/DrFraserGovil/rpgtex





也许,下一本属于你的奇幻冒险手册,就可以从一份 .tex 文件开始。