UPDMAP(1) User Commands UPDMAP(1)

updmap - مدیریت نگاشت‌های فونت TeX
updmap-sys - مدیریت نگاشت‌های فونت TeX در سطح سراسری سیستم
updmap-user - مدیریت نگاشت‌های فونت TeX ویژه‌ی کاربر

updmap [-user|-sys] [OPTION] ... [COMMAND]
updmap-user [OPTION] ... [COMMAND]
updmap-sys [OPTION] ... [COMMAND]

updmap version r77314 (2026-01-09 17:20:28 +0100)

فایل‌های نگاشت فونت پیش‌فرض مورد استفاده توسط pdftex و dvipdfm(x) (فایل pdftex.map)، dvips (فایل psfonts.map) و به صورت اختیاری pxdvi را همان‌طور که توسط تمام فایل‌های پیکربندی updmap.cfg تعیین شده است (معمولاً مواردی که با اجرای «kpsewhich --all updmap.cfg» بازگردانده می‌شوند، اما ادامه را ببینید) به‌روزرسانی می‌کند.

از جمله کاربردهای دیگر، این فایل‌های نگاشت برای تعیین اینکه کدام فونت‌ها باید به صورت بیت‌مپ (bitmap) و کدام به صورت برداری (outline) استفاده شوند، و همچنین تعیین اینکه کدام فایل‌های فونت (معمولاً به صورت زیرمجموعه‌ای یا subset شده) در خروجی PDF یا PostScript گنجانده شوند، به کار می‌روند.

این نگاشت‌ها مخصوص فونت‌های نصب‌شده در سلسله‌مراتب TeX هستند و به جستجوهای فونت سیستم ارتباطی ندارند. آن‌ها عمدتاً برای فونت‌های Type 1 به کار می‌روند، اگرچه شامل تعداد کمی از فونت‌های OpenType و TrueType نیز می‌شوند.

دستور updmap-sys (یا updmap -sys) به منظور اعمال تغییرات بر پیکربندی سراسری سیستم در نظر گرفته شده است، در حالی که updmap-user (یا updmap -user) تنها بر فایل‌های پیکربندی شخصی تأثیر می‌گذارد و فایل‌های سیستمی را بازنویسی (override) می‌کند.

در نتیجه، پس از یک‌بار اجرای updmap-user، حتی برای یک مرتبه، اجرای updmap-sys دیگر هیچ تأثیری نخواهد داشت. دستور updmap-sys در این مورد یک هشدار صادر می‌کند، زیرا این وضعیت به‌ندرت مطلوب است. برای جزئیات بیشتر به https://tug.org/texlive/scripts-sys-user.html مراجعه کنید.

به‌طور پیش‌فرض، پایگاه‌داده نام فایل‌های TeX (فایل ls-R) نیز به‌روزرسانی می‌شود؛ برای صرف‌نظر کردن از این مرحله از --nohash استفاده کنید.

سامانه updmap متأسفانه بنا به دلایل ذاتی و تاریخی پیچیده است. یک نمای کلی:

- فایل‌های updmap.cfg عمدتاً برای فهرست کردن فایل‌های دیگر، یعنی

نگاشت‌های .map مخصوص فونت هستند، که در آن‌ها هر خط اطلاعاتی در مورد یک فونت متفاوت TeX (.tfm) ارائه می‌دهد.

- دستور updmap فایل‌های updmap.cfg را خوانده و سپس محتویات

آن فایل‌های .map را در فایل‌های خروجی اصلی که نام‌های عمومی آن‌ها عبارتند از: psfonts.map برای dvips، و pdftex.map برای pdftex و dvipdfmx ترکیب می‌کند.

- خود فایل‌های updmap.cfg در زمان نصب بسته‌ها توسط

نصب‌کننده سیستم، مدیر بسته یا به‌صورت دستی ایجاد و به‌روزرسانی می‌شوند، و نه (به‌طور پیش‌فرض) توسط updmap.

