Hyperlink für Stichworte
Moderator: Moderatoren
Re: Hyperlink für Stichworte
Hallo,
leider habe ich nicht die Zeit für eine kontinuierliche Projektbetreuung, sodass ich die Hilfe nicht bieten kann.
Unverschämt ist die Bitte nicht, aber es ist auch keine einmalige Sache. Ein Stichwortverzeichnis wird üblicherweise ständig überarbeitet, sodass solche Eingriffe wie das Erstellen von Hyperlinks/Querverweisen immer wieder neu gemacht werden müssen.
Hier http://de.openoffice.info/viewtopic.php?t=76628 wurde Hilfe angeboten.
leider habe ich nicht die Zeit für eine kontinuierliche Projektbetreuung, sodass ich die Hilfe nicht bieten kann.
Unverschämt ist die Bitte nicht, aber es ist auch keine einmalige Sache. Ein Stichwortverzeichnis wird üblicherweise ständig überarbeitet, sodass solche Eingriffe wie das Erstellen von Hyperlinks/Querverweisen immer wieder neu gemacht werden müssen.
Hier http://de.openoffice.info/viewtopic.php?t=76628 wurde Hilfe angeboten.
Gruß,
mikeleb
mikeleb
Re: Hyperlink für Stichworte
Das man ein Stichwortverzeichnis aktualisieren muß, "weiß jede Kind".
Das man danach logischerweise auch, sofern das Programm im Kern keine Hyperlinks anbietet, die Hyperlinks mit einem funktionierenden Makro aktualisieren muß, ist auch naheliegend.
Da das Makro an sich öffentlich ist, wäre eine ausführliche "Betriebsanweisung" wünschenswert.
Aber wenn das in diesem thread verlinkte Makro nicht lauffähig zu machen ist, ist der ganze thread "Kacke".
mikelab-> Übrigens kann ich deinem letzten Link für mich gar nicht Produktives erkennen, da das Forum doch nicht nur für eine Person da ist...
Das man danach logischerweise auch, sofern das Programm im Kern keine Hyperlinks anbietet, die Hyperlinks mit einem funktionierenden Makro aktualisieren muß, ist auch naheliegend.
Da das Makro an sich öffentlich ist, wäre eine ausführliche "Betriebsanweisung" wünschenswert.
Aber wenn das in diesem thread verlinkte Makro nicht lauffähig zu machen ist, ist der ganze thread "Kacke".
mikelab-> Übrigens kann ich deinem letzten Link für mich gar nicht Produktives erkennen, da das Forum doch nicht nur für eine Person da ist...
Zuletzt geändert von quotsi am Do, 06.04.2023 19:00, insgesamt 1-mal geändert.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Hallo,
der Link bezieht sich nur auf die von 15Albert angefragte persönliche Hilfe.
Mittlerweile ist in diesem Thread von zwei Makros die Rede.
Welches Makro nicht zum Laufen gebracht werden kann, habe ich in 15Alberts Antwort nicht herauslesen können.
Welche Art von weiterer Betriebsanweisung wird gebraucht?
der Link bezieht sich nur auf die von 15Albert angefragte persönliche Hilfe.
Mittlerweile ist in diesem Thread von zwei Makros die Rede.
Welches Makro nicht zum Laufen gebracht werden kann, habe ich in 15Alberts Antwort nicht herauslesen können.
Welche Art von weiterer Betriebsanweisung wird gebraucht?
Gruß,
mikeleb
mikeleb
Re: Hyperlink für Stichworte
Ja, entschuldige, habe gar nicht bemerkt, dass da noch ein Beitrag von dir dazwischen reinkam mit dem zweiten (!) Makro.
Meine Klage bezog sich auf das erste. Also jetzt habe ich das zweite am Wickel.
Du beschreibst schon, was nicht gehen würde. Aber ich vermisse eine "Einführung", denn nach dem Laden habe ich drei (!) Makros. Natürlich startete ich mit "verweise_setzen". Aber man hätte das auch irgendwie vorher vermitteln können...
Nun zum Testobjekt. Das hatte ich seinerzeit schon veröffentlicht, als ich über Konkordanzdatei schwafelte. Die Datei hat ein Stichwortverzeichnis ohne Konkordanzdatei. Aber bereits diese Datei will deinem Willen/deinem Makro nicht folgen: Wenn gewünscht, kann ich dieselbe Datei auch mit Stichwortverzeichnis auf Basis einer Konkordanzdatei liefern.
Gruß
und Freude am Arbeiten. Ich muß noch Ostergrüße schreiben, die sowieso keiner liest.
Meine Klage bezog sich auf das erste. Also jetzt habe ich das zweite am Wickel.
Du beschreibst schon, was nicht gehen würde. Aber ich vermisse eine "Einführung", denn nach dem Laden habe ich drei (!) Makros. Natürlich startete ich mit "verweise_setzen". Aber man hätte das auch irgendwie vorher vermitteln können...
Nun zum Testobjekt. Das hatte ich seinerzeit schon veröffentlicht, als ich über Konkordanzdatei schwafelte. Die Datei hat ein Stichwortverzeichnis ohne Konkordanzdatei. Aber bereits diese Datei will deinem Willen/deinem Makro nicht folgen: Wenn gewünscht, kann ich dieselbe Datei auch mit Stichwortverzeichnis auf Basis einer Konkordanzdatei liefern.

