سؤال

كيف يمكن للمرء تجميع أ 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تعليق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top