LaTeX论文:如何从独立文件导入缩写并生成前置页缩写表?
问题解决指南
核心问题分析
你的代码存在两个关键问题导致缩写表无输出:
- 文件名不匹配:主文件中加载的是
acronyms,但你的缩写定义文件实际是acronym.tex,路径不对应导致缩写定义未被加载。 - 缺少glossaries包必需的编译步骤:仅编译LaTeX不会生成缩写表内容,必须执行完整的编译链。
另外,你手动排版的缩写表标题格式和book类的前置章节(如目录、摘要)不统一,建议改用标准章节命令优化格式。
修正后的代码
1. 主文件 main.tex
\documentclass[12pt, oneside]{book} \usepackage[utf8]{inputenc} % 加载glossaries包,指定仅使用缩写功能 \usepackage[acronym,nomain]{glossaries} \makeglossaries % 修正加载路径,匹配你的缩写定义文件名acronym.tex \loadglsentries{acronym} \begin{document} \frontmatter \pagestyle{plain} % 引入缩写表文件 \input{abbreviations} \end{document}
2. 缩写表打印文件 abbreviations.tex
% 使用book类标准的无编号章节命令,自动匹配前置内容格式 \chapter*{List of Abbreviations} % 将缩写表加入目录 \addcontentsline{toc}{chapter}{List of Abbreviations} % 打印缩写表,title=避免重复生成标题 \printglossary[type=\acronymtype, title=]
3. 缩写定义文件 acronym.tex
保持原内容即可:
\newacronym{T1}{T1}{Test1} \newacronym{T2}{T2}{Test2}
正确编译流程
必须按以下顺序执行(命令行示例,TeX编辑器可对应操作):
- 编译主文件:
pdflatex main - 生成缩写表索引:
makeglossaries main - 再次编译主文件两次:
pdflatex main、pdflatex main
额外优化建议
如果想更灵活控制缩写表格式,可改用glossaries-extra包(兼容现有代码),只需将主文件中的\usepackage[acronym,nomain]{glossaries}替换为:
\usepackage[acronym,nomain]{glossaries-extra}
内容的提问来源于stack exchange,提问作者DS14
相关产品推荐
相关产品推荐

