Sowohl in normalem Fließtext, als auch in durch Makros erzeugten oder aus Datei eingelesenen Texten möchte ich bestimmte Wörter hervorheben, ohne dass ich sie alle durch Makros ersetzen muss.

An einem einfachen Beispiel:

Open in Online-Editor
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{xcolor}
\begin{document}
\blindtext
\end{document}

Hierin möchte ich alle Vorkommen des Wortes "ist" rot und fett markiert haben. Das nutze ich z.B. um meine zu oft wiederkehrenden Ausdrücke zu erkennen, um sie im Anschluss zu variieren. XeTeX und LuaTeX-Lösungen sind auch willkommen.

Wie schaffe ich, im Fließtext vorkommende Wörter automatisch hervorheben zu lassen?

gefragt 07 Mär '14, 14:50

Student's gravatar image

Student
4702578103
Akzeptiert: 96%

bearbeitet 14 Apr '15, 11:40

saputello's gravatar image

saputello
18.4k22352

Die Frage ist zum Archivieren gedacht, kein Support benötigt. Antworten sind jedoch sehr willkommen! Ich werde ein XeTeX-xesearch-Beispiel posten, was ich gefunden habe, zu Archivzwecken. Ich setze gern 300 Punkte aus für eine andere Lösung, z.B. mit LuaTeX oder pdfTeX.

(07 Mär '14, 14:52) Student

Wenn man XeTeX bzw. XeLaTeX einsetzt, gibt es eine sehr einfache Möglichkeit mit dem cleveren xesearch-Paket. Hier suche und färbe ich alle Vorkommen von "ist" sowie "und" ein:

Open in writeLaTeX
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{xltxtra}
\usepackage{xesearch}
\SearchList{eins}{\textbf{\textcolor{red}{#1}}}{ist}
\SearchList{zwei}{\textbf{\textcolor{blue}{#1}}}{und}
\begin{document}
\blindtext
\end{document}

Ausgabe Text mit formatierten Wörtern

Das xesearch-Handbuch gibt weitere Informationen, wie es funktioniert und wie man es einsetzen noch kann. Xesearch funktioniert auch mit ConTeXt und plain XeTeX.

Permanenter link

beantwortet 07 Mär '14, 15:02

Student's gravatar image

Student
4702578103

Basiert ConTeXt (zumindest Mk IV) auf LuaTeX? Funktioniert da xesearch trotzdem?

Übrigens: xltxtra kann überraschende Effekte haben und ist meistens nicht nötig. fontspec reicht üblicherweise völlig.

(07 Mär '14, 15:45) Clemens

@Clemens Ich habe nur von ConTeXt-Support im xesearch-Handbuch gelesen, dass man es mit \usemodule[xesearch] dort lädt. Probiert habe ich das nie, da ich ConTeXt nie verwendet habe.

(07 Mär '14, 16:44) Student

@Student Ich hab's ausprobiert: \usemodule[xesearch] führt auf ! Undefined control sequence. ConTeXt beschwert sich, weil \XeTeXinterchartoks nicht definiert ist. xesearch geht also zumindest mit Mk IV nicht.

(09 Mär '14, 12:31) Clemens

Mit LuaTeX gibt es ebenfalls Lösungen:

Open in writeLaTeX
% arara: lualatex
\documentclass{article}
\usepackage[ngerman]{babel}

\usepackage{fontspec,xcolor}
\usepackage{luacode,luatexbase}

\begin{luacode}
local function emphistund ( line )
  line = string.gsub(line, " ist " , " \\textbf{\\textcolor{red}{ist}} ")
  line = string.gsub(line, " Ist " , " \\textbf{\\textcolor{red}{Ist}} ")
  line = string.gsub(line, " und " , " \\textbf{\\textcolor{blue}{und}} ")
  return line
end
luatexbase.add_to_callback( "process_input_buffer",  emphistund, "emph_ist_und")
\end{luacode}

\usepackage{blindtext}

\begin{document}
\blindtext
\end{document}

alt text

Nun bin ich ein völliger Lua-Anfänger (das war mein allererster direkter Kontakt damit), was bedeutet, das es mit Sicherheit noch einen effizienteren Einsatz gibt (@Mico?, @topskip?), aber es zeigt zumindest, dass das Prinzip funktioniert.

Permanenter link

beantwortet 14 Mär '14, 06:10

Clemens's gravatar image

Clemens
19.0k113060

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×108
×25
×20
×9
×2

Frage gestellt: 07 Mär '14, 14:50

Frage wurde angeschaut: 4,037 Mal

Zuletzt aktualisiert: 14 Apr '15, 11:40