تم نسخها من
مدونتي لإنشاء مصدر معلومات باللغة الروسية حول هذا الموضوع.
هذه المقالة هي استمرار للمقالات التالية في دورة واحدة:
المادة 1المادة 2المادة 3LyX: \\. \ Pipe \ lyxpipe
بشكل عام ، هذه الوظيفة ضرورية لتنظيم تفاعل LyX مع البرامج الأخرى. على وجه الخصوص ، اتضح أنه يمكنك إدخال أوامر من خلال سطر الأوامر في نافذة برنامج LyX مفتوحة! أولاً وقبل كل شيء ، لكي يعمل هذا ، في
الأدوات> الإعدادات> المسارات ، في مربع نص
قناة خادم LyX ، أدخل ما يلي:
\\.\pipe\lyxpipe
، ولا
.in
ولا
.out
تنسبان إلى الكسارة إلى النهاية. بطبيعة الحال ، انقر فوق
. علاوة على ذلك ، يجب تشغيل نافذة برنامج LyX ، حيث كانت هناك حاجة لإدخال الأوامر من نافذة موجه الأوامر ، قبل سطر الأوامر هذا ، والتي سيتم إدخال الأوامر منها في نافذة برنامج LyX هذه ، وإلا فلن يعمل شيء. فيما يلي أمثلة على كيفية كتابة الأوامر في سطر الأوامر لإنجاز ذلك:
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
في رأيي ، فإن الفريق الأخير يستحق الاهتمام. يقوم هذا الأمر بإدراج صورة
zdes kujut hip-hop.png )) ، الموجودة في المجلد المحدد في
أدوات> إعدادات ...> المسارات في مربع نص
دليل المستخدم في نافذة برنامج LyX مفتوحة (قبل فتح سطر الأوامر).
ليكس: إلى الأمام وعكس البحث
كيف يتم تكوين هذا هو موضح
هنا . سأخبرك فقط كيف فعلت ذلك باللغة الروسية. هكذا. نحن نستخدم نسخة غير مرتبة من SumatraPDF. لذلك قمنا بتنزيله وتثبيته. بعد ذلك ، في "ابدأ> البرامج الافتراضية> تعيين أنواع الملفات أو بروتوكولات البرامج الفردية" ، تأكد من فتح ملفات
.pdf
باستخدام SumatraPDF. ثم ننتقل إلى المجلد
C:\Users\\AppData\Roaming\SumatraPDF
. من هناك ، باتباع النصائح المقدمة على الرابط المتوفر ، انسخ ملف
SumatraPDF-settings.txt إلى مكان ما.
بعد ذلك ، كان من الضروري إضافة المسار إلى المجلد الذي يحتوي على ملف SumatraPDF بطريقة ما يفتح البرنامج (لدي هذا المجلد
C:\Program Files\SumatraPDF
) في PATH. لسبب ما ، أضفت هذا إلى
متغيرات بيئة المستخدم لـ IVAN . علاوة على ذلك ، يجب أيضًا تضمين المسار إلى المجلد الذي يحتوي على الملف الذي يقوم بتشغيل برنامج LyX (بالنسبة لي هو
C:\Program Files\LyX 2.0\bin
) في PATH. بعد ذلك ، انتقل إلى المجلد
C:\Program Files\SumatraPDF
، افتح الملف
SumatraPDF.exe . في النافذة التي ظهرت في برنامج SumatraPDF ، انقر بزر الماوس الأيسر على الأشرطة الأفقية الثلاثة في الزاوية العلوية اليسرى (أو ربما الزاوية))) ، ثم ،
الإعدادات> الإعدادات المتقدمة . في الوقت نفسه ، سيتم فتح ملف
SumatraPDF-settings.txt نفسه في المفكرة ، التي وضعناها سابقًا في مكان معزول ، لذا يمكننا الآن أن نفعل ما نريد مع هذا الملف. وسنفعل ما يلي معه. فيما يلي قائمة ببعض المتغيرات بالإضافة إلى قيمها:
ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true
لذلك هنا. في ملف
SumatraPDF-settings.txt ، نتحقق من وجود هذه المتغيرات (الكلمات الموجودة على يسار علامة المساواة) ، إذا كانت هناك ، فإننا نتحقق من تزامن القيمة (الكلمات إلى يمين علامة المساواة) من المتغيرات الموجودة في هذا الملف من خلال القيم المذكورة أعلاه نفس المتغيرات من هذه القائمة. إذا كانت قيمة أي متغير في القائمة أعلاه مختلفة عن قيمة المتغير المقابل في الملف ، فسيكون من الضروري إعادة قيمة هذا المتغير إلى نفس القيمة من القائمة أعلاه. إذا لم يكن أي متغير من القائمة إلى جانب قيمته في الملف ، فسنحتاج فقط إلى نسخ المتغير مع قيمته إلى الملف. حسنًا ، شخصيًا ، لم أغير أي شيء في هذا الملف: كل المتغيرات المدرجة في القائمة موجودة بالفعل في الملف وتم تعيين كل هذه المتغيرات في الملف على القيم المقابلة المدرجة في القائمة مباشرة عند تثبيت SumatraPDF. أغلق ، احفظ التغييرات. هذا كل شيء ، سيتم تكوين SumatraPDF بعد ذلك. ننتقل إلى تكوين LyX. لذا ، افتح برنامج LyX إذا لم يتم فتحه أو تم إغلاقه لسبب ما. انتقل إلى
الأدوات> الإعدادات ...> المسارات . في حقل نص
قناة خادم LyX أدخل
\\.\pipe\lyxpipe
بعد ذلك ، انتقل إلى
الأدوات> الإعدادات ...> معالجة الملفات> المحولات . هناك ، في المنطقة تحت عبارة "
تعريفات المحولات" ، حدد
LaTeX (pdflatex) -> PDF (pdflatex) باستخدام زر الماوس الأيسر. بعد ذلك ، نقوم بحذف محتوياته من حقل نص
المحول وإدراج (جيدًا ، أو إدخال باليد) ما يلي:
pdflatex -interaction=nonstopmode -synctex=1 $$i
ومن مربع النص
بالإضافة إلى ذلك ، احذف محتوياته. انقر فوق الزر
تغيير . ثم
احفظ . ارجع إلى
الأدوات> الإعدادات ...> معالجة الملفات> المحولات . تحقق مما إذا تم حفظ الإعدادات. بالنسبة لي ، عندما أذهب إلى هناك الآن ، عند البحث في كلا الاتجاهين ، أقوم بإدخاله ، بعد النقر فوق زر الماوس الأيسر
LaTeX (pdflatex) -> PDF (pdflatex) ، ثم يبدو مكان الإعدادات كما يلي:

