Quarto设置lang: it时XeTeX编译报错:缺失断字文件
解决Quarto+XeTeX意大利语断字缺失问题
方案1:手动配置babel加载断字文件
如果系统中已存在意大利语断字文件(如hyphen-it.tex,通常位于TeX发行版的tex/generic/hyphen目录下),可在Quarto的YAML头部指定babel的断字路径:
format: pdf: engine: xetex lang: it babel-options: hyphenation: "/实际路径/hyphen-it.tex"
替换/实际路径/为文件真实位置,比如TeX Live下可能是/usr/share/texlive/texmf-dist/tex/generic/hyphen/hyphen-it.tex,Windows MiKTeX下可能是C:\Program Files\MiKTeX\tex\generic\hyphen\hyphen-it.tex。
方案2:切换到polyglossia替代babel
XeTeX对polyglossia的支持更原生,Quarto可通过配置强制使用polyglossia:
format: pdf: engine: xetex lang: it latex-packages: - polyglossia polyglossia-options: lang: italian
polyglossia会自动适配意大利语断字规则,无需额外指定文件路径。
方案3:手动安装意大利语断字包(适配无tlmgr的发行版)
- MiKTeX用户:打开MiKTeX Console,切换到「Packages」标签,搜索
hyphen-italian并安装,重启Quarto后重新编译。 - 精简版TeX Live用户:手动下载
hyphen-italian包的文件(包含hyphen-it.tex),放入TeX的texmf-local目录,再运行mktexlsr更新索引(需终端权限)。
方案4:临时禁用断字(应急用)
若仅需临时生成文档,可关闭断字功能规避报错:
format: pdf: engine: xetex lang: it babel-options: nobabel: true latex-options: - "-no-hyphenation"
注:此方法会导致文本无断字,排版效果受影响,仅作应急使用。
内容的提问来源于stack exchange,提问作者Erik De Luca
相关产品推荐
相关产品推荐

