XETEX-UNSAFE(1) General Commands Manual XETEX-UNSAFE(1)

xetex-unsafe, xelatex-unsafe - اجرای ناامن xe(la)latex

xetex-unsafe [xetex-options] xelatex-unsafe [xetex-options]

دستور xetex-unsafe (xelatex-unsafe) برنامه XeTeX (XeLaTeX) را به شیوه‌ای ناامن اجرا می‌کند؛ مشخصاً با استفاده از فایل پیکربندی dvipdfmx-unsafe.cfg.

از زمان TeX Live 2022، انجام این کار تنها هنگام اجرای XeTeX بر روی اسنادی ضروری است که از ویژگی‌های PSTricksِ نیازمندِ شفافیت (transparency) استفاده می‌کنند. در این حالت، اکیداً توصیه می‌کنیم به جای XeTeX، از Lua(La)TeX همراه با PSTricks استفاده کنید.

به هر قیمتی، از استفاده از این دستور یا هر فراخوانی ناامن دیگری بر روی اسناد دریافت شده از اینترنت یا هر سندی که به هر طریقی مورد اعتماد نیست، خودداری کنید.

شاید بپرسید چرا استفاده از قابلیت‌های شفافیت در XeTeX ناامن است. پاسخ در پیشینه پیاده‌سازی Ghostscript نهفته است؛ این برنامه پیش از اختراع PDF کار خود را به عنوان یک مفسر PostScript آغاز کرد، زمانی که متوقف شدن برنامه (abort) هنگام بروز خطا قابل قبول بود، در حالی که در PDF پردازش باید ادامه یابد. عملگرهای شفافیت، در صورتی که در ارتباط با این بازیابی از خطا مورد سوءاستفاده قرار گیرند، می‌توانند موجب ناسازگاری‌های درونی در وضعیت Ghostscript شوند.

بنابراین، برای حفظ امنیت، باید شفافیت در Ghostscript را به صورت پیش‌فرض غیرفعال کنیم. بک‌اند xdvipdfmx در XeTeX در شرایط خاصی، به‌ویژه هنگام استفاده از PSTricks، برنامه Ghostscript را فراخوانی می‌کند. خود (x)dvipdfmx مفسر PostScript نیست، در حالی که PSTricks دقیقاً به چنین مفسری نیاز دارد.

بنابراین، برای فعال‌سازی شفافیت، xe(la)tex-unsafe برنامه XeTeX را با آرگومان‌هایی برای بک‌اند xdvipdfmx (به‌صورت -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E") اجرا می‌کند تا از dvipdfmx-unsafe.cfg استفاده شود؛ این فایل نیز به نوبه خود به Ghostscript دستور می‌دهد تا عملگرهای شفافیت (-dALLOWPSTRANSPARENCY) را فعال سازد. این عملگرها به صورت پیش‌فرض غیرفعال هستند.

پیچیدگی‌های بیشتری نیز در رابطه با خواندن از فایل‌سیستم وجود داشت، اما از TL22 به بعد، این موارد برطرف شده‌اند. مشکل شفافیت بدون یک پیاده‌سازی متفاوت از Ghostscript قابل حل نیست، و توسعه‌دهندگان Ghostscript اعلام کرده‌اند که هیچ برنامه زمانی مشخصی برای این کار ندارند.

برای تکرار مجدد نکته بالا: هنگام استفاده از PSTricks و شفافیت، اکیداً توصیه می‌کنیم جانب احتیاط را رعایت کرده و به جای Xe(La)TeX از Lua(La)TeX استفاده کنید.

تمام آرگومان‌های خط فرمان به جز --help و --version به Xe(La)TeX ارسال می‌شوند.

برای اطلاعات بیشتر درباره XeTeX: https://tug.org/xetex

برای اطلاعات بیشتر درباره PSTricks: https://tug.org/PSTricks

رایانامه مشخصاً برای xe(la)tex-unsafe: https://lists.tug.org/dvipdfmx

20 نوامبر 2021