بعد ذلك ، انتقل إلى
الأدوات> الإعدادات ..> الإخراج> عام . هناك ، في مربع نص أمر
PDF ، أدخل الأمر التالي:
SumatraPDF -forward-search "$$t" $$n "$$o"
، انقر فوق "
تطبيق" . وبالتالي ، سيبدو هذا المكان كما يلي:

اذهب إلى
الأدوات> الإعدادات ..> معالجة الملف> تنسيقات الملفات . هناك ، سنقوم بتعيين القائمة المنسدلة
تنسيق عن طريق اختيار قيمة
PDF (pdflatex) مع زر الماوس الأيسر ، والقيمة
المعرفة من قبل المستخدم في القائمة المنسدلة
عارض ، وأدخل في مربع النص على يمين هذه القائمة
SumatraPDF
حاليا هناك:

وأخيرًا ، في المجلد
C:\Program Files\LyX 2.0\bin
بإنشاء ملف باسم
lyxeditor وامتداد
.cmd
(في الواقع ، اتضح ، هذا هو نفس ملف الدُفعات) بالمحتويات التالية:
@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
أخذت رمز ملف الدُفعات هذا
من هنا عندما قمت بالنقر فوق الارتباط الموجود بالصفحة باللغة الإنجليزية ، والذي أتحدث عن محتوياته هنا (تم إعطاء الرابط الخاص بهذه الصفحة من قبلي هنا ، أعلاه فقط). بصراحة ، حول إنشاء ملف دفعي على صفحة باللغة الإنجليزية ، قيل في وقت أبكر بكثير مما حدث لي ، لكن ما الفرق؟ بالمناسبة ، دفعني رمز ملف الدُفعات هذا إلى التفكير في كيفية إدخال الأوامر في سطر الأوامر بحيث يتم إدخالها من هذا السطر في نافذة برنامج LyX المفتوحة ، والتي كانت بمثابة أساس لكتابة فقرة
LyX: \\. \ Pipe \ lyxpipe من هذه المقالة. قبل ذلك ، حاولت إدراج أوامر من سطر الأوامر في نافذة برنامج LyX ، مع أخذ هذه الأوامر من الدليل ، على سبيل المثال ، حاولت تنفيذ الأمر التالي من سطر الأوامر:
echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in
ولكن لا شيء يعمل بها بالنسبة لي. حسنًا ، والآن ، نعود إلى البحث المتعلق بـ LyX. كيفية استخدامها؟ لكن بسيط جدا الآن ، إذا أجرينا معاينة لملف
.lyx
المفتوح ، فعند النقر فوق
.lyx
> بحث أمامي لفترة قصيرة في نافذة
.lyx
المقابلة ، يتم تمييز العديد من الأسطر التي تحتوي على نفس الكلمة باللون البنفسجي (على الأقل بالنسبة لي) ، بجوار الكلمة المقابلة في نافذة LyX في المؤشر الوامض حاليًا. عندما تنقر نقرًا مزدوجًا في نافذة SumatraPDF ، يتم نقل التركيز إلى نافذة LyX ويبدأ المؤشر في الوميض هناك ، بينما عندما تنقر في أماكن مختلفة من نافذة SumatraPDF ، يبدأ المؤشر في الوميض في أماكن مختلفة من نافذة LyX. لا أستطيع أن أقول أي شيء أكثر تحديدًا حول علاقة موضع المؤشر في LyX بالخطوط المميزة في SumatraPDF ، وكذلك علاقة موضع النقر المزدوج في SumatraPDF بالمكان في نافذة LyX حيث يبدأ المؤشر في الوامض. لذا ، فإن المهمة معقدة للغاية ، لذلك اسمحوا لي أن أقدم لكم ترجمة لتلك الصفحة ، التي أتحدث عنها هنا بواسطة متصفح جوجل: لقد فاتني شيء ما فجأة. هكذا.
من MyNotes
تم التحديث لأحدث إصدار 2.3.32019
يُنصح مستخدمو MiKTeX بالترقية إلى أحدث إصدار قبل تثبيت LyX 2.3.3+ لنظام Windows. إذا كان لديك تثبيت دائم لـ
SumatraPDF ، فأنت تحتاج فقط إلى تثبيت
البحث العكسي مرة واحدة ، مثل استخدام علامات التبويب ، ليس علينا قضاء وقت في تحديد الجلسة التي يجب معالجتها. لاحظ أن SumatraPDF يمكن أن يكون له نوافذ وجلسات متعددة ، ولكن هذا خارج عن نطاق هذه الإجابة. InverseSearchCmdLine = يتم تخزينه بشكل دائم في SumatraPDF-settings.txt. لا يجب تخصيصها بواسطة المحرر ما لم تكن بحاجة إلى إعادة التثبيت أو استبدال SumatraPDF-settings.txt (قم بعمل نسخة احتياطية!)
الإعدادات في SumatraPDF
الفرق الملحوظ هو أننا نعود إلى ملف
Okular cmd الأكثر ثباتًا (يستخدم
Okular تمامًا نفس نظام الاستدعاء مثل
SumatraPDF ) ، والذي يتجنب المكالمات غير الضرورية. يجب تثبيت
SumatraPDF بطريقة تعمل من أي مكالمة نظام ، مثل
SumatraPDF ، مما يعني أنه يجب أن يكون "في الطريق" (في حالة استخدام الإصدار المحمول ، يجب إضافة
SumatraPDF.exe مؤقتًا إلى مسار المستخدم حتى استدعاء Lyx الأول) قم بتشغيل
SumatraPDF وانتقل إلى
الإعدادات> خيارات متقدمة . سيؤدي هذا إلى فتح ملف
SumatraPDF-settings.txt في
المفكرة ، والآن بعد التحقق من الإدخالات ، تحقق أو غير ما يلي.
ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true
تذكر أن
%l
هو حرف صغير L ، وتأكد من الضغط على
CTRL +
S (حفظ ملف). إذا كنت بحاجة إلى إضافة
c: ... LyX \ bin \
إلى
InverseSearchCmdLine ، فأنت قد قمت بتثبيت LyX بشكل غير صحيح. يوجد ملف
.cmd
في مجلد bin ، والذي يجب أن يكون في مسار النظام.
الإعدادات في LyX
اتبع تعليمات
SyncTex على
wiki.lyx.org/LyX/SyncTex .
"(ملاحظة: البحث العكسي عن ملفات .lyx ذات مسافات أو أحرف خاصة أخرى في اسم الملف لا يعمل دائمًا مع هذا النهج في بعض أنظمة Windows)"
ملاحظاتي بسبب هذه الطريقة الفريدة للاتصال بالقناة [1] المستخدمة من قبل LyX على Windows ، من الضروري في بعض الأحيان ألا يكون ملف العمل ومساره مساحات خاصة ، لذلك إذا لم ينجح هذا ، فسوف تحتاج إلى إثارة أي مشاكل مع دعم LyX . إذا كانت توفر طريقة أسهل للاتصال
بجلسة LyXserver نشطة باستخدام المسار البعيد بعلامات اقتباس ، فاترك تعليقًا أدناه. المشكلة هي أن
LyXserver يتوقع قيمتين متتاليتين:
1) قدم
SyncTeX اسم ملف
.tex 2) متبوعًا برقم سطر ، لذلك عندما يحتوي اسم الملف على مسافات ، قد يكون الجزء الأول غير صالح كاسم الملف والجزء الثاني ليس رقمًا بشكل واضح ، وقد يعمل هذا إذا تم تحليل أسماء الملفات مثل تنسيق 8.3 الأقدم ، ولكن معظم ملفات Windows الحديثة تستخدم تنسيق LFN. يحاول ملف
lyxeditor.cmd التغلب على هذه المشكلات. اختلافات ملحوظة مقارنة بأي طريقة أخرى لا تضيف خيارات / توجيهات
البحث غير المثالية والمتقادمة أو خيارات
البحث العكسي (ليست ضرورية وتبطئ طلب
البحث الصحيح إلى
الأمام .)
أدوات → إعدادات → المسار
- أضف الدليل حيث يوجد SumatraPDF.exe إلى سطر بادئة PATH. (هذا ليس ضروريًا للتثبيت الدائم ، ولكنه قد يساعد في الاستخدام المحمول).
- قم بتعيين السطر LyXServer pipe \\. \ Pipe \ lyxpipe (لا تستخدم زر الاستعراض).
الأدوات ← الإعدادات ← معالجة الملفات ← المحولات
- اختر تنسيق LaTeX (pdflatex) -> PDF (pdflatex)
- قم بتعيين محول الإدخال على pdflatex -interaction = nonstopmode -synctex = 1 $$ i