خواندن FILE برای پیکربندی updmap (می‌تواند چندین بار مشخص شود که در این حالت، همه فایل‌ها مورد استفاده قرار می‌گیرند)
مشخص کردن دایرکتوری خروجی (با ساختار dvipdfm(x))
مشخص کردن دایرکتوری خروجی (با ساختار dvips)
مشخص کردن دایرکتوری خروجی (با ساختار pdftex)
مشخص کردن دایرکتوری خروجی (با ساختار pxdvi)
مشخص کردن دایرکتوری خروجی (برای همه فایل‌ها)
--[no-]copy
ایجاد فایل‌های عمومی به صورت رونوشت (پیش‌فرض)؛ با -no-copy، پیوندهای نمادین ایجاد می‌شوند
ایجاد مجدد فایل‌ها حتی در صورتی که پیکربندی تغییر نکرده باشد
عدم ایجاد مجدد فایل‌های نگاشت
عدم اجرای mktexlsr (یا همان texhash)
تأثیرگذاری بر فایل‌های سراسری سیستم (معادل updmap-sys)
تأثیرگذاری بر فایل‌های شخصی (معادل updmap-user)
فقط نمایش پیکربندی، بدون ایجاد خروجی
کاهش پرگویی.SS "دستورها:"
نمایش این پیام و خروج
نمایش اطلاعات نسخه و خروج
نمایش تنظیمات کنونی OPTION
نمایش تنظیمات ممکن برای OPTION
تنظیم مقدار OPTION به VALUE؛ نام گزینه‌ها در زیر آمده است
مشابه بالا، صرفاً با ساختار دستوری متفاوت
افزودن «MAPTYPE MAPFILE» به updmap.cfg، که در آن MAPTYPE یکی از مقادیر Map،‏ MixedMap یا KanjiMap است
افزودن «Map MAPFILE» به updmap.cfg
افزودن «MixedMap MAPFILE» به updmap.cfg
افزودن «KanjiMap MAPFILE» به updmap.cfg
غیرفعال کردن MAPFILE، از هر نوعی که باشد
فهرست کردن تمام نگاشت‌ها (جزئیات در زیر آمده است)
فهرست کردن نگاشت‌های دردسترس (جزئیات در زیر آمده است)
غیرفعال کردن فایل‌های نگاشت ناموجود در updmap.cfg

خروجی اصلی:

خروجی اصلی updmap فایل‌هایی شامل خطوط نگاشت مجزای فونت است که راه‌اندازها (dvips،‏ pdftex و غیره) برای مدیریت فونت‌ها آن‌ها را می‌خوانند.
فایل‌های نگاشت برای dvips (فایل psfonts.map) و pdftex و dvipdfmx (فایل pdftex.map) در مسیر TEXMFVAR/fonts/map/updmap/{dvips,pdftex}/ نوشته می‌شوند.
علاوه بر این، اطلاعات مربوط به قلم‌های Kanji در مسیر TEXMFVAR/fonts/map/updmap/dvipdfmx/kanjix.map و به‌طور اختیاری در TEXMFVAR/fonts/map/updmap/pxdvi/xdvi-ptex.map نوشته می‌شود. این موارد صرفاً مختص Kanji هستند و شبیه دیگر فایل‌های نگاشت نیستند. dvipdfmx برای ورودی‌های نگاشت قلم‌های غیر Kanji، فایل pdftex.map را می‌خواند.
اگر هیچ گزینه‌ای داده نشود، به‌طوری که فراخوانی صرفاً به‌صورت «updmap-user» یا «updmap-sys» باشد، این فایل‌های خروجی همیشه بازسازی می‌شوند.
در غیر این صورت، اگر گزینه‌ای مانند --enable یا --disable مشخص شود، فایل‌های خروجی در صورتی بازسازی می‌شوند که فهرست فایل‌های نگاشت فعال‌شده (از updmap.cfg) تغییر کرده باشد. گزینهٔ --force این رفتار را لغو کرده و همواره فایل‌های خروجی را بازسازی می‌کند.

