تجميع ملف Tex Xelatex مع LatexMK
سؤال
كيف يمكن للمرء تجميع أ XeLaTeX
وثيقة تكس باستخدام latexmk
على Mac OS X؟
في الوقت الحاضر أنا أركض latexmk job.tex
والحصول على خطأ:
!
********************************************
* XeTeX is required to compile this document.
* Sorry!
********************************************.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
? ^D
! Emergency stop.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
السطر الأول من ملف Tex الخاص بي هو (كما هو مقترح بواسطة هذا المشنور):
% !TEX TS-program = xelatexmk
وقد جربت الآخرين (على سبيل المثال البرنامج = xelatex) ، ولكن دون جدوى.
latexmk
تصف أوامرها على النحو التالي:
$ latexmk -commands xelatex job
Commands used by latexmk:
To run latex, I use "latex %O %S"
To run pdflatex, I use "pdflatex %O %S"
...
لا يبدو أن هناك أي آلية منطقية لاختيار برنامج TEX من سطر الأوامر ، ولا يتضح من المصدر كيف يمكن للمرء أن يفعل ذلك أيضًا.
لقد نظرت أيضًا إلىrubber
, ، ولكن لا يبدو أنه يعمل أيضًا.
أنا أقدر أي رؤية قد تكون قادرًا على توفيرها.
براين
المحلول
هذا لي إصلاح سريع, ، لهذا السبب latexmk
يعمل مع Xelatex:
يضيف
`elsif (/^-xelatex$/) { $pdf_mode = 1; $pdflatex = 'xelatex %O %S'; $pdf_previewer =
'start evince %O %S';}`
فوق (أو بالقرب) الخط
`elsif (/^-pdf$/) { $pdf_mode = 1; }`
.
ثم يمكنك الاتصال latexmk -xelatex file.tex
. يعمل ، لكنني لم أختبرها على نطاق واسع. يجب أن تعمل بشكل مشابه مع lualatex
.
نصائح أخرى
latexmk -v
Latexmk, John Collins, 16 January 2010. Version 4.13a
وضعت
$pdflatex = 'xelatex --shell-escape %O %S';
في ملف .latexmkrc الخاص بي. هذا هو الحل ، بالطبع. لكنه يعمل بالنسبة لي عندما أتصل
latexmk -pvc -pdf MyXetexFile
$ latexmk -v
Latexmk, John Collins, 27 July 2010. Version 4.18
أركض مع الأمر:
latexmk -pdf -e '$pdflatex=q/xelatex %O %S/' foo.tex
وهو في الأساس نفس الإجابات من Andre-R و Kay ، ولكن فقط من سطر الأوامر.
latexmk --xelatex job.tex
الآن الحجة قابلة للمرور في هذا النموذج البسيط.
في الإصدار: 4.65 (18 يونيو 2019) ، هناك فرق بين استخدام -xelatex
الخيار والإعداد -pdflatex
كما اقترح أحد التعليقات.
الخيار 1: -xeLatex
$ latexmk -xelatex file.tex
مع ال -xelatex
الخيار ، أو -pdfxe
الخيار ، ملف Tex هو النوع الأول إلى xdv
(ممتد DVI) ملف. ثم، xdvipdfmx
يتم استدعاؤه لتحويل xdv
ملف إلى pdf
ملف.
في latexmk
, $xelatex_default_switches
تم تعيينه على -no-pdf
(السطر 395) ليكون xelatex
إنتاج xdv
ملف بدلا من ملف PDF الافتراضي.
ومن هنا -xelatex
الخيار يعادل:
$ xelatex -no-pdf file.tex # called one or more times to produce file.xdv
$ xdvipdfmx file.xdv # called only once in the end
الخيار 2: -pdflatex = xelatex
الخيار الثاني هو ضبط pdflatex
على النحو التالي مع تشغيل -pdf
اختيار:
# %O is a substitution for options and %S is for source file
$ latexmk -pdflatex='xelatex %O %S' -pdf file.tex
من هذا المنطلق، xelatex
يستخدم لإنشاء ملف PDF مباشرة ، دون إنشاء ملف إخراج وسيط. لاحظ أنه اليوم ، xelatex
يولد أولا xdv
دفق وتصويره داخليًا xdvipdfmx
لإنتاج ملف PDF.
وبالتالي هذا النهج يعادل:
$ xelatex file.tex # called one or more times to produce file.pdf
تم تحديثه 2019.08.31 من user36296
تعليق.