FMTUTIL(1) دستورات کاربری FMTUTIL(1) نام (NAME) fmtutil - مدیریت و بازسازی فرمت‌های TeX و پایه‌های Metafont، برای هر کاربر fmtutil-sys - مدیریت و بازسازی فرمت‌های TeX و پایه‌های Metafont، در سطح سیستم mktexfmt - ایجاد یک فایل فرمت TeX یا پایه‌ی Metafont خلاصه دستور (SYNOPSIS) fmtutil [-user|-sys] [گزینه] ... [دستور] fmtutil-sys [گزینه] ... [دستور] fmtutil-user [گزینه] ... [دستور] mktexfmt FORMAT.fmt|BASE.base|FMTNAME توضیحات (DESCRIPTION) fmtutil نسخه r77314 (2026-01-09 17:20:28 +0100) بازسازی و مدیریت فایل‌های fmt مربوط به TeX و فایل‌های base مربوط به Metafont که در اینجا به طور کلی «فرمت‌ها» (formats) نامیده می‌شوند. (برنامه MetaPost دیگر از معادل قدیمی «mems» استفاده نمی‌کند.) اگر در حالت mktexfmt اجرا نشود، باید دقیقاً یک دستور مشخص گردد، پسوند نام فایل‌ها معمولاً نباید ذکر شود، هیچ آرگومان غیرگزینه‌ای مجاز نیست و چندین فرمت را می‌توان به طور همزمان تولید کرد. اگر نام دستور به mktexfmt ختم شود، تنها یک فرمت می‌تواند ایجاد شود. تنها گزینه‌های پشتیبانی‌شده --help و --version هستند و خط فرمان باید یا نام یک فرمت همراه با پسوند باشد، یا یک نام ساده که به عنوان آرگومان به --byfmt پاس داده می‌شود (توضیحات زیر را ببینید). نام کامل فایل تولید‌شده (در صورت وجود) تنها در خروجی استاندارد (stdout) نوشته می‌شود و چیز دیگری چاپ نخواهد شد. در صورت داشتن دسترسی نوشتن، از دایرکتوری‌های سیستمی استفاده می‌شود؛ در غیر این صورت از دایرکتوری‌های کاربری استفاده خواهد شد. به طور پیش‌فرض، اگر تمام فرمت‌های درخواستی با موفقیت ساخته شوند، وضعیت خروجی صفر و در غیر این صورت غیرصفر خواهد بود. گزینه‌ها (OPTIONS) --sys استفاده از متغیرهای TEXMFSYS{VAR,CONFIG} --user استفاده از متغیرهای TEXMF{VAR,CONFIG} --cnffile FILE خواندن FILE به جای fmtutil.cnf (می‌تواند چندین بار مشخص شود که در این صورت از همه فایل‌ها استفاده می‌شود) --dry-run, -n عدم ساخت واقعی فرمت‌ها --fmtdir DIR نوشتن فرمت‌ها در پوشه DIR به جای TEXMF[SYS]VAR --no-engine-subdir عدم استفاده از زیرپوشه اختصاصی موتور (engine) در fmtdir --no-error-if-no-format خروج با موفقیت حتی اگر هیچ فرمتی انتخاب نشده باشد --no-error-if-no-engine=ENGINE1,ENGINE2,... خروج با موفقیت حتی اگر یک ENGINE مورد نیاز یافت نشود، مشروط بر اینکه در این لیست قرار داشته باشد. --no-strict خروج با موفقیت حتی اگر ساخت یک فرمت با شکست مواجه شود --nohash عدم به‌روزرسانی فایل‌های ls-R --recorder ارسال گزینه -recorder و ذخیره فایل‌های .fls --refresh بازسازی مجدد فقط فرمت‌های موجود --status-file FILE افزودن اطلاعات وضعیت فرمت‌های ساخته‌شده به انتهای FILE --quiet اجرای بی‌صدا بدون چاپ پیام‌ها --catcfg (عملیاتی انجام نمی‌دهد، برای سازگاری با نسخه‌های پیشین وجود دارد) --dolinks (عملیاتی انجام نمی‌دهد، برای سازگاری با نسخه‌های پیشین وجود دارد) --force (عملیاتی انجام نمی‌دهد، برای سازگاری با نسخه‌های پیشین وجود دارد) --test (عملیاتی انجام نمی‌دهد، برای سازگاری با نسخه‌های پیشین وجود دارد) دستورها (دقیقاً یکی باید مشخص شود): --all بازسازی مجدد تمامی فایل‌های فرمت --missing ایجاد تمامی فایل‌های فرمت ناموجود --byengine ENGINE ایجاد (یا بازسازی) فرمت‌های ساخته‌شده با موتور ENGINE --byfmt FORMAT ایجاد (یا بازسازی) فرمت FORMAT --byhyphen HYPHENFILE ایجاد (یا بازسازی) فرمت‌های وابسته به HYPHENFILE --enablefmt FORMAT[/ENGINE] فعال‌سازی FORMAT ساخته‌شده با ENGINE --disablefmt FORMAT[/ENGINE] غیرفعال‌سازی FORMAT ساخته‌شده با ENGINE. اگر چندین فرمت نام یکسان ولی موتورهای متفاوتی داشته باشند، مشخص کردن شناسه /ENGINE الزامی است. --listcfg فهرست کردن پیکربندی‌ها (فعال و غیرفعال)، فیلترشده بر اساس فرمت‌های موجود --showhyphen FORMAT چاپ نام فایل خط تیره (hyphen file) برای فرمت FORMAT --version نمایش اطلاعات نسخه و خروج --help نمایش این پیام راهنما و خروج محیط (ENVIRONMENT) توضیح درخت‌ها و فایل‌هایی که به طور معمول استفاده می‌شوند: اگر --cnffile در خط فرمان مشخص شده باشد (احتمالاً چندین بار)، از مقادیر آن استفاده می‌شود. در غیر این صورت، fmtutil تمام فایل‌های fmtutil.cnf یافت‌شده با اجرای دستور «kpsewhich -all fmtutil.cnf» را به ترتیبی که توسط kpsewhich بازگردانده می‌شود، می‌خواند. فایل‌های مشخص‌شده با --cnffile ابتدا به صورت مستقیم بارگذاری می‌شوند و اگر یافت نشوند و نام فایل فاقد بخش دایرکتوری باشد، از طریق kpsewhich جستجو می‌گردند. در هر صورت، اگر چندین فایل fmtutil.cnf پیدا شود، تمام تعاریف فرمت موجود در همه فایل‌های fmtutil.cnf با یکدیگر ادغام می‌شوند. بنابراین، اگر فایل‌های fmtutil.cnf در تمام درخت‌ها وجود داشته باشند و چیدمان پیش‌فرض همراه با TeX Live استفاده شود، فایل‌های زیر به ترتیب ذکر شده خوانده می‌شوند: برای fmtutil-sys: TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/fmtutil.cnf TEXMFSYSVAR $TEXLIVE/YYYY/texmf-var/web2c/fmtutil.cnf TEXMFLOCAL $TEXLIVE/texmf-local/web2c/fmtutil.cnf TEXMFDIST $TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf برای fmtutil-user: TEXMFCONFIG $HOME/.texliveYYYY/texmf-config/web2c/fmtutil.cnf TEXMFVAR $HOME/.texliveYYYY/texmf-var/web2c/fmtutil.cnf TEXMFHOME $HOME/texmf/web2c/fmtutil.cnf TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/fmtutil.cnf TEXMFSYSVAR $TEXLIVE/YYYY/texmf-var/web2c/fmtutil.cnf TEXMFLOCAL $TEXLIVE/texmf-local/web2c/fmtutil.cnf TEXMFDIST $TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf (که در آن YYYY نسخه انتشار TeX Live است). بسته به عملیات انجام‌شده، fmtutil ممکن است یکی از فایل‌های cnf موجود را به‌روزرسانی کند یا یک فایل fmtutil.cnf جدید بسازد، همان‌طور که در زیر شرح داده شده است. محل ذخیره فایل‌های فرمت: به طور پیش‌فرض، فایل‌های فرمت در $TEXMFSYSVAR/ENGINE توسط fmtutil-sys، و در $TEXMFVAR/ENGINE توسط fmtutil-user بازنویسی می‌شوند، که در آن /ENGINE زیرپوشه‌ای همنام با موتور استفاده‌شده است، مانند «pdftex». برای mktexfmt، در صورت داشتن دسترسی نوشتن از TEXMFSYSVAR استفاده می‌شود وگرنه TEXMFVAR به کار می‌رود. اگر گزینه --fmtdir=DIR مشخص شده باشد، DIR به جای TEXMF[SYS]VAR استفاده می‌شود، اما به طور پیش‌فرض زیرپوشه /ENGINE همچنان استفاده خواهد شد. در تمام موارد، اگر گزینه --no-engine-subdir مشخص شود، زیرپوشه /ENGINE حذف می‌گردد. محل ذخیره تغییرات پیکربندی: اگر فایل‌های پیکربندی در خط فرمان داده شوند، اولین فایل مشخص‌شده برای ذخیره هرگونه تغییر ناشی از --enable یا --disable استفاده خواهد شد. اگر فایل‌های پیکربندی از خروجی kpsewhich گرفته شوند، الگوریتم پیچیده‌تر است: ۱) اگر $TEXMFCONFIG/web2c/fmtutil.cnf یا $TEXMFHOME/web2c/fmtutil.cnf در فهرست فایل‌های استفاده‌شده باشد، فایلی که در ابتدای فهرست kpsewhich --all آمده است (معادل خروجی دستور «kpsewhich fmtutil.cnf») استفاده می‌شود. ۲) اگر هیچ‌یک از دو مورد فوق موجود نباشند و تغییراتی اعمال شود، یک فایل پیکربندی جدید در $TEXMFCONFIG/web2c/fmtutil.cnf ایجاد می‌گردد. به طور کلی، ایده این است که اگر یک فایل کانفیگ قابل نوشتن نباشد، می‌توان از فایلی در سطح بالاتر استفاده کرد. به این ترتیب، تنظیمات توزیع را می‌توان در سطح سیستم با استفاده از TEXMFLOCAL بازنویسی کرد، و تنظیمات سیستم را می‌توان دوباره در TEXMFHOME یا TEXMFCONF یک کاربر خاص بازنویسی نمود. حل تعارض تعاریف چندگانه یک فرمت: اگر یک فرمت در بیش از یک فایل پیکربندی تعریف شده باشد، تعریفی که از اولین fmtutil.cnf فهرست‌شده می‌آید استفاده می‌شود. غیرفعال کردن فرمت‌ها: فایل‌های fmtutil.cnf با اولویت بالاتر (که زودتر فهرست شده‌اند) می‌توانند فرمت‌های موجود در فایل‌های با اولویت پایین‌تر (که دیرتر فهرست شده‌اند) را با نوشتن خطی مانند زیر در فایل با اولویت بالاتر غیرفعال کنند: #! عبارت #! باید در ابتدای خط همراه با حداقل یک فاصله یا تب پس از آن قرار گیرد و بین هر کلمه در لیست فاصله وجود داشته باشد. برای مثال، می‌توانید فرمت luajitlatex را با ایجاد فایل $TEXMFCONFIG/web2c/fmtutil.cnf با خط زیر غیرفعال کنید: #! luajitlatex luajittex language.dat,language.dat.lua lualatex.ini (در واقع، فرمت‌های مرتبط با luajittex دقیقاً دلیل وجود گزینه --no-error-if-no-engine هستند، زیرا luajittex روی تمام پلتفرم‌ها قابل کامپایل نیست؛ بنابراین به این کار نیازی نیست.) مقایسه fmtutil-user (دستور fmtutil -user) با fmtutil-sys (دستور fmtutil -sys): هنگامی که fmtutil-sys اجرا می‌شود یا گزینه -sys در خط فرمان به کار می‌رود، متغیرهای TEXMFSYSCONFIG و TEXMFSYSVAR به ترتیب به جای TEXMFCONFIG و TEXMFVAR استفاده می‌شوند. این تفاوت اصلی میان fmtutil-sys و fmtutil-user است. برای جزئیات بیشتر به نشانی https://tug.org/texlive/scripts-sys-user.html مراجعه کنید. اگر مسیرهای دیگری در خط فرمان مشخص شوند، یا این درخت‌ها وجود نداشته باشند، یا از TeX Live اصلی استفاده نکنید، ممکن است مسیرهای دیگری به کار گرفته شوند. پشتیبانی از فایل‌های اجرایی در حال توسعه: اگر نام یک موتور به «-dev» ختم شود، فرمت‌ها در دایرکتوری مربوطه بدون پسوند -dev ساخته می‌شوند. این امکان اجرای آسان باینری‌های در حال توسعه را به صورت همزمان در کنار باینری‌های منتشرشده فراهم می‌کند. محیط اجرا (RUNTIME ENVIRONMENT) این اسکریپت برای تولید فایل fmt/base برنامه‌های TeX و Metafont را اجرا می‌کند و بنابراین تمامی متغیرهای محیطی معمول و قوانین مسیر جستجو برای TeX/MF اعمال می‌شوند. محل فایل اجرایی: ../../../../texk/texlive/../../../../Master/texmf-dist/scripts/texlive/fmtutil.pl گزارش باگ‌ها (REPORTING BUGS) گزارش باگ‌ها به: tex-live@tug.org صفحه خانگی TeX Live: TeX Live February 2026 FMTUTIL(1)