需先安装Rust及tex-fmt工具,再定义\character、\stage、\dialogue等剧本专用命令,最后用tex-fmt script.tex > formatted_script.tex格式化输出新文件以确保安全。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让LaTeX自动格式化剧本结构(如角色名居中、对白左对齐、舞台指示斜体缩进),而不是手动加空行或\textit命令挨个调整。
安装tex-fmt:先让系统认得这个工具
打开终端,运行 cargo install tex-fmt。这一步必须完成,否则后续所有命令都会报“command not found”。【未安装就直接调用tex-fmt会导致整个流程中断】
如果提示“cargo: command not found”,说明你还没装Rust环境——请先去 rust-lang.org 下载并执行 rustup-init 安装Rust工具链,再重试。
准备符合剧本规范的LaTeX源文件
确保你的 .tex 文件已定义好剧本专用命令,例如:
\newcommand{\character}[1]{\vspace{0.5em}\centering\textbf{#1}\[0.3em]}\n\newcommand{\stage}[1]{\vspace{0.3em}\noindent\textit{#1}\par}\n\newcommand{\dialogue}[1]{\noindent#1\par}
这些命令不是tex-fmt内置的,而是你剧本文档的“骨架”。tex-fmt只格式化代码排版(缩进、空行、括号对齐),不生成或修改语义命令。缺少它们,格式化后仍是乱码结构。
执行格式化:三类常用操作路径
方法一:预览效果不保存
tex-fmt script.tex | less
方法二:原地覆盖(慎用)
tex-fmt -i script.tex
方法三:输出到新文件留底
tex-fmt script.tex > formatted_script.tex
推荐用方法三——【-i 参数会直接改写原始文件,一旦格式错误无法回退】。尤其当你刚写完一场关键戏份,别让一次格式化毁掉未提交的修改。
验证格式化结果是否符合剧本惯例
第一步:打开 formatted_script.tex,检查 \character 命令前后是否有空行 → 应该有,这是段落分隔必需的。
第二步:搜索所有 \stage{,确认其后紧跟的 \dialogue{ 是否顶格,且两者之间无多余换行 → tex-fmt 默认保留语义空行,但不会插入逻辑错误的空行。
第三步:编译 PDF 查看实际渲染效果。若角色名没居中、对白缩进异常,问题一定出在自定义命令定义本身,和tex-fmt无关。

















