PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : string replace in Tex/Latex



dernickel
28-11-2007, 16:04
Ich suche nach einer Möglichkeit, Zeichenketten (oder auch nur einzelne Zeichen) in einem Wort zu ersetzen.



\newcommand{\stringreplace}[3]{..?..}

\begin{document}
\stringreplace{rumrollern}{r}{l}
\end{document}


Das Ziel ist es, mit dem Befehl \stringreplace die Ausgabe "lumlolleln" zu produzieren.

Geht sowas in Tex/Latex?

Gibt es dafür bereits Pakete? Ich konnte nichts dergleichen finden.

sommerfee
28-11-2007, 16:13
Geht sowas in Tex/Latex?


Ja, man kann sich TeX-Makros dafür schreiben, kein Problem. Je spezieller die Anwendung ist, desto einfacher ist es. Wenn man z.B. festlegt, daß ein "r" ersetzt werden soll (dies also nicht als Argument offen läßt), kann man TeX einfach durch eine Konstruktion wie
\def\replacelr#1l#2\nil{...} die eigentliche Arbeit, das Suchen des "l", tun lassen. Eine andere Idee, wenn man sich den Buchstaben offen halten möchte, wäre alle Zeichen mit den Makros \@car und \@cdr vom LaTeX-Kern nacheinander "abzuklappern", diese kann man dann mit \if vergleichen und ggf. ersetzen.

Die Grundlagen dafür findet man im TeXBook und hier: http://www.eijkhout.net/tbt/index.html



Gibt es dafür bereits Pakete? Ich konnte nichts dergleichen finden.

Ein fertiges Paket zur Manipulation von Zeichenketten ist mir nicht bekannt. (Was aber nicht heißt, daß es keins gibt.) Schaue doch mal hier nach:
http://www.ctan.org/tex-archive/help/Catalogue/bytopic.html

Gruß,
Axel