PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Leerzeichen unterbinden



BadSanta
04-12-2011, 20:58
Hallo,

bei folgendem Minimalbeispiel


\documentclass
[headings=small,
a4paper,
fontsize=12pt,
listof=numbered,
captions=nooneline,
numbers=noenddot,
pagesize]
{scrreprt}

\usepackage[ngerman]{babel} % deutsche Silbentrennung
\usepackage[ansinew]{inputenc} % deutsche Umlaute
\usepackage[T1]{fontenc} % Umlaute in PDF
\usepackage[left=25mm,right=25mm,top=25mm,bottom=20mm,foot=7mm]{geometry} % Festlegung des Satzspiegels
\usepackage[printonlyused]{acronym} % Abkürzungsverzeichnis

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

\begin{document}
\section{Säugetiere}
\subsection{Fledermäuse}
Mopsfledermaus\acr{mopsfledermaus}, Nordfledermaus\acr{nordfledermaus}, Breitflügelfledermaus\acr{breitfluegelfledermaus}, Bechsteinfledermaus\acr{bechsteinfledermaus}, Große Bartfledermaus\acr{grossebartfledermaus}, Teichfledermaus\acr{teichfledermaus}, Wasserfledermaus\acr{wasserfledermaus}, Großes Mausohr\acr{grossesmausohr}, Kleine Bartfledermaus\acr{kleinebartfledermaus}, Fransenfledermaus\acr{fransenfledermaus}, Kleiner Abendsegler\acr{kleinerabendsegler}, Große Abendsegler\acr{grosserabendsegler}, Rauhautfledermaus\acr{rauhautfledermaus}, Zwergfledermaus\acr{zwergfledermaus}, Mückenfledermaus\acr{mueckenfledermaus}, Braunes Langohr\acr{brauneslangohr}, Graues Langohr\acr{graueslangohr} und Zweifarbfledermaus\acr{zweifarbfledermaus}.

\begin{acronym}
\acro{bechsteinfledermaus}[\textit{Myotis bechsteinii}]{}
\acro{brauneslangohr}[\textit{Plecotus auritus}]{}
\acro{breitfluegelfledermaus}[\textit{Eptesicus serotinus}]{}
\acro{fledermaus}[\textit{Microchiroptera}]{}
\acro{fransenfledermaus}[\textit{Myotis nattereri}]{}
\acro{graueslangohr}[\textit{Plecotus austriacus}]{}
\acro{grossebartfledermaus}[\textit{Myotis brandtii}]{}
\acro{grosserabendsegler}[\textit{Nyctalus noctula}]{}
\acro{grossesmausohr}[\textit{Myotis myotis}]{}
\acro{kleinebartfledermaus}[\textit{Myotis mystacinus}]{}
\acro{kleinerabendsegler}[\textit{Nyctalus leisleri}]{}
\acro{mopsfledermaus}[\textit{Barbastella barbastellus}]{}
\acro{mueckenfledermaus}[\textit{Pipistrellus pygmaeus}]{}
\acro{nordfledermaus}[\textit{Eptesicus nilssonii}]{}
\acro{rauhautfledermaus}[\textit{Pipistrellus nathusii}]{}
\acro{teichfledermaus}[\textit{Myotis dasycneme}]{}
\acro{wasserfledermaus}[\textit{Myotis daubentonii}]{}
\acro{zweifarbfledermaus}[\textit{Vespertilio murinus}]{}
\acro{zwergfledermaus}[\textit{Pipistrellus pipistrellus}]{}
\end{acronym}

\end{document}

erhalte ich immer den Fehler, dass nach einem eingefügten Acronym zwischen diesem und dem Komma ein Leerzeichen gesetzt wird. Dies sieht unschön aus und bewirkt wie in Zeile drei, dass gelegentlich Kommas in die neue Zeile rücken. Kann man dies verhindern?

Vielen Dank,
BadSanta

bobmalaria
04-12-2011, 21:16
hi,

setze mal hinter jede zeile des newcommands das \@acr defineirt ein % um die zeile wirklich zu beenden. vermutlich schleicht sich da ein leerzeichen ein.

das hier schreint mir auch etwas komisch


\ (\acs{#1})


gruss

BadSanta
04-12-2011, 21:32
Wunderbar, folgendes hat geholfen:


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

Vielen Dank. Mit dem


\ (\acs{#1})

habe ich rumgetrickst, damit zwischen deutscher Bezeichnung und Wissenschaftlichem Namen ein Leerzeichen steht, da ich den deutschen Namen ausschreibe. Er ist leider nicht konstant (Fledermaus, Fledermäuse, Fledermäusen, etc.) und deshalb gebe ich ihn nicht mit dem Acronym aus.

Schweinebacke
05-12-2011, 08:32
Wunderbar, folgendes hat geholfen:


\makeatletter
\newcommand{\acr}{\protect\@acr}
\newcommand{\@acr}[1]{
\expandafter\ifx\csname ac@#1\endcsname\AC@used
\else
\ (\acs{#1})%
\global\expandafter\let\csname ac@#1\endcsname\AC@used%
\AC@addtoAC@clearlist{#1}%
\AC@logged{#1}%
\fi
}
\makeatotherBist Du sicher, dass Du vor dem Acronym nicht zwei Leerzeichen hast, falls es nicht zufällig am Absatzanfang steht (wobei es dort wegen des »<code>\ </code>« ohnehin eher nicht wie erwartet funktioniert)? An dieser Stelle:

\newcommand{\@acr}[1]{fehlt nämlich eigentlich auch noch ein <code>%</code>. Dafür ist es an dieser Stelle:
\global\expandafter\let\csname ac@#1\endcsname\AC@used% vollkommen überflüssig. Siehe auch http://www.komascript.de/signifikanteLeerzeichen.