LaTeX排版剧本须用dramatist宏包,定义角色、用\Act/\Scene分幕场,台词嵌入角色命令,舞台提示须在大括号内用中文括号,编译用xelatex。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用LaTeX排版剧本需要严格遵循戏剧文本的视觉层级与阅读动线,比如角色名居中加粗、对白左对齐缩进、舞台提示斜体且前后空行——这些不是靠手动调空格能稳定实现的。
选对文档类和宏包
直接使用 article 或 ctexart 会踩坑:它们不内置角色名、对白、舞台提示等语义标签。必须加载专用宏包。【不要自己用 \textbf{} + \quad 模拟角色名】,那样改字号或导出 ePub 时会全崩。
在导言区写入:
\usepackage{dramatist}
这是目前最成熟的开源剧本排版宏包,支持中英文角色、多角色对话、分场标记、人物表自动生成。Mac 和 Linux 用户若编译报错,需确认已安装 texlive-lang-cjk(中文支持);Windows 用户用 MiKTeX 需手动更新宏包索引。
定义人物与结构化写作
在 \begin{document} 之前,用宏包命令声明人物:
\Character[张三]{zhangsan}{张三}
\Character[李四]{lisi}{李四}
方括号内是内部引用名(用于后续台词调用),花括号里分别是英文 ID 和中文显示名。这一步漏写,后面所有 \zhangsan 命令都会报错未定义。
人物表可自动输出:\CharacterList 放在正文开头即可生成带编号的出场人物清单。
按规范写台词与舞台提示
第一步:用 \Act 和 \Scene 划分幕与场,例如:
\Act{第一幕}\Scene{咖啡馆内}
第二步:每句台词必须包裹在对应角色命令中:
\zhangsan{“你真的要走?”}
\lisi{(低头搅动咖啡)……嗯。}
注意:舞台提示必须写在角色命令的大括号内,用中文括号包裹,【不能写成 \zhangsan{} + \stage{(转身)}】,否则换行位置错乱且斜体失效。
第三步:大段旁白或导演说明用 \stage{} 独立成段,前后自动空行:
\stage{灯光渐暗。雨声由远及近。}
微调格式以匹配出版要求
默认字号偏小,剧本需保证 12pt 以上清晰可读。在 \documentclass 后加选项:
\documentclass[12pt,UTF8]{ctexart}
角色名默认居中,但某些出版社要求左对齐并加下划线。此时重定义命令:
\renewcommand{\characterstyle}{\normalfont\normalsize\uline}
这行必须放在 \usepackage{dramatist} 之后、\begin{document} 之前,否则无效。
最后编译务必用 xelatex,不能用 pdflatex,否则中文括号和顿号会显示为方块。


















