0 votes
389 vues

J’essaie de mettre en forme un projet interlinéaire. Le texte de base est en grec avec des gloses en ourdou. La direction générale de la mise en page sera de gauche à droite, avec les gloses en ourdou destinées à être entièrement de droite à gauche sous les mots grecs. Certaines des gloses en ourdou contiennent des espaces.

J’ai réussi à configurer une mise en page de base. Le texte en ourdou (écriture arabe) s’écrit de droite à gauche comme prévu. Cependant, je ne trouve pas de moyen de forcer le sens complet de droite à gauche pour tout le flux de texte dans les gloses. Lorsqu’un espace apparaît, la mise en page semble revenir à gauche à droite pendant la durée de l’espace. Le texte en ourdou suivant l’espace s’écrit à nouveau de droite à gauche. Le résultat est de 2 ou 3 chaînes en ourdou de droite à gauche dans une mise en page générale de gauche à droite.

Je me suis demandé si je pouvais forcer la directionnalité du style gloss|rb d’une manière ou d’une autre, mais je ne trouve pas d’option à cet effet dans la configuration de la police du style.

Ensuite, j’ai pensé que je pourrais peut-être ajouter des marques de droite à gauche (U+200F) avant tous les espaces (ou peut-être tout autre caractère nécessitant ce traitement) dans changes.txt, comme ceci :

in "\|.*?\\rb\*": " " > "\u200f "

Cela n’a aucun effet.

Je sais que l’expression ci-dessus applique une modification à l’endroit approprié – car si je sors un « _ » (tiret bas) à la place de l’espace, alors la mise en page du texte en ourdou est correcte (à part le tiret bas !). J’ai essayé d’utiliser des caractères d’espacement alternatifs, mais ils reviennent également à gauche à droite (ce qui n’est pas surprenant).

image

Les chaînes ci-dessus devraient s’écouler comme ceci (en utilisant le tiret bas comme espace)

image

Y a-t-il des directives de la part de quelqu’un d’autre qui a essayé ceci ?

Jeff

Traduit automatiquement depuis English
PTXprint par [Expert]
(290 points)
| 389 vues

6 Réponses

0 votes

Bonjour Jeff,

Je n’ai pas eu à faire cela moi-même, mais j’ai pensé à quelques autres choses à essayer…

As-tu essayé TOUS les caractères d’espacement alternatifs, y compris les espaces insécables ? N’oublie pas l’« ESPACE INSÉCABLE ÉTROIT » (U+202F).

As-tu essayé de remplacer l’espace par un non-ligateur de largeur nulle ? (U+200C) Cela ne te donnera pas exactement ce que tu veux, mais cela peut être plus proche de ce que tu veux, ou faire partie d’une solution.

J’ai fait un certain nombre de travaux avec des marques RTL, et même ainsi, je suis souvent surpris lorsque j’essaie de les appliquer que je ne les obtiens parfois pas aux bons endroits. (Comme si je ne comprenais PAS VRAIMENT les règles…) Je recommande donc d’essayer toutes les autres combinaisons - dans ta modification ci-dessus, place le \u200f après l’espace, place-le à la fois avant et après l’espace, insère-en un juste après le \rb, avant la fin du champ, etc. Il se peut que l’une des combinaisons fasse ce que tu veux. (Et tu n’as pas besoin de le comprendre si cela donne le résultat souhaité !)

Bonne chance…

Traduit automatiquement depuis English
par (1,4k points)
0 votes

C’est probablement la mauvaise façon d’aborder cela, mais lorsque nous avions à faire face à quelque chose de similaire à ce que tu décris, j’ai proposé d’utiliser un glyphe qui n’est pas dans l’orthographe arabe, mais qui est toujours défini comme RTL au lieu d’essayer de résoudre la séquence appropriée de glyphe d’annonce directionnelle.

C’est-à-dire, au lieu d’un espace \u0020 entre les mots arabes dans chaque glose, utilise quelque chose d’une largeur similaire, mais défini comme RTL dans Unicode… comme un pasik hébreu \u05c0 par exemple. Cela pose la question de savoir comment masquer la ponctuation hébraïque, ce qui est résolvable en le peignant en transparent.

