Mit Latex acronym-Paket: \ac{} nur anders rum

Wenn man das Paket acronym in Latex nutzt, um die Abkürzungen zu erstellen und zu verwalten, erhält man den Befehl \ac{} mit. Dadurch wird beim ersten Nutzen der übergebenen Abkürzung die volle Bedeutung ausgeschrieben, dahinter wird in Klammern die Kurzform gesetzt. Bei jedem weiteren Male erscheint dann nur noch die Kurzform, zumindest bis man das ganze zurücksetzt.

Neben weiteren Funktionen, die nur die Kurz- oder Langform ausgeben oder ein Plural-s daran anhängen, gibt es im Paket jedoch keine Funktion mit dem selben Verhalten von \ac{}, die jedoch die Kurzform an den Anfang stellt und die Langform in Klammern dahinter. Dies kann man sich aber basteln.

\makeatletter
\newcommand{\acr}{\protect\@acr}%
\newcommand{\@acr}[1]{%
    \expandafter\ifx\csname ac@#1\endcsname\AC@used
        \acs{#1}%
    \else
        \acs{#1} (\acl{#1})%
        \global\expandafter\let\csname ac@#1\endcsname\AC@used
        \AC@addtoclearlist{#1}%
        \AC@logged{#1}
    \fi
}
\makeatother

Mit dieser Befehlsfolge (man sieht, dass es in einem \makeatletter-Bereich geschrieben werden muss) wird der Befehl \acr{} erstellt, der eben das gewünschte Verhalten nachahmt.

 

Funktionierte bei mir

Funktionierte bei mir (acronym Version vom 20.10.2009) problemlos, nachdem ich die Zeile

\AC@addtoclearlist{#1}

durch

\AC@addtoAC@clearlist{#1}

ersetzte.

Das ganze funktioniert auch für \acp wunderbar:


\makeatletter
\renewcommand{\acp}{\protect\@acp}%
\renewcommand{\@acp}[1]{%
\expandafter\ifx\csname ac@#1\endcsname\AC@used
\acs{#1}%
\else
\acsp{#1} (\aclp{#1})%
\global\expandafter\let\csname ac@#1\endcsname\AC@used%
\AC@addtoAC@clearlist{#1}%
\AC@logged{#1}
\fi
}
\makeatother

Viele Grüße
Jochen

\nobreakdash-

das acronym-paket scheint ein problem mit dem nobreakdash zu haben... weißt Du da Rat? Ich kann nicht "~ verwenden, weil ich babel als english lade...

Frage

Toller Tipp! Nun habe ich folgendes Problem, bei dem ich gern um Rat fragen möchte. Folgende Ausgabe erzielt \acr{} am Bsp. bei mir:

\acr{EFTA}

wird zu:

EFTA (European Free Trade Association)EFTA

Wie kann man es hinbekommen, dass nach der Langform in Klammern die angehängte Kurzform verschwindet?

Vielleicht hat jemand eine Lösung?

Die Kurzform dahinter sollte

Die Kurzform dahinter sollte gar nicht erscheinen. Wenn ich jetzt noch nen Test laufen lasse, geschieht es auch nicht. Hast du den Codeschnippsel richtig übernommen? Und ist die Abkürzung korrekt eingetragen?

Merci ersteinmal für deine

Merci ersteinmal für deine Antwort! Ich denke schon, das alles korrekt eingetragen ist.

Im Text sieht das so aus:

Die \acr{EFTA} spielt eine wichtige Rolle.

Im Abkürzungsverzeichnis habe ich das Acronym so eingefügt:

\begin{acronym}[MMMMMMMMMM]
\setlength{\itemsep}{-\parsep}
\acro{EFTA}{European Free Trade Association}
\end{acronym}

Vielleicht habe ich hier etwas falsch gemacht?

Allerdings habe ich nun eine Alternative gefunden, nur eben nicht "anders rum":

\acfi{EFTA}

wird zur Langform in kursiv und die Kurzform steht in Klammern dahinter. Für alle anderen Abkürzungen verwende ich dann wie üblich \acs, \acf oder \acl. Das funktioniert ganz gut.

Hm... welche

Hm... welche Latex-Distribution verwendest du? Möglicherweise tauchen da Unterschiede in der Behandlung auf? Ich hab TeXlive im Einsatz.

Kannst du ggf. ein Minimalbeispiel zur Verfügung stellen, mit dem sich das reproduzieren lässt?