%20innerhalb%20einer%20Umgebung%20falsch%20platziert.png)
Innerhalb einer Umgebung (siehe environ
) habe ich marginnote
neben der Umgebungsüberschrift eine platziert. Die Überschrift enthält Text. Wenn dieser Text bis zum Zeilenende reicht (aber auch etwas davor, wie das MWE zeigt), wird die Randnotiz nicht mehr neben der Umgebungsüberschrift platziert (es scheint, als ob in der ein Zeilenumbruch auftritt marginnote
). Warum? Und wie kann ich die Umgebung reparieren, um dies zu vermeiden? Ich vermute, dass aus der Umgebungsüberschrift ein zusätzliches Leerzeichen (wo?) generiert wird, das die Randnotiz dann in die nächste Zeile verschiebt.
\documentclass{scrbook}
\usepackage[american]{babel}
\usepackage{amsmath}
\usepackage{marginnote}
\usepackage{hyperref}
% Environment
\newcounter{counter}% environment counter
\numberwithin{counter}{chapter}% number counter within chapters
\makeatletter
\newenvironment{environ}[2][]{\refstepcounter{counter}\par
\normalfont\topsep6\p@\@plus6\p@\relax
\trivlist
\item[\hskip\labelsep\sffamily\bfseries MyEnviro~\thecounter\ #1]%
\marginnote{OtherEnviro p.~\pageref{#2}}\ignorespaces
}{%
\endtrivlist\@endpefalse
}
\makeatother
\begin{document}
\chapter{That's the problem}
\begin{environ}[(Some text which covers the amount of space to show the problem)]{foobar}\\
This seems odd (vertical space, wrong placement 'OtherEnviro') because the line
is actually not ending there.
\end{environ}
\begin{environ}[(Some shorter text to show that there's no problem here)]{foobar}\\
This is okay
\end{environ}
\end{document}
Antwort1
\marginnote
fügt eine unsichtbare Box hinzu, etwa wie \mbox{}
. Die Trennung ( \labelsep
) nach der \item
Addition mit \mbox{}
ergibt die leere Zeile. BTW: Ohne diese Box \\
würde Ihr Ergebnis einLaTeX Error: There's no line here to end.
Um das Problem zu vermeiden, setzen Sie es \labelsep
auf 0pt und fügen Sie es (optional) \\
der Umgebungsdefinition hinzu.
\documentclass{scrbook}
\usepackage[american]{babel}
\usepackage{amsmath}
\usepackage{marginnote}
\usepackage{hyperref}
% Environment
\newcounter{counter}% environment counter
\numberwithin{counter}{chapter}% number counter within chapters
\makeatletter
\newenvironment{environ}[2][]{\refstepcounter{counter}\par
\normalfont\topsep6\p@\@plus6\p@\relax
\trivlist
\labelsep 0pt
\item[\hskip\labelsep\sffamily\bfseries MyEnviro~\thecounter\ #1]%
\marginnote{OtherEnviro p.~\pageref{#2}}\\*
\ignorespaces
}{%
\endtrivlist\@endpefalse
}
\makeatother
\begin{document}
\chapter{That's the problem}
\begin{environ}[(Some text which covers the amount of space to show the problem)]{foobar}
This seems odd (vertical space, wrong placement 'OtherEnviro') because the line
is actually not ending there.
\end{environ}
\begin{environ}[(Some shorter text to show that there's no problem here)]{foobar}
This is okay
\end{environ}
\end{document}
Ich habe \\*
anstelle von verwendet, \\
um Seitenumbrüche unmittelbar nach demÜberschrift.