Le mystérieux programme LyX. 3e partie

Copié de mon blog afin de créer une autre source d'information en russe sur ce sujet.

Cet article est la continuation des articles suivants en un seul cycle:

article 1
article 2

LyX: Branche


Le menu Insertion comporte un sous-menu nommé Branche . Qu'est ce que c'est Je suis donc arrivé à ce sous-menu, il s'est ouvert. Là, avec le bouton gauche de la souris, cliquez sur Ajouter un nouvel élément de branche (il y a 2 points, je clique sur celui du bas). Dans la boîte de dialogue qui apparaît, entrez le nom de la branche à créer, cliquez sur OK . Si je comprends bien, il ne devrait pas y avoir d'espaces dans le nom de la branche créée. Après avoir cliqué sur OK dans la fenêtre LyX, dans laquelle tout cela est fait, la zone suivante apparaît:



Cette branche semble inactive . Cela signifie que si j'écris quelque chose devant la branche, j'écris du texte dans le rectangle de la branche et continue la narration après la branche, puis dans le .pdf formé à partir de ce fichier .lyx , la partie du texte dans le rectangle rouge sera juste être absent. Pour inclure cette partie en .pdf , je survole le mot Vetka, là, plus ou moins à côté de ce mot, je clique avec le bouton droit et sélectionne Activer la branche avec le bouton gauche de la souris. Selon le fichier .mo utilisé, cet élément peut être appelé différemment, mais il vient toujours en premier dans le menu déroulant.

LyX: Math Aperçu


Dans Outils> Préférences> Affichage, la seconde en haut est une liste déroulante . Selon le fichier .mo utilisé dans la traduction russe des noms des éléments d'interface, il a des noms différents. Dans cette copie du programme LyX que j'utilisais auparavant, on l'appelait, si je ne me trompe pas, Aperçu des mathématiques . Dans la copie actuelle de LyX, il s'appelle Instant Preview . Et son essence est la suivante. Si je la valeur de cette liste, après que le curseur quitte le mode mathématique (formule de ligne) ou désactivé, la formule dans la fenêtre LyX ressemble à ceci:



Et avec la valeur de cette liste activée, la formule commence à ressembler à ceci:



Mais cela en soi n'a que peu d'intérêt. L'utilisation de cette liste déroulante avec le compteur de taille d'aperçu semble beaucoup plus intéressante. À savoir, définissez la valeur de la liste déroulante sur On et la valeur du compteur sur une valeur supérieure à 1, par exemple 3,8, cliquez sur le bouton Enregistrer . Ensuite, après avoir redémarré les formules LyX commencent à s'afficher comme suit:



Mais c'est quelque chose. Je l'ai utilisé, par exemple, lorsque j'ai peint des exposants fractionnaires à plusieurs étages en étudiant la preuve d'un théorème de la théorie des groupes: cela s'est avéré déroutant à la main, mais cela s'est avéré juste dans LyX en utilisant cette lotion.

Comment utiliser Asymtote dans LyX?


Mais très simple: ouvrez le programme LyX. Accédez à Document> Paramètres> Préambule LaTeX . On y entre

 \usepackage{asymptote} 

peut-être avec certaines options de package asymptote, cliquez sur
Enregistrez . Voilà, nous commençons à écrire le texte dont nous avons besoin dans la fenêtre principale du programme LyX. Dès qu'il s'agit d'insérer le code asymptote, insérez la branche, activez-la (voir la section LyX: branche de cet article), insérez le code Tex dans la branche ( Ctrl + l ) et commencez seulement à écrire dans ce bloc

 \begin{asy} ... \end{asy} 

où à la place des points de suspension, nous écrivons le code Asymptote exactement de la même manière que nous le faisons dans un fichier .asy . Par exemple, cela pourrait ressembler à ceci:



