acro: Übersetzung nur für ausgewählte Akronyme in die nächste Zeile verschieben

acro: Übersetzung nur für ausgewählte Akronyme in die nächste Zeile verschieben

acroEin Beispiel aus dem Handbuch des Pakets (S. 38, Version 2.10c) übernehmend ,

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

gibt

Bildbeschreibung hier eingeben

Ich möchte die Übersetzung nur des ersten Akronyms in die nächste Zeile verschieben, da ich denke, dass dies sowohl die Lesbarkeit als auch das Erscheinungsbild verbessert. Ist es möglich, \linebreakbenutzerdefinierten Akronymen ein „ voranzustellen? Bitte beachten Sie, dass ich acroden Kompatibilitätsmodus verwenden muss, daher diese version=2Option.

Antwort1

Habe eine Lösung gefunden:

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

Produziert: Bildbeschreibung hier eingeben

Antwort2

Falls Sie Version 3 verwenden möchten, können Sie hier eine boolesche Eigenschaft für Akronyme definieren, die Sie in einer Listenvorlage testen und je nach Wert einen Zeilenumbruch einfügen können oder nicht. Eine solche Eigenschaft wird definiert mit

\DeclareAcroProperty?{boolean-property}

und in einer Vorlage eingecheckt mit

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

Das folgende Beispiel ruft es auf foreign-newlineund zeigt eine Vorlage, die der vordefinierten Vorlage ähnelt description(ich habe die Felder extraund pagesweggelassen, aber sie könnten natürlich hinzugefügt werden):

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

Bildbeschreibung hier eingeben

verwandte Informationen