LUATEX(1) General Commands Manual LUATEX(1)

luatex, dviluatex, luahbtex, luajithbtex, luajittex, texlua, texluac, texluajit, texluajitc - ابزار TeX گسترش‌یافته با Lua به‌عنوان زبان اسکریپت‌نویسی تعبیه‌شده

luatex [--lua=luafile] [options] [&format] [ file [ more-input ] | [ \more-input ]

حروف‌چین LuaTeX را روی file[.tex] اجرا می‌کند که معمولاً file.pdf را ایجاد می‌نماید. اگر آرگومان فایل پسوندی نداشته باشد، «.tex» به آن افزوده خواهد شد. برای جزئیات تجزیه خط فرمان، با استثنائاتی که در اینجا شرح داده شده است، tex(1) را ببینید.

ابزار LuaTeX در ابتدا به‌عنوان نسخه‌ای گسترش‌یافته از pdfTeX با lua(1) به‌عنوان زبان اسکریپت‌نویسی تعبیه‌شده، پشتیبانی از قلم‌های Unicode و OpenType/TrueType، افزونه‌های e-TeX و Omega، و همچنین یک کتابخانه داخلی یکپارچه از MetaPost آغاز به کار کرد. این ابزار می‌تواند خروجی pdf یا dvi تولید کند. برای اطلاعات بیشتر درباره LuaTeX، به https://www.luatex.org مراجعه کنید؛ یا می‌توانید راهنمای LuaTeX را با استفاده از ابزار texdoc مطالعه نمایید (texdoc luatex).

تمام ورودی و خروجی متنی در LuaTeX به‌طور بومی به‌صورت متن Unicode خوانده می‌شود، اگرچه فیلترها پشتیبانی از هرگونه کدگذاری (encoding) را ممکن می‌سازند. هشدار: صرف اینکه هر نویسه Unicode بتواند در ورودی شناسایی شود به این معنی نیست که امکان حروف‌چینی آن در خروجی وجود دارد؛ شما همچنان باید قلم‌های لازم را بارگذاری کنید.

اگر این برنامه با نام texlua فراخوانی شود، به‌عنوان یک مفسر Lua عمل می‌کند. اگر با نام texluac فراخوانی شود، به‌عنوان کامپایلر بایت‌کد Lua عمل می‌کند.

به‌طور پیش‌فرض، luatex خروجی pdf تولید می‌کند و dviluatex خروجی dvi تولید می‌نماید؛ در غیر این صورت، هر دو فایل اجرایی در محدوده قالب خروجی رفتار کاملاً یکسانی دارند. هر دو نوع می‌توانند برای تولید خروجی dvi یا pdf پیکربندی شوند.

در حالت pdf، ابزار LuaTeX می‌تواند به‌صورت بومی قالب‌های گرافیکی pdf، jpg، jbig2 و png را مدیریت کند، اما از گرافیک‌های PostScript یا Encapsulated PostScript (eps) پشتیبانی نمی‌کند؛ pdftex(1) را ببینید. در یک مورد خاص، فایل‌های PostScript خروجی MetaPost می‌توانند مستقیماً از طریق ماکروهای supp-pdf.tex و supp-pdf.mkii مدیریت شوند.

برنامه‌های استاندارد luatex از Lua 5.3 که توسط PUC-Rio توسعه یافته استفاده می‌کنند؛ گونه‌های jit مانند luajittex دارای LuaJIT برای کامپایل درجا (just-in-time) هستند که توسط Mike Pall توسعه یافته است.

گونه luahbtex شامل موتور HarfBuzz برای شکل‌دهی گلیف‌ها (glyph shaping) است. با این حال HarfBuzz همچنان باید به‌طور صریح در سطح TeX فعال شود.

به‌طور پیش‌فرض، LuaTeX هیچ دستور اولیه‌ای (primitives) فراتر از موارد موجود در TeX3 ارائه نمی‌دهد. تمام دستورات اولیه گسترش‌یافته باید در زمان اجرا با استفاده از \directlua فعال شوند؛ به راهنمای LuaTeX و فایل‌های ساخت قالب موجود، مانند luatex.ini مراجعه کنید.

برای گزینه‌های متداول خط فرمان TeX و نحوه مدیریت آن‌ها، tex(1) را ببینید.

هنگامی که فایل اجرایی LuaTeX شروع به کار می‌کند، به‌دنبال گزینه خط فرمان --lua می‌گردد. اگر گزینه --lua وجود نداشته باشد، خط فرمان مشابه با pdfTeX سنتی و Aleph تفسیر می‌شود. اما اگر این گزینه وجود داشته باشد، LuaTeX وارد یک حالت جایگزین برای تجزیه خط فرمان می‌شود که ارتباطی با برنامه‌های استاندارد Web2C ندارد. بنابراین وجود --lua تمامی گزینه‌های دیگر را غیرقابل‌اطمینان می‌کند، زیرا فایل راه‌اندازی Lua می‌تواند جستجوی پیش‌فرض فایل‌ها از طریق Kpathsea را غیرفعال کرده و/یا توابعی را به‌عنوان قلاب (hook) در بازخوان‌های (callbacks) گوناگون قرار دهد.

فایل راه‌اندازی Lua. فایل‌های اجرایی LuaTeX یک فایل راه‌اندازی پیش‌فرض (luatex-core.lua) را به‌صورت تعبیه‌شده در خود دارند؛ اگر از این گزینه استفاده شود، luafile به جای آن استفاده خواهد شد. فایل راه‌اندازی Lua مسئول برقراری محدودیت‌های امنیتی، رفتار جستجوی مسیر و سایر تنظیمات سطح پایین است، بنابراین هنگام استفاده از یک فایل سفارشی باید دقت بالایی به خرج دهید وگرنه به احتمال زیاد موتور متوقف خواهد شد (crash). اگر از این گزینه استفاده شود، باید همان فایل را هم هنگام ایجاد قالب (format dumping) و هم هنگام حروف‌چینی سند ارائه دهید. این گزینه توسط ConTeXt استفاده می‌شود.

دو گزینه زیر رفتار فایل اجرایی را تغییر می‌دهند:

اجرای LuaTeX به‌عنوان یک مفسر Lua. در این حالت، مقدار arg[0] در Lua روی نام اسکریپت پیداشده تنظیم می‌شود، گزینه‌های پیشین در اندیس‌های منفی و باقی خط فرمان در اندیس‌های مثبت قرار می‌گیرند، درست همانند مفسر Lua. ابزار LuaTeX بلافاصله پس از اجرای اسکریپت مشخص‌شده Lua خارج خواهد شد.
اجرای LuaTeX به‌عنوان یک کامپایلر بایت‌کد Lua. در این حالت، LuaTeX کاملاً شبیه به luac از توزیع مستقل Lua عمل می‌کند، به‌جز اینکه فاقد سوئیچ -l است و سوئیچ --luaconly را می‌پذیرد و نادیده می‌گیرد.
بیشتر توابع Lua را که اقدام به تغییر فایل و اجرای برنامه می‌کنند غیرفعال می‌سازد. این گزینه به‌طور پیش‌فرض غیرفعال است زیرا فرایند پردازش اکثر اسناد را با مشکل روبه‌رو می‌کند.
ماژول استاندارد debug در Lua را فعال می‌کند که به‌طور پیش‌فرض به دلایل امنیتی غیرفعال است. این گزینه هنگامی که قابلیت shell-escape نامحدود فعال باشد، به‌طور ضمنی فعال می‌شود.
--[no-]socket
ماژول socket در Lua را فعال می‌کند که به اسناد TeX امکان ایجاد درخواست‌های دلخواه شبکه را می‌دهد و به‌طور پیش‌فرض به دلایل امنیتی غیرفعال است. این گزینه هنگامی که shell escape نامحدود فعال باشد، به‌طور ضمنی فعال می‌شود.

tex(1) و pdftex(1) را ببینید.

tex(1) را ببینید.

aleph(1), etex(1), lua(1), mpost(1), pdftex(1), tex(1).

صفحه اصلی LuaTeX: https://luatex.org
صفحه بسته در CTAN: https://ctan.org/pkg/luatex
کتابچه راهنمای جامع LuaTeX: https://mirror.ctan.org/systems/doc/luatex/luatex.pdf
راهنمای Web2c: https://tug.org/web2c
راهنمای Kpathsea: https://tug.org/kpathsea

مقاله‌های متعددی درباره LuaTeX در TUGboat منتشر شده است: https://tug.org/TUGboat/Contents

سیستم TeX توسط Donald E. Knuth ایجاد شد. نویسندگان اصلی بهبودهای صورت‌گرفته در LuaTeX عبارتند از Taco Hoekwater، Hartmut Henkel، Hans Hagen و Luigi Scarso، همراه با کمک‌های Martin Schröder، Karel Skoupý و Hàn The Thành.

گزارش‌های باگ: dev-luatex@ntg.nl
فهرست گفتگوی عمومی برای مسائل اختصاصی LuaTeX: https://lists.tug.org/luatex
فهرست گفتگوی عمومی برای تمامی موارد پیرامون TeX: https://lists.tug.org/texhax

14 February 2026 Web2C 2026