Einen text ZEILENWEISE farbig markieren
Verfasst: Fr 10. Nov 2017, 22:26
Hallo!
Ich arbeite gerade an etwas, bei dem "Markierungen" im Text sehr nützlich wären, und zwar solche, die ich automatisch generieren kann. Gegeben sei also ein großer Absatz, und diesen möchte ich wie mit einem Textmarker markieren. An sich habe ich bereits ein Kommando, das diese Aufgabe erfüllt:
Allerdings stört es mich, dass nun natürlich die ganze Box gelb eingefärbt wird. Viel schöner fände ich es, wenn wirklich nur der Text eingefärbt werden würde, und der Freiraum unten rechts freibliebe. So wie ich es verstehe, geht das allerdings nur, indem man jede Zeile einzeln mit einer \colorbox behandelt. Das stellt mich wiederum vor ein Problem, da ich natürlich wissen müsste, wann genau ein Linebreak zustande gekommen ist, um darauf dann mit der colorbox reagieren zu können.
Vielleicht könnte man auch eine Umgebung erstellen, in der der Linebreak temporär umdefiniert wird? Das heißt, man speichert den normalen linebreak mittels \let, erneuert das Kommando und fügt nach dem Teil, der den Linebreak erzeugt, meine colourbox hinzu, und macht das ganze am Ende wieder rückgängig. Allerdings weiß ich nicht, welches Kommando LaTeX intern benutzt, um Zeilenumbrüche einzufügen. Außerdem könnte der Fakt, dass der Text der colourbox in {} stehen muss, zu einer herausforderung führen, da das Kommando für den Linebreak ja selbst keine Parameter nimmt, oder?
Hat jemand eine Idee wie man an dieses Problem herangehen könnte?
Ich arbeite gerade an etwas, bei dem "Markierungen" im Text sehr nützlich wären, und zwar solche, die ich automatisch generieren kann. Gegeben sei also ein großer Absatz, und diesen möchte ich wie mit einem Textmarker markieren. An sich habe ich bereits ein Kommando, das diese Aufgabe erfüllt:
\documentclass{article} \usepackage{xcolor} \usepackage[ngerman]{babel} \usepackage{blindtext} \newcommand{\textmarked}[1]{\colorbox{yellow}{\parbox{\linewidth}{#1}}} % Zwinge den Text dazu, aufgrund einer \parbox bei Linienende umzubrechen und markiere das ganze gelb \begin{document} \noindent \textmarked{\blindtext} \end{document}
Vielleicht könnte man auch eine Umgebung erstellen, in der der Linebreak temporär umdefiniert wird? Das heißt, man speichert den normalen linebreak mittels \let, erneuert das Kommando und fügt nach dem Teil, der den Linebreak erzeugt, meine colourbox hinzu, und macht das ganze am Ende wieder rückgängig. Allerdings weiß ich nicht, welches Kommando LaTeX intern benutzt, um Zeilenumbrüche einzufügen. Außerdem könnte der Fakt, dass der Text der colourbox in {} stehen muss, zu einer herausforderung führen, da das Kommando für den Linebreak ja selbst keine Parameter nimmt, oder?
Hat jemand eine Idee wie man an dieses Problem herangehen könnte?