hilfdirselbst.ch
Facebook Twitter gamper-media
Forenindex -- Lesezeichen

1 Lesezeichen für seitenangaben

Seitenumfang in bibliographischen Angaben eines Testabschnitts
Antwort auf: FCBL fügt am Ende des Artikels das Wörtchen 'Ende' mit
einem AF ein, sodaß ich mich beim Querverweis darauf beziehen kann.


Und dann?
Geht das 'Ende' so – sichtbar – auch in Druck?
Ein Textanker wäre ein unsichtbares Ende.
Über den Druck hinaus. ;-)

So etwa könnte man von einem ausgewählten Text (Autorenname) den Anker ans Ende des Textabschnitts werfen. Der Anker bekommt den Inhalt des ausgewählten Text zum Namen (oder bei Konflikten einen einzugebenden alternativen Namen).

Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var d = app.activeDocument;
var s = app.selection[0];
try
{
var myName = (app.selection[0].constructor.name == 'InsertionPoint')
? s.words.firstItem().contents
: s.contents;
}
catch(e)
{
var myName = 'Irgendwas'
}

while ( myName == '' || d.hyperlinkTextDestinations.itemByName(myName).isValid)
{
myName = prompt('Alternativer Name für Quellenziel', myName+= '_');
if (myName == null)
exit();
}
var hl_destination = d.hyperlinkTextDestinations.add({destinationText:s.parentStory.insertionPoints.lastItem(), name:myName});

alert('Querverweisziel \r»' + myName + '« am Ende des Textabschnitts erstellt.')


Das Gegenstück dazu (Querverweis von ausgewählter Quelle zum ausgewählten Ziel):
Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var doc = app.activeDocument;
var cr_name = 'Seitenverweis';
var myHLdest = myDisplayDialog(doc);
var sel = app.selection[0];

// Prüfung Vorhandensein von Querverweisformat
var cr_format = doc.crossReferenceFormats.itemByName(cr_name);
if (cr_format == null)
{

cr_format = doc.crossReferenceFormats.add({name:cr_name});
// cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.CUSTOM_STRING_BUILDING_BLOCK, customText: '–'});
cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.PAGE_NUMBER_BUILDING_BLOCK});
}

// Quelle des Querverweises hinzufügen
var cr_source = doc.crossReferenceSources.add({sourceText: sel.insertionPoints.firstItem(), appliedFormat: cr_format});

// Querverweis von Quelle zu Ziel hinzufügen
app.documents.firstItem().hyperlinks.add(cr_source, myHLdest);


function myDisplayDialog(doc){
var myFieldWidth = 120;
var hl_destinations = doc.hyperlinkTextDestinations.everyItem().name;
var myDialog = app.dialogs.add({name:"Querverweise"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Hyperlinkziel:", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:hl_destinations, selectedIndex:hl_destinations.length-1});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var the_hldest =doc.hyperlinkTextDestinations.item(mySourceDropdown.selectedIndex);
myDialog.destroy();
}
else{
myDialog.destroy()
exit();
}
return the_hldest;
}


Oder, um automatische Seitenzahl und Querverweis zum ausgewählten Textanker einzugeben (z.B. '1–10'):
Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var doc = app.activeDocument;
var cr_name = 'Seitenverweis';
var myHLdest = myDisplayDialog(doc);
var sel = app.selection[0];

// Prüfung Vorhandensein von Querverweisformat
var cr_format = doc.crossReferenceFormats.itemByName(cr_name);
if (cr_format == null)
{

cr_format = doc.crossReferenceFormats.add({name:cr_name});
// cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.CUSTOM_STRING_BUILDING_BLOCK, customText: '–'});
cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.PAGE_NUMBER_BUILDING_BLOCK});
}

// Quelle des Querverweises hinzufügen
var cr_source = doc.crossReferenceSources.add({sourceText: sel.insertionPoints.firstItem(), appliedFormat: cr_format});

// Querverweis von Quelle zu Ziel hinzufügen
app.documents.firstItem().hyperlinks.add(cr_source, myHLdest);

// aktuelle Seitenzahl
sel.insertionPoints.firstItem().contents = "–";
sel.insertionPoints.firstItem().contents = SpecialCharacters.AUTO_PAGE_NUMBER;


function myDisplayDialog(doc){
var myFieldWidth = 120;
var hl_destinations = doc.hyperlinkTextDestinations.everyItem().name;
var myDialog = app.dialogs.add({name:"Querverweise"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Hyperlinkziel:", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:hl_destinations, selectedIndex:hl_destinations.length-1});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var the_hldest =doc.hyperlinkTextDestinations.item(mySourceDropdown.selectedIndex);
myDialog.destroy();
}
else{
myDialog.destroy()
exit();
}
return the_hldest;
}

...
Martin Fischer
14. Dez 2009, 23:16