Abkürzungen mit Punkt im Paket acro Thema ist als GELÖST markiert

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Robert Terwilliger

Abkürzungen mit Punkt im Paket acro

Beitrag von Robert Terwilliger »

Ich würde gerne das Paket acro (nicht acronym!)verwenden. Problematisch sind ja immer Abkürzungen mit Punkt am Ende.

Zum einen, weil LaTeX das standardmäßig für ein Satzschlusszeichen hält und den Abstand vergrößert. (Lösungen wie \frenchspacing klammere ich mal aus, weil ich das eigentlich ganz angenehm zum Lesen finde.)
Das lässt sich mit \@ umgehen, was man wiederum als eigenes Command oder in \DeclareAcronym auch automatisieren kann.

Zum anderen, weil solche Abkürzungen ja auch am Satzende stehen können und dann ein doppelter Punkt auftaucht. Ich würde jetzt gerne so etwas wie \@ifnextchar.{}{.\@} einbauen, scheitere aber daran.

Zur Veranschaulichung ein kleines Beispiel (XeLaTeX, sollte aber auch mit pdfLaTeX und LuaLaTex klappen):
\documentclass{article}

\usepackage{acro}

\DeclareAcronym{etc.1}{short     = {etc.},
                       long      = {et cetera},
                      }
\DeclareAcronym{etc.2}{short     = {etc.\@},
                       long      = {et cetera},
                       pdfstring = {etc.},
                       accsupp   = {etc.},
                      }
\makeatletter
\newcommand\etc{etc\@ifnextchar.{}{.\@}}
\makeatother


\begin{document}

 \ac{etc.1}                                           % richtig
 
 \ac{etc.2}                                           % richtig
 
 et cetera (\etc{})                                   % richtig
 
 et cetera (\etc)                                     % richtig
 
 Die Abbreviatur \ac{etc.1}   steht mitten im Satz.   % falsch
 
 Die Abbreviatur \ac{etc.1}\@ steht mitten im Satz.   % richtig
 
 Die Abbreviatur \ac{etc.2}   steht mitten im Satz.   % richtig

 Die Abbreviatur \etc{}       steht mitten im Satz.   % richtig
 
 Die Abbreviatur \etc         steht mitten im Satz.   % falsch
 
 Am Ende des Satzes steht die Abbreviatur \ac{etc.1}. % falsch
  
 Am Ende des Satzes steht die Abbreviatur \ac{etc.2}. % falsch
 
 Am Ende des Satzes steht die Abbreviatur \etc{}.     % falsch
 
 Am Ende des Satzes steht die Abbreviatur \etc.       % richtig
 
\end{document}
Irgendjemand eine Idee?

R.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 712
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Es ist nicht nicht möglich, ein Vorausschauen in die Makros einzubauen, ohne an die Interna von acro ranzugehen. Das klingt mit sehr nach einem Feature-Request, was Du hier machen könntest:

https://bitbucket.org/cgnieder/acro/issues

Grüße,
Clemens
Clemens

Robert Terwilliger

Beitrag von Robert Terwilliger »


Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 712
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

v2.0 ist seit vorgestern auf CTAN und hat zumindest bei mir inzwischen auch TL erreicht. Damit geht's zum Beispiel so:
\documentclass{article}

\usepackage{acro}[2015/08/16]

\DeclareAcronym{etc}{
  short     = {etc\acdot},
  long      = {et cetera}
}

\renewcommand*\acdot{\aciftrailing{dot}{}{.\@}}% Voreinstellung ist ohne \@

\begin{document}

\ac{etc} \par
Die Abbreviatur \ac{etc} steht mitten im Satz.\par
Die Abbreviatur etc.\@ steht mitten im Satz.\par
Am Ende des Satzes steht die Abbreviatur \ac{etc}. Text\par
Am Ende des Satzes steht die Abbreviatur etc. Text
 
\end{document}
Grüße
Clemens

Robert Terwilliger

Beitrag von Robert Terwilliger »

Klappt, prima!

Und insgesamt erreicht acro langsam den Grad der Perfektion. (Zumindest aus meiner Sicht.)

Danke dafür

R.

Antworten