Das mysteriöse LyX-Programm. Teil 5

Kopiert aus meinem Blog , um eine weitere russischsprachige Informationsquelle zu diesem Thema zu erstellen.

Dieser Artikel ist eine Fortsetzung der folgenden Artikel in einem einzigen Zyklus:

Artikel 1
Artikel 2
Artikel 3
Artikel 4

LyX; Verwendung von .js-Dateien


Das Hauptmerkmal von Dateien mit der Erweiterung .js , das sie im Hinblick auf ihre Anwendung im LyX-Programm interessant macht, ist die Fähigkeit, Tastenanschläge in diesen Dateien zu simulieren. Überlegen Sie sich beispielsweise, wie Sie ein Foto, das sich im selben Ordner wie diese .lyx Datei befindet, .lyx Datei .lyx (wenn diese Datei noch nicht gespeichert wurde, wird ihr Fenster über Datei> Neu geöffnet.). Nun, sein Fenster wird zum ersten Mal buchstäblich geöffnet, wenn Sie dieses Mal das LyX-Programm verwenden. Das eingefügte Foto sollte sich in dem Ordner befinden, der unter Extras> Einstellungen ...> Pfade im Textfeld Benutzerverzeichnis angegeben ist Claudia. Die Hauptidee zur Lösung dieses Problems ist die folgende. Angenommen, in dem Ordner, den ich oben erwähnt habe, befindet sich ein Foto photo.png . Um es an der aktuellen Cursorposition im LyX-Programmfenster einzufügen, können Sie den folgenden Befehl im Befehlspuffer ausführen:

 inset-apply graphics filename photo.png 

.js wir es in der .js Datei also vstavka-grafiki.js . Sie müssen simulieren, dass Sie Alt + X drücken (damit der Cursor im Befehlspuffer zu blinken beginnt) und i , n , s , e , t drücken. - , a , p , p , l , y , , g , r , a , p , h , i , c , s , , f , i , l , e , n , a , m , e , Raum . Danach sieht das LyX-Programmfenster folgendermaßen aus:



Wenn ich anfange, etwas über die Tastatur einzugeben, wird dies nicht in das LyX-Hauptprogrammfenster, sondern in den Befehlspuffer eingegeben, und außerdem werden die Buchstaben von den Tasten eingegeben, die gedrückt werden, nicht von denen, die eingegeben werden, wenn diese Tasten gedrückt werden Russisches Layout und diejenigen, die eingegeben werden, wenn diese Tasten gedrückt werden, wenn das Tastaturlayout auf Englisch umgeschaltet wird. Toll, was du brauchst! Aber hier, wie sich später herausstellte, gibt es einen Haken: Zuerst dachte ich daran, diese .js Datei durch die Datei .js mit LyX zu .js und die Zeile zu schreiben

 \define "vstgr" "vc-command U \"$$p\" \"vstavka-grafiki.js\"" 

Erstellen Sie in LyX den Hotkey für den Ausdruck call vstgr . Alles wäre in Ordnung, aber es stellte sich heraus, dass .js Dateien nicht über LyX gestartet werden konnten. Daraus .bat sich jedoch, dass Dateien mit der Erweiterung .bat (banale Batch-Dateien) ausgeführt werden. Deshalb habe ich in die Datei default.def

 \define "vstgr" "vc-command U \"$$p\" \"vstavka-grafiki.bat\"" 

indem Sie die Datei vstavka-grafiki.bat wie folgt erstellen :

 start vstavka-grafiki.js 