Gruß
und Freude am Arbeiten. Ich muß noch Ostergrüße schreiben, die sowieso keiner liest.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Nachtrag:
Starte ich mit "erstelle_dialog", gelange ich zu einer unendlichen Warteposition
Starte ich mit "erstelle_dialog", gelange ich zu einer unendlichen Warteposition
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Hallo,
da waren gleich zwei Ostereier im Nest:
1) ein grober Programmierfehler
: in Zeile 49 musste es natürlich
lauten
2) Ein hierarchisches Stichwortverzeichnis hatte ich so nicht auf dem Schirm, wodurch Absätze im Stichwortverzeichnis ohne Seitennummern auftauchen.
Beide Fehler sind behoben.
Am Dialog habe ich auch noch etwas gebastelt (der dient ja "nur" der Optik, damit man bei umfangreicheren Dokumenten sieht, dass etwas passiert).
da waren gleich zwei Ostereier im Nest:
1) ein grober Programmierfehler


Code: Alles auswählen
oindex=odoc.documentindexes(i)
2) Ein hierarchisches Stichwortverzeichnis hatte ich so nicht auf dem Schirm, wodurch Absätze im Stichwortverzeichnis ohne Seitennummern auftauchen.
Beide Fehler sind behoben.
Am Dialog habe ich auch noch etwas gebastelt (der dient ja "nur" der Optik, damit man bei umfangreicheren Dokumenten sieht, dass etwas passiert).
Code: Alles auswählen
REM ***** BASIC *****
'Das Modul enthält 3 Subs:
'verweise_setzen -> das zu startende Makro, um Seitenzahlen im Stichwortverzeichnis mit Querverweisen zu versehen
'erstelle_dialog -> ein Untermakro, um den Dialog zur Laufzeit zu erstellen
'butlist_ActionPerformed -> Makro für den ActionListener für den Button im Dialog
public warten_dialog as object
public raus 'beendet Hauptschleife Do-Loop, Abbruch durch den Benutzer -> Schaltfläche "Stop"
Const praefix="x_" 'Präfix für die Stichwortlesezeichen, zur Unterscheidung ggf. anderer Lesezeichen
Sub verweise_setzen()
'Originalautor: www.jm-schmidt.de
'be- und umgearbeitet im April 2023
startzeit = time()
raus = 0
rueck = 0
rueck = Msgbox("Wollen Sie die Einträge im Stichwortverzeichnis verlinken? " & _
CHR(13) & CHR(13) & "ACHTUNG das Stichwortverzeichnis muss unmittelbar vor " & _
"dem Start des Makros hier, aktualisiert worden sein. Ansonsten klicken Sie bitte ab ""Abbrechen"" " & _
" und aktualisieren das Stichwortverzeichnis und starten Sie danach das Makro neu." & CHR(13) & " ", 33, "Stichwortverzeichnis bearbeiten")
If Not(rueck = 1) Then Exit Sub
oDoc=ThisComponent
cur = oDoc.Text.createTextCursor
oViewCursor = oDoc.CurrentController.getViewCursor
indexes = ThisComponent.getDocumentIndexes()
For i = 0 To Indexes.getCount() - 1
oIndex = Indexes.getByIndex(i)
If oIndex.supportsService("com.sun.star.text.DocumentIndex") Then
If oIndex.UseCombinedEntries then
erstelle_dialog
'warten_dialog.setVisible(True)
warten_dialog.getControl("warten1").Text = "alte Lesezeichen werden gelöscht ..."
'Alle ursprünglichen Lesezeichen entfernen
oMarks=ThisComponent.Bookmarks
for k=oMarks.count-1 to 0 step -1
oMark=oMarks.getbyindex(k)
if left(oMark.Name,len(praefix))=praefix then
oMark.anchor.getText().removeTextContent(oMark)
end if
next
'Alle Stichwortvorkommen im Dokument einlesen und Lesezeichen setzen
oindex=odoc.documentindexes(i)
Dim aStichworte(ubound(oindex.documentindexmarks))
for n_sw=0 to ubound(aStichworte)
warten_dialog.getControl("warten1").Text = "Stichwörter werden eingelesen, Lesezeichen gesetzt ... " & n_sw+1 & " von " & ubound(aStichworte)+1
oMark=oindex.DocumentIndexMarks(n_sw)
'zur Textstelle gehen
oViewCursor.gotoRange(oMark.anchor, false)
aStichworte(n_sw)=DimArray(4)
aStichworte(n_sw)(0)=oMark.markEntry & oMark.anchor.string 'Text des Eintrages
aStichworte(n_sw)(1)=oViewCursor.getpage 'Seite des Vorkommens
aStichworte(n_sw)(2)=oviewcursor.position.x 'Position des Vorkommens
aStichworte(n_sw)(3)=oviewcursor.position.y
aStichworte(n_sw)(4)=praefix & aStichworte(n_sw)(0) & "-" & n_sw 'Name des Lesezeichens
'Lesezeichen erstellen
oBookmark = ThisComponent.createInstance("com.sun.star.text.Bookmark")
oBookmark.setName(aStichworte(n_sw)(4))
ocurtmp=oViewcursor.Text.createTextCursor
ocurtmp.gotoRange(oMark.anchor, false)
oViewCursor.Text.insertTextContent(ocurtmp, oBookmark, False)
next
warten_dialog.getControl("warten1").Text ="Querverweise werden erstellt ..."
cur.gotoRange(oIndex.getAnchor, false)
cur.CollapseToStart 'vorderste Position im Verzeichnis
'Anzahl Einträge ermitteln
anzahl_eintraege = 0
Do
IF cur.ParaStyleName = oIndex.ParaStyleLevel1 OR cur.ParaStyleName = oIndex.ParaStyleLevel2 OR cur.ParaStyleName = oIndex.ParaStyleLevel3 Then
anzahl_eintraege = anzahl_eintraege + 1
Elseif cur.ParaStyleName <> oIndex.ParaStyleHeading AND cur.ParaStyleName <> oIndex.ParaStyleSeparator Then
Exit Do
End If
cur.GotoNextParagraph(False)
Loop
cur.gotoRange(oIndex.getAnchor, false)
cur.CollapseToStart
dd = 0
Do While raus = 0 and dd<anzahl_eintraege
cur.GotoEndOfParagraph(False)
'Verzeichniseintrag?
IF cur.ParaStyleName = oIndex.ParaStyleLevel1 OR cur.ParaStyleName = oIndex.ParaStyleLevel2 OR cur.ParaStyleName = oIndex.ParaStyleLevel3 Then
dd = dd + 1
warten_dialog.getControl("warten1").Text ="Querverweise werden erstellt ... " & dd & " von " & anzahl_eintraege
cur.GotoStartOfParagraph(False)
cur.GotoEndOfParagraph(True)
'Auslesen des gesamten Eintrags in Array tmp()
'der Eintrag muss folgende Struktur haben: Eintrag#Tabulator#Seiten
tmp = Split(cur.String, CHR(9)) 'es wird das Vorhandensein eines Tabulators je Eintrag vorausgesetzt
'Finden aller Lesezeichen zu diesem Eintrag, sortiert
sEintrag=tmp(0)
n=-1
for z=0 to ubound(aStichworte)
warten_dialog.getControl("warten3").Text = sEintrag
if aStichworte(z)(0)=sEintrag then
n=n+1
ReDim preserve aEintrag(n)
aEintrag(n)=aStichworte(z)
tausch=1
k=n-1
do while tausch=1 and k>-1
if (aEintrag(k+1)(3)>aEintrag(k)(3)) or (aEintrag(k+1)(3)=aEintrag(k)(3) and aEintrag(k+1)(2)>aEintrag(k)(2)) then
tausch=0
else
swp=aEintrag(k)
aEintrag(k)=aEintrag(k+1)
aEintrag(k+1)=swp
end if
k=k-1
loop
end if
next
'Auslesen der ggf. mehreren Seitenzahlen
tmp2 = Split(tmp(1), ", ")
'.UseCombinedEntries ?
'.UsesDash ? .UsePP ?
'es können drei Fälle auftreten (.UsesCombinedEntries=True und .UsesDash=False und .UsePP=True):
' 45 Stichwort nur auf der Seite
' 45f. Stichwort auf der Seite und der folgenden
' 45ff. Stichwort auf der Seite und den folgenden
'der Link wird, in diesem Beispiel, immer nur zum Stichwort auf Seite 45 führen - ein Link zu mehreren Zielen ist nicht möglich
'es können zwei Fälle auftreten (.UsesCombinedEntries=True und .UsesDash=True und .UsePP=False):
' 45 Stichwort nur auf der Seite 45
' 45-47 Stichwort auf der Seite 45 bis einschließlich Seite 46
'
'wenn .UsesCombinedEntries=False oder .UsesDash=False und .UsePP=False, dann gibt es zu jedem Eintrag eine Liste nur einzelner Seiten
'der Fall muss nicht extra betrechtet werden
if ubound(tmp2)>-1 then 'mindestens eine Seitennummer vorhanden?
if oIndex.UsePP then
sTrenner="f"
else
sTrenner="-"
end if
'aktuelle Zeile im Verzeichnis
cur.GotoStartOfParagraph(False)
'lösche alles hinter dem Tabulator
cur.goRight(LEN(tmp(0))+1, False)
cur.GotoEndOfParagraph(True)
cur.String = ""
'Aufspalten einer Seitennumer mit ggf. f. oder ff.
tmp3=split(tmp2(0),sTrenner)
'die Seitenzahl weg
nseite=val(tmp3(0))
tmp3(0)=""
'neuer Text ohne Seitenzahl
neu=join(tmp3,sTrenner)
'Suche das Lesezeichen auf der richtigen Seite
nr=0
do until aEintrag(nr)(1)=nseite or nr=ubound(aEintrag)
nr=nr+1
loop
'msgbox nr
if aEintrag(nr)(1)=nseite then 'Lesezeichen auf der Seite existiert
oReference = ThisComponent.createInstance("com.sun.star.text.textfield.GetReference")
oReference.SourceName = aEintrag(nr)(4)
oReference.SequenceNumber = 0
oReference.ReferenceFieldPart = com.sun.star.text.ReferenceFieldPart.PAGE
oReference.ReferenceFieldSource = com.sun.star.text.ReferenceFieldSource.BOOKMARK
oDoc.getText.insertTextContent(cur, oReference, False)
cur.GotoEndOfParagraph(False)
else 'Lesezeichen nicht vorhanden
cur.String = nSeite
cur.collapsetoend
end if
cur.String = neu
cur.collapsetoend
'falls noch mehr Seiten zu dem Eintrag
for j=1 to ubound(tmp2)
cur.String = ", "
cur.collapsetoend
tmp3=split(tmp2(j),sTrenner)
nseite=val(tmp3(0))
tmp3(0)=""
neu=join(tmp3,sTrenner)
do until aEintrag(nr)(1)=nseite or nr=ubound(aEintrag)
nr=nr+1
loop
'msgbox nr
if aEintrag(nr)(1)=nseite then 'Lesezeichen auf der Seite existiert, Querverweis setzen
oReference = ThisComponent.createInstance("com.sun.star.text.textfield.GetReference")
oReference.SourceName = aEintrag(nr)(4)
oReference.SequenceNumber = 0
oReference.ReferenceFieldPart = com.sun.star.text.ReferenceFieldPart.PAGE
oReference.ReferenceFieldSource = com.sun.star.text.ReferenceFieldSource.BOOKMARK
oDoc.getText.insertTextContent(cur, oReference, False)
cur.GotoEndOfParagraph(False)
else 'Lesezeichen nicht vorhanden, es wird der ursprüngliche Text gesetzt
cur.String =nSeite
cur.collapsetoend
end if
cur.String = neu
cur.collapsetoend
next
end if
end if
cur.GotoNextParagraph(False)
loop
oviewcursor.gotoRange(oIndex.getAnchor, false)
oviewcursor.collapsetostart
end if
end if
next
ThisComponent.getTextfields.refresh()
warten_dialog.getControl("warten4").Text ="Start: " & startzeit & " " & "Ende: " & time()
warten_dialog.getControl("but1").Label="Ende"
'Warten bis der Dialog beendet wurde
do until warten_dialog.isvisible=false
wait 100
loop
End Sub
Sub erstelle_dialog
'warten-Dialog--------------------------
warten_model = CreateUnoService("com.sun.star.awt.UnoControlDialogModel")
warten_model.setPropertyValue("Width", 200) '343
warten_model.setPropertyValue("Height", 65) '65
warten_model.SetPropertyValue("Title","Bitte etwas Geduld")
oMod_warten = warten_model.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
With oMod_warten
.setPropertyValue("Name","warten1")
.setPropertyValue("PositionX",5) '192
.setPropertyValue("PositionY",5)
.setPropertyValue("Width",180)
.setPropertyValue("Height",15)
.setPropertyValue("MultiLine", True)
.setPropertyValue("Label","")
End With
warten_model.insertByName("warten1", oMod_warten)
oMod_warten2 = warten_model.createInstance("com.sun.star.awt.UnoControlButtonModel")
With oMod_warten2
.setPropertyValue("Name","but1")
.setPropertyValue("PositionX",70)
.setPropertyValue("PositionY",45) '45
.setPropertyValue("Width",60)
.setPropertyValue("Height",16)
.setPropertyValue("Label", "Stop")
.setPropertyValue("DefaultButton", True)
'.setPropertyValue("Enabled", False)
End With
warten_model.insertByName("but1", oMod_warten2)
oListbut = createUnoListener("butlist_","com.sun.star.awt.XActionListener")
oMod_warten3 = warten_model.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
With oMod_warten3
.setPropertyValue("Name","warten3")
.setPropertyValue("PositionX",5) '192
.setPropertyValue("PositionY",20)
.setPropertyValue("Width",180)
.setPropertyValue("Height",15)
.setPropertyValue("MultiLine", True)
.setPropertyValue("Label","")
End With
warten_model.insertByName("warten3", oMod_warten3)
oMod_warten4 = warten_model.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
With oMod_warten3
.setPropertyValue("Name","warten4")
.setPropertyValue("PositionX",5) '192
.setPropertyValue("PositionY",35)
.setPropertyValue("Width",180)
.setPropertyValue("Height",15)
.setPropertyValue("MultiLine", True)
.setPropertyValue("Label","")
End With
warten_model.insertByName("warten4", oMod_warten3)
warten_dialog = CreateUnoService("com.sun.star.awt.UnoControlDialog")
warten_dialog.setModel(warten_model)
warten_dialog.getControl("but1").addActionListener(oListbut)
oWin2 = CreateUnoService("com.sun.star.awt.Toolkit")
warten_dialog.createPeer(oWin2, null)
warten_dialog.setVisible(True)
End Sub
Sub butlist_ActionPerformed()
'wenn der Dialogbutton gedrückt wird
raus = 1
if warten_dialog.getControl("but1").Model.Label="Stop" then
warten_dialog.getControl("but1").Label="Ende"
else
warten_dialog.setVisible(False)
end if
End Sub
Gruß,
mikeleb
mikeleb
Re: Hyperlink für Stichworte
Ja, das geht schon mal weiter.
Aber nun noch dieselbe Datei mit Konkordanzdatei, also ein Pärchen. Ich lade beide hoch: Die Konkordanzdatei muß erst von ....sdi.odt ind nur .sdi umbenannt werden!
Dann muß die odt-Datei geöffnet werden und das Stichwortverzeichnis bearbeitet werden. Man prüft nur, ob der Link zur anwesenden Konkordanzdatei richtig ist. Danach Stichwortverzeichnis aktualisieren.
Wenn man jetzt das Makro aufruft, bleibt es stecken: Gruß
Aber nun noch dieselbe Datei mit Konkordanzdatei, also ein Pärchen. Ich lade beide hoch: Die Konkordanzdatei muß erst von ....sdi.odt ind nur .sdi umbenannt werden!
Dann muß die odt-Datei geöffnet werden und das Stichwortverzeichnis bearbeitet werden. Man prüft nur, ob der Link zur anwesenden Konkordanzdatei richtig ist. Danach Stichwortverzeichnis aktualisieren.
Wenn man jetzt das Makro aufruft, bleibt es stecken: Gruß
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Hallo,
das ist ja richtig spannend. Den Fehler kann ich nachvollziehen. Allerdings, wenn ich das Makro mehrmals nacheinander aufrufe, verschwindet irgendendwann
der Fehler und das Makro läuft fehlerfrei durch.
Auffällig ist, dass nach der Anwendung der Konkordanzdatei einige Stichworteeinträge doppelt da sind.
Ich habe dann mal alle Stichworte mit deinem Makro getilgt und dann das Verzeichnis mit Konkordanzdatei erneuert. Nun lief das Makro fehlerfrei.
Mir scheint, als wenn sich manuelle Stichworteinträge und Einträge per Konkordanzdatei teilweise gegenseitig stören bzw. nicht sauber aktualisiert werden???
das ist ja richtig spannend. Den Fehler kann ich nachvollziehen. Allerdings, wenn ich das Makro mehrmals nacheinander aufrufe, verschwindet irgendendwann

