IPB

Bienvenue invité ( Connexion | Inscription )

> quarkxpress - Automatiser rechercher/remplacer
Options
jjalias
posté 30 May 2018, 07:41
Message #1


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 30 May 2018
Membre no 205 028



Bonjour,
Nouveau sur ce forum, je viens demander de l'aide pour la création d'un script pour Quarkxpress.
Je travaille dans un petit journal local, et je perds un temps fou sur certaines parties, comme le programme tv.
J'ai fait des recherches sur l'applescript, mais avec mon faible niveau de programmation, pas évident biggrin.gif

En fait, je dispose d'un pdf comme ceci :


07.00 Nom de l'émission 1 qui MAG
07.30 Nom de l'émission 2
08.00 Nom de l'émission 3 DOC


Je voudrais que mon script fasse 4 actions :
1) Appliquer un style
2) Mettre en gras les horaires
3) Supprimer les sauts de lignes
4) Supprimer certains mots qui apparaissent en fin de ligne, comme ici "MAG" et "DOC"

Pour l'action 4, j'ai commencé à faire ce script qui fonctionne plutôt bien :

tell application "QuarkXPress"
tell document 1
delete (text of every text of every story where it is "MAG")
end tell
end tell


Malheureusement, si le nom d'une émission comporte le mot "mag" (exemple: "07.30 Magasin de légumes MAG"), il va me supprimer les deux "mag". Comment définir que je ne veux que les "MAG" en fin de ligne ?

Je vous remercie d'avance pour votre précieuse aide !
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
CMJS
posté 1 Jun 2018, 09:09
Message #2


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 757
Inscrit : 9 Aug 2006
Lieu : Ici, pourquoi ?
Membre no 65 624



Pour appliquer une police, c'est
Code
set font to "Helvetica"
par exemple.
Plutôt que d'avoir 5 lignes avec
Code
set style of character…
tu peux le faire en une seule :
Code
set style of character 1 thru 5 to…

Il y a une boucle inutile : si tu appliques un style aux caractères 1 à 5 de tous les paragraphes de toutes les stories, il n'y a pas de raison de vouloir mettre à l'intérieur d'une boucle. C'est fait une fois pour toutes.
Tu peux également remplacer la série de remplacements de texte en rassemblant dans un ensemble tout ce que tu veux changer (par exemple,
Code
set Texte_a_remplacer to {"MAG","DOC","MUSIQUE","DIRECT","DIV"}
), puis dans une boucle opérer tes changements : par exemple,
Code
    tell document 1
        repeat with i from 1 to length of Texte_a_remplacer
            set (every text of every story where it is (item i of Texte_a_remplacer)) to "- "
        end repeat
    end tell

De la sorte, si tu as un ajout à faire, tu n'as pas besoin d'ajouter une ligne, mais juste le texte dans l'ensemble. Et si tu devais remplacer du texte en fonction de celui-ci (par exemple, remplacer MAG par Magazine, DOC par Documentaire, etc.), il te suffirait de jouer avec deux listes correpondantes.


--------------------
Jean-Marie Schwartz
[MacPro Quad-Core Intel Xeon 2,8 GHz • OS 10.10.5 • QuarkXPress 9.5.4.1 et 2017 • Adobe CS5 et CS6 • Linotype FontExplorerX Pro]

« A l'école, c'est logique, l'écologie il faudrait l'enseigner : réapprendre la grammaire de l'eau, de l'air ou de la lumière… » (CharlElie Couture, « Les Ours blancs », in Fort Rêveur)
Go to the top of the page
 
+Quote Post
jjalias
posté 1 Jun 2018, 09:57
Message #3


Nouveau Membre


Groupe : Membres
Messages : 6
Inscrit : 30 May 2018
Membre no 205 028



Citation (CMJS @ 1 Jun 2018, 10:09) *
Pour appliquer une police, c'est
Code
set font to "Helvetica"
par exemple.
Plutôt que d'avoir 5 lignes avec
Code
set style of character…
tu peux le faire en une seule :
Code
set style of character 1 thru 5 to…

Il y a une boucle inutile : si tu appliques un style aux caractères 1 à 5 de tous les paragraphes de toutes les stories, il n'y a pas de raison de vouloir mettre à l'intérieur d'une boucle. C'est fait une fois pour toutes.
Tu peux également remplacer la série de remplacements de texte en rassemblant dans un ensemble tout ce que tu veux changer (par exemple,
Code
set Texte_a_remplacer to {"MAG","DOC","MUSIQUE","DIRECT","DIV"}
), puis dans une boucle opérer tes changements : par exemple,
Code
    tell document 1
        repeat with i from 1 to length of Texte_a_remplacer
            set (every text of every story where it is (item i of Texte_a_remplacer)) to "- "
        end repeat
    end tell

De la sorte, si tu as un ajout à faire, tu n'as pas besoin d'ajouter une ligne, mais juste le texte dans l'ensemble. Et si tu devais remplacer du texte en fonction de celui-ci (par exemple, remplacer MAG par Magazine, DOC par Documentaire, etc.), il te suffirait de jouer avec deux listes correpondantes.


Wow, merci beaucoup pour cette réponse si complète !

1) Pour le "set font to "Helvetica", j'avais trouvé ça sur le web, mais ça ne passe pas, je ne sais pas pq sad.gif
Exemple :
CODE
set font of every paragraph of text of every text of every story to "Formata-Medium"

Message d'erreur : "Erreur dans QuarkXPress : Le type de certaines données est incorrect."
ou
CODE
set font to "Formata-Medium"

Message d'erreur : "Erreur dans QuarkXPress : Il est impossible de régler font of document 1 à "Formata-Medium"."
(je précise que j'ai bien récupéré le nom Postcript de la police dans le livre des polices.

2) Pour la technique de réduire à 1 ligne les 5 lignes de codes pour mettre les 5 premiers caractères en gras, j'avais aussi essayé la méthode que tu dis, mais pareil, j'ai à chaque fois un message d'erreur :
"Erreur dans QuarkXPress : Il est impossible de régler style of characters 1 thru 5 of every paragraph of every text of every text of every story of document 1 à bold."
Mais en 5 lignes, il marche parfaitement sad.gif

3) Pour le "set Texte_a_remplacer to {"MAG","DOC","MUSIQUE","DIRECT","DIV"}", je vais essayer ça, et je te dirais si ça marche. C'est vrai que ça a l'air beaucoup plus propre, rapide et efficace.

Encore une fois merci pour ton aide !!

Ps: j'ai la version 9.5.4.1 de QuarkXpress
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 23rd May 2024 - 15:53