Das mysteriöse LyX-Programm. Teil 4

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

LyX: \\. \ Pipe \ lyxpipe


Im Allgemeinen wird diese Funktion benötigt, um die LyX-Interaktion mit anderen Programmen zu organisieren. Insbesondere stellt sich heraus, dass Sie Befehle über die Befehlszeile in einem geöffneten LyX-Programmfenster eingeben können! Dazu geben Sie zunächst unter Extras> Einstellungen> Pfade im Textfeld LyX-Serverkanal Folgendes ein:

\\.\pipe\lyxpipe 

, und weder .in noch .out werden der Lyxpipe bis zum Ende zugeordnet. Natürlich klicken Sie auf . Außerdem muss das LyX-Programmfenster, in das Befehle über das Eingabeaufforderungsfenster eingegeben werden mussten, vor dieser Befehlszeile gestartet werden, über die Befehle in dieses LyX-Programmfenster eingegeben werden, da sonst nichts funktioniert. Hier sind Beispiele, wie Sie Befehle in die Befehlszeile schreiben, um dies zu erreichen:

 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in echo LYXCMD:formula:math-mode:\alpha> \\.\pipe\lyxpipe.in echo LYXCMD:vstgrafiki:inset-apply:graphics filename zdes kujut hip-hop.png> \\.\pipe\lyxpipe.in 

Meiner Meinung nach verdient das letzte Team Interesse. Dieser Befehl fügt ein Foto zdes kujut hip-hop.png )) ein, das sich in dem Ordner befindet, der unter Extras > Einstellungen ...> Pfade im Textfeld Benutzerverzeichnis im LyX-Programmfenster geöffnet ist (bevor die Befehlszeile geöffnet wird).

LyX: Vorwärts- und Rückwärtssuche


Wie dies konfiguriert ist, wird hier beschrieben. Ich sage Ihnen nur, wie ich es auf Russisch gemacht habe. Also Wir verwenden eine unsortierbare Version von SumatraPDF. Also haben wir es heruntergeladen, installiert. Stellen Sie als Nächstes unter „Start> Standardprogramme> Dateitypen oder Protokolle einzelnen Programmen zuordnen“ sicher, dass .pdf Dateien mit SumatraPDF geöffnet werden. Dann gehen wir zum Ordner C:\Users\\AppData\Roaming\SumatraPDF . Kopieren Sie von dort aus die SumatraPDF-settings.txt- Datei an einen beliebigen Ort.

Als nächstes musste der Pfad zu dem Ordner hinzugefügt werden, der die SumatraPDF-Datei enthält, die das Programm öffnet (ich habe diesen Ordner C:\Program Files\SumatraPDF ). Aus irgendeinem Grund habe ich dies zu den Benutzerumgebungsvariablen für IVAN hinzugefügt. Außerdem muss der Pfad zu dem Ordner, der die Datei enthält, die das LyX-Programm startet (für mich C:\Program Files\LyX 2.0\bin ), ebenfalls in PATH enthalten sein. C:\Program Files\SumatraPDF Sie anschließend in den Ordner C:\Program Files\SumatraPDF , und öffnen Sie die Datei SumatraPDF.exe . Klicken Sie im angezeigten Fenster des SumatraPDF-Programms mit der linken Maustaste auf die 3 horizontalen Balken in der oberen linken Ecke (oder möglicherweise in der Ecke)) und wählen Sie Einstellungen> Erweiterte Einstellungen . Gleichzeitig wird dieselbe SumatraPDF-settings.txt- Datei im Editor geöffnet, von der wir eine Kopie an einem abgelegenen Ort abgelegt haben. Jetzt können wir mit dieser Datei tun, was wir wollen. Und wir werden das Folgende mit ihm machen. Hier ist eine Liste einiger Variablen mit ihren Werten:

 ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true 

Also. In der SumatraPDF-settings.txt- Datei prüfen wir das Vorhandensein dieser Variablen (Wörter links vom Gleichheitszeichen). Wenn sie vorhanden sind, prüfen wir die Übereinstimmung des Werts (Wörter rechts vom Gleichheitszeichen) der in dieser Datei gefundenen Variablen aus der obigen Liste mit den Werten von z gleiche Variablen aus dieser Liste. Wenn in der obigen Liste der Wert einer Variablen vom Wert der entsprechenden Variablen in der Datei abweicht, muss der Wert dieser Variablen auf den gleichen Wert wie in der obigen Liste zurückgesetzt werden. Wenn eine Variable aus der Liste zusammen mit ihrem Wert nicht in der Datei wäre, müssten wir nur die Variable zusammen mit ihrem Wert in die Datei kopieren. Nun, persönlich habe ich an dieser Datei nichts geändert: Alle in der Liste aufgeführten Variablen waren bereits in der Datei vorhanden, und all diesen Variablen in der Datei wurden die entsprechenden in der Liste aufgeführten Werte direkt bei der Installation von SumatraPDF zugewiesen. Schließen Sie, speichern Sie die Änderungen. Das war's, SumatraPDF wird danach konfiguriert. Wir fahren mit der Konfiguration von LyX fort. Öffnen Sie das LyX-Programm, wenn es noch nicht geöffnet oder aus irgendeinem Grund geschlossen wurde. Gehen Sie zu Extras> Einstellungen ...> Pfade . Geben Sie in das Textfeld des LyX-Serverkanals Folgendes ein

 \\.\pipe\lyxpipe 