Auffällig ist, dass nach der Anwendung der Konkordanzdatei einige Stichworteeinträge doppelt da sind.
Ich habe dann mal alle Stichworte mit deinem Makro getilgt und dann das Verzeichnis mit Konkordanzdatei erneuert. Nun lief das Makro fehlerfrei.
Mir scheint, als wenn sich manuelle Stichworteinträge und Einträge per Konkordanzdatei teilweise gegenseitig stören bzw. nicht sauber aktualisiert werden???
Gruß,
mikeleb
mikeleb
Re: Hyperlink für Stichworte
Ich glaube, dass da was Wahres dran ist. Denn irgendwann (bevor ich die endgültige Dateisicherung an einen neuen Ort vornahm) habe ich die Konkordanzdatei extern überarbeitet und dann leider nur den Link aktualisiert, was natürlich nicht zulässig ist. Man kann diese Vermutung erkennen an dem Namen der Konkordanzdatei. Das ursprüngliche Original hat kein -1 am Ende. Tja, so kann es einem ergehen, wenn man infolge Alter nicht bis zu Ende nachdenkt und in Eile ist.
Ich werde deine Nachricht nutzen und selbst noch einmal alles nachspielen...
Jaa, du hast Recht. Dein Makro arbeitet tadellos!
Nur mußt du noch an der Schönheit arbeiten. Ich würde (weil wir ja deutsch schreiben hier in Deutschland) den Makronamen umbenennen in "Verweise_setzen" oder noch viel besser (falls das Fachwort zutreffend ist) in "Hyperlinks_setzen".
Und welche Funktion haben die ersten beiden genannten Makros für den "Kunden"? Kann mann die umbenennen oder ganz verstecken, sofern sie nur eine Unterroutine sind?
Aber es steht mir nich zu, was zu bemängeln. Schließlich habe ich ja nichts dazu beigetragen.
In meinem Kopf steht noch was. Wenn man auf die Seitenummer geht, dann liest man zwar den internen Bezug im Array, aber der hilft dem "blöden" Nutzer noch nicht. Davor sollte eingeblendet stehen: [strg+klick], um Hyperlink zu öffnen zu:
Das oder Ähnliches wie beim Inhaltsverzeichnis...
NACHTRAG
Ich habe jetzt dein Makro auch einmal auf meine Küchenrezepte (mit den Stichworten aus den Abschnittsüberschriften) einwirken lassen. Aber da läuft es nicht (!) durch. Habe vom Protest einen "screen" gemacht: Danach sah ich noch, dass eine Zählung der Stichworte bis 103 erfolgte. Dann habe ich ohne Sicherung abgebrochen.
Ich werde deine Nachricht nutzen und selbst noch einmal alles nachspielen...
Jaa, du hast Recht. Dein Makro arbeitet tadellos!
Nur mußt du noch an der Schönheit arbeiten. Ich würde (weil wir ja deutsch schreiben hier in Deutschland) den Makronamen umbenennen in "Verweise_setzen" oder noch viel besser (falls das Fachwort zutreffend ist) in "Hyperlinks_setzen".
Und welche Funktion haben die ersten beiden genannten Makros für den "Kunden"? Kann mann die umbenennen oder ganz verstecken, sofern sie nur eine Unterroutine sind?
Aber es steht mir nich zu, was zu bemängeln. Schließlich habe ich ja nichts dazu beigetragen.
In meinem Kopf steht noch was. Wenn man auf die Seitenummer geht, dann liest man zwar den internen Bezug im Array, aber der hilft dem "blöden" Nutzer noch nicht. Davor sollte eingeblendet stehen: [strg+klick], um Hyperlink zu öffnen zu:
Das oder Ähnliches wie beim Inhaltsverzeichnis...
NACHTRAG
Ich habe jetzt dein Makro auch einmal auf meine Küchenrezepte (mit den Stichworten aus den Abschnittsüberschriften) einwirken lassen. Aber da läuft es nicht (!) durch. Habe vom Protest einen "screen" gemacht: Danach sah ich noch, dass eine Zählung der Stichworte bis 103 erfolgte. Dann habe ich ohne Sicherung abgebrochen.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Guten Tag ihr beiden,
Wer macht es nun dem dummen User fertig?
Jeder bekommt je nach Wahl ein dicken Blumenstraus, eingen Sekt, Wein, Zigarren.
Albert.
Wer macht es nun dem dummen User fertig?
Jeder bekommt je nach Wahl ein dicken Blumenstraus, eingen Sekt, Wein, Zigarren.
Albert.
Re: Hyperlink für Stichworte
Ich bin dem Problem bei dem Koch- und Backrezepte - Verzeichnis nähergekommen:
1. Es waren zwei Stichwortverzeichnisse vorhanden!
Hier habe ich das zweite dann gelöscht.
2. Aber das verbliebene Stichwortverzeichnis hatte nicht nur Seitennummern am Ende, sondern zuvor Kapitelnummern!
DIESE Datei (verkürzt und anonymisiert) lade ich hier hoch: 3. Dann ist auch noch ein Abbildungsverzeichnis und ein
4. Inhaltsverzeichnis
Ich habe dann noch einen sprachlichen Fehler in LO entdeckt: Wenn man sich im Stichwortverzeichnis befindet und das rechte_Taste_Menü "Verzeichnisse aktualisieren" aufruft, wird nur das eine (aktuelle) Verzeichnis aktualisiert, keineswegs alle. Sprachlich ist das also falsch.
1. Es waren zwei Stichwortverzeichnisse vorhanden!
Hier habe ich das zweite dann gelöscht.
2. Aber das verbliebene Stichwortverzeichnis hatte nicht nur Seitennummern am Ende, sondern zuvor Kapitelnummern!
DIESE Datei (verkürzt und anonymisiert) lade ich hier hoch: 3. Dann ist auch noch ein Abbildungsverzeichnis und ein
4. Inhaltsverzeichnis
Ich habe dann noch einen sprachlichen Fehler in LO entdeckt: Wenn man sich im Stichwortverzeichnis befindet und das rechte_Taste_Menü "Verzeichnisse aktualisieren" aufruft, wird nur das eine (aktuelle) Verzeichnis aktualisiert, keineswegs alle. Sprachlich ist das also falsch.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Hallo Albert,
Halte noch ein schrecklich wenig aus. Die Feinheiten müssen noch geklärt werden.
Eine Rückfrage, falls du es sehr eilig hast:
Hat dein Stichwortverzeichnis nur Seiten am Ende?
Oder Kapitelnummern und Seiten wie in meinem Koch-Rezept-Beispiel?
Für die erste Variante funktioniert das Makro schon, wenn man es einbaut und dem Nutzer sagt, dass er strg+Klick auf die Seitenummer machen muß.
Für die zweite Variante noch nicht.
Halte noch ein schrecklich wenig aus. Die Feinheiten müssen noch geklärt werden.
Eine Rückfrage, falls du es sehr eilig hast:
Hat dein Stichwortverzeichnis nur Seiten am Ende?
Oder Kapitelnummern und Seiten wie in meinem Koch-Rezept-Beispiel?
Für die erste Variante funktioniert das Makro schon, wenn man es einbaut und dem Nutzer sagt, dass er strg+Klick auf die Seitenummer machen muß.
Für die zweite Variante noch nicht.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Hallo Quosti,
ich sag mal, Ende April könnte ich es gut gebrauchen.
Die Lste der Stichworte hänge ich noch mal an.
Darin siehst Du, dass oft für ein Stichwort mehre Seitenzahlen angegeben sind.
Manche sind so lang, dass ein Teil der Seitenzahlen in der nächsten Zeile liegen
Das ganze Buch ist zum Hochladen zu groß
Albert
ich sag mal, Ende April könnte ich es gut gebrauchen.
Die Lste der Stichworte hänge ich noch mal an.
Darin siehst Du, dass oft für ein Stichwort mehre Seitenzahlen angegeben sind.
Manche sind so lang, dass ein Teil der Seitenzahlen in der nächsten Zeile liegen
Das ganze Buch ist zum Hochladen zu groß
Albert
- Dateianhänge
-
- nur_Stichworte.odt
- (74.85 KiB) 93-mal heruntergeladen
Re: Hyperlink für Stichworte
Hallo mikeleb,
Ich korrigiere mich: Man muss ja nur auf die Seite klicken, also ohne strg+ und schon springt man dorthin. Ja, dann braucht es den diesbezüglichen Hinweis von mir nicht. Ist schon merkwürdig, was man übersieht.
Ich korrigiere mich: Man muss ja nur auf die Seite klicken, also ohne strg+ und schon springt man dorthin. Ja, dann braucht es den diesbezüglichen Hinweis von mir nicht. Ist schon merkwürdig, was man übersieht.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Hyperlink für Stichworte
Hallo Albert,
Ich weiß nicht wie mikelab das im Detail gemacht hat.
Aber du kannst das Makro ja mal in dein LO einbauen und dann über deine Datei laufen lassen.
1. Zuerst deine Datei als Original an anderen Ort sichern. Gearbeitet wird beim Probieren nur mit einem Duplikat!
2. Makro einbauen. Ich würde ohne Skrupel das Makro unter den eigenen, aber nicht unter den am Dokument gebundenen einbauen.
Dazu LO aufrufen, leeres writer-Dokument-> Extras-> Dialoge verwalten->
oben den Reiter Bibliotheken auswählen und dann rechts neu-> "Stichworte_verlinken"->
nun oben Reiter Dialoge->im Fenster Dialog "Stichworte_verlinken" auswählen und bearbeiten.
Es entsteht unter ein Modul Main. Hier fügt man dann anstelle den 5 Programmzeilen (im Bild) die aus unserem Forum nur die Codezeilen des letzten Makros von mikeleb markieren und mit strg+C kopieren und dann hier anstelle der 5 Zeilen mit strg+V einfügen.
Danach alles in der .odt sichern schließen und LO schließen und jetzt deine Ziel-Datei öffnen.
Unter Extras->Makros->ausführen müßtest du dich zu dem Makro durchhangeln können...
Ich weiß nicht wie mikelab das im Detail gemacht hat.
Aber du kannst das Makro ja mal in dein LO einbauen und dann über deine Datei laufen lassen.
1. Zuerst deine Datei als Original an anderen Ort sichern. Gearbeitet wird beim Probieren nur mit einem Duplikat!
2. Makro einbauen. Ich würde ohne Skrupel das Makro unter den eigenen, aber nicht unter den am Dokument gebundenen einbauen.
Dazu LO aufrufen, leeres writer-Dokument-> Extras-> Dialoge verwalten->
oben den Reiter Bibliotheken auswählen und dann rechts neu-> "Stichworte_verlinken"->
nun oben Reiter Dialoge->im Fenster Dialog "Stichworte_verlinken" auswählen und bearbeiten.
Es entsteht unter ein Modul Main. Hier fügt man dann anstelle den 5 Programmzeilen (im Bild) die aus unserem Forum nur die Codezeilen des letzten Makros von mikeleb markieren und mit strg+C kopieren und dann hier anstelle der 5 Zeilen mit strg+V einfügen.
Danach alles in der .odt sichern schließen und LO schließen und jetzt deine Ziel-Datei öffnen.
Unter Extras->Makros->ausführen müßtest du dich zu dem Makro durchhangeln können...
Zuletzt geändert von quotsi am Do, 06.04.2023 19:47, insgesamt 1-mal geändert.
win11 - Avira - LO 24.8.4.2 (X86_64)
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.