TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

Hallo zusammen,

Ich möchte eine Markierung setzen (\hl aus soul package) und zu dieser Markierung eine Randnotiz (\marginpar) machen. Dabei habe ich festgestellt, dass die Farbe der Randnotiz manchmal in der Highlight-Farbe erscheint. Aber wann genau, ist mir nicht klar. Folgendes Beispiel macht das deutlich:

\documentclass[a4paper,12pt]{article}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\usepackage{soul}
\newcommand{\comment}[2]{\marginpar{\footnotesize \raggedright #2} \hl{#1}}
\setlength{\textwidth}{13cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\marginparwidth}{5cm}
\begin{document}
 Dies ist ein Text. \comment{Dies ist ein Hinweis.}{Hier schwarz}  Dies ist ein text. Noch mehr Text. Noch mehr Text. Noch mehr Text. Noch mehr Text. \comment{Dies ist ein Hinweis.}{Hier gelb} Dies ist ein Hinweis.

Dann haben wir noch den \comment{zweiten Fall}{hier wieder  schwarz}, dass ein markierter Text zwar in eine Zeile \comment{passt}{seltsamerweise hier gelb!}, aber in der gleichen Zeile noch ein \comment{weiterer markierter Text erscheint}{weil dieser hier gelb ist...}, in dem ein Zeilenumbruch liegt; dann werden seltsamerweise beide Randnotizen gelb geschrieben.

\end{document}

Hat jemand eine Ahnung, warum das so ist? Ich kann es verhindern, indem ich explizit den Text in schwarz setze (\textcolor{black}{#2}), aber mir ist das Prinzip nicht klar.

Vielleicht wisst ihr, woran das liegt. Gruß Ingo

gefragt 05 Feb, 12:59

scheider's gravatar image

scheider
11
Akzeptiert-Rate: 0%

bearbeitet 08 Feb, 11:50

cgnieder's gravatar image

cgnieder
20.7k163463


Mit Farbe in LaTeX ist das immer so eine Sache. Generell ist das Setzen einer Box während eine andere Farbe aktiv ist problematisch. Der LaTeX Kern verwendet deshalb am Beginn von Boxen, die bspw. mit \sbox gesetzt werden, den Befehl \color@setgroup und an deren Ende \color@endgroup. Das Selbe könnte auch mit \comment verwendet werden (mit freundlichem Dank an Ulrike, die \leavevmode hinzugefügt hat)

\documentclass[a4paper,12pt]{article}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\usepackage{soul}
\makeatletter
\newcommand{\comment}[2]{\marginpar{\leavevmode\color@setgroup\footnotesize \raggedright
#2\color@endgroup}\hl{#1}}
\makeatother
\setlength{\textwidth}{13cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\marginparwidth}{5cm}
\begin{document}
 Dies ist ein Text. \comment{Dies ist ein Hinweis.}{Hier schwarz}  Dies ist ein text. Noch mehr Text. Noch mehr Text. Noch mehr Text. Noch mehr Text. \comment{Dies ist ein Hinweis.}{Hier gelb} Dies ist ein Hinweis.

Dann haben wir noch den \comment{zweiten Fall}{hier wieder  schwarz}, dass ein markierter Text zwar in eine Zeile \comment{passt}{seltsamerweise hier gelb!}, aber in der gleichen Zeile noch ein \comment{weiterer markierter Text erscheint}{weil dieser hier gelb ist...}, in dem ein Zeilenumbruch liegt; dann werden seltsamerweise beide Randnotizen gelb geschrieben.

\end{document}

alt text

Permanenter link

beantwortet 05 Feb, 14:41

Skillmon's gravatar image

Skillmon
8914
Akzeptiert-Rate: 56%

bearbeitet 05 Feb, 20:03

Herzlichen Dank für die Antwort! Mir ist nicht ganz klar, warum die Box einen Einfluss hat, weil der \hl Befehl \emph{nach} der \marginpar kommt, aber das geht wahrscheinlich zu sehr in die Tiefen des LaTeX Struktur. Ich werde es also entweder so machen wie du vorgeschlagen hast oder eben \textcolor{black} verwenden.

(05 Feb, 16:23) scheider
3

\leavevmode\color@setgroup oder einfacher \leavevmode\normalcolor.

(05 Feb, 17:14) Ulrike Fischer
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×3
×3

gestellte Frage: 05 Feb, 12:59

Frage wurde gesehen: 181 Mal

zuletzt geändert: 08 Feb, 11:50