- انقر فوق "تغيير" (وإلا ، سيتم إلغاء التغيير).
- يتطلب هذا التغيير من MikTeX أو TeX Live لإنشاء ملف FILE.synctex.gz.
الخروج والعودة للتحقق من أنه قد تم تعديله ، استغرق الأمر بعض التغييرات لي لإعادة تعيينه وتثبيته من جلسة إلى أخرى.
أدوات → إعدادات → الإخراج → عام.
في قسم البحث المباشر ، اضبط أمر إدخال PDF على SumatraPDF - للأمام ، ابحث عن "$$ t" $$ n "$$ o"
الأدوات ← الإعدادات ← معالجة الملفات ← تنسيقات الملفات
- اختر تنسيق PDF (pdflatex)
- قم بتعيين حقل عرض إلى مخصص باستخدام أمر SumatraPDF
- قد تحتاج إلى إغلاق جميع نوافذ SumatraPDF واستخدام Document → View.
- يمكنك ضبط أمر البحث العكسي مباشرةً في SumatraPDF من خلال الانتقال إلى "الإعدادات → خيارات متقدمة" كما هو موضح أعلاه وتعيين البحث العكسي. في هذه الحالة ، يمكنك تقليل الأمر عرض إلى
SumatraPDF

يجب أن تأتي أي مشكلة في مكالمة "البحث العكسي" هذه بدعم Lyx ، لأن هذه هي الطريقة الموصى بها ، وليست طريقة حلتي!
[1] من حيث المبدأ ، يؤدي استخدام الأنابيب المحددة في الذاكرة إلى تسريع وتقليل الحاجة إلى استدعاء تطبيق من خلال خيارات shell ، ومع ذلك ، مثل أساليب DDE أو D-bus ، فهو غير مألوف لمعظم المستخدمين وقد يكون من الصعب حل المشكلات.
المذكرة. تأكد من أن الملف lyx مفتوح ، وأن زر Enable Forward / Reverse نشط ، ثم قم بتجميعه ، ثم انقر في النهاية على زر الماوس الأيمن وحدد حوالي 6 خيارات لأسفل
الأماكن ليست 1 في 1 (قد تبدو الصفحات "متوقفة"). يمكن أن يساعد ذلك في مشاهدة بحث مباشر عن طريق تعيين SumatraPDF-settings.txt
HighlightPermanent = صحيح
للعودة إلى الصفحة المقابلة ، ما عليك سوى النقر نقرًا مزدوجًا في أي مكان في SumatraPDF للاتصال بـ lyxeditor.cmd.
كما ترون ، لا تزال هناك بعض الفروق الدقيقة التي لم يذكرها لي. ومع ذلك ، عندما قمت بإعداد كل شيء ، لم أكن بحاجة إلى هذه الفروق الدقيقة.
ليكس. استخدام ملفات .bat
على الرغم من الافتقار للوهلة الأولى على ما يبدو إلى القدرة على إضافة تنسيقات تصدير جديدة إلى LyX (بقدر ما أفهم ، على سبيل المثال ، في TeXworks ، فإن التناظرية لمثل هذه الإمكانية للإضافة هي القدرة على إنشاء أداة تخطيط جديدة) ، هذا البرنامج لديه مثل هذه الفرصة. بادئ ذي بدء ، دعونا نحاول إنشاء تنسيق التصدير التالي ، والذي يبدو للوهلة الأولى متسامحًا. يتم تعريف متغيرات PATH التالية في برنامج LyX:
$$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'
هذا مقتطف من جزء واحد من دليل برنامج LyX. لن نترجم تفسيرات المعاني ومعاني هذه المتغيرات ، ولكن بدلاً من ذلك نحاول إنشاء تنسيق تصدير جديد (مع ظهور زر جديد في
ملف> تصدير إلى ، بما في ذلك بالنقر فوق يمكننا تصديره إلى هذا التنسيق لملف
.lyx
، من النافذة التي تم إجراء هذه النقرة عليها) ، أثناء التصدير إلى الدليل المؤقت (الذي ، على سبيل المثال ، عند التصدير إلى
PDF {pdflatex} ، يتم إنشاء الملفات ، بالإضافة إلى
.pdf
تم إنشاؤه) ، سيتم إنشاء ملف
puti.txt () جميع) قيم هذه المتغيرات . للقيام بذلك ، في المجلد الذي تمت إضافته إلى PATH ، قم بإنشاء ملف
puti.bat بالمحتويات التالية:
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
بعد ذلك ، في الملف
C:\Users\\AppData\Roaming\LyX2.0\lyxrc.defaults
نحن حيث الخطوط
.................................... \Format pdf4 pdf "PDF (XeTeX)" X "pdfview" "" "document,vector,menu=export" \Format pdf5 pdf "PDF (LuaTeX)" u "pdfview" "" "document,vector,menu=export"
أضف مثل هذا الخط
\Format pdf6 txt "puti" F "pdfview" "" "document,vector,menu=export"
هنا ، لا
تحدد كلمة
puti الملف الذي يحتوي على الكود ، والذي هو محرك تنسيق التصدير الذي تم إنشاؤه ، ولكن تحت أي اسم سيتم عرض زر الاتصال بتنسيق التصدير هذا إلى
ملف> تصدير إليه ، وأين
.................................... \converter pdflatex pdf2 "pdflatex $$i" "latex=pdflatex" \converter xetex pdf4 "xelatex $$i" "latex=xelatex" \converter luatex pdf5 "lualatex" "latex=lualatex"
بعد السطر الذي يحدد تنسيق pdf5 ، نضيف السطر التالي:
\converter pdflatex pdf6 "puti.bat $$b $$f $$i $$l $$o $$p $$r $$s" ""
وهنا تعرّف الكلمة
puti ملفًا
برمزًا ، وهو محرك تنسيق التصدير الذي تم إنشاؤه. وفي مكان ملف
lyxrc.defaults ، يجب أن تحدد بالفعل امتداد هذا الملف بالكود (في هذه الحالة
.bat
) ، وإلا فلن يعمل! .. وبعد ذلك ، كما قد تخمن ، تتم الإشارة إلى المعلمات ، من ناحية ، والتي يتم تشغيل هذا الملف الذي يحتوي على الكود عند بدء التصدير إلى التنسيق الذي تم إنشاؤه ، ومن ناحية أخرى ، يتم استدعاء هذه المعلمات بالشكل الذي يعرفه برنامج LyX ، وبالتالي عند استدعاء هذا الملف بالشفرة من الملف المفتوح في LyX ، LyX قبل الفتح ملف مع رمز البرنامج المقابل مع المعلمات ، بعض و حيث يتم تكوينهم من أجزاء من المسار الكامل إلى الملف المصدر ، ومن آخرين من المسارات الكاملة إلى بعض المجلدات المهمة للنظام ، فإنه يستبدل هذه المعلمات ، المسمى في هذا النموذج بقيم حقيقية تقريبًا ، إذا جاز التعبير ، وهي مناسبة تقريبًا للاستخدام في الأمر الخط. لماذا "تقريبا" سوف تصبح واضحة في وقت لاحق. هذا كل شيء ، لست بحاجة إلى القيام بأي شيء آخر في ملف
lyxrc.defaults : إما أن تضيف ، أو هناك ، بعض
\ editor_alternatives الجديد أو
\ viewer_alternatives ، أو شيء من هذا القبيل ... بعد ذلك ، بعد حفظ ملف
lyxrc.defaults الذي تم تغييره بهذه الطريقة وإعادة التشغيل برامج LyX في
ملف> تصدير إلى ، يظهر زر جديد:

قبل النقر فوقه ، انقر فوق
عرض> عرض الرسائل (عندما استخدمت LyX مثبتًا من ملف قابل للتنفيذ تم تنزيله من مصدر آخر ، كان هذا الزر يسمى
عرض الرسائل ، لأن تلك النسخة من البرنامج استخدمت ملف تعريب مختلف
.mo
) ، بينما عادةً ما تظهر في أسفل نافذة برنامج LyX منطقة تسمى
رسائل التقدم / التصحيح . يمكنك الآن النقر فوق الزر الذي أنشأناه. في نفس الوقت ، في منطقة
رسائل التقدم / تصحيح الأخطاء ، تبدأ المعلومات حول عملية التصدير في الوميض ، بالتمرير لأسفل. بعد نهاية هذا وميض ، نبحث عن المسار إلى المجلد المؤقت الذي يتم فيه وضع الملفات التي تظهر على طول الطريق ، بالإضافة إلى ملف من النوع الذي ترغب في تلقيه في نفس المجلد مع ملف
.lyx
تم تصديره. جميع هذه المسارات تشبه إلى حد ما بعضها البعض ، لذلك لا يمكن أن يكون هناك خطأ. على سبيل المثال ، إليك إحدى الطرق التالية:
D:\1-kat-LyX\lyx_tmpdir.gq2748\lyx_tmpbuf2
انتقل إلى هذا المجلد. سيكون هناك ، من بين أمور أخرى ، ملف
puti.txt ، الذي حددناه كإخراج لتنسيق التصدير هذا. عند فتحه ، سنرى شيئًا مما يلي:
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
تم تشكيل ملف بهذا المحتوى أثناء التصدير إلى تنسيق تصدير الملف الذي قمت بإنشائه
C:\DocLyX\newfile2.lyx
. كما ترون ، لم يتم توسيع جميع المعلمات حتى في قيمها ، والتي لا تتداخل مع إنشاء بعض تنسيقات التصدير الأخرى التي تصوّرتها. ومع ذلك ، يتم اكتشاف هذه المشكلة هنا ، والتي تتكون في "شبه" التوافق مع سطر الأوامر ، والتي ذكرتها أعلاه. وهي: الفاصل في المسارات التي تم الحصول عليها في ملف الإخراج
.txt
هو
/
حرف بدلاً من الحرف التقليدي ، على الأقل بالنسبة لنظام Windows ،
\
، حتى تتمكن من استخدام المسار الذي تم الحصول عليه بهذه الطريقة ، من المحتمل أنك بحاجة إلى ملف مع الكود المفترض استخدامه كمحرك لتنسيق التصدير الذي تم إنشاؤه ، قم بتضمين قسم الاستبدال
/
بـ
\
. سنضع هذا في الاعتبار في المستقبل. بمقارنة الترتيب الذي يتم به سرد المعلمات في ملف
lyxrc.defaults الذي
أجبره على بدء (ويمكن تشغيله))) ملف
puti.bat ، ملف
puti.bat نفسه بمحتويات ملف
puti.txt ، أستنتج أنه لإنشاء ملفات أخرى , , , , , 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"
و
\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 (موجود في بعض المجلدات المضافة إلى PATH) مع محتويات غريبة حتى date /t exit
? , ,
puti.bat , , ,
puti1.bat , , , , , , LyX , :

