Archiv verlassen und diese Seite im Standarddesign anzeigen : Link ohne ziel
hi *
ich habe in meinen Dokument mehr als 10000 Links(interne Links):
\hyperlink{..}{..}
\hypertarget{..}{..}
ich kann nicht manuell überprüfen ob jeder link funktioniert. ich benutze ganz normal der hyperref
package.
wenn ein Link kein Target hat dann wird der link dargestellt,und ist auch anklickbar , jedoch wenn
man ihm klickt dann zeigt er auf die erste seite der Dokument.
kann man das ändern , so das der Link nicht mehr anklikbar ist ???
nur der Text wird geschrieben.
danke sehr
Sbata
ich kann nicht manuell überprüfen ob jeder link funktioniert.
Das sollte eigentlich als Warnung im Log-File kommen.
Du kannst ja mal bewusst einen falschen Link setzen und schauen, ob die Warnung im log-File kommt.
das geht , aber
ich will zuerst die links ohne ziel auschalten
sbata
Du kannst ja mal bewusst einen falschen Link setzen und schauen, ob die Warnung im log-File kommt.
Habe ich jetzt mal kurz gemacht, es kam aber keine Warnung von hyperref, dafür hat pdfTeX hat eine Warnung ausgeworfen:
! pdfTeX warning (dest): name{dd} has been referenced but does not exist, replaced by a fixed one
Aus http://www.mrunix.de/forums/showthread.php?p=173421#post173421
ist es machbar einen macro zu schreiben , der überprüft ob jeder \hyperlink ein target hat. \hyperlink{id}{text}
\hypertarget{id}{text}
Da \hyperlink keine Warnung wirft, sondern pdfTeX scheint es tief im System vergraben zu sein.
Oder anders formuliert: Wenn ich vor dem Problem stehen würde, würde ich eher den Weg über ein Skript gehen, das die falschen links aus dem log extrahiert und anschliessend meine Sourcen anpassen.
na ja ich kann kein script schreiben.
die falschen links sind auch bei mir tief , im xml , und ich kann diesen xml nicht ändern.
aus diesen xml generiere ich der latex .
danke für deine hilfe.
sbata
hab mir da mal kurz ein kleines script überlegt ... (und bitte nicht den stil kritisieren, ist nicht unbedingt meine stärke mit sed ...) (verbesserungen (vereinfachungen) werden gerne angenommen)
es extrahiert aus der tex-datei (als parameter des scripts) alle hypertargets und alle hyperlinks, schreibt diese jeweils in ne datei (geht sicher auch ohne datei) und vergelicht dann die links mit den targets. schlußendlich kommt eine liste von links heraus, die kein passendes target haben
#!/bin/sh
cat $1 | grep "\hypertarget" | sed -e 's/.*\\hypertarget{\(.*\)}.*/\1/'| sed -e 's/\(.*\)}.*/\1/' > targets.txt
cat $1 | grep "\hyperlink" | sed -e 's/.*\\hyperlink{\(.*\)}.*/\1/'| sed -e 's/\(.*\)}.*/\1/' > links.txt
awk '{system("a=`grep -c -s "$1" targets.txt`; if test $a -eq 0; then echo "$1";fi")}' links.txt
sicher noch verbesserungswürdig (mehrfacheinträge, usw). und vorallem mein sed-awk-bash-mix :-)
moe
danke dir
ich brauche aber eine latex lösung,
na ja ich werde einfach weiter suchen.
sbata
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.