توضیح انواع نگاشت:

نوع معمولی، Map است.
تنها تفاوت میان Map و MixedMap این است که ورودی‌های MixedMap به psfonts_pk.map اضافه نمی‌شوند. هدف، کمک به کاربرانی است که با دستگاه‌هایی کار می‌کنند که قلم‌های خطی Type 1 را ضعیف‌تر از قلم‌های بیتی Type 3 با حالت بهینه‌شده (mode-tuned) نمایش می‌دهند. بنابراین، MixedMap برای قلم‌هایی به کار می‌رود که هم به‌صورت Type 1 و هم به‌صورت Metafont دردسترس هستند.
ورودی‌های KanjiMap به psfonts_t1.map و kanjix.map افزوده می‌شوند.

توضیح نام‌های OPTION برای --showoptions،‏ --showoption،‏ --setoption:

true,false (پیش‌فرض true)
این‌که آیا dvips هنگام دردسترس بودن هر دو حالت، از تصاویر بیتی استفاده کند یا طرح‌های خطی (outlines).
true,false (پیش‌فرض true)
این‌که آیا dvips شامل ۳۵ فونت استاندارد PostScript در خروجی خود باشد یا خیر.
true,false (پیش‌فرض true)
این‌که آیا pdftex شامل ۱۴ فونت استاندارد PDF در خروجی خود باشد یا خیر.
true,false (پیش‌فرض false)
این‌که آیا نگاشت‌های مربوط به pxdvi (برنامهٔ xdvi با پچ ژاپنی) تحت کنترل updmap باشند یا خیر.
(هر رشته‌ای)
(هر رشته‌ای)
(هر رشته‌ای)
(هر رشته‌ای)
(هر رشته‌ای)
به زیر مراجعه کنید.
URWkb,URW,ADOBEkb,ADOBE (پیش‌فرض URWkb)
تطبیق دادن نام‌های قلم و فایلِ ۳۵ قلم استاندارد PostScript.
URW fonts with "berry" filenames    (e.g. uhvbo8ac.pfb)
URW fonts with "vendor" filenames   (e.g. n019064l.pfb)
Adobe fonts with "berry" filenames (e.g. phvbo8an.pfb)
Adobe fonts with "vendor" filenames (e.g. hvnbo___.pfb)
این گزینه‌ها فقط توسط updmap خوانده شده و اعمال می‌شوند؛ برنامه‌های dvips،‏ pdftex و غیره هیچ شناختی از آن‌ها ندارند. نحوهٔ کارکرد آن‌ها از طریق تغییر فایل نگاشت پیش‌فرضی است که برنامه‌ها می‌خوانند، بنابراین می‌توان آن‌ها را با تعیین گزینه‌های خط فرمان یا فایل‌های پیکربندی به برنامه‌ها، همان‌گونه که در ابتدای updmap.cfg توضیح داده شده است، بازنویسی کرد.
گزینه‌های jaEmbed و jaVariant (که پیش‌تر kanjiEmbed و kanjiVariant بودند) جایگزینی‌های ویژه‌ای را در خطوط نگاشت تعیین می‌کنند. اگر یک نگاشت شامل رشتهٔ @jaEmbed@ باشد، با مقدار این گزینه جایگزین خواهد شد؛ این موضوع برای jaVariant نیز مشابه است. بدین ترتیب، کاربران TeX ژاپنی می‌توانند فونت‌های متفاوتی را برای گنجاندن در خروجی نهایی انتخاب کنند. گزینه‌های متناظر برای فونت‌های چینی ساده‌شده، چینی سنتی و کره‌ای به ترتیب scEmbed،‏ tcEmbed و koEmbed هستند..SH "محیط (ENVIRONMENT)"