, . , ,
puti1.batكان الفريق قبل الأخير هو الفريق الذي أطلق بعض الملفات الدفعية. توقف هذا الخطأ عن الظهور. بقدر ما أتذكر ، أن ملف دفعي عشوائي ولدت بعض الملفات مع عملها. لم أكن بحاجة إليها. ثم قررت أن أحاول وضع أمر لا ينتج أي ملفات في هذا الملف الدفعي. حاولت التاريخ. اتضح: توقف الخطأ الظاهر في الصورة. وتركها. على الرغم من قتلي على الأقل ، إلا أنني لا أفهم لماذا يساعد هذا ، ولكن سيكون من المثير للاهتمام معرفة السبب في ذلك. حسنا ، ثم يأتي الخروج من الملف الدفعي pdflatex-v-papke.bat . هذا كل شيء. هكذا.
لدى 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, ,
.lyx
.lyx
.pdf
.lyx
(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 . كما هو الحال دائمًا ، يجب أن يكون هذا الملف في المجلد المُضاف إلى PATH. إليك رمز ملف الدُفعات هذا: 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 لاستبدال البويضات بأي شيء ، أي لإزالة هذه الكلمة abracadabra. كالعادة ، مقاطع من رمز العرض :vhod « - » If exist «- »... :vyhod « - »
تعمل ، إذا جاز التعبير ، بتعليق المزيد من الإجراءات لملف الدُفعات المقابل حتى ظهور "ملف كذا وكذا" في مجلد العمل بملف الدُفعات هذا ، على الرغم من أن ملف الدُفعات يستمر في العمل.