我一直在尝试acro
在报告中使用缩写术语。它大部分情况下都有效,但每次编译都需要干预才能完成,并且对我的第一页做了一些事情,留下了 =1 和分页符。任何帮助都将不胜感激。
\documentclass[A4, 12pt]{article}
% for abbreviations and acronyms
\usepackage[first-style=long]{acro}
\DeclareAcronym{ma}{
short = MA ,
long = Multiple Access ,
}
\DeclareAcronym{noma}{
short = NOMA ,
long = Non-Orthongonal Multiple Access ,
}
% title info
\title{Beamforming for Millimeter-wave \acs{noma}}
\author{Cian Dowd}
\date{21/01/2019}
\begin{document}
\pagenumbering{roman}
\maketitle
% ABSTRACT
\begin{abstract}
In this paper\ldots
\end{abstract}
% TABLE OF CONTENTS
\tableofcontents
% LIST OF ACRONYMS
\printacronyms
% INTRODUCTION
\pagenumbering{arabic}
\setcounter{page}{1}
\setcounter{section}{0}
\section{Introduction}
\ac{noma}\ldots
% LITERATURE REVIEW
\setcounter{section}{1}
\section{Background/ Literature Review}
% Background on Current MA
\subsection{Existing \acf{ma}}
\end{document}
这将产生以下文档;其下方显示有错误。
我收到这些消息,最后出现错误:
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/acro/acro.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/l3kernel/l3pdfmode.def))
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
)
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e
.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/l3packages/xtemplate/xtempla
te.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/oberdiek/zref-abspage.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/oberdiek/zref-base.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/ltxcmds.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/etexcmds.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/ifluatex.sty)))
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/ifpdf.sty))
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/oberdiek/auxhook.sty))
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/atbegshi.sty))
Runaway argument?
{\bool_if:NT \l__acro_sort_bool {\cs_new_protected:Npn \acro_sort_prop:NN \ETC.
! Forbidden control sequence found while scanning use of \g@addto@macro.
<inserted text>
\par
l.2965 = \c_minus_one
这对应于 acro.sty 的第 2965 行,但我不确定为什么,也不知道如何修复此问题。以下是 acro.sty 的相关代码片段:
\seq_sort:Nn \l__acro_tmpa_seq
{
\int_compare:nTF
{
\acro_strcmp:nn
{ \str_fold_case:n {##1} }
{ \str_fold_case:n {##2} }
= \c_minus_one
}
{ \sort_return_same: }
{ \sort_return_swapped: }
}
答案1
该常量\c_minus_one
已于 2018 年年底的弃用轮次中从 LaTeX3 中删除。acro.sty
但仍在使用它,这会导致新版本的 LaTeX3 内核出现问题。请参阅https://bitbucket.org/cgnieder/acro/issues/116/acro-errors-due-to-update-c_minus_one。
您可以手动编辑acro.sty
并将 更改为\c_minus_one
。-1
但请记住,通常强烈反对对已分发文件进行此类编辑。在这种情况下,编辑可能是合理的,因为如果没有它,文件将无法使用,并且 的更新版本acro.sty
将使修复变得不必要,并会覆盖您的修复版本。
您还可以恢复该命令(类似于https://github.com/latex3/latex3/commit/c96faed90a5a63ba84695190560bdacac1dfdacc#diff-645783629830bdaaeede08f6ea12cb15) 之前acro
已加载。
\usepackage{expl3}
\ExplSyntaxOn
\tex_let:D \c_minus_one \scan_stop:
\int_const:Nn \c_minus_one {-1}
\ExplSyntaxOff
% for abbreviations and acronyms
\usepackage[first-style=long]{acro}
编辑 埃格尔请提出我原始建议的精简版本。
我猜 LaTeX3 团队也不想看到这种情况,因此,在acro
维护人员修复该问题之前,您只能面临几个糟糕的选择。