Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Textvariablen suchen in CS4

Textvariablen suchen in CS4

Thorsten Schwarz
Beiträge gesamt: 14

17. Feb 2012, 13:51
Bewertung:

gelesen: 9848

Beitrag als Lesezeichen
Hallo,

gibt es eine Möglichkeit gezielt nach einzelnen Textvariablen in einem Dokument zu suchen?
Ich verwende Textvariablen mit benutzerdefiniertem Text in langen Dokumenten und würde gerne gezielt auf die Verwendungsstellen von bestimmten Variablen springen.
Mir ist bekannt, dass ich über den Suchen/Ersetzen-Dialog Textvariablen mit benutzerdefiniertem Text suchen kann. Das ist aber recht mühsam, da immer alle Textvariablen angesprungen werden.
Ich verwende InDesign CS4 auf Windows 7 (64bit).

Textvariablen suchen in CS4

Martin Fischer
  
Beiträge gesamt: 12783

17. Feb 2012, 14:36
Bewertung:

gelesen: 9832

Beitrag als Lesezeichen
Hallo Thorsten,

m.W. ist es mit Bordmitteln nicht möglich, auf die Verwendung einer bestimmten Textvariablen zuzugreifen.

Aber per Skript ist dies möglich.

Hier eine Skizze, quick & dirty.
Code
// VerwendungEinerTextvariableErmitteln.jsx 

var var_name = prompt('Name der Textvariable', 'Test');
var t_var = app.documents.firstItem().textVariables.itemByName(var_name);

if (t_var.isValid)
{
if (t_var.associatedInstances.length == 0)
alert('Achtung!\nDie Textvariable mit den Namen »' + var_name + '« wird im aktiven Dokument nicht verwendet.');
else
{
for (var i = 0; i < t_var.associatedInstances.length; i++)
{
show_it(t_var.associatedInstances[i], i+1, t_var.associatedInstances.length, var_name);
}
}
}
else
alert('Achtung!\nKeine Textvariable mit den Namen »' + var_name + '« vorhanden.');

function show_it( theObj, i, n, var_name )
{
app.select(theObj.storyOffset,SelectionOptions.replaceWith, var_name);
app.activeWindow.zoomPercentage = 800;
var msg = 'Variable ' + var_name + '\n(' + theObj.resultText + ')\n\n' + 'Instanz von ' + i + '/' + n + '\n\nWeiter?';
var _choice = confirm ( msg );
if (_choice == false)
exit();
return app.selection[0];
}

Im Moment wandert das Skript nach einem Stop von einer Verwendungsstelle zur nächsten vorwärts.

Es wäre mit einem Dialog zur Auswahl der definierten Textvariablen in einer DropDown-Liste und der Anzeige der Treffer (click & jump) in einer Palette ausbaubar.

Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 17. Feb 2012, 14:58 geändert)

Textvariablen suchen in CS4

Thorsten Schwarz
Beiträge gesamt: 14

17. Feb 2012, 15:51
Bewertung:

gelesen: 9798

Beitrag als Lesezeichen
Hallo Martin,

vielen Dank für Deine schnelle Hilfe. Ich habe das Skript ausprobiert und es funktioniert tadellos.
Die Erweiterungen, die Du noch erwähnt hast hören sich toll an. Leider kenne ich mich mit der Skript-Programmierung nicht aus und kann diese Erweiterungen nicht durchführen. Aber ich bin auch schon über diese Lösung glücklich. Nochmals dankeschön.

Thorsten Schwarz

Textvariablen suchen in CS4

Martin Fischer
  
Beiträge gesamt: 12783

17. Feb 2012, 16:11
Bewertung:

gelesen: 9784

Beitrag als Lesezeichen
Hallo Thorsten,

Antwort auf: Ich habe das Skript ausprobiert und es funktioniert tadellos.

Prima!
Danke für die Rückmeldung.


Antwort auf: Die Erweiterungen, die Du noch erwähnt hast hören sich toll an. Leider kenne ich mich mit der Skript-Programmierung nicht aus und kann diese Erweiterungen nicht durchführen.

Es war (auch) als Marker für mich gedacht. ;-)
Den Zugriff auf die Stellen, wo eine Variable verwendet wird, halte ich für sinnvoll und zweckmäßig. Das ist auch für mich interessant.
Und wenn ich mal wieder eine halbe Stunde Zeit finde, dann möchte ich dies noch in der angegebenen Richtung ausbauen.

Wenn was draus werden sollte, kommt's ins Skriptarchiv.

Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 17. Feb 2012, 16:12 geändert)

Textvariablen suchen in CS4

Martin Fischer
  
Beiträge gesamt: 12783

25. Feb 2012, 19:48
Bewertung:

gelesen: 9637

Beitrag als Lesezeichen
Inzwischen steht (für Premium-Member) eine erweiterte Version dieses Skripts im Skriptarchiv bereit: showTextvariableInstances.jsx

Nach Start des Skripts wird eine Textvariable aus einer DropDown-Liste ausgewählt. Dann werden die entsprechenden Fundstellen mit Angaben zu Seite und Inhalt der Textvariable aufgelistet.

Durch Klick auf eine Fundstelle in der Liste wird die Fundstelle im Text ausgewählt und herangezoomt.

