acro: move a tradução para a próxima linha apenas para siglas selecionadas

acro: move a tradução para a próxima linha apenas para siglas selecionadas

Adotando um exemplo do acromanual do pacote (p. 38, versão 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}

insira a descrição da imagem aqui

Gostaria de passar a tradução apenas da primeira sigla para a próxima linha, pois acho que isso aumentará a legibilidade e a aparência visual. É possível acrescentar a \linebreaksiglas selecionadas pelo usuário? Observe que sou obrigado a usar acroem modo de compatibilidade, daí a version=2opção.

Responder1

Encontrou uma solução:

\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}

Produz: insira a descrição da imagem aqui

Responder2

Caso você queira usar a versão 3, aqui está como você pode definir uma propriedade booleana para siglas que você pode testar em um modelo de lista e dependendo de seu valor inserir uma quebra de linha ou não. Tal propriedade é definida com

\DeclareAcroProperty?{boolean-property}

e verifiquei um modelo com

\acroifbooleanTF{boolean-property}{true}{false}

O exemplo a seguir o chama foreign-newlinee mostra um modelo semelhante ao descriptionmodelo predefinido (deixei os campos extrae pagesde lado, mas eles poderiam ser adicionados, é claro):

\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}

insira a descrição da imagem aqui

informação relacionada