Gehen Sie dann zu Extras> Einstellungen ...> Dateiverarbeitung> Konverter . Wählen Sie dort mit der linken Maustaste im Bereich unter dem Begriff Definitionen der Konverter LaTeX (pdflatex) -> PDF (pdflatex) aus. Als Nächstes löschen wir seinen Inhalt aus dem Konverter- Textfeld und fügen Folgendes ein (oder geben es von Hand ein):

 pdflatex -interaction=nonstopmode -synctex=1 $$i 

Löschen Sie außerdem den Inhalt aus dem Textfeld. Klicken Sie auf die Schaltfläche Ändern . Dann speichere . Gehen Sie zurück zu Extras> Einstellungen ...> Dateiverarbeitung> Konverter . Überprüfen Sie, ob die Einstellungen gespeichert sind. Wenn ich jetzt dorthin gehe und in beide Richtungen suche , gebe ich nach dem Klicken mit der linken Maustaste LaTeX (pdflatex) -> PDF (pdflatex) Folgendes ein :



Gehen Sie dann zu Extras> Einstellungen ..> Ausgabe> Allgemein . Geben Sie dort im Textfeld PDF-Befehl den folgenden Befehl ein:

 SumatraPDF -forward-search "$$t" $$n "$$o" 

Klicken Sie auf Übernehmen . So wird dieser Ort so aussehen:



Gehen Sie zu Extras> Einstellungen ..> Dateihandhabung> Dateiformate . Dort legen wir die Dropdown-Liste Format fest, indem wir den PDF- Wert (pdflatex) mit der linken Maustaste und den benutzerdefinierten Wert in der Dropdown-Liste Viewer auswählen und in das Textfeld rechts von dieser Liste eingeben

 SumatraPDF 

Derzeit gibt es:



Und schließlich erstellen Sie im C:\Program Files\LyX 2.0\bin eine Datei mit dem Namen lyxeditor und der Erweiterung .cmd (es stellt sich heraus, dass dies dieselbe Batchdatei ist) mit folgendem Inhalt:

  @echo off SETLOCAL enabledelayedexpansion set file=%1 set row=%2 REM remove quotes from variables set file=!file:"=! set row=!row:"=! %comspec% /q /c (@echo LYXCMD:revdvi:server-goto-file-row:%file% %row%)> \\.\pipe\lyxpipe.in&&type \\.\pipe\lyxpipe.out endlocal 

Ich habe den Code für diese Batch-Datei von hier genommen, als ich auf den Link auf der englischen Seite geklickt habe, dessen Inhalt ich hier nacherzähle (der Link zu dieser Seite wurde von mir hier nur oben angegeben). Ehrlich gesagt, über das Erstellen einer Batch-Datei auf einer Seite in Englisch wurde schon viel früher gesagt, als dies für mich getan wurde, aber was ist der Unterschied? Übrigens hat mich der Code dieser Batch-Datei dazu veranlasst, über die Eingabe von Befehlen in der Befehlszeile nachzudenken, damit diese von dieser Zeile aus in das geöffnete LyX-Programmfenster eingegeben werden, das als Grundlage für das Schreiben des LyX- Absatzes diente : \\. \ Pipe \ lyxpipe dieses Artikels. Davor habe ich versucht, Befehle von der Befehlszeile in das LyX-Programmfenster einzufügen, wobei ich diese Befehle aus dem Handbuch übernommen habe. Ich habe beispielsweise versucht, den folgenden Befehl von der Befehlszeile aus auszuführen:

 echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in 