La photo a été prise après la première exportation au format PDF (pdflatex). Faites attention au chemin d'accès au dossier entouré en bas de la fenêtre du programme LyX en rouge. C'est alors que je traite un fichier .tex ordinaire dans un autre éditeur ordinaire aussi  LaTeX, par exemple, dans TeXworks, tous les fichiers se produisant simultanément en même temps, tels que .log , .aux , etc., sont créés dans le même dossier avec ce fichier .tex . Dans le cas de l'exportation vers un certain format dans le programme LyX, dans le même dossier avec le fichier .lyx traité, seuls tous les autres fichiers qui en résultent sont générés .pdf (et d'abord exporter vers .tex , puis certains .tex une implémentation binaire disponible sur un ordinateur  TeXconnecté (bien que facultatif) au programme LyX. Par exemple, cette fois, j'ai installé LyX après le programme MiKTeX. La connexion de LyX à MiKTeX s'exprimait donc par le fait que lorsque j'ai installé LyX, je suis monté dans Outils> Paramètres ...> Chemins , là, dans la zone de texte du préfixe PATH : entre autres, il y avait un chemin C:\Program Files\MiKTeX 2.9\miktex\bin - le chemin vers le dossier binaires que j'ai mentionné ci-dessus installé sur mon ordinateur  TeX. Cependant, la présence du chemin d'accès à ce dossier dans ce champ de texte n'est pas obligatoire: j'ai installé LyX dans le système précédent, également Windows7, lorsque MiKTeX n'était pas déjà installé, donc malgré le fait qu'il n'y avait pas de chemin vers ce dossier dans ce champ de texte à la fois avant l'installation et la configuration de MiKTeX, et après ces opérations, LyX a fonctionné normalement. Ainsi, lorsqu'un fichier binaire est .tex fichier .tex , tous les fichiers se produisant simultanément, tels que .log , .aux , etc., sont également créés dans le même dossier avec ce fichier .tex .) .tex placés dans le dossier, le chemin d'accès à qui est contenue dans la fenêtre du programme LyX qui apparaît après avoir cliqué sur Affichage> Afficher la source . Pour illustrer le format du chemin d'accès à un tel dossier, j'ai représenté une bordure rouge autour de ce chemin. Nous allons dans ce dossier, exécutons la ligne de commande à partir de ce dossier, exécutons la commande dans cette ligne

asy *.asy

Et nous faisons encore une exportation au format PDF (pdflatex). Maintenant, tout est prêt: ouvrez le .pdf créé et profitez de la qualité des graphiques, généralement attendue là où Asymptote est utilisé. Et nous avons besoin d'une branche dans toute cette histoire car parfois sans graphisme, le graphisme .pdf n'est pas à l'endroit où se trouve le code le générant en .lyx . Cependant, j'ai récemment trouvé un moyen d'insérer du code Asymptote dans un fichier .lyx sans utiliser de branches, mais je vais en parler sur une page plus proche de ce sujet.

LyX: changer les noms, info-bulles pour les éléments d'interface


