von Robert Terwilliger » Do 23. Jul 2015, 14:43
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.
Ich würde gerne das Paket [p]acro[/p] (nicht [p]acronym[/p]!)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):
[code]
\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}
[/code]
Irgendjemand eine Idee?
R.