
Принимая во внимание один пример из acro
руководства пакета (стр. 38, версия 2.10c),
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman,english]{babel}
\usepackage[version=2]{acro}
\usepackage{enumitem}
\DeclareAcronym{Rv}{short=Rv,long=Fluss,foreign=\textit{river},foreign-lang=english}
\DeclareAcronym{Drs}{short=Drs,long=Donaudampfschiff,foreign=\textit{Donau river steamer},foreign-lang=english}
\begin{document}
\acuseall
\newlist{acronyms}{description}{1}
\newcommand*\addcolon[1]{#1:}
\setlist[acronyms]{
labelwidth=3em,
leftmargin=3.5em,
noitemsep,
itemindent=0pt,
font=\addcolon}
\DeclareAcroListStyle{mystyle}{list}{list=acronyms}
\acsetup{list-style=mystyle}
\twocolumn
\printacronyms
\end{document}
дает
Я хотел бы перенести перевод только первой аббревиатуры на следующую строку, так как я думаю, что это улучшит как читабельность, так и внешний вид. Можно ли добавлять a \linebreak
к выбранным пользователем аббревиатурам? Обратите внимание, что мне необходимо использовать acro
режим совместимости, поэтому эта version=2
опция.
решение1
Решение найдено:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman,english]{babel}
\usepackage[version=2]{acro}
\usepackage{enumitem}
\DeclareAcronym{Rv}{short=Rv,long=Fluss,foreign=\textit{river},foreign-lang=english}
\DeclareAcronym{Drs}{short=Drs,long=Donaudampfschiff,list=Donaudampfschiff\newline,foreign=\textit{Donau river steamer},foreign-lang=english}
\begin{document}
\acuseall
\newlist{acronyms}{description}{1}
\newcommand*\addcolon[1]{#1:}
\setlist[acronyms]{
labelwidth=3em,
leftmargin=3.5em,
noitemsep,
itemindent=0pt,
font=\addcolon}
\DeclareAcroListStyle{mystyle}{list}{list=acronyms}
\acsetup{list-style=mystyle}
\twocolumn
\printacronyms
\end{document}
решение2
В случае, если вы захотите использовать версию 3, вот как вы можете определить логическое свойство для аббревиатур, которое вы можете протестировать в шаблоне списка и в зависимости от его значения вставить перенос строки или нет. Такое свойство определяется с помощью
\DeclareAcroProperty?{boolean-property}
и проверил в шаблоне с помощью
\acroifbooleanTF{boolean-property}{true}{false}
Следующий пример вызывает его foreign-newline
и показывает шаблон, аналогичный предопределенному description
шаблону (я не указал поля extra
и , pages
но их, конечно, можно добавить):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english,ngerman]{babel}
\usepackage{acro}
\usepackage{enumitem}
\DeclareAcroProperty?{foreign-newline}
\NewAcroTemplate[list]{custom}{
\acroheading
\acropreamble
\begin{description}[
labelwidth = 3em ,
leftmargin = 3.5em ,
noitemsep ,
itemindent = 0pt]
\acronymsmapF{%
\item[\acrowrite{short}\acroifT{alt}{/}\acrowrite{alt}:]%
\acrowrite{list}%
\acroifT{foreign}{%
\acroifbooleanTF{foreign-newline}{\newline}{ }%
(\textit{\acrowrite{foreign}})
}%
}
{ \item \AcroRerun }%
\end{description}%
}
\acsetup{
list/template = custom
}
\DeclareAcronym{Rv}{
short = Rv ,
long = Fluss ,
foreign = river ,
foreign-babel = english
}
\DeclareAcronym{Drs}{
short = Drs ,
long = Donaudampfschiff ,
foreign = Donau river steamer ,
foreign-babel = english ,
foreign-newline = true
}
\begin{document}
\twocolumn
\acuseall
\printacronyms
\end{document}