PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String suche



Sbata
29-03-2005, 22:15
hallo

wie kann ich in meinen tex datei nach einen bestimmten string suchen.
damit ich ihm ersetzen kann.

(so wie suchen und ersetzen)

danke
sbata

moedule
30-03-2005, 00:03
das kommt wohl stark auf deinen editor an?!

ansonsten in der console: sed s/string1/string2/ datei

moe

Sbata
30-03-2005, 09:56
ich weisse es , ich will es aber ich mit dem editor machen.
ich will dass latex es selber macht.

danke
sbata

blubb
30-03-2005, 10:01
Für so etwas nimmt man üblicherweise Makros.

D.h. statt Text suchen/ersetzen nimmt man statt dem Text ein Makro und weist dem Makro einen Wert zu.

\newcommand{\freund}{Hans\xspace}
\iffreundschaftbrokenandnewfriendkarl
\renewcommand{\freund}{Karl\xspace}
\fi
...
Ich gehe mit \freund spazieren.
...

Sbata
30-03-2005, 10:20
\newcommand{\freund}{Hans\xspace}
\iffreundschaftbrokenandnewfriendkarl --->??? was ist das
\renewcommand{\freund}{Karl\xspace}
\fi

kannst du mir bitte der macro erklären und wie er funktioniert:
! Undefined control sequence.
l.64 \iffreundschaftbrokenandnewfriendkarl


danke
sbata

Sbata
30-03-2005, 10:34
ich versuche , der hyperlink macro zu machen.


\newcommand{\slink}[1][2]{

\ifthenelse{exsist einen targetID = #1}{\textsc{#2}}{\hyperlink{#1}{#2}}

}

mein problem ist momentan wie kann ich nach dem targetid suchen.
oder anders gesagt , wie kann ich nach dem string ' \hypertarget{id}' suchen


\slink{1}{2}
\hypertarget{1}{2}

danke
sehr sehr
sbata

blubb
30-03-2005, 12:07
kannst du mir bitte der macro erklären und wie er funktioniert:
Das ist kein lauffähiger Code.
Das \if soll irgendeine Abfrage darstellen, anhand der du den Inhalt von \freund definierst.
Kann auch sein, das du da gar keine tex-\if-Abfrage hast, sondern einfach einen Wert fix hinterlegst.
Da du nicht sagst wozu du das suchen/ersetzen brauchst, kann ich auch keine genauere Hilfe geben.


\newcommand{\slink}[1][2]{
Du bist dir bewusst, das du ein Makro \slink definierst das einen optionalen Parameter hat. Wird kein Wert angegeben ist der Wert 2.

Du willst vermutlich \newcommand{\slink}[2]{... verwenden.

moedule
30-03-2005, 14:04
ah ok, jetzt verstehe ich langsam was du willst. ist aber auch etwas schlecht formuliert die frage

moe

Sbata
30-03-2005, 15:34
Du bist dir bewusst, das du ein Makro \slink definierst das einen optionalen Parameter hat. Wird kein Wert angegeben ist der Wert 2.

es wird immer einen wert gegeben

gut gut.

also ich habe zwei idee um die hyperlink sache zu lösen.


entweder

ich schreibe nicht mehr \hyperlink, sondern \slink{}{}
und definiere die neue commando
mit ifthen wird überprüft ob der erste parameter im dokument existiert(im hypertarget)... wenn ja dann link , wenn nicht dann text....


oder ich schreibe beim ersten durchlauf von pdflatex alle hypertarget in einen externen datei.
und überprüfe dann ob jeder \slink erste parameter in dieser datei exsistiert.





dafür musse ich wissen wie ich einen string suchen kann, bzw in meinen dokument oder in einen externen datei..


können sie jetzt micht verstehen???


danke
sbata