[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Das Zeichen Quotation Mark einfügen (CS6, WIN10)

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

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

cwenet
Beiträge gesamt: 1092

9. Mär 2016, 06:58
Beitrag # 1 von 11
Bewertung:
(2565 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen,

hiermit füge ich via Script das Zeichen Quotation Mark ein.
Code
app.selection[0].insertionPoints[0].contents = '\u0022'; 


Nun gewinnen aber jedesmal wohl die Voreinstellungen und Indesign macht daraus brav ein typografisches An- bzw. Abführungszeichen.

Wie kann ich Indesign überreden, die Voreinstellung temporär zu ignorieren? Ohne die Voreinstellung grundlegend zu ändern.


Bitte um Hilfe
Danke und Gruß
Christoph
X

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

WernerPerplies
Beiträge gesamt: 2711

9. Mär 2016, 07:21
Beitrag # 2 von 11
Beitrag ID: #547828
Bewertung:
(2558 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen,

allgemein ausgedrückt:

aktuelle Voreinstellungen in Variable speichern
Voreinstellungen ändern
Aktion ausführen
ursprüngliche Voreinstellungen wiederherstellen

Das ganze am besten in eine Funktion/Prototype des Datentyps speichern und bei Bedarf einbinden.

HTH


als Antwort auf: [#547826]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

Martin Fischer
  
Beiträge gesamt: 12691

9. Mär 2016, 07:34
Beitrag # 3 von 11
Beitrag ID: #547829
Bewertung:
(2553 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Konkret etwa so:
Code
var old_typo = app.activeDocument.textPreferences.typographersQuotes; 
app.activeDocument.textPreferences.typographersQuotes = false;

app.selection[0].insertionPoints[0].contents = '\u0022';

app.activeDocument.textPreferences.typographersQuotes = old_typo;


oder so:

Code
var restore_typo = setup_typo(); 
app.selection[0].insertionPoints[0].contents = '\u0022';
restore_typo();

function setup_typo()
{
var old_typo = app.activeDocument.textPreferences.typographersQuotes;
app.activeDocument.textPreferences.typographersQuotes = false;
return function()
{
app.activeDocument.textPreferences.typographersQuotes = old_typo
}
}



als Antwort auf: [#547826]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

WernerPerplies
Beiträge gesamt: 2711

9. Mär 2016, 07:53
Beitrag # 4 von 11
Beitrag ID: #547830
Bewertung:
(2526 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Okay,

dann auch noch meine Version mit TestSkript:
Code
#target InDesign 
/*void*/function insertQuoteInIndesignTexts(/*Document*/doc, /*IndesignTexts*/iTexts)
{
var /*Boolean*/typographersQuotes = doc.textPreferences.typographersQuotes;
doc.textPreferences.typographersQuotes = false;
iTexts.contents = "\"";
doc.textPreferences.typographersQuotes = typographersQuotes;
return;
}

main();

/*void*/function main()
{
insertQuoteInIndesignTexts(app.activeDocument, app.selection[0].insertionPoints[0]);
}



als Antwort auf: [#547829]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

Martin Fischer
  
Beiträge gesamt: 12691

9. Mär 2016, 08:28
Beitrag # 5 von 11
Beitrag ID: #547832
Bewertung:
(2496 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Alternativ zum Umschalten der typographischen Anführungszeichen könntest Du dem Einfügepunkt vor dem Einfügen der Gänsefüßchen auch die Sprache "[Keine Sprache]" oder ein mit dieser Eigenschaft versehenes Zeichenformat zuweisen.


als Antwort auf: [#547826]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

Uwe Laubender
Beiträge gesamt: 5262

9. Mär 2016, 11:34
Beitrag # 6 von 11
Beitrag ID: #547851
Bewertung:
(2413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
das wiederum scheint nicht zu funktionieren.
Diese Idee hatte ich auch bereits, aber fiel beim Testen durch.
(InDesign CS6 v8.1.0 auf Mac OSX 10.7.5)


als Antwort auf: [#547832]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

Martin Fischer
  
Beiträge gesamt: 12691

9. Mär 2016, 12:06
Beitrag # 7 von 11
Beitrag ID: #547855
Bewertung:
(2402 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Uwe Laubender ] das wiederum scheint nicht zu funktionieren.
Diese Idee hatte ich auch bereits, aber fiel beim Testen durch.


Bei mir hat's bei der Formatierung eines Einfügepunkts funktioniert.
Der Test bei der Formatierung eines ausgewählten Textes scheiterte hingegen.

Code
insert_without_lan('"');  

function insert_without_lan(str)
{
if (app.selection.length > 0 && app.selection[0].hasOwnProperty('baseline'))
{
if (app.selection[0].constructor.name == 'InsertionPoint')
{
var old_lan = app.selection[0].appliedLanguage;
app.selection[0].appliedLanguage = app.languagesWithVendors.item(0);
app.selection[0].contents = str;
app.selection[0].insertionPoints.lastItem().appliedLanguage = old_lan;
}
else
{
app.selection[0].insertionPoints.firstItem().appliedLanguage = app.languagesWithVendors.item(0);
app.selection[0].insertionPoints.firstItem().contents = str;
}
}
}



als Antwort auf: [#547851]
(Dieser Beitrag wurde von Martin Fischer am 9. Mär 2016, 12:07 geändert)

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

Uwe Laubender
Beiträge gesamt: 5262

9. Mär 2016, 14:10
Beitrag # 8 von 11
Beitrag ID: #547869
Bewertung:
(2342 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
ok, nach einem nochmaligen Versuch geht das hier:

Code
// InsertionPoint selected: 
var language = app.selection[0].appliedLanguage;
app.selection[0].appliedLanguage = app.documents[0].languages[0];
app.selection[0].contents = "\"";
app.selection[0].parentStory.characters[app.selection[0].index-1].appliedLanguage = language;


Ich habe wohl bei meinem ersten Test die falsche Abkürzung über die properties Property des insertionPoints genommen.


als Antwort auf: [#547855]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

cwenet
Beiträge gesamt: 1092

9. Mär 2016, 18:22
Beitrag # 9 von 11
Beitrag ID: #547899
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen lieben Dank an Werner, Martin und Uwe

für die reichlichen Codeschnipsel und Denkanstöße.

Einen schönen Abend
Christoph


als Antwort auf: [#547869]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

Uwe Laubender
Beiträge gesamt: 5262

10. Mär 2016, 06:57
Beitrag # 10 von 11
Beitrag ID: #547912
Bewertung:
(2222 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

hier noch ein Schnipsel von mir, der eine kleine Verbesserung einführt.
Anstatt parentStory in der letzten Zeile wird nur parent benutzt.

Das deckt dann auch Fälle ab wie:
Cursor steht in Tabellenzelle oder in Fußnotentext.

Wie auch im oben geposteten Schnipsel wird dem eingefügte Zeichen nachträglich die Sprache zugewiesen, die der InsertionPoint hatte:

Code
// InsertionPoint selected:  
var language = app.selection[0].appliedLanguage;
app.selection[0].appliedLanguage = app.documents[0].languages[0];
app.selection[0].contents = "\"";
app.selection[0].parent.characters[app.selection[0].index-1].appliedLanguage = language;


parentStory für diesen Zweck in Tabellenzellen zu benutzen wäre eine böse Falle. Da parentStory eines Textes in einer Tabelle die Story meint, in der die Tabelle sitzt. Desgleichen gilt für Fußnotentext.


als Antwort auf: [#547899]

Das Zeichen Quotation Mark einfügen (CS6, WIN10)

cwenet
Beiträge gesamt: 1092

10. Mär 2016, 18:48
Beitrag # 11 von 11
Beitrag ID: #547946
Bewertung:
(2152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen Dank Uwe,

für Deinen Nachschlag.

Einen schönen Abend
Christoph


als Antwort auf: [#547912]
X