Und direkt, um den Aufruf des Befehls zu vereinfachen, den ich im LyX-Fenster erstellt habe, habe ich, wie ich beabsichtigt hatte, als ich noch nicht wusste, dass ich auch eine Batch-Datei verwenden müsste, einen Hotkey für den Ausdruck call vstgr erstellt . Gleichzeitig müssen sich sowohl die Datei vstavka-grafiki.bat als auch die Datei vstavka-grafiki.js in dem zu PATH hinzugefügten Ordner befinden. Also mach weiter. Beim Erstellen des Exportformats pdflatex-v-papke bin ich auf dieses Format gestoßen . Wenn Sie beispielsweise Grafiken mit dem oben genannten Namen und der Erweiterung photo.png in den Teil des LyX-Programmfensters einfügen , der nach dem Klicken auf Ansicht> Quelltext anzeigen (oder Ansicht> Code anzeigen - der Name des entsprechenden Menüelements Ansicht hängt von der verwendeten Lokalisierungsdatei ab) Der folgende Code entspricht der Position der eingefügten Grafiken im LyX-Hauptprogrammfenster:

 \includegraphics{photo} 

Derselbe Code wird in der entsprechenden .tex Datei .tex , die im entsprechenden temporären Verzeichnis als Ergebnis der Aktion der Batchdatei .tex wird, die als Engine dieses Formats in einer der allerersten Phasen dieser Batchdatei ausgewählt wurde. Infolgedessen tritt beim Ausführen eines der folgenden Befehle dieser .tex - der Verarbeitung der empfangenen .tex Datei - ein Fehler auf, und es wird nichts ausgeführt. Das Problem hierbei ist, dass in der resultierenden .tex Datei der Name der eingefügten Grafikdatei (das Argument des Befehls \includegraphics ) ohne Erweiterung geschrieben wird. Was zu tun Hmm, zusätzlich zum Empfang der .tex Datei, deren Verarbeitung durch pdflatex keinen einzigen Fehler verursachen würde, möchte ich auch die Sichtbarkeit im LyX-Programmfenster behalten. Wenn Sie dagegen in unserem russischsprachigen Fall Grafiken in das LyX-Programmfenster einfügen, sind die Zeichen, die beim Drücken der Tastaturtasten eingefügt werden, höchstwahrscheinlich kyrillisch, während Dateierweiterungen im Allgemeinen, insbesondere Grafiken, in Englisch geschrieben sind. Auf der anderen Seite weiß der Leser, der diesen Blog an dieser Stelle gelesen hat, höchstwahrscheinlich bereits über die sehr leckere LyX-Programmfunktion Bescheid - Verwenden Sie das Tastaturlayout und verwenden Sie es mit aller Macht und Macht. Wenn ja, dann ist die Aufgabe stark vereinfacht. Hier haben wir nämlich die Datei im LyX-Programm geöffnet, das Layout auf Englisch umgestellt und mit dem Schreiben begonnen, indem wir die gewünschten Buchstaben gedrückt haben. Als ob das Layout auf Russisch eingestellt wäre, sind die Zeichen, die in das LyX-Programmfenster eingegeben werden, kyrillische Zeichen. befindet sich auf den gedrückten Tasten. Hier ist alles in Ordnung. Also haben wir geschrieben, geschrieben, hopp, wir mussten Grafiken einfügen. Bis zu diesem Punkt wurden kyrillische Zeichen eingeführt, und jetzt mussten wir die Buchstaben Englisch eingeben (um die Erweiterung einzugeben). Also nehmen wir es einfach und gehen in den Mathe-Modus, in dem wir den Namen des eingefügten Fotos zusammen mit seiner Erweiterung schreiben. Danach starten wir den Hotkey, den wir speziell dafür erstellt haben (ich habe diese Ctrl + 0 + V + G ( weil das Einfügen von Grafiken)) der Befehl vstgr1 speziell in der Datei default.def definiert.
Dieser Befehl ist wie folgt definiert:

 \define "vstgr1" "vc-command U \"$$p\" \"vstavka-grafiki1.bat\"" 

(und der vorherige Hotkey ist der Phrase call vstgr1 zugewiesen ). Wie Sie vielleicht erraten haben, startet dieser Befehl die Batch- Datei vstavka-grafiki1.bat mit folgendem Inhalt:

 start vstavka-grafiki1.js 