Cependant, dans l’exemple auquel je fais référence, la cause était liée aux chiffres dans le texte arabe, que nous marquions comme langue « italienne » lors de la conversion en raison d’un problème de police. Ce « italien pour les chiffres » était un paramètre global associé à la police que nous utilisions, et non spécifiquement pour les mises en page arabes. Et ce changement de langue a créé des problèmes d’espacement et de ponctuation à proximité. La solution dans ce cas s’est finalement avérée être de reclasser les chiffres dans une autre langue (mais toujours pas l’arabe si je me souviens bien.) Mais cela suggère que s’assurer que les langues sont correctement définies dans le texte pourrait avoir un impact sur l’agencement des glyphes sans avoir à recourir à des correctifs plus exotiques comme je le propose. C’est-à-dire que le compositeur semble interpréter les espaces comme ltr, ce qui signifie qu’il pense qu’ils sont grecs, et non arabes. Si tu t’assures que le style de caractère utilisé pour le texte de la glose définit tous les caractères comme langue arabe, cela pourrait être tout ce que tu as besoin de faire.

Traduit automatiquement depuis English
par (108 points)
0 votes

Ma première pensée était dans le sens de l’une des suggestions de Jeff – je suppose que le marqueur U+200F doit venir juste avant le mot, c’est-à-dire après l’espace, et non avant.

Je suppose que la direction du texte dans la section \rb est simplement définie par la direction générale du texte de la langue principale, et que pour outrepasser cela, il faudra que l’équipe de développement reprogramme les choses.

Une dernière suggestion est d’essayer d’utiliser quelque chose comme un caractère tiret bas, mais de le styliser avec une couleur identique à celle de l’arrière-plan. Donc peut-être quelque chose comme ceci :
in "\|.*?\\rb\*": " " > "\\sc _\\sc\*"
et puis de styliser les petites capitales avec cette couleur. En gros, cela peut être n’importe quel style de caractère que tu n’utilises pas autrement.

Traduit automatiquement depuis English
par (1,9k points)
réaffiché
0 votes

Merci pour ces idées, tout le monde.

Oui - j’ai essayé d’autres caractères d’espacement, qui donnent des tailles d’espace différentes, mais qui inversent toujours la direction. J’ai essayé d’ajouter la marque RTL de chaque côté de l’espace ou des deux côtés (et pour essayer tout – avant toute chaîne).

Jeff - j’ai essayé le non-ligateur de largeur nulle, et cela fonctionne bien ! (mais ne laisse aucun espace). Je suppose que je pourrais activer ce caractère et le définir comme une certaine quantité de colle (espace) ? Mon TeX est très très rouillé et je ne sais pas comment m’y prendre. J’ai essayé :

\catcode`\‌=\active
\def‌{\bgroup\hskip 0.25em\egroup}

(il y a un 200c là-dedans après \catcode `\ et \def)

Cela fonctionne - mais cela donne le même résultat qu’un espace (ce qui n’est pas surprenant je suppose, puisque c’est maintenant une quantité d’espace).

J’ai aussi essayé :

\catcode`\‌=\active
\def‌{\bgroup\beginR\hskip 0.25em\egroup}

ce qui est un résultat différent, mais toujours incorrect – et je sais que je cherche un peu au hasard à ce stade.

Malachi - j’ai essayé ta suggestion, mais le résultat est une erreur TeX, que je ne collerai pas ici. Je pense que le problème est qu’il insère des balises USFM dans la section d’attributs de \rb ...|...\rb*

Puisque je ne peux pas ajouter de balises là-dedans, j’aimerais essayer de colorer un caractère de droite à gauche à la place de l’espace (la suggestion de Michael), mais je ne sais vraiment pas ce que je fais. J’ai essayé ce qui suit avec un Paseq inséré à la place des espaces :

\catcode`\׀=\active
\def׀{\bgroup\color{white}׀\egroup}

mais je reçois une plainte concernant ! Argument of \color has an extra }

Je ne sais pas comment utiliser \color ou s’il est même disponible de cette manière, ou s’il s’agit d’un problème de syntaxe. Je suis conscient que je cherche dans le noir à ce stade.

Sans la couleur, le Paseq lui-même fonctionne en fait très bien ! J’aimerais qu’il existe un caractère espace avec la propriété Right-To-Left définie.

Merci pour les réponses et les idées.

Jeff

Traduit automatiquement depuis English
par [Expert]
(290 points)
0 votes

Auparavant, j’ai suggéré que nous cherchions une solution « d’annonce directionnelle » avant de nous concentrer sur la langue comme solution pour faire apparaître les virgules « APRÈS » le bon mot lorsque les chiffres étaient proches (spécifiquement dans les plages de versets).

