You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在编译LaTeX时自动排序kuerzel.tex中的\acro缩略语条目

解决方案

方案1:替换为acro宏包(原生支持自动排序,推荐)

你当前使用的acronym宏包本身没有内置自动排序功能,替换为功能更完善的acro宏包仅需修改少量配置即可实现按短名/长名自动排序,且兼容原有\ac等命令的使用习惯。
修改后的main.tex代码如下:

\documentclass{report}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
% 替换原来的acronym宏包,配置自动排序
\usepackage[
  nohyperlinks,
  printonlyused,
  % 排序规则:de对应德语字母序,sort-by=short按方括号内短名排序,改成long即按长名排序
  sorting=de,
  sort-by=short
]{acro}
\usepackage{hyperref}
\usepackage[ngerman]{cleveref}
\usepackage[parfill]{parskip}

% 直接引入原有kuerzel.tex即可,不需要修改内容
\input{kuerzel}

\begin{document}

% 原来的acronym环境替换为printacronyms
\printacronyms[name=Abkürzungen, sort=true]

Der \ac{eugh} ist das oberste rechtsprechende Organ der 
\ac{eu}. Die \ac{eu} ist dabei ein Staatenverbund aus 27 europäischen Ländern. Und \ac{gr} hat eine sehr gute Landwirtschaft, welcher stark gefördert werden sollte. 

\end{document}

编译时使用pdflatex -> biber -> pdflatex*2的编译链即可自动完成排序,最终输出的缩略语列表就是你需要的字母序结果。

方案2:保留acronym宏包,用Python脚本预排序kuerzel.tex

如果不想改动现有文档的宏包配置,可以在编译前用简单的Python脚本先对kuerzel.tex的条目排序:

import re
from locale import setlocale, LC_ALL, strcoll

# 设置德语排序规则,Windows环境可改为'de_DE'
setlocale(LC_ALL, 'de_DE.UTF-8')

# 匹配\acro{id}[短名]{长名}的正则表达式
acro_pattern = re.compile(r'\\acro\{.*?\}\[(.*?)\]\{(.*?)\}')

def get_sort_key(line, sort_by_short=True):
    match = acro_pattern.search(line.strip())
    if not match:
        return line
    # sort_by_short=True按方括号内短名排序,False按第二个大括号内长名排序
    return match.group(1) if sort_by_short else match.group(2)

with open('kuerzel.tex', 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 执行排序
sorted_lines = sorted(lines, key=lambda x: strcoll(get_sort_key(x, sort_by_short=True)))

with open('kuerzel_sorted.tex', 'w', encoding='utf-8') as f:
    f.writelines(sorted_lines)

运行脚本后会生成排序后的kuerzel_sorted.tex,把原来的\input{kuerzel}改成\input{kuerzel_sorted}即可。你也可以把脚本运行命令加入编译脚本/LaTeX编辑器的预处理步骤,实现每次编译自动排序。

内容的提问来源于stack exchange,提问作者Test

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:06:12