Maintenant, lorsque vous utilisez LyX dans une langue autre que l'anglais, les noms affichés de divers menus, éléments de menu, barres d'outils, etc. en un mot, les noms affichés de presque tous les éléments d'interface, à l'exception de la liste déroulante des environnements et, éventuellement, d'autre chose, les traductions de divers messages sont extraites par LyX du fichier .mo correspondant à la langue utilisée. Donc, peu importe comment je mets diverses copies de LyX, ces fichiers .mo , en tout cas, dans le cadre de la copie LyX utilisée pour différentes langues, ont le même nom. Dans une copie du programme que j'utilise maintenant, ces fichiers sont appelés LyX2.0.mo. Ces fichiers pour différentes langues diffèrent, en plus de leur contenu, en ce qu'ils se trouvent dans différents sous-dossiers du même dossier. Pour le russe, le fichier LyX2.0.mo correspondant se trouve dans
C:\Program Files\LyX 2.0\Resources\locale\ru\LC_MESSAGES . Cependant, si dans le but d'essayer de remplacer LyX dans la fenêtre du programme, le nom affiché est là, de n'importe quelle barre d'outils de n'importe quel élément de menu, changez l'emplacement correspondant dans le fichier .mo (comment trouver cet endroit est décrit ci-dessous), ceci, après avoir enregistré les changements dans le fichier .mo au redémarrage de LyX, contrairement aux attentes, n'entraîneront pas un changement du nom de l'élément d'interface correspondant, mais l'affichage de tous les noms et infobulles en anglais: l'édition du fichier .mo n'a pas de sens directement. Et vous devez modifier le fichier .po , à partir duquel, à l'aide du programme gettext , après chaque modification (avec enregistrement ultérieur de cette modification), vous obtenez à nouveau le fichier .mo et déplacez le fichier .mo nouvellement reçu dans le dossier nommé ci-dessus avec remplacement. Arrêtons-nous sur ce processus. Tout d'abord, obtenez gettext. J'ai cliqué sur le lien ci-dessus pour télécharger le statique 32 bits, et non pas l'icône avec un ordinateur et un disque, mais l'icône du dossier avec une fermeture éclair. Téléchargez l'archive, décompressée n'importe où. Afin de ne pas ajouter le dossier bin de ce programme en raison de telles bagatelles, nous ferons ce qui suit: allez ici . De là, téléchargez le fichier lyx-2.3.2.tar.gz. Ouvrez-le, copiez le fichier ru.po du dossier po dans le dossier bin du programme gettext précédemment décompressé, renommez-le LyX2.0.po. Ensuite, nous ouvrons ce fichier .po dans un éditeur de texte. Alors Nous avons donc voulu modifier, par exemple, le nom d'affichage de l'élément Signets de la navigation des signets: affichage modifié. Ouais, ouvrez le menu Navigation, regardez le nom des éléments de ce menu à côté de Signets . Ces éléments, par exemple, sont les suivants: note suivante , prochaine modification, ... cela est nécessaire car dans le fichier .po il peut y avoir des traductions identiques des noms affichés de divers éléments d'interface à plusieurs endroits différents, à cause desquels les mêmes seront dans le fichier résultant .mo , ce qui conduira au fait que dans la fenêtre LyX plusieurs éléments d'interface à différents endroits auront les mêmes noms affichés. Ainsi, afin de modifier la traduction de certains éléments d'interface dans le fichier .po , afin que les noms affichés exactement des éléments d'interface dont les noms d'affichage doivent être modifiés dans le fichier .mo , nous devons examiner les noms affichés des éléments adjacents à ces éléments d'interface, nous allons changer les noms affichés. Si un élément a une info-bulle dans la fenêtre du programme LyX, le texte de cette info-bulle affiché dans la langue correspondante dans le fichier .po sera situé non loin du nom affiché de cet élément d'interface. Un autre signe de l'emplacement du fichier .po qui doit être modifié pour que cela entraîne une modification du nom d'affichage de l'élément d'interface pour lequel le nom d'affichage doit être changé. Donc, nous allons dans la fenêtre de l'éditeur avec le fichier ouvert LyX2.0.po , y trouvons les signets , regardons les sections voisines en russe. Voici l'un des résultats de la recherche avec votre environnement:

 #: src/frontends/qt4/ui/PDFSupportUi.ui:249 msgid "Bibliographical backreferences" msgstr "  " #: src/frontends/qt4/ui/PDFSupportUi.ui:252 msgid "B&ackreferences:" msgstr "& :" #: src/frontends/qt4/ui/PDFSupportUi.ui:281 msgid "&Bookmarks" msgstr "&" #: src/frontends/qt4/ui/PDFSupportUi.ui:293 msgid "G&enerate bookmarks (toc)" msgstr "& " #: src/frontends/qt4/ui/PDFSupportUi.ui:314 msgid "&Numbered bookmarks" msgstr "& " 

Ce mot favori trouvé correspond au numéro 3144. À en juger par les mots voisins en russe, ce n'est pas ce dont vous avez besoin. Et voici un autre résultat de recherche pour le mot signet avec certains de ses environs dans le fichier LyX2.0.po :

  #: lib/ui/stdmenus.inc:559 msgid "Reject All Changes|e" msgstr "  " #: lib/ui/stdmenus.inc:560 msgid "Show Changes in Output|S" msgstr "   " #: lib/ui/stdmenus.inc:567 msgid "Bookmarks|B" msgstr "|" #: lib/ui/stdmenus.inc:568 msgid "Next Note|N" msgstr " |" #: lib/ui/stdmenus.inc:569 msgid "Next Change|C" msgstr " |" 

