Seite 1 von 1

Abkürzungen mit Punkt im Paket acro

Verfasst: Do 23. Jul 2015, 14:43
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.

Verfasst: Do 23. Jul 2015, 15:33
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

Verfasst: Do 23. Jul 2015, 16:03
von Robert Terwilliger

Verfasst: Di 18. Aug 2015, 20:53
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

Verfasst: Do 3. Sep 2015, 15:37
von Robert Terwilliger
Klappt, prima!

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

Danke dafür

R.