aber für mich hat nichts geklappt. Nun, und jetzt kehren wir zu der Suche im Zusammenhang mit LyX zurück. Wie benutzt man es? Aber sehr einfach. Wenn wir nun eine Vorschau der geöffneten .lyx Datei erstellt haben, werden, wenn Sie im entsprechenden SumatraPDF-Fenster kurz auf Navigation> Vorwärtssuche klicken, mehrere Zeilen, die dasselbe Wort enthalten, (zumindest für mich) neben dem entsprechenden Wort im LyX-Fenster in lila hervorgehoben momentan blinkender Cursor. Wenn Sie in das SumatraPDF-Fenster doppelklicken, wird der Fokus auf das LyX-Fenster übertragen und der Cursor beginnt dort zu blinken. Wenn Sie an verschiedenen Stellen des SumatraPDF-Fensters klicken, beginnt der Cursor an verschiedenen Stellen des LyX-Fensters zu blinken. Ich kann nichts spezifischeres über die Beziehung der Cursorposition in LyX zu den in SumatraPDF hervorgehobenen Zeilen sowie die Beziehung der Doppelklickposition in SumatraPDF zu der Stelle im LyX-Fenster sagen, an der der Cursor zu blinken beginnt. Die Aufgabe ist also ziemlich kompliziert. Lassen Sie mich Ihnen eine Übersetzung dieser Seite geben, deren Inhalt ich hier nacherzähle und die mit dem Google-Browser erstellt wurde: Ich habe plötzlich etwas übersehen. Also



Aus MyNotes
Aktualisiert auf die neueste Version 2.3.32019
MiKTeX-Benutzer sollten vor der Installation von LyX 2.3.3+ für Windows ein Upgrade auf die neueste Version durchführen. Wenn Sie eine permanente Installation von SumatraPDF haben , müssen Sie -inverse-search nur EINMAL installieren, genau wie bei der Verwendung von Registerkarten. Wir müssen keine Zeit damit verbringen, zu entscheiden, welche Sitzung angesprochen werden soll . Beachten Sie, dass SumatraPDF mehrere Fenster und Sitzungen haben kann, dies geht jedoch über den Rahmen dieser Antwort hinaus. InverseSearchCmdLine = dauerhaft in SumatraPDF-settings.txt gespeichert. Es sollte nicht vom Editor angepasst werden, es sei denn, Sie müssen SumatraPDF-settings.txt neu installieren oder auf andere Weise ersetzen (Backup erstellen!)

Einstellungen in SumatraPDF


Der bemerkenswerte Unterschied besteht darin, dass wir zur stabileren Okular- Cmd-Datei zurückkehren ( Okular verwendet genau dasselbe Aufrufsystem wie SumatraPDF ), wodurch unnötige Aufrufe vermieden werden. SumatraPDF muss so installiert sein, dass es von jedem Systemaufruf wie SumatraPDF aus funktioniert. Dies bedeutet, dass es "on the way" sein muss (wenn die portable Version verwendet wird, muss SumatraPDF.exe vorübergehend bis zum ersten Lyx-Aufruf zum Pfad des Benutzers hinzugefügt werden). Starten Sie SumatraPDF und gehen Sie zu Einstellungen> Erweiterte Optionen . Dadurch wird die Datei SumatraPDF-settings.txt in NotePad geöffnet . Nachdem Sie die Einträge überprüft haben, können Sie Folgendes überprüfen oder ändern.

 ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true 

Denken Sie daran, dass %l ein Kleinbuchstabe L ist, und drücken Sie STRG + S (Datei speichern). Wenn Sie c: ... LyX \ bin \ zu dieser InverseSearchCmdLine hinzufügen müssen , haben Sie LyX falsch installiert. Die .cmd Datei befindet sich im Ordner bin, der sich im Systempfad befinden MUSS.

Einstellungen in LyX


Folgen Sie den SyncTex- Anweisungen auf wiki.lyx.org/LyX/SyncTex .

"(Hinweis: Die umgekehrte Suche nach .lyx-Dateien mit Leerzeichen oder anderen Sonderzeichen im Dateinamen funktioniert auf einigen Windows-Systemen nicht immer mit dieser Methode.)"

Meine Notizen: Aufgrund dieser einzigartigen Methode zum Aufrufen des von LyX unter Windows verwendeten Kanals [1] ist es manchmal erforderlich, dass die Arbeitsdatei und ihr Pfad KEIN LEERZEICHEN ENTHALTEN. Wenn dies nicht funktioniert, müssen Sie Probleme mit der LyX-Unterstützung melden . Wenn Sie eine aktive LyXserver- Sitzung mit dem Remote-Pfad in Anführungszeichen einfacher aufrufen können, geben Sie unten einen Kommentar ein. Das Problem ist, dass LyXserver zwei aufeinander folgende Werte erwartet:

1) SyncTeX hat den Dateinamen .tex 2) gefolgt von einer Zeilennummer. Wenn der Dateiname Leerzeichen enthält, ist der erste Teil möglicherweise ungültig, da der Dateiname und der zweite Teil eindeutig keine Zahl ist. Dies funktioniert möglicherweise, wenn die Dateinamen analysiert werden Wie das ältere 8.3-Format, aber die meisten modernen Windows-Dateien verwenden das LFN-Format. Die lyxeditor.cmd- Datei versucht, diese Probleme umzugehen . Auffällige Unterschiede zu anderen Ansätzen Fügen Sie keine unnötigen und veralteten Optionen / Direktiven für die Wiederverwendung von Instanzen oder die umgekehrte Suche hinzu (sie werden nicht benötigt und verlangsamen die korrekte Anforderung für die Vorwärtssuche .)

