Sie sind hier

index-proofmode mit marginnote-Robustheit

\marginpar{} funktioniert bekanntlich nicht überall im Text, z. B. nicht in Fußnoten, \marginnote{} behebt diese Beschränkungen erfreulicherweise.

Bei der Verwendung der \proofmodetrue-Optinon des index-Pakets (oder mit dem showidx-Paket) gibt es ein ganz ähnliches Problem: Indexeinträge in z. B. Fußnoten werden nicht in die Kontrolliste eingetragen, was der Liste einen gut Teil ihres Nutzens nimmt.

Ich frage mich, ob es evtl. möglich und sinnvoll wäre, daß das marginnote-Paket (evtl als Option) die Erstellung der Kontrolliste des index-Pakets übernimmt? Oder wäre das ein Fall für ein Anpassungspaket wie scrindex?

Mit freundlichen Grüßen,
Florian.

Vielleicht in diesem Fall nicht nötig, aber der Vollständigkeit halber:

\documentclass[11pt]{scrbook}
 
\usepackage{marginnote}
\let\marginpar\marginnote
\usepackage{scrindex}
\newindex{n}{ndx}{ndn}{Register}
\proofmodetrue
 
\begin{document}
 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi\index[n]{morbus} commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.\footnote{Nulla libero. \marginpar{Vivamus pharetra posuere sapien.} Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus\index[n]{lectus} nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum.} 
 
\end{document}

[Admin-Edit:]

  1. Beitrag ins passende Forum verschoben.

forum: 
Bild von Markus Kohm

Nur weil das index-Paket den Rand verwendet, hat das noch lange nichts mit marginnote zu tun. Die Probleme haben wenig bis gar nichts mit einander zu tun. Das Problem ist hier, dass innerhalb eines \insert (nämlich Fußnoten) ein weiteres \insert (für die Index-Marke) verwendet werden müsste. Die ganzen Index-Label-Marken haben mit \marginpar und \marginnote von zwei Längen abgesehen nichts gemeinsam.

Die Aufgabe ist eine gänzlich andere als bei marginnote. Statt die ganzen Labels zu sammeln und gesammelt auszugeben, könnte man natürlich \@showidx so umdefinieren, dass die Labels direkt am Rand der entsprechenden Zeile per \marginnote ausgegeben werden. Dann hat man aber ein Problem, wenn mehr als eine Marke in einer Zeile steht.

Da sich die Funktionen und die Probleme ähneln, war ich davon ausgegangen, daß da der selbe Mechanismus am Werke wäre. Schade – aber danke für die Aufklärung!

könnte man natürlich \@showidx so umdefinieren, dass die Labels direkt am Rand der entsprechenden Zeile per \marginnote ausgegeben werden.

Ich hatte einfach zu diesem Zweck \index mit einem \marginnote ergänzt und mir so meinen eigenen proofmode gebastelt.

Dann hat man aber ein Problem, wenn mehr als eine Marke in einer Zeile steht.

das war dann auch mein Problem...

Es gibt nicht zufälligerweise eine Möglichkeite, \marginnote dazu zu bringen, Kollisionen mit anderen \marginnote zu vermeiden? Das Problem hatte ich auch in anderen Zusammenhängen schon, z. B. auch bei mehrzeiligen Marginalnoten.

Florian Grammel
Kopenhagen, Dänemark

Bild von Markus Kohm

Kollisionen liegen in der Natur des verwendeten Mechanismus. Ich habe zwar schon einmal über Strategien zu deren Auflösung nachgedacht, aber dabei landet man dann ziemlich schnell wieder bei \marginpar und das wollen wir ja gerade nicht.

Ich habe keine echte Lösung anzubieten, aber vielleicht einen Denkansatz. Man könnte die von pdfTeX bereitgestellte Möglichkeit, absolute Positionen zu finden, benutzen. Das Paket "zref-savepos" kann zur Vereinfachung dienen. Eine konkrete Anwendung zeigte Philipp Stephani auf "comp.text.tex" in seiner Antwort zu der mit "Current line number in paragraph" betitelten Frage (11.03.2010). Dort ist das Zusammenspiel von "marginnote" und "zref-savepos" gezeigt für den Fall, dass eine zu einem Absatz gehörige Randnotiz immer auf Höhe der ersten Zeile des betreffenden Absatzes gesetzt wird und zwar unabhängig davon, wo sie innerhalb des Absatzen angegeben wurde.

...Rolf

Bild von Markus Kohm

Allerdings nur, wenn die entsprechenden Features auch bereit stehen.

Comments for "index-proofmode mit marginnote-Robustheit" abonnieren