Wie Sie sich vorstellen können , wird in dieser Batch-Datei die Datei vstavka-grafiki1.js ausgeführt , die im Wesentlichen alles ausführt . Was macht er Beschreiben wir zunächst, welches Konstrukt in der aktuell bearbeiteten .lyx Datei enthalten sein soll. Wir möchten, dass dort aus einer neuen Zeile (wenn wir dort bereits etwas geschrieben haben, andernfalls brauchen wir keine neue Zeile, siehe unten) das Foto eingefügt wird, und dann aus einer neuen Zeile wieder eingefügt wird Ein TeX-Codeblock (was normalerweise im LyX-Programmfenster angezeigt wird, wenn Sie Strg + L drücken) und in diesem Block \includegraphics{} , wobei der Name des eingefügten Fotos, der Punkt und die Erweiterung des eingefügten Fotos in geschweiften Klammern stehen . Tatsächlich wird das eingefügte Foto im LyX-Programmfenster nur zur Dekoration im LyX-Programmfenster angezeigt. Die Anzeige dieses Fotos in der endgültigen .pdf nicht erforderlich. Das dort als Ergebnis des Befehls angezeigte Foto wird in der endgültigen .pdf angezeigt Um zu verhindern, dass die endgültigen .pdf Grafiken .pdf visuelle Grafiken aus dem LyX-Programmfenster verarbeitet werden, kommentieren wir diese visuelle Grafik in diesem LyX-Programmfenster und setzen ein Prozentzeichen vor diese visuelle Grafik eingebettet in den teX Code Block. Mit einem Wort wollen wir zum Beispiel die folgende Konstruktion erhalten:



Ich mache im Grunde das Gleiche wie im ersten Fall: Auf die gleiche Weise schraube ich die Datei vstavka-grafiki1.bat über die Datei default.def an LyX, erstelle einen neuen vstgr1- Befehl in dieser Datei und erstelle dann einen Hot-Befehl im LyX-Programmfenster Wenn Sie die Phrase vstgr1 drücken , ist alles klar. Der Unterschied besteht nur in der Datei vstavka-grafiki1.js , die von der Datei vstavka-grafiki1.bat gestartet wird. Bevor ich den Inhalt der Datei vstavka-grafiki1.js aufführe , werde ich den Inhalt der beiden in dieser Datei verwendeten Hilfsdateien auflisten . Dazu müssten wir das Drücken des Prozentzeichens in der Datei vstavka-grafiki1.js simulieren. Und da wir das kasachische Tastaturlayout verwenden (ich verwende das kasachische Tastaturlayout, daher schreibe ich basierend auf der Tatsache, dass mein Leser es auch verwendet) und weil bei diesem Tastaturlayout das eingegebene Zeichen zum Beispiel Wenn Sie im Notizbuch die Taste drücken, auf der sich dieses Prozentzeichen befindet, ist dies der Buchstabe des kasachischen Alphabets. In dem Befehl, der das Prozentzeichen der Datei vstavka-grafiki1.js simuliert , müssen Sie diesen kasachischen Buchstaben schreiben, wie ich geschrieben habe Ein anderer Beitrag in diesem Blogbeitrag verursacht einen Fehler. Daher verwendet die Datei vstavka-grafiki1.js die Stapeldatei procent.bat mit folgendem Inhalt:

 echo LYXCMD:vvod:command-sequence:self-insert %%> \\.\pipe\lyxpipe.in 