Extras → Einstellungen → Pfad

  • Fügen Sie das Verzeichnis, in dem sich SumatraPDF.exe befindet, der PATH-Präfix-Zeile hinzu. (Dies ist für eine permanente Installation nicht erforderlich, kann jedoch für den portablen Einsatz hilfreich sein.)
  • Setze die Zeile LyXServer pipe \\. \ Pipe \ lyxpipe (benutze NICHT die Browse-Taste).

Extras → Einstellungen → Dateiverarbeitung → Konverter

  • Wähle das LaTeX (pdflatex) Format -> PDF (pdflatex)
  • Setzen Sie den Eingabekonverter auf pdflatex -interaction = nonstopmode -synctex = 1 $$ i



  • Klicken Sie auf "Ändern" (andernfalls wird die Änderung abgebrochen).
  • Diese Änderung erfordert, dass MikTeX oder TeX Live die Datei FILE.synctex.gz erstellen.

Gehen Sie raus und gehen Sie zurück, um zu überprüfen, ob es geändert wurde. Ich habe ein paar Änderungen vorgenommen, um es zurückzusetzen und von einer Sitzung zur nächsten zu pinnen.

Extras → Einstellungen → Ausgabe → Allgemein.
Setzen Sie im Abschnitt Direkte Suche den PDF-Eingabebefehl auf SumatraPDF -forward-search "$$ t" $$ n "$$ o".

Extras → Einstellungen → Dateiverarbeitung → Dateiformate

  • Wählen Sie das PDF-Format (pdflatex)
  • Setzen Sie das Feld Ansicht mit dem Befehl SumatraPDF auf Benutzerdefiniert
  • Möglicherweise müssen Sie alle SumatraPDF-Fenster schließen und Dokument → Ansicht verwenden.
  • Sie können den Befehl für die Rückwärtssuche direkt in SumatraPDF einstellen, indem Sie wie oben beschrieben zu „Einstellungen → Erweiterte Optionen“ gehen und die Rückwärtssuche einstellen. In diesem Fall reduzieren Sie den Befehl Ansicht auf

 SumatraPDF 



JEGLICHE Probleme mit diesem Inverse Search-Aufruf sollten mit Lyx-Unterstützung einhergehen, da dies die empfohlene Methode ist, nicht meine!

[1] Die Verwendung von Named Pipes im Speicher beschleunigt und verringert die Notwendigkeit, eine Anwendung über Shell-Optionen aufzurufen. Wie bei DDE- oder D-Bus-Methoden ist sie jedoch für die meisten Benutzer ungewohnt und kann zur Behebung von Problemen problematisch sein.

Hinweis Stellen Sie sicher, dass lyx die Datei geöffnet hat. Die Schaltfläche Vorwärts / Rückwärts aktivieren ist aktiv. Kompilieren Sie die Datei und zeigen Sie sie an. Klicken Sie anschließend mit der rechten Maustaste und wählen Sie etwa 6 Optionen aus

Die Plätze sind nicht 1 zu 1 (Seiten scheinen möglicherweise "aus" zu sein). Dies kann helfen, eine direkte Suche zu sehen, indem Sie SumatraPDF-settings.txt einstellen

HighlightPermanent = true

Um zur entsprechenden Seite zurückzukehren, doppelklicken Sie einfach auf eine beliebige Stelle in SumatraPDF, um lyxeditor.cmd aufzurufen.


Wie Sie sehen, gibt es noch einige Nuancen, die von mir nicht erwähnt werden. Als ich alles eingerichtet habe, habe ich diese Nuancen einfach nicht gebraucht.

LyX; Verwendung von .bat-Dateien