Cette entrée du mot Signet est située en ligne avec le numéro 19619 et, à en juger par les mots de la langue russe, située à proximité de cette entrée, c'est ce dont vous avez besoin. Nous remplaçons cette occurrence du mot par cette phrase, la phrase que nous voulons servir comme nom d'affichage de l'élément d'interface correspondant. Ainsi, ce morceau de code, avec certains de ses environs dans le fichier LyX2.0.po, commence à ressembler à ceci:

 #: lib/ui/stdmenus.inc:559 msgid "Reject All Changes|e" msgstr "  " #: lib/ui/stdmenus.inc:560 msgid "Show Changes in Output|S" msgstr "   " #: lib/ui/stdmenus.inc:567 msgid "Bookmarks|B" msgstr ":  |" #: lib/ui/stdmenus.inc:568 msgid "Next Note|N" msgstr " |" #: lib/ui/stdmenus.inc:569 msgid "Next Change|C" msgstr " |" 

Enregistrez les modifications dans LyX2.0.po. Nous lançons la ligne de commande dans le dossier bin dans lequel nous nous trouvons. Dans la fenêtre de cette ligne, écrivez la commande suivante:

 msgfmt LyX2.0.po --o LyX2.0.mo 

, appuyez sur la touche Entrée . Après cela, comme prévu, le fichier LyX2.0.mo apparaît dans le dossier bin. Personnellement, pour ne pas entrer cent fois la même commande dans la ligne de commande, j'ai créé un fichier batch du contenu suivant dans le dossier bin du programme gettext:

 cd /d %0\.. msgfmt LyX2.0.po --o LyX2.0.mo 

Et maintenant, lorsque je l'ouvre après avoir enregistré les modifications dans le fichier LyX2.0.po , le même fichier LyX2.0.mo est créé exactement dans mon dossier bin, comme si je l'avais obtenu à partir de la ligne de commande. Ensuite, déplacez, répétez avec le remplacement, le fichier .mo résultant dans le dossier
C:\Program Files\LyX 2.0\Resources\locale\ru\LC_MESSAGES . Après avoir redémarré LyX, nous obtenons ce qui suit:



LyX: à propos du fichier default.def


Dans C:\Program Files\LyX 2.0\Resources\commands il y a un fichier default.def . À quoi sert ce fichier? Le 19 août, j'ai découvert que les modifications que j'ai apportées le 12 juin 19 à ce dossier n'étaient entrées en vigueur. En juin, ces modifications de ce fichier ne sont pas apparues. Apparemment, pendant cette période, j'ai fait quelque chose en rapport avec le programme LyX, mais je ne peux pas dire exactement quoi. Mais ensuite, ils sont immédiatement entrés et les modifications prennent désormais effet dans le fichier du même nom, mais uniquement dans un dossier différent - dans le dossier C:\Users\\AppData\Roaming\LyX2.0\commands . Donc, ce fichier est nécessaire pour nommer les combinaisons de commandes que nous utilisons habituellement dans le tampon de commandes de ce fichier, afin que nous puissions ensuite appeler à nouveau l'une de ces combinaisons de commandes via le tampon de commandes en utilisant le nom attribué à cette combinaison. . Voici des exemples pour définir de tels noms pour de telles combinaisons dans ce fichier:

  \define "corpi" "command-sequence math-mode; math-insert {\displaystyle \intop_{-\infty}^{\infty}e^{-x^{2}}dx=\dfrac{\sqrt{\pi}}{2}}; char-right; char-right;" \define "vstgr" "command-sequence vc-command U \"$$p\" \"vstavka-grafiki.bat\"" 

Un appel à une commande spécifique, par exemple, vstgr , est effectué dans le tampon de commande comme suit:

 call vstgr 

