这是我的第一篇文章,如果我不能在第一次就完美地解释我的问题,请原谅,但这是我的问题:
我使用的acro
是 3.3 版的软件包,这一点值得一提,因为我可以找到许多适用于早期版本的解决方案,但找不到适用于这个版本的解决方案。我有大约 30 个首字母缩略词,例如
\DeclareAcronym{CMOS}{
short = CMOS,
long = complementary metal oxide semiconductor,
tag = abbrev
}
并且文本中的实现效果很好,但是列表看起来并不像我想要的那样。
我想要一个 2 列设计,跨越多个页面。这可以通过使用标准模板来解决
list/template = description,
并使用包multicol
。然而,在这种情况下,我错过了“短”和“长”部分之间的标签。
这可以通过使用longtable
模板来解决,但longtable
不支持multicol
。所以我实际上花了太多时间试图解决这个问题,我只是想请你们给出解决方案。我相信有一个简单的格式定义,应该可以解决这个问题,但我在文档中找不到它。
提前致谢。
答案1
您可以使用列表来实现这样的布局。也许labeling
KOMA-Script 中的列表(如果您正在使用或之类的类scrartcl
,则已经可用scrbook
,并且可以通过包在其他类中使用scrextend
)是一个简单的解决方案:
\begin{labeling}{widest label}
\item[foo] lorem ipsum
\item[bar] ...
\end{labeling}
此列表可以与环境结合使用multicols
。您可以定义自己的列表模板以acro
同时使用两者。下面的示例假设您既不使用alt
、extra
或foreign
的属性,acro
也不使用页码。(不过,所有这些都可以添加到模板中):
\NewAcroTemplate[list]{twocolumn}{%
\begin{multicols}{2}[\acroheading]
\acropreamble
\begin{labeling}{XXXXX}
\acronymsmapF
{\item[\bfseries\acrowrite{short}] \acrowrite{list}}
{\item\AcroRerun}
\end{labeling}
\end{multicols}
}
完整示例:
\documentclass{article}
\usepackage{acro}
\usepackage{multicol}
\usepackage{scrextend}
\NewAcroTemplate[list]{twocolumn}{%
\begin{multicols}{2}[\acroheading]
\acropreamble
\begin{labeling}{XXXXX}
\acronymsmapF
{\item[\bfseries\acrowrite{short}] \acrowrite{list}}
{\item\AcroRerun}
\end{labeling}
\end{multicols}
}
\acsetup{
list/template = twocolumn
}
\DeclareAcronym{CMOS}{
short = CMOS,
long = complementary metal oxide semiconductor
}
\DeclareAcronym{DMSO}{
short = DMSO,
long = Dimethyl sulfoxide
}
\DeclareAcronym{a}{
short = A,
long = the letter A
}
\DeclareAcronym{xx}{
short = foo,
long = an example
}
\DeclareAcronym{blub}{
short = xx,
long = nonsense
}
\begin{document}
\acuseall
\printacronyms
\end{document}