Obwohl es auf den ersten Blick nicht möglich ist, neue Exportformate zu LyX hinzuzufügen (soweit ich zum Beispiel in TeXworks verstehe, besteht ein Analogon für eine solche Möglichkeit des Hinzufügens in der Möglichkeit, ein neues Layout-Tool zu erstellen), hat dieses Programm eine solche Möglichkeit. Versuchen wir zunächst, das folgende Exportformat zu erstellen, das auf den ersten Blick nachsichtig erscheint. Die folgenden PATH-Variablen sind im LyX-Programm definiert:

 $$s The LyX system directory (eg /usr/share/lyx). $$i The input file $$o The output file $$b The base name (without filename extension) in the LyX temporary directory $$p The full directory path of the LyX temporary directory $$r The full pathname to the original LyX file being processed $$f The filename (without any directory path) of the LyX file. $$l The `LaTeX name' 

Dies ist ein Auszug aus einem Teil des LyX-Programmhandbuchs. Wir werden keine Erklärungen der Bedeutungen und Bedeutungen dieser Variablen übersetzen, sondern versuchen, ein neues Exportformat zu erstellen (mit dem Erscheinen einer neuen Schaltfläche unter Datei> Exportieren nach , einschließlich durch Klicken auf, in das wir in das Format dieser .lyx Datei .lyx , aus dessen Fenster dieser Klick gemacht wurde), während des Exports, in welches in dem temporären Verzeichnis (in dem zum Beispiel beim Export nach PDF {pdflatex} zusätzlich zu der erzeugten .pdf Datei Dateien erzeugt werden) die puti.txt- Datei erzeugt wird, in der ( alle) die Werte dieser Variablen . Erstellen Sie dazu in dem Ordner, der PATH hinzugefügt wurde, eine puti.bat- Datei mit dem folgenden Inhalt:

 chcp 1251 cd /d %0\.. echo %1 >puti.txt echo %2 >>puti.txt echo %3 >>puti.txt echo %4 >>puti.txt echo %5 >>puti.txt echo %6 >>puti.txt echo %7 >>puti.txt echo %8 >>puti.txt echo %1/%~2 >>puti.txt 

Als nächstes befinden sich in der Datei C:\Users\\AppData\Roaming\LyX2.0\lyxrc.defaults die Zeilen

 .................................... \Format pdf4 pdf "PDF (XeTeX)" X "pdfview" "" "document,vector,menu=export" \Format pdf5 pdf "PDF (LuaTeX)" u "pdfview" "" "document,vector,menu=export" 

füge eine solche Zeile hinzu

 \Format pdf6 txt "puti" F "pdfview" "" "document,vector,menu=export" 

Hier gibt das Wort puti nicht die Datei mit dem Code an, der die Engine des erstellten Exportformats ist, sondern unter welchem ​​Namen und wo die Schaltfläche zum Aufrufen dieses Exportformats zu Datei> Exportieren nach angezeigt wird

 .................................... \converter pdflatex pdf2 "pdflatex $$i" "latex=pdflatex" \converter xetex pdf4 "xelatex $$i" "latex=xelatex" \converter luatex pdf5 "lualatex" "latex=lualatex" 

Nach der Zeile, die das pdf5-Format definiert, wird die folgende Zeile eingefügt:

 \converter pdflatex pdf6 "puti.bat $$b $$f $$i $$l $$o $$p $$r $$s" "" 

Und hier definiert das Wort puti eine Datei mit Code, die die Engine des erstellten Exportformats ist. Und an dieser Stelle in der Datei lyxrc.defaults müssen Sie bereits die Erweiterung dieser Datei mit dem Code (in diesem Fall .bat ) angeben, sonst funktioniert es nicht! .. Und dann werden, wie Sie vielleicht vermuten, zum einen die Parameter angegeben, mit denen Diese Datei mit dem Code wird gestartet, wenn der Export in das erstellte Format gestartet wird. Andererseits werden diese Parameter in der Form aufgerufen, die das LyX-Programm kennt, und wenn Sie diese Datei daher mit dem Code aus der in LyX geöffneten Datei aufrufen, bevor LyX geöffnet wird Datei mit dem Code des entsprechenden Programms mit Parametern, einigen und Von denen sie aus Teilen des vollständigen Pfads zur exportierten Datei und aus anderen Teilen des vollständigen Pfads zu einigen wichtigen Ordnern des Systems gebildet werden, ersetzt sie diese in dieser Form genannten Parameter sozusagen durch beinahe reale Werte, die für die Verwendung im Befehl nahezu geeignet sind Linie. Warum "fast" wird später klar. Das ist alles, Sie müssen nichts anderes in der lyxrc.defaults- Datei tun: Fügen Sie dort weder neue \ editor_alternatives oder \ viewer_alternatives hinzu , noch ähnliches ... Nachdem Sie die lyxrc.defaults- Datei auf diese Weise gespeichert und neu gestartet haben , haben Sie sie geändert Bei LyX-Programmen unter Datei> Exportieren nach wird eine neue Schaltfläche angezeigt:



Bevor Sie darauf klicken, klicken Sie auf " Ansicht"> "Nachrichten anzeigen" (wenn ich LyX aus einer von einer anderen Quelle heruntergeladenen ausführbaren Datei installiert habe, wurde diese Schaltfläche " Nachrichten anzeigen" genannt , da für diese Kopie des Programms eine andere Lokalisierungsdatei " .mo ) Normalerweise wird am unteren Rand des LyX-Programmfensters ein Bereich mit dem Namen Progress / Debug Messages angezeigt. Nun können Sie auf den von uns erstellten Button klicken. Gleichzeitig flackern im Bereich Meldungen zum Fortschritt / Debugging Informationen zum Exportvorgang und scrollen nach unten. Nach dem Ende eines solchen Flimmerns suchen wir den Pfad zum temporären Ordner, in dem die Vorfalldateien abgelegt sind, zusätzlich zu der Datei des Typs, den Sie im selben Ordner wie die exportierte .lyx Datei empfangen .lyx . Alle diese Pfade sind einander mehr oder weniger ähnlich, so dass es keinen Fehler geben kann. Hier ist zum Beispiel eine dieser Möglichkeiten:

 D:\1-kat-LyX\lyx_tmpdir.gq2748\lyx_tmpbuf2 

Gehe in diesen Ordner. Es wird unter anderem die Datei puti.txt geben , die wir als Ausgabe für dieses Exportformat festlegen. Wenn Sie es öffnen, sehen Sie etwa Folgendes:

 D:/1-kat-LyX/lyx_tmpdir.gq2748/lyx_tmpbuf2/newfile2 newfile2.lyx newfile2.tex $$l newfile2.txt D:/1-kat-LyX/lyx_tmpdir.gq2748/lyx_tmpbuf2/ C:/DocLyX/ $$s D:/1-kat-LyX/lyx_tmpdir.gq2748/lyx_tmpbuf2/newfile2/newfile2.lyx 

Eine Datei mit diesem Inhalt wurde beim Export in das von mir erstellte C:\DocLyX\newfile2.lyx . Wie Sie sehen, haben nicht einmal alle Parameter ihre Werte erweitert, was jedoch die Erstellung einiger anderer von mir konzipierter Exportformate nicht beeinträchtigt. Hier wird jedoch ein solches Problem entdeckt, das in der "fast" Kompatibilität mit der oben erwähnten Befehlszeile besteht. Das heißt: Das Trennzeichen in den Pfaden, die auf diese Weise in der .txt Ausgabedatei erhalten werden, ist das Zeichen / anstelle des herkömmlichen, zumindest für Windows. \ . Um den auf diese Weise erhaltenen Pfad verwenden zu können, müssen Sie höchstwahrscheinlich eine Datei erstellen Fügen Sie mit dem Code, der als Engine für das erstellte Exportformat verwendet werden soll, den Abschnitt zum Ersetzen von / durch \ . Wir werden dies in Zukunft berücksichtigen. Vergleicht man die Reihenfolge, in der die Parameter in der Datei lyxrc.defaults aufgelistet sind, mit der ich das Starten erzwinge (und es kann gestartet werden))), die Datei puti.bat, die Datei puti.bat selbst mit dem Inhalt der Datei puti.txt , so kommt man zu dem Schluss, dass andere erstellt werden , , , , , LyX. $$i — , puti.txt .tex , .lyx , , , MiKTeX, — , , . - . $$r — LyX .lyx , .tex , . , puti . . - «» LyX LyX . , .lyx . , lyxrc.defaults , puti . :

 \Format pdf7 pdf "pdflatex v papke" F "pdfview" "" "document,vector,menu=export" 

und

 \converter pdflatex pdf7 "pdflatex-v-papke.bat $$r $$i" "" 

, . puti , , ( .bat ), . , pdflatex-v-papke.bat :

 cd /d %0\.. chcp 1251 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in if exist perehod.bat (goto :vyhod3) else (goto :vhod) :vhod echo %1 > put0.txt echo cd /d %%0\..>> pereim.bat echo SetLocal EnableExtensions EnableDelayedExpansion>> pereim.bat echo Set infile=put0.txt>> pereim.bat echo Set outFile=put.txt>> pereim.bat echo Set find=/>>pereim.bat echo Set replace=\>>pereim.bat echo for /F "UseBackQ delims=" %%%%n in ("%%infile%%") do (>> pereim.bat echo set "LINE=%%%%n">> pereim.bat echo set "LINE=!LINE:%%find%%=%%replace%%!">> pereim.bat echo echo.!LINE!^>^>%%outFile%%>> pereim.bat echo )>> pereim.bat echo exit>> pereim.bat start /b pereim.bat :vhod1 if exist put.txt (goto :vyhod1) else (goto :vhod1) :vyhod1 echo chcp 1251 > perehod.bat echo cd /D^^>>perehod.bat more < put.txt >> perehod.bat echo del %~n2.tex>> perehod.bat echo :vhod2 >> perehod.bat echo lyx -e latex %~n2.lyx>> perehod.bat echo if exist %~n2.tex (goto :vyhod2) else (goto :vhod2) >> perehod.bat echo :vyhod2 >> perehod.bat echo pdflatex %2 >> perehod.bat echo taskkill /f /im pdflatex.exe >> perehod.bat echo exit >> perehod.bat echo :vhod3 if exist perehod.bat (goto :vyhod3) else (goto :vhod3) :vyhod3 start perehod.bat pdflatex %1 rem            exit.bat exit 

? , , LyX, lyxrc.defaults , , « , LyX » « , .tex», . , , - « » . , pdflatex-v-papke.bat , , , windows 1251 . , LyX , () , , , , .lyx

 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in 

, .

 if exist perehod.bat (goto :vyhod3) else (goto :vhod) 

:vyhod3 :vhod , , , . , pdflatex-v-papke.bat , ( ) put0.txt , pereim.bat , put.txt , perehod.bat , , , , .lyx , , . perehod.bat , 3 , . - if . , pdflatex-v-papke.bat , , pdflatex-v-papke.bat , 4 — put0.txt , pereim.bat , put.txt , perehod.bat . 4 , , . . . . , LyX pdflatex-v-papke.bat , « , LyX », put0.txt , . ( , , / \ ). pdflatex-v-papke.bat pereim.bat , , put0.txt , / \ put1.txt . pdflatex-v-papke.bat pereim.bat . , , , /b . ( , ) pereim.bat . - , put1.txt , pdflatex-v-papke.bat , put1.txt . pdflatex-v-papke.bat . , pereim.bat :

 :vhod1 if exist put.txt (goto :vyhod1) else (goto :vhod1) :vyhod1 

put.txt , . , :vhod1 put.txt , , . , pdflatex-v-papke.bat . perehod.bat , (

 :vhod3 if exist perehod.bat (goto :vyhod3) else (goto :vhod3) :vyhod3 

pdflatex-v-papke.bat ) perehod.bat . perehod.bat , , put.txt ,

 more < put.txt 

, , perehod.bat ( C:\DocLyX\newfile2.lyx ):

 chcp 1251 cd /D^ C:\DocLyX\ del newfile2.tex :vhod2 lyx -e latex newfile2.lyx if exist newfile2.tex (goto :vyhod2) else (goto :vhod2) :vyhod2 pdflatex newfile2.tex taskkill /f /im pdflatex.exe exit 

? , , , perehod.bat , windows 1251 . 2 , . ^ . , perehod.bat .lyx . /D , LyX >...> , LyX , , . .lyx , .tex , , , .lyx .lyx , . .lyx , , .tex pdflatex-v-papke.bat , .lyx , .tex . , () pdflatex-v-papke.bat , .lyx , .tex . .tex , .lyx , .lyx , .tex . , . pdflatex' , .lyx , .tex , pdflatex , , ( ) perehod.bat . pdflatex-v-papke.bat . , perehod.bat , , . exit.bat ( - )

 date /t exit 

? , , puti.bat , , , puti1.bat , , , , , , LyX , :



, . , , puti1.bat - . . , - . . - . . : , , . . , , , , , , . , pdflatex-v-papke.bat . . Usw. TeXworks :



LyX , .lyx .tex , .tex xelatex.exe -undump=xelatex . , - .lyx , . , . > ... xelatex v papke , xelatex-v-papke.bat :

 cd /d %0\.. chcp 1251 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in if exist perehod.bat (goto :vyhod3) else (goto :vhod) :vhod echo %1 > put0.txt echo cd /d %%0\..>> pereim.bat echo SetLocal EnableExtensions EnableDelayedExpansion>> pereim.bat echo Set infile=put0.txt>> pereim.bat echo Set outFile=put.txt>> pereim.bat echo Set find=/>>pereim.bat echo Set replace=\>>pereim.bat echo for /F "UseBackQ delims=" %%%%n in ("%%infile%%") do (>> pereim.bat echo set "LINE=%%%%n">> pereim.bat echo set "LINE=!LINE:%%find%%=%%replace%%!">> pereim.bat echo echo.!LINE!^>^>%%outFile%%>> pereim.bat echo )>> pereim.bat echo exit>> pereim.bat start /b pereim.bat :vhod1 if exist put.tex (goto :vyhod1) else (goto :vhod1) :vyhod1 echo chcp 1251 > perehod.bat echo cd /D^^>>perehod.bat more < put.txt >> perehod.bat echo del %~n2.tex>> perehod.bat echo :vhod2 >> perehod.bat echo lyx -e latex %~n2.lyx>> perehod.bat echo if exist %~n2.tex (goto :vyhod2) else (goto :vhod2) >> perehod.bat echo :vyhod2 >> perehod.bat echo miktex-xetex.exe -undump=xelatex %2 >> perehod.bat echo taskkill /f /im pdflatex.exe >> perehod.bat echo exit >> perehod.bat :vhod3 if exist perehod.bat (goto :vyhod3) else (goto :vhod3) :vyhod3 start perehod.bat pdflatex %1 rem            exit.bat exit 

, , pdflatex-v-papke.bat . - miktex-xetex.exe -undump=xelatex %2 , .tex , . lyxrc.defaults , xelatex-v-papke.bat $$r $$i , lyxrc.defaults . , , .lyx , , .tex utf8 \usepackage[utf8]{inputenc} , . (, : inputenc >> LaTeX , ) >> ( .mo ) (XeTeX) (utf8) . , , / Asymptote, (pdflatex+asymptote+pdflatex pdflatex). , , Asymptote, , TEX, , .lyx . , .lyx - Asymptote, .pdf , Asymptote, . .lyx Asymptote TeX (Ctrl+L), - -, .lyx — - , . - ovols. - TeX, TeX , ovols . ovols' \begin{asy} , 2 \end{asy} . .js . , . , , asy . , , :



- , , , pdflatex .tex , asy, , .pdf , , . , , asymptote >...> LaTeX . lyxrc.defaults $$r $$i . . , , .bat . pdflatex+asymptote+pdflatex-v-lyx.bat . , , . :

 cd /d %0\.. if exist perehod.bat (goto :vyhod6) else (goto :vhod) :vhod echo %1 > put0.txt echo cd /d %%0\..> pereim.bat echo SetLocal EnableExtensions EnableDelayedExpansion>> pereim.bat echo Set infile=put0.txt>> pereim.bat echo Set outFile=put.txt>> pereim.bat echo Set find=/>>pereim.bat echo Set replace=\>>pereim.bat echo for /F "UseBackQ delims=" %%%%n in ("%%infile%%") do (>> pereim.bat echo set "LINE=%%%%n">> pereim.bat echo set "LINE=!LINE:%%find%%=%%replace%%!">> pereim.bat echo echo.!LINE!^>^>%%outFile%%>> pereim.bat echo )>> pereim.bat echo exit>> pereim.bat start /b pereim.bat :vhod1 if exist put.txt (goto :vyhod1) else (goto :vhod1) :vyhod1 echo echo LYXCMD:sohranenie:buffer-write^> \\.\pipe\lyxpipe.in >perehod.bat echo cd /D ^^>>perehod.bat more < put.txt >> perehod.bat echo :vhod1>>perehod.bat echo lyx -e latex %~n2.lyx>> perehod.bat echo if exist %~n2.tex (goto :vyhod1) else (goto :vhod1)>>perehod.bat echo :vyhod1>>perehod.bat echo echo cd /d %%%%0\..^> zamena.bat>>perehod.bat echo echo chcp 65001^>^> zamena.bat>>perehod.bat echo echo SetLocal EnableExtensions EnableDelayedExpansion^>^> zamena.bat>>perehod.bat echo echo Set infile=%~n2.tex^>^> zamena.bat>>perehod.bat echo echo Set outFile=zameneno.tex^>^> zamena.bat>>perehod.bat echo echo Set find=ovols^>^>zamena.bat>>perehod.bat echo echo Set replace=^>^>zamena.bat>>perehod.bat echo echo for /F "UseBackQ delims=" %%%%%%%%n in ("%%%%infile%%%%") do (^>^> zamena.bat>>perehod.bat echo echo set "LINE=%%%%%%%%n"^>^> zamena.bat>>perehod.bat echo echo set "LINE=!LINE:%%%%find%%%%=%%%%replace%%%%!"^>^> zamena.bat>>perehod.bat echo echo echo.!LINE!^^^>^^^>%%%%outFile%%%%^>^> zamena.bat>>perehod.bat echo echo )^>^> zamena.bat>>perehod.bat echo echo exit^>^> zamena.bat>>perehod.bat echo :vhod2>>perehod.bat echo if exist zamena.bat (goto :vyhod2) else (goto :vhod2)>>perehod.bat echo :vyhod2>>perehod.bat echo start zamena.bat>>perehod.bat echo :vhod3>>perehod.bat echo if exist zameneno.tex (goto :vyhod3) else (goto :vhod3)>>perehod.bat echo :vyhod3>>perehod.bat echo del %~n2.tex>>perehod.bat echo rename zameneno.tex %~n2.tex>>perehod.bat echo del %~n2.aux>>perehod.bat echo if exist %~n2-*.asy (goto :vhod4) else (goto :vhod5)>>perehod.bat echo :vhod4>>perehod.bat echo del %~n2-*.*>>perehod.bat echo :vhod5>>perehod.bat echo pdflatex %2 >> perehod.bat echo for %%%%f in (%~n2-*.asy) do asy %%%%f >> perehod.bat echo pdflatex %2 >> perehod.bat echo exit >> perehod.bat :vhod6 if exist perehod.bat (goto :vyhod6) else (goto :vhod6) :vyhod6 start perehod.bat 

, . zamena.bat ovols , . . -. ,

 :vhod « - » If exist «- »... :vyhod «   - » 

, , «- » , .

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


All Articles