En utilisant cette commande, j'insère des graphiques dans la fenêtre du programme LyX sans retirer mes mains du clavier. Le fichier vstavka-grafiki.bat entre en jeu . Que contient ce fichier et comment il fonctionne, je vais vous le dire dans un autre article de cette série d'articles: cela n'a presque rien à voir avec ce dont je parle ici. Je note également ici seulement que, si je comprends bien, l'équipe

 command-sequence 

il est utilisé ici lorsque, dans une certaine combinaison de commandes, il existe plusieurs commandes pour combiner ces commandes dans un ensemble, mais en général, cette commande peut être utilisée dans le même but directement pour entrer une commande dans le tampon avec vos mains lorsqu'il est nécessaire d'exécuter plusieurs commandes à partir d'elle en une seule entrée et lorsque Les touches de raccourci sont affectées à une séquence de plusieurs commandes.

LyX: ajout de boutons aux menus, barres d'outils


Tout d'abord, je vais vous montrer comment ajouter un bouton à un menu. Par exemple, je vais montrer comment ajouter un bouton au menu Edition , lorsque vous cliquez dessus, le mode mathématique démarre, la formule y est entrée

 frac sqrt pi2

et après cela, le curseur se déplace 2 fois vers la gauche, de sorte qu'après la fin de cette commande, le curseur commence à clignoter à gauche de la formule que vous venez de saisir. En même temps, je veux que ce bouton se tienne entre les boutons Récent et Insérer , une bande a été placée au-dessus de ce bouton, comme, vous savez, il y a des bandes dans le menu qui les divisent en blocs dans lesquels elles sont en quelque sorte connectées les unes aux autres boutons amis. Et le nom d'affichage de ce bouton devrait être chislitelem de drob . Pour effectuer cette tâche - un cas particulier des tâches indiquées dans le titre de cette rubrique, nous devrons modifier les fichiers situés dans le dossier C:\Program Files\LyX 2.0\Resources\ui . À savoir, pour changer un menu, nous devons modifier le fichier stdmenus.inc situé dans ce dossier. Nous l'ouvrons dans un éditeur, je fais tout dans un bloc-notes banal. Où intuitivement, où regarder le code et garder à l'esprit les touches de raccourci que j'utilisais dans LyX, quand je commençais à peine à étudier ce programme et qu'il n'était pas question de créer mes propres touches de raccourci, j'ai réalisé que je devais modifier le bloc code de ce fichier commençant par

 # # EDIT MENU # Menu "edit" 

A savoir: après la ligne

 Item "Paste" "paste" 

ajouter 2 lignes

 Separator Item "drob' s chislstelem" "command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left;" 

La première des lignes ajoutées donne simplement la bande de séparation décrite ci-dessus. Enregistrez les modifications dans stdmenus.inc , redémarrez) LyX. Le résultat est le suivant:



Alors maintenant, ajoutons les boutons dans la barre des tâches. J'avoue que, comment ajouter des boutons sur la barre des tâches, j'ai espionné ici . Et la procédure d'ajout de boutons au menu décrit ci-dessus a déjà été pensée par moi sur la base de ce matériel reconnu. Et, bien sûr, je ne revendique aucune paternité. Eh bien, et maintenant ... Probablement, le lecteur attentif du deuxième article de cette série d'articles, sur les dessins simplifiés flottants, a déjà remarqué la différence d'une barre d'outils dans la fenêtre du programme LyX, que j'utilise (elle, ce panneau différent, se trouve exactement sur la photo là-bas) sur l'espace de travail dans lequel j'écris) à partir d'une barre d'outils similaire dans le programme LyX encore inchangé. À savoir, la différence entre ce panneau est immédiatement frappante avec un énorme bouton, sur lequel il n'y a que l'inscription Moyacom partiellement entrée sur la photo [Ctrl + 0 1] . Cependant, je ne me suis pas limité à ce bouton, car il n'était pas clair comment attacher les images que vous souhaitez aux boutons créés par l'utilisateur. J'ai donc créé un autre bouton. Sur la photo suivante, les boutons que j'ai créés sur cette barre d'outils sont indiqués par des flèches rouges:



Pour commencer, je vais vous dire comment créer un bouton recouvert de l'image souhaitée ( l'image doit avoir l'extension .png ), lorsque vous cliquez dessus, la commande définie dans les commandes C:\Users\\AppData\Roaming\LyX2.0\commands\default.def . Donc, nous entrons ce qui suit dans ce fichier à partir d'une nouvelle ligne:

 \define "pina2" "command-sequence math-mode; math-insert \dfrac{\pi}{2}; char- right; char-right;" 

Nous fermons le fichier default.def, enregistrons les modifications. Ensuite, dans le dossier C:\Users\\AppData\Roaming\LyX2.0\images\commands copions la photo (je répète, l'extension .png est nécessaire ) sous laquelle nous voulons que le bouton que nous créons apparaisse dans la fenêtre du programme LyX, renommez-le photo dans pina2 . Convenons que nous ajoutons le bouton au panneau Avancé (la photo ci-dessus montre la barre d'outils Avancée modifiée). Mais le programme LyX lui-même ne connaît pas la barre d'outils portant ce nom. Dans la compréhension de LyX, ce panneau s'appelle Extra (j'ai découvert cela en regardant les messages dans la série d'histoires mentionnées à plusieurs reprises dans mes histoires sur LyX en progressant dans la zone de sa fenêtre Messages de progression / débogage lorsque ce panneau était activé / désactivé via Affichage> Barres d'outils ).

Super. Nous allons dans le dossier C:\Program Files\LyX 2.0\Resources\ui déjà mentionné ci-dessus. Ouvrez le fichier stdtoolbars.inc , recherchez quelque chose qui commence par le mot supplémentaire (éventuellement avec une majuscule) ou quelque chose de similaire à, là, un en-tête ou quelque chose comme ça contenant ce mot.Afin de ne pas aller loin, nous ajouterons notre bouton au tout début de cette commande. À savoir, voici l'extrait de code de ce fichier avant mon intervention:

 ................................................................... StickyPopupMenu "update-others" "Update other formats" End Toolbar "extra" "Extra" Item "Default" "layout" Item "Numbered list" "layout Enumerate" ................................................................... 

Et voici comment j'ai créé ce morceau de code:

  ................................................................... StickyPopupMenu update-others Update other formats End Toolbar "extra" "Extra" Item "Privet moim chitatelyam" "call pina2" Item "Default" "layout" Item "Numbered list" "layout Enumerate" ................................................................... 

, où les ellipses sont les lignes du fichier stdtoolbars.inc avant et après le code de ce fichier. En principe, tout se ferme avec l'enregistrement du fichier stdtoolbars.inc . Ensuite, après avoir redémarré LyX, lorsque le panneau Avancé est activé , un nouveau bouton de fonctionnement apparaît sur ce panneau avec l'image que nous avons affectée et exécute la fonction que nous avons définie. Comme vous pouvez le voir sur la dernière photo, l'infobulle est déterminée par ce que nous avons écrit dans la première paire de citations liées à l'élément correspondant. En conclusion, je dirai que le deuxième bouton que j'ai ajouté a été défini sans la participation du fichier default.def et, comme je l'ai dit ci-dessus, sans intention, lui assigner une image sous laquelle ce bouton serait affiché dans la fenêtre du programme LyX: je viens d'insérer une ligne vide et insérée dans cette vide avant la dernière ligne du bloc de code dans lequel je viens de décrire les manipulations La ligne est le code suivant:

 item "Moyacom" "command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left;" 

Et [Ctrl + 0 1] sur le bouton que j'ai créé dans la photo que j'ai apportée est visible parce que j'ai un mode mathématique de séquence de commandes; math-insert \ dfrac {\ sqrt {\ pi}} {2}; char-left; char-left; Ctrl + 0 + 1 (je dois admettre que je ne m'attendais pas du tout à ce message à cet endroit.

À suivre ...

Source: https://habr.com/ru/post/fr484282/


All Articles