Les glyphes de remplacement LTR et RTL sont fournis pour forcer les compositeurs à interpréter les glyphes suivants d’une manière ou d’une autre. Mais ils affectent l’affichage partout où vous les utilisez (ou peut-être pas…), donc ils deviennent vraiment amusants à comprendre où ils se trouvent dans le flux de texte. Et à la fin, ils ne faisaient toujours pas ce qui était sur l’étiquette dans Indesign CS6 avec quelques plugins de composition complexes en jeu, et une police avec des « fonctionnalités » opentype connues qui causaient des problèmes de directionnalité.

Mais si vous avez la capacité d’alimenter PTX print regex avec des glyphes unicode " \u, ou la nomenclature d’entités html &…; au lieu du glyphe réel, les glyphes de remplacement directionnel unicode peuvent fonctionner. Ils peuvent fonctionner dans ce cas même si vous traitez le glyphe lui-même, mais encore une fois, ces glyphes perturbent l’ordre d’affichage des glyphes suivants presque partout où ils apparaissent, donc interpréter ce que vous voyez réellement est délicat, et mène rapidement à une analyse de l’éditeur hexadécimal pour récupérer votre fichier et votre santé mentale.

Traduit automatiquement depuis English
par (108 points)
+1 vote

Il semble que nous ayons besoin d’un peu d’aide ici. J’ai ajouté la prise en charge des crochets de début et de fin au code de gestion interlinéaire. Donc, en théorie (tout est non testé), vous devriez pouvoir ajouter une ligne comme :

\sethook{start}{gloss|rb}{\beginR}

et tout devrait être bon.

J’ai tout juste commité la modification, donc elle devrait être dans la prochaine version 2.2.46 ou ultérieure. Quant à savoir si nous avons besoin d’une interface graphique pour cela, c’est ouvert à une demande de la communauté. C’est encore une autre case à cocher. Voulons-nous « encore une autre case à cocher » ?

Traduit automatiquement depuis English
par (658 points)

Merci d’avoir ajouté de l’aide, Martin !

J’ai installé 2.2.46 cet après-midi, et j’ai ajouté \sethook{start}{gloss|rb}{\beginR} à ptxprint-mods.tex. Malheureusement - il semble n’y avoir aucun effet. La sortie est la même qu’avant - y compris en essayant avec U+200F ou U+202D ajoutés avant les espaces.

Traduit automatiquement depuis English

J’ai tout juste réessayé cela après avoir mis à jour vers 2.2.50, et le rendu RTL correct fonctionne maintenant dans les gloses en ourdou. Magnifique !

Traduit automatiquement depuis English
J’avais besoin de ce bouton ! Mon soutien a trouvé ce fil de support et cela l’a corrigé. Je pense que c’est probablement nécessaire pour quiconque fait un interlinéaire de texte biblique avec des gloses en écriture arabe.
Traduit automatiquement depuis English

Questions connexes

0 votes
2 réponses 104 vues
Un consultant souhaite un PDF de l'interlinéaire d'un texte dans une colonne et le texte lui-même dans une autre ... y arriver. Je sais en revanche comment créer des diglots.
john_nystrom 312 posée août 14
+1 vote
0 réponses 132 vues
Si vous êtes impatient de tester les nouvelles fonctionnalités, vous pouvez télécharger la dernière version de ... encore simultanément. Mais nous espérons corriger cela bientôt.
Mark P 3,2k posée déc. 23, 2020
0 votes
1 réponse 303 vues
Le verset partiel en bas de la colonne de gauche apparaît après une liste marquée comme un tableau dans ParaText.
anon180868 195 posée juil. 11, 2024
0 votes
1 réponse 41 vues
Bonjour ! Dans PTXPrint, j'aimerais utiliser l'option Numéros de versets poétiques suspendus (Hanging Poetry Verse ... nos lecteurs dans certains cas. Merci beaucoup ! Phil
anon913937 124 posée nov. 18, 2025
0 votes
10 réponses 604 vues
Nous rencontrons quelques problèmes avec la mise en page sur 2 colonnes. À un endroit, le numéro de chapitre est ... t-il une erreur de programmation qui doit être corrigée ?
rickarellanes 167 posée août 27, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
If anyone destroys God’s temple, God will destroy that person; for God’s temple is sacred, and you together are that temple.
1 Corinthians 3:17
3,049 questions
6,007 réponses
5,672 commentaires
2,029 utilisateurs