توضیح درخت‌ها و فایل‌هایی که معمولاً استفاده می‌شوند:

اگر --cnffile در خط فرمان مشخص شده باشد (می‌تواند چند بار داده شود)، از مقدار(های) آن استفاده می‌شود. در غیر این صورت، updmap تمام فایل‌های updmap.cfg یافت‌شده از طریق اجرای “kpsewhich -all updmap.cfg” را به ترتیبی که kpsewhich برمی‌گرداند (که همان ترتیب درخت‌های تعریف‌شده در texmf.cnf است) می‌خواند.
در هر دو حالت، اگر چندین فایل updmap.cfg یافت شود، تمام نگاشت‌های ذکرشده در همهٔ فایل‌های updmap.cfg ادغام می‌شوند.
بنابراین، اگر فایل‌های updmap.cfg در همهٔ درخت‌ها وجود داشته باشند و از ساختار پیش‌فرضی که همراه با TeX Live عرضه شده استفاده شود، فایل‌های زیر به ترتیب ذکرشده خوانده می‌شوند.
برای updmap-sys:
TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/updmap.cfg
TEXMFSYSVAR    $TEXLIVE/YYYY/texmf-var/web2c/updmap.cfg
TEXMFLOCAL     $TEXLIVE/texmf-local/web2c/updmap.cfg
TEXMFDIST      $TEXLIVE/YYYY/texmf-dist/web2c/updmap.cfg
برای updmap-user:
TEXMFCONFIG    $HOME/.texliveYYYY/texmf-config/web2c/updmap.cfg
TEXMFVAR       $HOME/.texliveYYYY/texmf-var/web2c/updmap.cfg
TEXMFHOME      $HOME/texmf/web2c/updmap.cfg
TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/updmap.cfg
TEXMFSYSVAR    $TEXLIVE/YYYY/texmf-var/web2c/updmap.cfg
TEXMFLOCAL     $TEXLIVE/texmf-local/web2c/updmap.cfg
TEXMFDIST      $TEXLIVE/YYYY/texmf-dist/web2c/updmap.cfg
(که در آن YYYY نسخهٔ انتشار TeX Live است).
بسته به دستورات اجرایی، updmap ممکن است در یکی از فایل‌های ارائه‌شده بنویسد یا یک updmap.cfg جدید ایجاد کند، که در ادامه بیشتر توضیح داده شده است.

تغییرات updmap.cfg کجا و در کدام فایل ذخیره می‌شوند:

هنگامی که هیچ گزینه‌ای داده نشده باشد، فایل(های) updmap.cfg تنها خوانده می‌شوند و چیزی در آن‌ها نوشته نمی‌شود. تنها زمانی که یکی از گزینه‌های --setoption، --enable یا --disable مشخص شده باشد، یک updmap.cfg باید به‌روزرسانی شود. در این حالت:
1) اگر فایل‌های پیکربندی در خط فرمان مشخص شده باشند، اولین مورد داده‌شده برای ذخیرهٔ این تغییرات استفاده می‌شود.
2) اگر فایل‌های پیکربندی از خروجی kpsewhich گرفته شوند، الگوریتم پیچیده‌تر است:
2a) اگر $TEXMFCONFIG/web2c/updmap.cfg یا $TEXMFHOME/web2c/updmap.cfg در فهرست فایل‌های استفاده‌شده وجود داشته باشد، فایلی که ابتدا توسط kpsewhich --all فهرست شده است (معادل فایلی که توسط kpsewhich updmap.cfg برگردانده می‌شود) استفاده می‌شود.
2b) اگر هیچ‌یک از دو مورد بالا وجود نداشته باشند و تغییراتی اعمال شود، یک فایل پیکربندی جدید در $TEXMFCONFIG/web2c/updmap.cfg ایجاد می‌شود.
به طور کلی، ایده این است که اگر کاربر نتواند در یک فایل پیکربندی مشخص بنویسد، بتوان از فایلی در سطحی بالاتر استفاده کرد. به این ترتیب، تنظیمات توزیع می‌توانند با استفاده از TEXMFLOCAL در سطح کل سیستم بازنویسی شوند، و تنظیمات سیستم را می‌توان مجدداً در TEXMFHOME یا TEXMFCONFIG یک کاربر خاص بازنویسی کرد.