Wenn Sie sich an die Geschichte von \\. \ Pipe \ lyxpipe.in erinnern, ist es leicht zu verstehen, dass diese Batch-Datei tatsächlich ein Prozentzeichen an der aktuellen Cursorposition im LyX-Programm einfügt (verwenden Sie dazu natürlich Extras> Einstellungen ...> Pfade im Text Das Feld für den LyX- \\.\pipe\lyxpipe sollte \\.\pipe\lyxpipe . Wenn Sie versuchen, die auf LyX angewendete Datei procent.bat außerhalb der Datei vstavka-grafiki1.js zu verwenden , müssen Sie die richtige Reihenfolge für den Start des Eingabeaufforderungsfensters einhalten, von dem aus die vstavka- Datei aufgerufen wird grafiki1.js und Windows des LyX-Programms, in denen das gleiche Prozentzeichen vollständig vorkommt Für Details verweise ich den Leser auf die oben erwähnte Erzählung. Wenn Sie jedoch procent.bat von vstavka-grafiki1.js aufrufen, läuft alles so, wie es sollte. Eine weitere in der Datei vstavka-grafiki1.js verwendete Hilfsdatei ist die Datei Ostanovka.js mit folgendem Inhalt:

 WshShell=WScript.CreateObject("WScript.Shell") WshShell.Popup("      ,   \"\",  \"\"", 0, " ",1); 

Aber was ist mit dem Wunderjudo? Tatsache ist, dass ich beim Erstellen der Datei vstavka-grafiki1.js , die während des Betriebs ohne Unterbrechung ausgeführt wird , anscheinend auch andere Dateien mit Befehlen gestartet habe, die im selben LyX-Programmfenster ausgeführt werden sollten Wenn in der Datei vstavka-grafiki1.js selbst Befehle ausgeführt werden und an verschiedenen Stellen Fehler aufgetreten sind, haben diese Befehle in der Datei vstavka-grafiki1.js nicht alle erforderlichen Aktionen ausgeführt . Um das zu beheben, habe ich mir das ausgedacht. Experimentell identifizierte solche Stellen in der Datei vstavka-grafiki1.js . Die Befehle in dieser Datei, die Fehler verursachen. Und vor diesen Stellen wollte ich die Datei vstavka-grafiki1.js anhalten, bis ich eine Taste drücke . Welche - wusste es noch nicht. Ich habe nachgedacht, nachgedacht und daran gedacht, dass ein Team kein Team ist. Im Allgemeinen spielt es keine Rolle, WshShell.Run( es gibt ein derartiges Argument, dass, wenn sein Wert als true angegeben wird, bei der Ausführung dieses Befehls die Hauptarbeit, von der aus dieser Befehl ausgeführt wird, Die Datei wird genau so lange angehalten, bis die mit diesem Befehl geöffnete Datei geschlossen wird. Nun, etwas bereits ... Andererseits erinnerte ich mich, dass es in jscript einen Befehl gibt, der ein Dialogfeld mit wirklich funktionierenden Schaltflächen öffnet ich beschloss , vor dem Problembereich Datei vstavka-grafiki1.js Befehl zap einfügen ska Ostanovka.js Datei mit den Erwartungen des Endes des Betriebes der Datei als Ostanovka.js wird ein Dialogfeld mit zwei Schaltflächen erstellen -. Ok und Abbrechen zur gleichen Zeit nach vyplyvaniya diesem Fenster des Fokus auf der OK - Taste sein, so das Fenster schließen In einem Fenster genügt es, die Eingabetaste zu drücken. Also habe ich die Datei Ostanovka.js mit den oben genannten Inhalten erstellt. Ich wollte auch die Schaltfläche Abbrechen auflegen und alle Aktionen abbrechen, die von der Datei vstavka-grafiki1.js nach der letzten Ausführung der Datei Ostanovka.js ausgeführt wurden Ich weiß nicht, wie es geht. Nun , das ist es, nachdem die vorläufigen Bemerkungen gemacht wurden, der Leser kann den Prozess der Datei vstavka-grafiki1.js verstehen . Ich werde in den Kommentaren zu jeder Zeile schreiben, was sie leistet. Vergessen Sie nicht, dass sich der Cursor im LyX-Programmfenster vor dem Starten der Datei vstavka-grafiki1.js im mathematischen Modus befindet, nach dem Namen der einzufügenden Grafikdatei, dem Punkt, der den Namen von der Erweiterung und der Erweiterung selbst trennt. Ich habe es nämlich so gemacht:

 WshShell=WScript.CreateObject("WScript.Shell") WshShell.SendKeys("%"); WshShell.SendKeys("+{HOME}"); //   .   // ,      WshShell.SendKeys("^"); // ,     WshShell.SendKeys("{LEFT}"); //    . , //         WshShell.SendKeys("{END}"); //     //. ,          WshShell.SendKeys("{ENTER}"); //    . , //         WshShell.Run("Ostanovka.js",1,true); //   //vstavka-grafiki1.js WshShell.SendKeys("^"); //  TeX WshShell.SendKeys("^"); //  TeX WshShell.Run("Ostanovka.js",1,true); //   WshShell.Run("Ostanovka.js",1,true); //   //vstavka-grafiki1.js WshShell.Run("procent.bat"); //       TeX WshShell.Run("Ostanovka.js",1,true); //   //vstavka-grafiki1.js WshShell.SendKeys("{RIGHT}"); //      //  TeX WshShell.SendKeys("%"); //    WshShell.SendKeys("-   "); //  //       //inset-apply graphics filename     filename WshShell.SendKeys("^"); //        //         , //    WshShell.SendKeys("{ENTER}"); //   ENTER,  //       //  LyX     //WshShell.SendKeys("{UP}"); //      LyX // ,         , //  . ,         , //  .  WshShell.SendKeys("{LEFT}"); //   . ,    //      WshShell.SendKeys("+{HOME}"); //   , //   ,      WshShell.SendKeys("^"); // ,     WshShell.SendKeys("^"); // ,     WshShell.SendKeys("{LEFT}"); //      WshShell.SendKeys("{DELETE}"); //    //       ,  //   ,   WshShell.SendKeys("{DELETE}"); //    //   WshShell.SendKeys("{END}"); //     //       ,    //.  ,       //    ,      //   LyX   WshShell.SendKeys("{ENTER}"); //   WshShell.SendKeys("^"); //       //  WshShell.SendKeys("\"); //   ,   //, \includegraphics WshShell.SendKeys("+"); //       //  WshShell.SendKeys("^"); //        //     , //     WshShell.SendKeys("+"); //       //  WshShell.SendKeys("{RIGHT}"); //      

Ich werde ein paar Worte zum obigen Code sagen. Erstens werden Kommentare in jscript durch das Zeichen // gekennzeichnet, und alles, was in der Zeile erscheint, nachdem dieses Zeichen vom Ausführenden dieses Codes ignoriert wurde, soll der Person die von dieser Zeile ausgeführten Aktionen erklären. Und wenn sich vor // nichts in der Zeile befindet, setzt diese Zeile den Kommentar fort, der irgendwo oben begonnen wurde. Zweitens habe ich das erste Mal den Namen des eingefügten Fotos mitsamt seiner Erweiterung, die durch einen Punkt vom Namen getrennt ist, kopiert und das zweite Mal dieses Design ausgeschnitten, anstatt es nur einmal auszuschneiden. Warum? Ja, denn als ich das versuchte, bevor ich dieses Design ein zweites Mal aus der Zwischenablage in die aktuelle Position einfügte, wurde es auf mysteriöse Weise leer und mir fiel nichts ein. Ich kann nicht erklären, warum dies passiert, aber ich habe einen Ausweg aus dem aufgetretenen Problem gefunden. Ich möchte noch einmal daran erinnern, dass Sie während der vstavka-grafiki1.js wenn ein Dialogfeld mit der Überschrift "Prozesssteuerung" angezeigt wird, die Eingabetaste drücken müssen (oder mit der linken Maustaste auf eine beliebige Schaltfläche im Popup-Dialogfeld klicken müssen), um die Ausführung der Datei "vstavka-grafiki1.js" fortzusetzen was mir weniger bequem erscheint).

LyX: Großer Buchstabe e


Wenn Sie jetzt im LyX-Programm, das in der Form verwendet wird, in der es erstellt wurde, die Tastenkombination Umschalt + E drücken (dies ist der Fall, wenn die Funktion Tastaturlayout verwenden aktiviert ist und das Tastaturlayout auf Englisch umgeschaltet wird), anstelle des erwarteten Großbuchstabens. “ Äh, “erscheint ein umgekehrtes Anführungszeichen im LyX-Programmfenster. Die Lösung für dieses Problem besteht darin, den Tastenkürzel "Umschalt +" der Phrasenbefehlssequenz " E " zuzuweisen .

LyX: Hinzufügen / Entfernen von Nachrichten zu einer Nachrichtengruppe unter Nachrichten anzeigen


Wenn Sie hier über Ansicht> Meseages anzeigen (oder über Ansicht> Nachrichten anzeigen - dies hängt von der verwendeten Lokalisierungsdatei LyX2.0.mo ab ) den Bereich Status- / Debug-Nachrichten am unteren Rand des LyX-Programmfensters öffnen, werden in diesem Teil des Fensters zu viele Nachrichten angezeigt. es kommt vor, dass Sie einfach die Maus bewegen und eine kilometerlange Folge von Zeilen angezeigt wird, in denen Sie nach etwas suchen können, das Sie benötigen (zum Beispiel, um einen Hinweis darauf zu erhalten, wie Sie diesen oder jenen Befehl über den Befehlspuffer eingeben, da es sich natürlich nicht um eine wörtliche Form handelt, sondern um einen Hinweis es kann geben, ich, Vielleicht erzähle ich Ihnen bald ein wenig darüber, was ich in diesem Zusammenhang herausgefunden habe. Es kann äußerst schwierig sein. Um Nachrichten zu reduzieren (oder umgekehrt zu einer Gruppe von Nachrichten hinzuzufügen), tun wir dies. Klicken Sie in diesem unteren Bereich des Fensters mit der linken Maustaste auf " Einstellungen" . Dort setzen wir den Schalter " Debug-Meldungen" auf " Hervorgehoben" :



Und dann rechts doppelklicken wir (in der Geschwindigkeit, mit der es beim Öffnen einer Datei geschieht, kann diese Geschwindigkeit bei Bedarf in den Einstellungen des Computers selbst außerhalb des LyX-Programms geändert werden) auf die Gruppe von Nachrichten, von der wir Nachrichten erhalten möchten Stellen Sie sicher, dass es nicht im Bereich Status- / Debug-Meldungen angezeigt wird, oder umgekehrt, dass die Meldungen dieser Meldungsgruppe in diesem Bereich angezeigt werden sollen. , , , , : , LyX . , , , .

LyX: -


> ... . , Preview … , , , .tex - , , pstricks. , , pstricks, .tex , , LyX, - « LaTeX», , TeXworks, .. \begin{pspicture} , \end{pspicture} , , \begin{pspicture} - \psset{xunit=1.0cm,yunit=1.0cm,algebraic=true,dimen=middle,dotstyle=o,dotsize=3pt … , , pstricks, , . , .tex , . LyX. - >...> LaTeX , , .tex , - « LaTeX», LyX > ( >Preview .mo ). . . > , .... . : .tex , . , , . , OK :



, OK : , , , .tex . — .lyx .tex , , . , , OK Preview , .tex , LyX. , ???

LyX: ,


, , - , :



, . , >...> , , (.) , , (.) , , , , , . ( , ) :



LyX: Local layout,


, LyX. , , , , , , , , , , , , , LyX , , , . , . ? . >> ( .mo Local layout ), :

 Provides amsmath 0 PageStyle plain Style Standard Font Color blue EndFont End Style Enumerate Font Color red EndFont End Style Theorem Font Color green Shape ital EndFont End 

, , , ! , , OK (, ). LyX :

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


All Articles