[GastForen Programme Print/Bildbearbeitung Adobe InDesign MS Word Indexoption \b (für Fettdruck der Seitenzahl) nach Indesign bringen.

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

MS Word Indexoption \b (für Fettdruck der Seitenzahl) nach Indesign bringen.

mojo_worker
Beiträge gesamt: 69

8. Aug 2008, 11:51
Beitrag # 1 von 3
Bewertung:
(1185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Forengemeinde,

ich beschäftige mich gerade mal wieder mit einem Indexproblem. Davon gibt es in Indesign ja eine Menge...

Beim Import von Word Dokumenten oder RTF wird die Option \b der Indexeinträge nicht übernommen, da diese Option direkt von Indesign nicht unterstützt wird, sondern nur durch "Zahlenformat übergehen" realisierbar ist. Lediglich \t für einen benutzerdefinierten Verweis übernimmt Indesign.

Man könnte nun in Word alle "\b"s durch bspw. '\t "bold:%VERWEIS%"' kodieren, um dies in Indesign automatisiert zu einem normalen Indexeintrag mit der Option "Zahlenformat übergehen - Fettdruck" zu ersetzen. Sind die Indexmarken per JavaSkript so komplex ansprechbar? Hat jemand schon Erfahrung damit/besteht möglicherweise schon eine solche Lösung? (Die Forensuche konnte mir auch diesmal leider nicht weiterhelfen).

Viele Grüße und ein schönes Wochenende

Pascal
X

MS Word Indexoption \b (für Fettdruck der Seitenzahl) nach Indesign bringen.

mojo_worker
Beiträge gesamt: 69

11. Aug 2008, 14:40
Beitrag # 2 von 3
Beitrag ID: #362152
Bewertung:
(1122 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebes Forum, ich habe heute eine erste Lösung erarbeitet. Kommentar/Anregungen sind willkommen, da ich ein Skriptrookie bin, kann es gut sein, dass ich halbwegs verderbliche Fehler begehe...

Code
// Index_PageBolder.jsx  

//===============================================================
myCS = app.documents[0].characterStyles.item( "<bold>" );
//===============================================================

myIndex = app.documents[0].indexes[0]
for ( i = 0; i < myIndex.allTopics.length; i++ )
checkTopic( myIndex.allTopics[i] );

function checkTopic( aTopic )
{
for ( k = 0; k < aTopic.pageReferences.length; k++ )
checkPageRef( aTopic.pageReferences[k] );
}

function checkPageRef( aPRef )
{
if (aPRef.properties.parent.name == "boldp")
{
aPRef.parent.parent.pageReferences[0].pageNumberStyleOverride = myCS;
aPRef.remove();
}
}


Das Skript basiert auf einem anderen Index-Skript von Martin. Ich habe die einfache Lösung gewählt: ein Eintrag dessen Seitenzahl fett werden soll muss in Word einen Untereintrag "boldp" erhalten. Das Skript sucht alle "boldp"-Einträge, setzt das entsprechende Attribut des Übereintrags und löscht den boldp-Eintrag.

Das VB-Skript für die Word-Umwandlung existiert noch nicht. Wenn in einem Text aber keine regulären "\b"s vorkommen, könnte man diesen Teil auch über Suchen/Ersetzen erledigen.

Problematisch würde es werden, wenn ein vierstufiger Index vorliegt, denn Indesign kann nur 4 Stufen verwalten, oder? Vielleicht sollte man doch besser eine String-Lösung wählen und bspw "#bold#" dem fett zu druckenden Eintrag anfügen? Ich werde mir noch ien paar Gedanken machen.

Vielen Dank an alle Kompetenzbolzen hier :-), Gruß

Pascal


als Antwort auf: [#361907]

MS Word Indexoption \b (für Fettdruck der Seitenzahl) nach Indesign bringen.

mojo_worker
Beiträge gesamt: 69

12. Aug 2008, 11:37
Beitrag # 3 von 3
Beitrag ID: #362249
Bewertung:
(1083 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebes Forum :-).

Ich habe mich von der Untereintragslösung verabschiedet. Zu viele Nachteile. Folgendes Skript setzt die Seitenzahl fett bei allen Indexmarken, an deren Eintrag hinten der String "#boldp#" angefügt ist:

Code
// Index_PageBolder.jsx  

//===============================================================
myCS = app.documents[0].characterStyles.item( "<bold>" );
//===============================================================

myIndex = app.documents[0].indexes[0]
for ( i = 0; i < myIndex.allTopics.length; i++ )
checkTopic( myIndex.allTopics[i] );

function checkTopic( aTopic )
{
for ( k = aTopic.pageReferences.length-1; k >= 0 ; k-- )
checkPageRef( aTopic.pageReferences[k] );
}

function checkPageRef( aPRef )
{
$.writeln(aPRef.parent.name);
if (aPRef.parent.name.slice(-7) == "#boldp#")
{
aPRef.pageNumberStyleOverride = myCS;
aPRef.parent.name = aPRef.parent.name.slice(0,-7);
}
}


Das Word-Makro für die Vorbereitung der entsprechenden Indexmarken:

Code
Sub IndexBoldKodieren() 
'
' IndexBoldKodieren Makro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = """ \b"
.Replacement.Text = "#boldp#^034"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub


bzw. kann man hier auch einfach suchen nach "" \b", ersetzen durch "#boldp#^034". Den ASCII-Code für das Zollzeichen muss man verwenden, da Word sonst typografische Anführungszeichen einfügt.

Ich hoffe, das wird mal jemandem eine Hilfe sein, wir mir beim aktuellen 1000-Seiten-Buch :-).

Grüße

moji


als Antwort auf: [#362152]