Eintrag im Abkürzungsverzeichnis ragt zu weit

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Eintrag im Abkürzungsverzeichnis ragt zu weit

von oft gesehener » Mi 23. Okt 2019, 18:50

Endlich macht mal einer ein brauchbares Minimalbeispiel.

Bei arconym ist acronym keine Tabelle, sondern einfach eine Liste. Eigentlich ist da nicht vorgesehen, dass die Seitenzahlen eine Art Spalte darstellen. Man kann allenfalls durch patchen die Breite der Liste reduzieren und dann die Seitenzahl außerhalb der Liste setzen lassen:
\documentclass[
paper=A4,
12pt,
]{scrartcl}

% Sprach- und Schrifteinstellungen
\usepackage[ngerman]{babel}      % Spracheinstellung
\usepackage[utf8]{inputenc}      % deutsche Umlaute
\usepackage[T1]{fontenc}      % Trennung bei deutschen Umlauten
\renewcommand*\familydefault{\sfdefault} % Serifenlose Schrift
\usepackage[babel,german=quotes]{csquotes}
\usepackage{textcomp}
%\usepackage{uarial}
\usepackage{upgreek}

% Seitenränder
\usepackage[left=25mm, right=25mm, top=20mm, bottom=20mm]{geometry}  

% Abkürzungsverzeichnis
\usepackage[printonlyused,withpage]{acronym}
\usepackage{xpatch}
\makeatletter
\renewcommand{\acfia}[1]{%
  {\itshape\AC@placelabel{#1}\AC@acl{#1}\nolinebreak[3] }(\ifAC@starred\acs*{#1}\else\acs{#1}\fi)%
}
\newlength{\acropagenumberwidth}
\AtBeginDocument{\settowidth{\acropagenumberwidth}{ 123}}% Platz für
                                % dreistellige Seitenzahlen
\xpatchcmd{\AC@@acro}{%
  \dotfill\pageref{acro:#1}%
}{%
  \dotfill\makebox[\acropagenumberwidth][r]{\pageref{acro:#1}}%
}{}{\PatchFailUre}
\xpatchcmd{\AC@deflist}{%
  \addtolength{\leftmargin}{\labelsep}%
}{%
  \addtolength{\leftmargin}{\labelsep}%
  \addtolength{\rightmargin}{\acropagenumberwidth}%
}{}{\PatchFailUre}
\makeatother

\begin{document}
    \addsec{Abkürzungsverzeichnis}
    \begin{acronym}[ICD-10]
       \acro{ICD-10}{International Statistical Classification of Diseases and Related Health Problems, 10. Revision}
       \acro{DSM-5}{Diagnostic and Statistical Manual of Mental Disorders, 5. Revision}
       \acro{PTBS}{posttraumatische Belastungsstörung}
    \end{acronym}
    \section{test}
    \setcounter{page}{16}
    \acfi{ICD-10}\\
    \ac{ICD-10}\\
    \ac{DSM-5}\\
    \ac{PTBS}
\end{document}
BTW: Eigentlich gehören fremdsprachliche Einträge per \foreignlanguage o. ä. markiert, damit babel korrekt damit umgehen kann. Siehe dazu die babel-Anleitung. Also:
\documentclass[12pt]{scrartcl}% paper=a4 ist ohnehin die Voreinstellung

% Sprach- und Schrifteinstellungen
\usepackage[main=ngerman,english]{babel}      % Spracheinstellung
\usepackage[utf8]{inputenc}      % bei aktuellen LaTeX überflüssig
\usepackage[T1]{fontenc}      % Trennung bei deutschen Umlauten
\renewcommand*\familydefault{\sfdefault} % Serifenlose Schrift für mehr als ein paar Sätze unbrauchbar
\usepackage[babel,german=quotes]{csquotes}
\usepackage{textcomp}
%\usepackage{uarial}% Der schlimmste Arial-Clone, den man finden kann.
\usepackage{upgreek}

% Seitenränder möglichst furchtbar gewählt
\usepackage[left=25mm, right=25mm, top=20mm, bottom=20mm]{geometry}  

% Abkürzungsverzeichnis
\usepackage[printonlyused,withpage]{acronym}
\usepackage{xpatch}
\makeatletter
\renewcommand{\acfia}[1]{%
  {\itshape\AC@placelabel{#1}\AC@acl{#1}\nolinebreak[3] }(\ifAC@starred\acs*{#1}\else\acs{#1}\fi)%
}
\newlength{\acropagenumberwidth}
\AtBeginDocument{\settowidth{\acropagenumberwidth}{ 123}}% Platz für
                                % dreistellige Seitenzahlen
\xpatchcmd{\AC@@acro}{%
  \dotfill\pageref{acro:#1}%
}{%
  \dotfill\makebox[\acropagenumberwidth][r]{\pageref{acro:#1}}%
}{}{\PatchFailUre}
\xpatchcmd{\AC@deflist}{%
  \addtolength{\leftmargin}{\labelsep}%
}{%
  \addtolength{\leftmargin}{\labelsep}%
  \addtolength{\rightmargin}{\acropagenumberwidth}%
}{}{\PatchFailUre}
\makeatother

\begin{document}
    \addsec{Abkürzungsverzeichnis}
    \begin{acronym}[ICD-10]
       \acro{ICD-10}{\foreignlanguage{english}{International Statistical Classification of Diseases and Related Health Problems}, 10. Revision}
       \acro{DSM-5}{\foreignlanguage{english}{Diagnostic and Statistical Manual of Mental Disorders}, 5. Revision}
       \acro{PTBS}{posttraumatische Belastungsstörung}
    \end{acronym}
    \section{test}
    \setcounter{page}{16}
    \acfi{ICD-10}\\
    \ac{ICD-10}\\
    \ac{DSM-5}\\
    \ac{PTBS}
\end{document}
Es gibt übrigens modernere Pakete als acronym bei acro und glossaries oder glossaries-extras hat man mehr Einfluss auf die Darstellung und kann auch tabellarische Darstellungen wählen.

Eintrag im Abkürzungsverzeichnis ragt zu weit

von Tassadar » Mi 23. Okt 2019, 17:47

Hallo alle zusammen,

ich habe ein Problem mit der Darstellung des Abkürzungsverzeichnisses. Ich verwende das Paket acronym und komme im Prinzip auch gut zurecht. \acfia musste ich umdefinieren, da \acfi sonst nicht den token auslöst, aber das ist jetzt nicht wichtig.

Mir ist gerade aufgefallen, dass ein besonders langer Eintrag im Abkürzungsverzeichnis umgebrochen werden muss. Passiert auch. Aber leider wird der Eintrag so spät umgebrochen, dass er in den Bereich rein ragt, wo die Seitenzahlen aufgelistet werden. Das sieht natürlich sehr unschön aus.

Ich habe leider keine Möglichkeit gefunden da irgendetwas umzustellen und hoffe darauf, dass hier jemand ist der mir mit dem Problem helfen kann.

Hier das MWE:
\documentclass[
paper=A4, 
12pt, 
]{scrartcl}

% Sprach- und Schrifteinstellungen
\usepackage[ngerman]{babel}		% Spracheinstellung
\usepackage[utf8]{inputenc}		% deutsche Umlaute
\usepackage[T1]{fontenc}		% Trennung bei deutschen Umlauten
\renewcommand*\familydefault{\sfdefault} % Serifenlose Schrift
\usepackage[babel,german=quotes]{csquotes}
\usepackage{textcomp}
%\usepackage{uarial}
\usepackage{upgreek}

% Seitenränder
\usepackage[left=25mm, right=25mm, top=20mm, bottom=20mm]{geometry}	

% Abkürzungsverzeichnis
\usepackage[printonlyused,withpage]{acronym}
\makeatletter
\renewcommand{\acfia}[1]{%
	{\itshape\AC@placelabel{#1}\AC@acl{#1}\nolinebreak[3] }(\ifAC@starred\acs*{#1}\else\acs{#1}\fi)%
}
\makeatother

\begin{document}
    \addsec{Abkürzungsverzeichnis}
    \begin{acronym}[ICD-10]
    	\acro{ICD-10}{International Statistical Classification of Diseases and Related Health Problems, 10. Revision}
    	\acro{DSM-5}{Diagnostic and Statistical Manual of Mental Disorders, 5. Revision}
    	\acro{PTBS}{posttraumatische Belastungsstörung}
    \end{acronym}
    \section{test}
    \setcounter{page}{16}
    \acfi{ICD-10}\\
    \ac{ICD-10}\\
    \ac{DSM-5}\\
    \ac{PTBS}
\end{document}
Vielen Dank schon mal im Voraus!

Nach oben