Das Bildschirmfoto zeigt die Palette nach Auswahl der Textvariable mein Text und nach Klick auf den letzten Eintrag mit der Seitenangabe 94 und dem Inhalt der Variable Hallo Welt!.

Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 25. Feb 2012, 23:31 geändert)

Textvariablen suchen in CS4

Uwe Laubender
Beiträge gesamt: 5319

25. Feb 2012, 22:34
Bewertung:

gelesen: 9615

Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Durch Klick auf eine Fundstelle in der Liste wird die Fundstelle im Text ausgewählt und herangezoomt.


Hallo, Martin!

Habe gerade einen kleinen Test mit Deinem Script gemacht.

Da das Script keine automatischen Updates der Fundstellenarrays macht und es sich beim UI um eine Palette handelt, die eine Veränderung der Dateiinhalte während ihrer Benutzung zulässt, wäre es vielleicht gut einen "Update"-Button einzubauen, der die Arrays neu lädt.

Die Arrays werden zwar auf den neuesten Stand gebracht, wenn man die Kategorie der Arrays wechselt, aber der Benutzer kommt nicht unbedingt gleich auf die Idee durch das Hin- und Herwechseln zwischen unterschiedlichen Kategorien ein Update vorzunehmen.

Noch 'ne Idee, dann gebe ich schon Ruhe:

Falls kein Eintrag innerhalb einer Kategorie gefunden wird (Array.length == 0), einfach den Namen der Kategorie weglassen.

Oder vielleicht besser:
Die Anzahl der Fundstellen hinter den Kategorienamen vermerken.
Z.B.:

Ausgabedatum [0]
Bildname [37]
Dateiname [12]
Erstellungsdatum [0]
Kapitelnummer [0]
Lebender Kolumnentitel [0]
Letzte Seitenzahl [0]



Das ist dann wohl eine Aufgabe für die 0.2-Version des Skripts.
Ich teste dann mal weiter…
*****
Mit herzlichem Gruß,
Uwe Laubender

Textvariablen suchen in CS4

Martin Fischer
  
Beiträge gesamt: 12783

25. Feb 2012, 23:31
Bewertung:

gelesen: 9601

Beitrag als Lesezeichen
Hallo Uwe,

ich danke Dir für Deine Erweiterungsvorschläge.

An die Sache mit dem Weglassen von Textvariablen, die nirgends Verwendung finden, habe ich kurz vor der Veröffentlichung auch noch gedacht. Das arbeite ich nach.

Auch der Vorschlag mit dem Update-Button ist gut.
Hatte mich selbst schon dran gewöhnt, einfach die Textvariable zu wechseln. Aber so ein Updatebutton hat einen wichtigen Aufforderungscharakter.

Bei der Entwicklung bin ich an einer kleinen Sache ziemlich hängen geblieben. Und zwar an der Übergabe der selection in der DropDown-Liste in CS5. CS4 war da toleranter und hat eine fehlerhafte Übergabe großzügig durchgehen lassen.
Da war ich dann froh, dass mit der Verwendung des index der selection die Sache auch in CS5 einen Frieden gefunden hatte. Und da wollte ich das Skript erst mal los sein und ins Kino gehen.

Und jetzt freue ich mich richtig, von Dir diese beiden wichtigen Anregungen erhalten zu haben.

Viele Grüße
Martin


Textvariablen suchen in CS4

Uwe Laubender
Beiträge gesamt: 5319

26. Feb 2012, 10:31
Bewertung:

gelesen: 9560

Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] An die Sache mit dem Weglassen von Textvariablen, die nirgends Verwendung finden, habe ich kurz vor der Veröffentlichung auch noch gedacht. Das arbeite ich nach.


Hallo, Martin!

Wenn Du genau das machst, nämlich die Namen der Textvariablen weglässt, wenn keine Fundstellen vorhanden sind, dann brauchst Du unbedingt den "Update"-Button auch noch.

Nämlich für den Fall, dass nur keine einzige oder nur eine einzige Kategorie angezeigt wird und der Benutzer neue Textvariableninstanzen anlegt, während er die Palette geöffnet hält. Zum Update-Ergebnis würde er dann nur durch den Neustart des Scripts kommen…
*****
Mit herzlichem Gruß,
Uwe Laubender

Textvariablen suchen in CS4

WernerPerplies
Beiträge gesamt: 2762

26. Feb 2012, 14:56
Bewertung:

gelesen: 9527

Beitrag als Lesezeichen
eine Möglichkeit zum Update wäre auch das onActivate event. und während das Fenster aktiv ist, könnte sich wohl nur etwas durch Hintergrundaktivitäten ändern.

Aber eine manuelle Updatemöglichkeit ist sicherlich immer nützlich.

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Textvariablen suchen in CS4

Thorsten Schwarz
Beiträge gesamt: 14

29. Feb 2012, 09:57
Bewertung:

gelesen: 9423

Beitrag als Lesezeichen
Hallo Martin,

vielen Dank nochmals für das erweiterte Skript. Ich setze es bereits ein und finde es funktioniert klasse.
Nun kann ich meine Textvariablen nachverfolgen und das gibt mir die nötige Kontrolle über meine Textvariablen im Dokument.

Viele Grüße

Thorsten