حل تعارض تعاریف چندگانه از یک قلم:

اگر یک قلم در بیش از یک فایل نگاشت تعریف شده باشد، از تعریفی استفاده می‌شود که در اولین updmap.cfg فهرست‌شده قرار دارد. اگر یک قلم چندین بار درون همان فایل نگاشت تعریف شده باشد، یکی به صورت دلخواه انتخاب می‌شود. در هر دو حالت هشداری صادر خواهد شد.

غیرفعال‌کردن نگاشت‌ها:

فایل‌های updmap.cfg با اولویت بالاتر (که زودتر فهرست شده‌اند) می‌توانند نگاشت‌های ذکرشده در فایل‌های updmap.cfg با اولویت پایین‌تر (که دیرتر فهرست شده‌اند) را با نوشتن عبارتی مانند نمونهٔ زیر غیرفعال کنند:
#! Map mapname.map
یا
#! MixedMap mapname.map
در فایل updmap.cfg با اولویت بالاتر.
(عبارت #! باید در
ابتدای خط قرار گیرد، حداقل یک فاصله یا تب پس از آن بیاید، و بین کلمات فهرست نیز فاصله وجود داشته باشد.)
به عنوان مثال، فرض کنید نسخه‌ای از قلم‌های MathTime Pro را دارید و می‌خواهید نسخهٔ Belleek این قلم‌ها را غیرفعال کنید؛ یعنی نگاشت belleek.map را غیرفعال سازید. می‌توانید فایل $TEXMFCONFIG/web2c/updmap.cfg را با محتوای زیر ایجاد کرده
#! Map belleek.map Map mt-plus.map Map mt-yy.map
و سپس updmap را فراخوانی کنید.

فهرست‌کردن نگاشت‌ها:

دو گزینهٔ --listmaps و --listavailablemaps تمام نگاشت‌های تعریف‌شده در هر یک از فایل‌های updmap.cfg (برای --listmaps)، و تنها مواردی را که واقعاً در سیستم موجود هستند (برای --listavailablemaps) فهرست می‌کنند. قالب خروجی به ازای هر نگاشت قلم یک خط است و فیلدهای زیر با نویسهٔ تب (tab) از یکدیگر جدا می‌شوند: نگاشت (map)، نوع (Map، MixedMap، KanjiMap)، وضعیت (enabled، disabled)، مبدأ (فایل updmap.cfg که در آن ذکر شده است، یا “builtin” برای سه نگاشت پایه).
در مورد --listmaps ممکن است یک فیلد اضافی (که باز هم با تب جدا شده است) حاوی عبارت “(not available)” برای آن دسته از فایل‌های نگاشتی که یافت نمی‌شوند وجود داشته باشد.

مقایسهٔ updmap-user در برابر updmap-sys:

هنگامی که updmap-sys اجرا می‌شود، به جای TEXMFCONFIG و TEXMFVAR به ترتیب از TEXMFSYSCONFIG و TEXMFSYSVAR استفاده می‌شود. این تفاوت اصلی بین updmap-sys و updmap-user است.
اگر مکان‌های دیگری در خط فرمان داده شوند، یا این درخت‌ها وجود نداشته باشند، یا از TeX Live اصلی استفاده نکنید، ممکن است مکان‌های دیگری استفاده شوند.

برای مشاهدهٔ مکان دقیق فایل‌های مختلفی که خوانده و نوشته خواهند شد، گزینهٔ -n را مشخص کنید (یا کد منبع را مطالعه نمایید)..SH "مثال‌ها (EXAMPLES)"

فایل گزارش در TEXMFVAR/web2c/updmap.log نوشته می‌شود.

برای دستورالعمل‌های گام‌به‌گام در مورد شناساندن فونت‌های جدید به TeX، نشانی https://tug.org/fonts/fontinstall.html را بخوانید. برای دستورالعمل‌های مختصرتر، ابتدای فایل اصلی updmap.cfg را مطالعه کنید.

محل فایل اجرایی: ../../../../texk/texlive/../../../../Master/texmf-dist/scripts/texlive/updmap.pl

فایل‌های پیکربندی و ورودی:

فایل پیکربندی اصلی. به‌طور پیش‌فرض در texmf-dist/web2c قرار دارد، اما بسته به توزیع شما ممکن است در جای دیگری واقع شده باشد. هر درخت texmf خوانده‌شده باید updmap.cfg مخصوص به خود را داشته باشد.
فایل نگاشت برای ۳۵ فونت استاندارد PostScript جهت استفاده با dvips(1).
فایل نگاشت برای ۳۵ فونت استاندارد PostScript جهت استفاده با pdftex(1).
فایل نگاشت برای ۳۵ فونت استاندارد PostScript جهت استفاده با ps2pk(1).

فایل‌های خروجی:

برای dvips(1). در صورت فعال بودن گزینهٔ dvipsPreferOutline همانند psfonts_t1.map است، در غیر این صورت مشابه psfonts_pk.map خواهد بود.
برای dvips(1). بدون اطلاعات فایل‌های MixedMap. (تنظیم dvipsPreferOutline نادیده گرفته می‌شود.)
برای dvips(1). همراه با اطلاعات فایل‌های MixedMap. (تنظیم dvipsPreferOutline نادیده گرفته می‌شود.)
برای dvips(1). همیشه ۳۵ فونت استاندارد را بارگیری می‌کند. (تنظیم dvipsDownloadBase35 نادیده گرفته می‌شود.)
برای dvips(1). هرگز ۳۵ فونت استاندارد را بارگیری نمی‌کند. (تنظیم dvipsDownloadBase35 نادیده گرفته می‌شود.)
برای pdftex(1). در صورت فعال بودن گزینهٔ pdftexDownloadBase14 مشابه pdftex_dl14.map است، در غیر این صورت همانند pdftex_ndl14.map خواهد بود.
برای pdftex(1). همیشه ۱۴ فونت استاندارد را بارگیری می‌کند.
برای pdftex(1). هرگز ۱۴ فونت استاندارد را بارگیری نمی‌کند.
مشابه فایل psfonts.map است، اما بارگیری همهٔ فونت‌ها را اجباری می‌کند؛ بنابراین این فایل نگاشت می‌تواند همراه با xdvi(1) و ps2pk(1) استفاده شود.

فایل‌های پیکربندی برای dvips(1):

به‌جای psfonts.map، فایل builtin35.map را بارگذاری می‌کند.
به‌جای psfonts.map، فایل download35.map را بارگذاری می‌کند.
به‌جای psfonts.map، فایل psfonts_t1.map را بارگذاری می‌کند.
به‌جای psfonts.map، فایل psfonts_t1.map را بارگذاری کرده و دارای تنظیمات اضافی برای تولید PDF است.
به‌جای psfonts.map، فایل psfonts_pk.map را بارگذاری می‌کند.
به‌جای psfonts.map، فایل psfonts_t1.map را بارگذاری می‌کند. (برای سازگاری با نسخه‌های قدیمی.)
به‌جای psfonts.map، فایل psfonts_t1.map را بارگذاری می‌کند..SH "گزارش باگ‌ها (REPORTING BUGS)" گزارش باگ‌ها به: tex-live@tug.org
صفحه اصلی TeX Live: https://tug.org/texlive
February 2026 TeX Live