OTFTOTFM(1) General Commands Manual OTFTOTFM(1)

otftotfm - ایجاد معیارهای قلم TeX از قلم‌های OpenType

otftotfm [-a] [options] fontfile [texname]

دستور otftotfm فایل‌های کدگذاری و معیارهای قلم مورد نیاز برای استفاده از یک قلم OpenType در TeX را ایجاد می‌کند. شما یک فایل قلم OpenType با پسوند «.otf» یا «.ttf»، یک کدگذاری پایه‌ای «.enc»، و یک نام TeX به عنوان «texname» برای قلم حاصل ارائه می‌دهید و مشخص می‌کنید که کدام ویژگی‌های OpenType باید فعال شوند. سپس otftotfm فایل‌های معیار مرتبط با TeX مربوطه (معیارهای قلم TeX با پسوند «.tfm»، قلم‌های مجازی «.vf»، و فایل‌های کدگذاری «.enc») را تولید و نصب می‌کند. این ابزار بر روی هر دو نوع قلم‌های OpenType مبتنی بر PostScript و TrueType کار می‌کند، هرچند پشتیبانی از قلم‌های مبتنی بر TrueType تنها با pdftex به آسانی عمل خواهد کرد.

ساده‌ترین روش برای استفاده از otftotfm با گزینهٔ -a است؛ بخش «حالت خودکار» (Automatic Mode) در زیر را ببینید. بدون -a، دستور otftotfm تمام فایل‌های خروجی خود را در دایرکتوری جاری می‌نویسد.

پس از اجرای «otftotfm fontfile texname» و نصب نتایج (به صورت دستی یا با -a)، می‌توانید از قلم OpenType در plain TeX با دستوری شبیه به این استفاده کنید:

\font\myfont=texname at 10pt
{\myfont This text uses the OpenType font.}

کاربران LaTeX عموماً یک فایل ورودی «.fd» ایجاد می‌کنند تا دستورهایی مانند «\renewcommand{\rmdefault}{TeXName}» به درستی کار کنند. برای اطلاعات بیشتر بخش مثال‌ها (EXAMPLES) را ببینید؛ در صورت بروز مشکل بخش‌های خطاها (DIAGNOSTICS) و پرسش‌های متداول (FREQUENTLY ASKED QUESTIONS) را بررسی کنید.

قلم‌های OpenType از ویژگی‌های اختیاری پشتیبانی می‌کنند که ظاهر آن‌ها را تغییر می‌دهد. از گزینهٔ -f برای فعال‌سازی ویژگی‌های انتخاب‌شده استفاده کنید. برای نمونه، «-fsmcp» در قلم‌هایی که از آن پشتیبانی می‌کنند، حروف کوچک را با حروف بزرگ کوچک متناظر (small capitals) جایگزین می‌کند.

معمولاً شما حداقل گزینه‌های «-fkern» و «-fliga» را ارائه می‌دهید که فاصله‌گذاری جفتی (pair kerns) و هم‌بست‌های f را فعال می‌کنند. دیگر ویژگی‌های کاربردی شامل «-fcpsp» برای فاصله‌گذاری حروف بزرگ؛ «-fdlig» برای هم‌بست‌های اختیاری؛ «-flnum»، «-fonum»، «-fpnum» و «-ftnum» برای کنترل گلیف‌های ارقام؛ «-fsmcp» برای حروف بزرگ کوچک؛ «-fswsh» برای گونه‌های پیچش‌دار (swash)؛ و «-fcswh» برای گونه‌های پیچش‌دار زمینه‌ای (contextual swash) هستند. برای اطلاعات بیشتر بخش فهرست راهنمای ویژگی‌ها (FEATURE DIRECTORY) در زیر را ببینید. برنامهٔ otfinfo(1) گزارش می‌دهد که یک قلم از چه ویژگی‌هایی پشتیبانی می‌کند؛ دستور «otfinfo -f fontfile» را اجرا کنید.

گزینه‌های مربوط به ویژگی‌ها همچنین می‌توانند یک ویژگی را تنها بر روی زیرمجموعه‌ای از نویسه‌ها در قلم اعمال کنند. برای نمونه، «--lf smcp» تنها حروف را با حروف بزرگ کوچک جایگزین می‌کند، در حالی که «-fsmcp» ممکن است علاوه بر آن ارقام و علائم نگارشی را نیز با نسخه‌های حروف بزرگ کوچک جایگزین سازد.

حالت خودکار، که با گزینهٔ -a/--automatic فعال می‌شود، فایل‌های متریک و کدگذاری قلم را در جایی که TeX بتواند آن‌ها را پیدا کند نصب می‌کند، و علاوه‌بر این یک قلم Type 1 و نگاشت برای dvips(1). نصب می‌نماید. این امر نیازمند یک نصب TeX است که از استاندارد «ساختار دایرکتوری TeX» یا TeX Directory Structure (http://www.tug.org/tds) پیروی کند، مانند اغلب نصب‌های TeX در Unix.

حالت خودکار باید بدون مشکل و به‌صورت پیش‌فرض اجرا شود. Otftotfm فایل‌های متریک، کدگذاری‌ها، فایل‌های map و قلم‌های Type 1 را در $HOME/.texmf-var یا هر دایرکتوری قابل نوشتن TEXMF دیگری نصب کرده، و updmap(1) را برای به‌روزرسانی فهرست‌های سراسری قلم‌های نصب‌شده اجرا می‌کند. (در نصب‌های قدیمی‌تر teTeX، ممکن است ابتدا نیاز باشد فایل updmap.cfg سیستم را در $HOME/texmf/web2c کپی کرده و mktexlsr(1). را اجرا کنید. در نصب‌های جدیدتر TeXLive، ممکن است نیاز به مقداردهی متغیر محیطی TEXMFVAR داشته باشید.) سپس می‌توانید دستور «otftotfm -a fontfile texname» را اجرا کنید و بلافاصله با استفاده از texname مشخص‌شده، در TeX به قلم ارجاع دهید. مجدداً، برای دسترسی آسان به قلم از طریق LaTeX یا ConTeXt، باید فایل‌های «.fd» و/یا typescriptها را بنویسید. در صورت بروز مشکل با این دستورالعمل‌ها، بخش خطاها (DIAGNOSTICS) را ببینید.

در حالت خودکار، otftotfm مسیر $TEXMFVAR یا $TEXMF شما را برای یافتن یک دایرکتوری قابل نوشتن جستجو می‌کند، سپس فایل‌ها را در زیر آن درخت دایرکتوری به‌صورت زیر نصب می‌نماید:

نوع فایل دایرکتوری نام فایل
TFM TEXMF/fonts/tfm/vendor/typeface/ texname[--base].tfm
VF TEXMF/fonts/vf/vendor/typeface/ texname.vf
PL TEXMF/fonts/pl/vendor/typeface/ texname[--base].pl
VPL TEXMF/fonts/vpl/vendor/typeface/ texname.vpl
کدگذاری TEXMF/fonts/enc/dvips/vendor/ a_signature.enc
یا TEXMF/dvips/vendor/
نگاشت قلم TEXMF/fonts/map/dvips/vendor/ vendor.map
یا TEXMF/dvips/vendor/

عبارت «TEXMF» مخفف دایرکتوری قابل نوشتن TEXMF است. Texname نام قلم ارائه‌شده به‌عنوان آرگومان دوم otftotfm است. رشته‌های vendor و typeface توسط TDS الزامی هستند؛ این مقادیر به‌ترتیب به‌طور پیش‌فرض برابر با «lcdftools» و نام خانوادهٔ قلم هستند، اما گزینه‌های --vendor و --typeface را نیز ببینید. Signature یک امضای کدگذاری مات ۶ نویسه‌ای است.

Otftotfm همچنین یک فایل قلم مناسب برای چاپ نصب می‌کند. قلم‌های OpenType مبتنی بر PostScript به قالب Type 1 تبدیل شده و به‌عنوان قلم‌های PFB نصب می‌شوند. قلم‌های مبتنی بر TrueType معمولاً به همان شکل موجود نصب می‌شوند، زیرا pdftex و pdflatex می‌توانند TrueType را مستقیماً بخوانند؛ اما اگر گزینهٔ --type42 را ارائه دهید، otftotfm قلم‌های TrueType را به قالب Type 42 که برای dvips قابل فهم است تبدیل می‌کند. Otftotfm فایل‌های قلمِ موجود را بازنویسی نمی‌کند.

مسیرهای نصب به شرح زیر است، که در آن PSname نام PostScript قلم است.

PFB TEXMF/fonts/type1/vendor/typeface/ PSname.pfb
TrueType TEXMF/fonts/truetype/vendor/typeface/ fontfile
Type 42 TEXMF/fonts/type42/vendor/typeface/ PSname.t42

می‌توانید این دایرکتوری‌ها را با متغیرهای محیطی و گزینه‌ها به‌صورت زیر بازتعریف کنید. گزینه‌ها بر متغیرهای محیطی اولویت دارند.

نوع فایل متغیر محیطی گزینه
TFM TFMDESTDIR --tfm-directory
VF VFDESTDIR --vf-directory
PL PLDESTDIR --pl-directory
VPL VPLDESTDIR --vpl-directory
کدگذاری ENCODINGDESTDIR --encoding-directory
PFB T1DESTDIR --type1-directory
TrueType TRUETYPEDESTDIR --truetype-directory
Type 42 T42DESTDIR --type42-directory
نگاشت قلم - --map-file

Otftotfm هنگام نصب فایل‌ها زیر TEXMF، فایل TEXMF/ls-R را به‌روزرسانی خواهد کرد. همچنین پس از تغییر یک فایل map، برنامهٔ updmap(1) را اجرا می‌کند، مگر اینکه گزینهٔ --no-updmap ارائه شده باشد. با این حال، اگر فایل اجرایی‌ای با نام TEXMF/dvips/updmap وجود داشته باشد، این فایل (از دایرکتوری TEXMF/dvips ) به‌جای updmap سراسری اجرا می‌شود. این امکان برای آن است که در صورت تمایل بتوانید نسخهٔ سریع و سفارشی‌سازی‌شده‌ای از updmap بنویسید. این بخش با استفاده از MinionPro روشی را برای نصب فونت‌های OpenType برای LaTeX نشان می‌دهد. کار را با شش فونت آغاز می‌کنیم: "MinionPro-Regular.otf"، "MinionPro-It.otf"، "MinionPro-Semibold.otf"، "MinionPro-SemiboldIt.otf"، "MinionPro-Bold.otf" و "MinionPro-BoldIt.otf".

نخستین وظیفه ما تصمیم‌گیری درباره نحوه کدگذاری فونت‌ها است. «طرح کدگذاری» (encoding scheme) توسط TeX برای تصمیم‌گیری درباره نحوه حروف‌چینی اعراب‌ها و نمادهایی مانند "$" به کار می‌رود. طرح کدگذاری "LY1" پشتیبانی مناسبی از اکسنت‌ها و نشانه‌های تغییر تلفظ دارد و انتخابی خوب برای بسیاری از فونت‌های OpenType است. LY1 با فایل کدگذاری "texnansx.enc" مطابقت دارد، بنابراین ما به otftotfm گزینه "-e texnansx" را خواهیم داد.

نکته تخصصی: اگر دقیق‌تر بگوییم، LY1 با فایل کدگذاری "texnansi.enc" مطابقت دارد. از آنجا که نسخه "texnansx.enc" نویسه‌های تکراری را حذف می‌کند، فضای بیشتری برای گلیف‌های اختصاصی فونت دارد و معمولاً انتخاب بهتری است؛ اما اگر قصد دارید نویسه‌هایی مانند "ae" را مستقیماً در ویرایشگر خود تایپ کنید (به‌جای استفاده از دستورات TeX مانند \ae)، باید از "texnansi.enc" استفاده کنید.

در مرحله بعد، درباره یک طرح نام‌گذاری برای فایل‌های متریک فونت تصمیم می‌گیریم. بیایید از نام‌های فونت OpenType به عنوان پایه استفاده کنیم. (عموماً نیازی به پیروی از طرح نام‌گذاری شش‌نویسه‌ای "Karl Berry" نیست.) صرفاً برای اینکه اگر بعداً بازگشتیم و طرح کدگذاری متفاوتی اضافه کردیم مشکلی پیش نیاید، "LY1--" را به ابتدای هر نام اضافه می‌کنیم.

اکنون آماده اجرای otftotfm برای نخستین دسته از فونت‌ها هستیم. به گزینه‌های "-fkern -fliga" توجه داشته باشید که به جفت‌های کرنینگ (kern) و خط‌وصل‌های (ligatures) پیش‌فرض "f" دسترسی پیدا می‌کنند.

otftotfm -a -e texnansx MinionPro-Regular.otf \
        -fkern -fliga LY1--MinionPro-Regular
otftotfm -a -e texnansx MinionPro-It.otf \
        -fkern -fliga LY1--MinionPro-It
otftotfm -a -e texnansx MinionPro-Semibold.otf \
        -fkern -fliga LY1--MinionPro-Semibold
otftotfm -a -e texnansx MinionPro-SemiboldIt.otf \
        -fkern -fliga LY1--MinionPro-SemiboldIt
otftotfm -a -e texnansx MinionPro-Bold.otf \
        -fkern -fliga LY1--MinionPro-Bold
otftotfm -a -e texnansx MinionPro-BoldIt.otf \
        -fkern -fliga LY1--MinionPro-BoldIt

فونت‌های حروف کوچک بزرگ‌نما (small-caps) با یک گزینه اضافی "-fsmcp" تولید می‌شوند. همچنین عبارت "--fsmcp" را به انتهای نام‌های متریک فونت اضافه می‌کنیم تا از فونت‌های معمولی متمایز شوند. با این که فونت‌های ایتالیک MinionPro از حروف کوچک بزرگ‌نما پشتیبانی می‌کنند، اما طرح انتخاب فونت LaTeX به آسانی نمی‌تواند به آن‌ها دسترسی یابد، به همین خاطر از آن‌ها صرف‌نظر کرده‌ایم.

otftotfm -a -e texnansx MinionPro-Regular.otf \
        -fkern -fliga -fsmcp LY1--MinionPro-Regular--fsmcp
otftotfm -a -e texnansx MinionPro-Semibold.otf \
        -fkern -fliga -fsmcp LY1--MinionPro-Semibold--fsmcp
otftotfm -a -e texnansx MinionPro-Bold.otf \
        -fkern -fliga -fsmcp LY1--MinionPro-Bold--fsmcp

برای دسترسی به ارقام سبک کهن (old-style numerals)، کافی است گزینه "-fonum" را به هر فراخوانی اضافه کنید -- و برای جلوگیری از سردرگمی، عبارت "--fonum" را به نام‌های متریک فونت بیفزایید.

در این مرحله، تمام فایل‌های متریک فونت ما نصب شده‌اند و نهایتاً زمان ایجاد فایل ".fd" فرا رسیده است. (قالب ".fd" در The LaTeX Companion مستند شده است.) بیایید نام خانواده فونت LaTeX را "MinionPro" بگذاریم. در این صورت فایل ".fd" با نام "LY1MinionPro.fd" خواهد بود و شامل موارد زیر است:

\DeclareFontFamily{LY1}{MinionPro}{}
\DeclareFontShape{LY1}{MinionPro}{m}{n}%
        { <-> LY1--MinionPro-Regular }{}
\DeclareFontShape{LY1}{MinionPro}{m}{it}{ <-> LY1--MinionPro-It }{}
\DeclareFontShape{LY1}{MinionPro}{m}{sc}%
        { <-> LY1--MinionPro-Regular--fsmcp }{}
\DeclareFontShape{LY1}{MinionPro}{sb}{n}%
        { <-> LY1--MinionPro-Semibold }{}
\DeclareFontShape{LY1}{MinionPro}{sb}{it}%
        { <-> LY1--MinionPro-SemiboldIt }{}
\DeclareFontShape{LY1}{MinionPro}{sb}{sc}%
        { <-> LY1--MinionPro-Semibold--fsmcp }{}
\DeclareFontShape{LY1}{MinionPro}{b}{n}{ <-> LY1--MinionPro-Bold }{}
\DeclareFontShape{LY1}{MinionPro}{b}{it}%
        { <-> LY1--MinionPro-BoldIt }{}
\DeclareFontShape{LY1}{MinionPro}{b}{sc}%
        { <-> LY1--MinionPro-Bold--fsmcp }{}
\DeclareFontShape{LY1}{MinionPro}{bx}{n}%
        { <-> ssub * MinionPro/b/n }{}
\DeclareFontShape{LY1}{MinionPro}{bx}{it}%
        { <-> ssub * MinionPro/b/it }{}
\DeclareFontShape{LY1}{MinionPro}{bx}{sc}%
        { <-> ssub * MinionPro/b/sc }{}

اکنون آماده‌ایم تا از MinionPro در LaTeX استفاده کنیم؛ با خطوطی مانند این در مقدمه (preamble) سند:

\usepackage[LY1]{fontenc}
\renewcommand{\rmdefault}{MinionPro}
\renewcommand{\bfdefault}{b}

البته در هر زمان می‌توانیم گونه‌های بیشتری از MinionPro را با استفاده از otftotfm اضافه کنیم؛ به محض ویرایش فایل "MinionPro.fd"، آن‌ها برای LaTeX در دسترس خواهند بود..SH "گزینه‌ها (OPTIONS)" در مورد گزینه‌های طولانی، تنها تایپ به اندازه‌ای از نویسه‌ها که گزینه را منحصربه‌فرد کند کافی است.

اعمال ویژگی‌های مناسب برای سامانهٔ خط script و سامانهٔ زبان lang. سامانه‌های خط و زبان نام‌های ۲ تا ۴ حرفی هستند که توسط Microsoft و Adobe تخصیص داده شده‌اند. نمونه‌ها شامل “latn” (خط لاتین)، “grek” (خط یونانی) و “yi.YIC” (خط یی با نویسه‌های کلاسیک) می‌شوند. اگر lang مشخص نشود، otftotfm از سامانهٔ زبان پیش‌فرض برای آن خط استفاده خواهد کرد. می‌توانید این گزینه را چندین بار مشخص کنید. برای دیدن فهرست خط‌ها و زبان‌هایی که قلم پشتیبانی می‌کند، فرمان “otfinfo -s font” را اجرا کنید. مقدار پیش‌فرض “latn” است.
فعال‌سازی ویژگی به نام feature. ویژگی‌ها نام‌هایی چهار حرفی هستند که توسط Microsoft و Adobe تعیین شده‌اند؛ آن‌ها بیانگر رفتارهای قلم مانند فاصله‌گذاری متناسب حروف (kerning) یا حروف کوچک‌بزرگ (small-capitals) هستند. نمونه‌ها شامل “liga” (حروف متصل پیش‌فرض)، “dlig” (حروف متصل اختیاری)، “kern” (جفت‌نویسی) و “c2sc” (جایگزینی حروف بزرگ با حروف کوچک‌بزرگ) می‌شوند. برای اعمال چندین ویژگی، این گزینه را چند بار مشخص کنید. برای دیدن فهرست ویژگی‌هایی که قلم برای یک خط مشخص پشتیبانی می‌کند، فرمان “otfinfo -f [--script option] font” را اجرا کنید. پیش‌فرض، تمام ویژگی‌های مورد نیاز برای خط‌های انتخاب‌شده است.
فعال‌سازی ویژگی به نام feature، اما فقط برای حروف (letters). برای نمونه، گزینهٔ “-f smcp” ویژگی small-caps را برای تمامی نویسه‌ها در کدگذاری اعمال می‌کند؛ این امر ممکن است علاوه‌بر حروف، روی علائم نگارشی و ارقام نیز اثر بگذارد. گزینهٔ “--lf smcp” ویژگی small-caps را فقط روی حروف اعمال خواهد کرد، یعنی نویسه‌هایی که ویژگی یونیکد “Letter” را دارا هستند.
--subs-filter pattern
محدود کردن نویسه‌هایی که otftotfm جایگزین خواهد کرد. جایگزینی روی نویسهٔ ورودی در صورتی مجاز است که با حداقل یکی از الگوهای --include مطابقت داشته و با هیچ‌یک از الگوهای --exclude تطابق نداشته باشد. هر الگو برای تمامی ویژگی‌های بعدی اعمال می‌شود، به جز اینکه گزینهٔ --clear الگوهای انباشته‌شده را پاک می‌کند. گزینهٔ --subs-filter pattern مانند --clear-subs و به دنبال آن --include-subs pattern عمل می‌کند. برای ساختار نحوی الگو، GLYPH PATTERNS را در ادامه ببینید.

در خط فرمان زیر، الگوی '<Number>' ویژگی “onum” را وادار می‌سازد تا تنها اعداد را جایگزین کند (و نه برای نمونه، علائم نگارشی را). ویژگی “salt” همچنان می‌تواند هر نویسه‌ای را جایگزین کند.

otftotfm -fsalt --include-subs="<Number>" -fonum ...
عریض‌تر کردن یا گسترش قلم با ضریب fac. مشابه گزینهٔ -e در afm2tfm(1).
مورب یا کج کردن قلم به اندازهٔ amt. مشابه گزینهٔ -s در afm2tfm(1).
افزودن فاصلهٔ میان‌نویسه‌ای (letterspace) به هر نویسه به میزان amt واحد، که در آن ۱۰۰۰ واحد برابر با یک em است. پهنای هر نویسه به اندازهٔ amt افزایش می‌یابد، و نیمی از این فضا بین فاصله‌های حاشیهٔ جانبی (sidebearing) تقسیم می‌شود. به منظور حفظ تراز متن در انتهای خطوط، جفت‌نویسی‌های نویسهٔ مرزی (boundary-character kerns) اضافه می‌شوند.
نادیده گرفتن پهناهای ادعاشده برای نویسه‌ها توسط قلم، و در عوض محاسبهٔ معیارهای افقی از روی کادرهای محاطی (bounding boxes). این کار منجر به ایجاد فاصله‌گذاری مشابه قلم Computer Modern Math Italic، همراه با افزایش فاصله‌های جانبی برای حروفی مانند f و j می‌شود.

اگر مقدار skewchar را مشخص کنید (عددی بین ۰ تا ۲۵۵ یا یک نویسهٔ تکی)، otftotfm جفت‌نویسی‌هایی را به صورت اکتشافی به قلم می‌افزاید که ممکن است موقعیت اعراب‌ها (accent) را در حالت ریاضی بهبود ببخشد. برای بهره‌گیری از این قابلیت، باید skewchar را با فرمانی مانند “\skewchar\font=skewchar” به TeX معرفی کنید.

تنها جفت‌های فاصله‌گذاری (kerning pairs) را در خروجی قرار می‌دهد که مقدار قدر مطلق آن‌ها N یا بزرگ‌تر باشد. مقادیر کمینهٔ بزرگ‌تر برای جفت‌نویسی، دقت فاصله‌گذاری را کاهش می‌دهند اما حجم فایل TFM خروجی را کم می‌کنند. کمینهٔ پیش‌فرض جفت‌نویسی ۲٫۰، یا ۰٫۰۰۲ em است.
تغییر مقیاس پهنای فاصلهٔ میان کلمات با ضریب fac.
تنظیم اندازهٔ طراحی (design size) قلم خروجی روی size، مقداری بر حسب پوینت TeX. این مقدار عمدتاً جنبهٔ مستنداتی دارد، زیرا LaTeX اساساً اندازهٔ طراحی قلم‌ها را نادیده می‌گیرد، اما plain TeX ممکن است گاهی از اندازهٔ طراحی برای تصمیم‌گیری دربارهٔ اندازه قلم استفاده کند. (بارگذاری یک قلم در TeX با عبارت “at” در یک اندازهٔ مشخص، عملاً اندازهٔ طراحی را نادیده می‌گیرد؛ بارگذاری قلم به صورت ساده یا “scaled” با یک ضریب مشخص از اندازهٔ طراحی استفاده می‌کند.) مقدار پیش‌فرض از ویژگی اندازهٔ نوری (optical size) قلم ورودی گرفته می‌شود، یا در صورت نبود چنین ویژگی‌ای 10pt خواهد بود.
تنظیم قلم به عنوان عرض‌ثابت (نویسهٔ فاصلهٔ آن هیچ کشش یا جمع‌شدگی نخواهد داشت). در حالت عادی به این گزینه نیازی ندارید؛ خود قلم به otftotfm اطلاع می‌دهد که آیا عرض‌ثابت است یا خیر. نقطه مقابل --fixed-width گزینهٔ --proportional-width است.
تنظیم زاویهٔ مورب (italic angle) پیش‌فرض قلم خروجی روی angle، مقداری بر حسب درجه. این مقدار توسط TeX برای جای‌گذاری اعراب‌ها استفاده می‌شود. در حالت عادی به این گزینه نیازی نخواهید داشت؛ خود قلم زاویهٔ موربش را به otftotfm اعلام می‌کند.
تنظیم x-height قلم خروجی روی val. این مقدار توسط TeX برای جای‌گذاری اعراب‌ها استفاده می‌شود. در حالت عادی به این گزینه نیازی نخواهید داشت. Val می‌تواند عددی بیان‌شده بر حسب واحدهای قلم باشد؛ ‘x’ که از ارتفاع حرف کوچک x در قلم استفاده می‌کند؛ یا ‘font’ که از متریک x-height اعلام‌شده در قلم بهره می‌برد.
انتخاب کدگذاری پایهٔ dvips(1) برای متریک‌های خروجی. Otftotfm به همان روشی که dvips عمل می‌کند، به دنبال encoding[.enc] می‌گردد؛ بنابراین ممکن است نیازی به ارائهٔ مسیر کامل فایل نباشد. از -e - برای شروع با کدگذاری پیش‌فرض قلم استفاده کنید. برای اطلاعات بیشتر، بخش ENCODINGS در زیر را ببینید.
نویسهٔ مرزی قلم را روی char تنظیم می‌کند، که باید یا یک نویسهٔ غیررقمی تکی، یا عددی بین -1 و 255 باشد. مقدار پیش‌فرض از کدگذاری گرفته می‌شود.
نویسهٔ گزینشگر جایگزینِ قلم را روی char تنظیم می‌کند، که باید یا یک نویسهٔ غیررقمی تکی یا عددی بین -1 و 255 باشد. گزینشگرهای جایگزین به نویسندگان TeX اجازه می‌دهند به صراحت بین نسخه‌های مختلف یک نویسه انتخاب کنند. به عنوان مثال، گزینهٔ '--altselector-char="*"' نویسهٔ "*" را به یک کلید ویژه تبدیل می‌کند که بین جایگزین‌ها می‌چرخد. برای نمونه، ورودی TeX با عنوان "A" نسخهٔ عادی نویسهٔ یونیکد "A" را تولید می‌کند، "A*" اولین جایگزین، "A**" دومین جایگزین و به همین ترتیب را تولید خواهد کرد. علاوه بر این، "s*t" هر اتصال اختیاری "s_t" را در قلم فعال می‌کند.

سازوکار --altselector-char از ویژگی‌های مشخص‌شده توسط گزینه‌های --altselector-feature استفاده می‌کند.

نویسهٔ گزینشگر جایگزین همچنین می‌تواند در کدگذاری مشخص شود؛ بخش ENCODINGS در زیر را ببینید. برای اطلاعات بیشتر، مقالهٔ Sivan Toledo ذکر شده در بخش «همچنین ببینید (SEE ALSO)» را ببینید.

ویژگی با نام feature را برای سازوکار --altselector-char فعال می‌کند. این گزینه را چندین بار برای فعال‌سازی چند ویژگی وارد کنید. این گزینه ویژگی‌ها را فقط برای استفاده با --altselector-char فعال می‌کند؛ برای فعال‌سازی ویژگی‌ها به‌صورت سراسری، از گزینهٔ --feature استفاده کنید. پیش‌فرض، ویژگی‌های salt و dlig است.
نویسه‌های جایگزینی را که otftotfm انتخاب خواهد کرد محدود می‌کند. یک جایگزین در صورتی استفاده می‌شود که دست‌کم با یکی از الگوهای --include مطابقت داشته باشد و با هیچ‌یک از الگوهای --exclude مطابقت نداشته باشد. هر الگو برای تمامی ویژگی‌های پس از خود اعمال می‌شود، به جز اینکه گزینهٔ --clear الگوهای انباشته‌شده را پاک می‌کند. گزینهٔ --alternates-filter pattern مانند --clear-alternates عمل می‌کند که پس از آن --include-alternates pattern آمده باشد. برای ساختار نحوی الگوها، بخش GLYPH PATTERNS در ادامه را ببینید.

قلم‌های OpenType می‌توانند جایگزین‌های زیادی به ازای هر نویسه داشته باشند که بیشتر آن‌ها کاربردی نیستند. برای نمونه، نویسهٔ "a" در WarnockPro-Regular دارای پنج جایگزین است: "ordfeminine" ،"Asmall" ،"asuperior" ،"a.end" و "orn.013". گزینهٔ --altselector-char به شما امکان می‌دهد میان این جایگزین‌ها جابه‌جا شوید، اما برای جلوگیری از پر شدن بیش از حد کدگذاری‌ها (overfull encodings)، بهتر است مواردی را که نمی‌خواهید حذف کنید. بنابراین، اگر فقط به گونه‌های ".end" علاقه‌مند بودید، می‌توانید گزینهٔ '--include-alternates="*.end"' را تعیین کنید.

در خط فرمان زیر، الگوی '*.end' برای جایگزین‌های "aalt" اعمال خواهد شد، اما برای جایگزین‌های "salt" اعمال نمی‌شود.

otftotfm -fsalt --include-alternates="*.end" -faalt ...
یک command LIGKERN به کدگذاری اضافه می‌کند. برای مثال، '--ligkern "T {L} h"' از هرگونه اتصال T_h در قلم جلوگیری می‌کند. می‌توانید چندین گزینهٔ --ligkern ارائه دهید. بخش ENCODINGS در زیر را ببینید.
یک command POSITION به کدگذاری اضافه می‌کند. برای نمونه، '--position "T 10 0 20"' ده واحد فضا به هر دو طرف نویسهٔ "T" اضافه می‌کند. می‌توانید چندین گزینهٔ --position مشخص کنید. بخش ENCODINGS در زیر را ببینید.
یک command UNICODING به کدگذاری اضافه می‌کند. برای مثال، '--unicoding "pi1 =: uni03D6"' به otftotfm دستور می‌دهد "/pi1" را به عنوان U+03D6 GREEK PI SYMBOL کدگذاری کند. می‌توانید چندین گزینهٔ --unicoding ارائه دهید. بخش ENCODINGS در زیر را ببینید.
هرگونه دستور LIGKERN و/یا UNICODING در فایل کدگذاری را نادیده می‌گیرد.
دستورهای پیش‌فرض LIGKERN مربوط به otftotfm را در بر نگیرد.
یک CODINGSCHEME به کدگذاری اضافه می‌کند. بخش ENCODINGS در زیر را ببینید.
دربارهٔ نویسه‌های کدگذاری‌شده‌ای که توسط قلم پشتیبانی نمی‌شوند هشدار می‌دهد. دستور WARNMISSING را در بخش ENCODINGS در زیر ببینید.
کدگذاری dvips(1) مورد استفاده برای قلم را انتخاب می‌کند. هیچ جایگزینی گلیفی مجاز نخواهد بود، بنابراین کدگذاری خروجی با کدگذاری ورودی برابر خواهد بود (و otftotfm کدگذاری خروجی تولید نخواهد کرد).
فقط برای افراد متخصص. به قلم خروجی اجازه می‌دهد به قلم‌های «پایه» (base) موجود ارجاع دهد. این کار می‌تواند تعداد قلم‌های پایهٔ تولیدشده توسط otftotfm را به میزان قابل‌توجهی کاهش دهد. هر سطر در آرگومان file شامل یک نام قلم TeX (مشابه --name) و یک فایل کدگذاری تحت‌اللفظی متناظر (مشابه --literal-encoding) است؛ برای مثال:.nf
WarnoProReg--eka eka
WarnoProReg--exp1 exp1
فونت‌های نام‌برده‌شده باید در اجراهای قبلی otftotfm روی همان فونت ورودی OpenType، و با همان گزینه‌های --extend و --slant اجرای فعلی ایجاد شده باشند. فونت خروجی فعلی در صورت امکان به گلیف‌های فونت‌های پایه‌ی نام‌برده ارجاع خواهد داد. اگر فونت‌های پایه تمام گلیف‌های مورد نیاز فونت خروجی را پوشش دهند، otftotfm به‌هیچ‌وجه هیچ فونت پایه‌ی جدیدی تولید نخواهد کرد. همچنین file می‌تواند با استفاده از نحو زیر به فونت‌های dotless-J ارجاع دهد:
WarnoProReg--lcdfj - dotlessj

انتخاب حالت خودکار.
تنظیم نام ارائه‌دهنده‌ی فونت، که برای مکان‌یابی فایل‌ها در TDS استفاده می‌شود. مقدار پیش‌فرض "lcdftools" است.

در حالت خودکار، TeX و ابزارهای مرتبط معمولاً فایل‌های فونت مورد نیاز را مستقل از ارائه‌دهنده‌ای که انتخاب می‌کنید پیدا خواهند کرد.

تنظیم نام تایپ‌فیس (typeface) فونت، که برای مکان‌یابی فایل‌ها در TDS استفاده می‌شود. مقدار پیش‌فرض، نام خانواده‌ی فونت فعلی پس از حذف نویسه‌های نامناسب است.
برای ایجاد فونت‌های Type 1 متناظر با فونت‌های ورودی OpenType، از cfftot1(1) استفاده نکنید.
اگر فونت ورودی فاقد dotless-j باشد، برای ساخت فونت اختصاصی dotless-j از t1dotlessj(1) استفاده نکنید.
فونت‌های مبتنی بر TrueType را نصب نکنید.
فونت‌های مبتنی بر TrueType را در قالب ترجمه‌شده‌ی Type 42 نصب کنید.
برنامه‌ی updmap(1) را اجرا نکنید. این گزینه هنگام نصب دسته‌ای از فونت‌ها می‌تواند مفید باشد؛ زیرا اجرای یک‌باره‌ی updmap در پایان، بسیار سریع‌تر از اجرای آن به‌ازای تک‌تک فونت‌ها است.
نام TeX قلم خروجی را تنظیم می‌کند، که در فایل‌های نگاشت قلم (font map) و در حالت خودکار، برای تولید نام فایل خروجی استفاده می‌شود. مقدار پیش‌فرض از نام قلم OpenType و ویژگی‌های انتخاب‌شده استخراج می‌شود.
متریک‌های خوانا برای انسانِ PL و VPL را در خروجی تولید می‌کند، نه متریک‌های باینری TFM و VF را. توجه: فایل‌های خروجی PL و VPL برنامهٔ Otftotfm معتبر هستند، اما برنامهٔ fontinst ممکن است آن‌ها را نپذیرد (تحلیل‌گر بسیار سخت‌گیری دارد). مطمئن شوید که یک --coding-scheme مشخص کرده‌اید؛ اگر کمکی نکرد، خروجی TFM را از طریق tftopl(1). پردازش کنید.
قلم‌های مجازی (فایل‌های VF و VPL) را تولید نمی‌کند. Otftotfm در صورتی که ویژگی‌های انتخاب‌شدهٔ قلم بدون قلم‌های مجازی قابل پیاده‌سازی نباشند، هشدار خواهد داد.
فایل کدگذاری (encoding) تولید نمی‌کند.
تنها یک فایل کدگذاری تولید می‌کند؛ هیچ خروجی دیگری تولید نخواهد شد. فایل کدگذاری در file، یا در صورت ارائه نشدن آرگومان file، در خروجی استاندارد نوشته می‌شود.
خط نگاشت قلم (font map) را برای این قلم تولید نمی‌کند.

--type42-directory=dir
پوشهٔ مورد استفاده برای انواع مختلف خروجی را تنظیم می‌کند. هر پوشه می‌تواند توسط یک متغیر محیطی تنظیم شود، و در حالت خودکار به طور پیش‌فرض یک پوشهٔ TDS است، یا در غیر این صورت به "." اشاره دارد. نام متغیرهای محیطی و مکان‌های پیش‌فرض TDS در بخش حالت خودکار (Automatic Mode) در بالا توضیح داده شده‌اند. گزینهٔ --directory پوشهٔ پیش‌فرض را برای تمام انواع خروجی تنظیم می‌کند.
فایلی را مشخص می‌کند که otftotfm خط نگاشت قلم را برای این قلم در آن می‌نویسد. مقدار پیش‌فرض در حالت دستی، خروجی استاندارد است، و در حالت خودکار، "TEXMF/fonts/map/dvips/vendor/vendor.map" (یا "TEXMF/dvips/vendor/vendor.map" در سیستم‌های قدیمی‌تر) است.
استفاده از file به‌عنوان فهرست گلیف Adobe، که به ترجمه نام‌های گلیف به مقادیر کد Unicode کمک می‌کند. برای گنجاندن چند فایل، این گزینه را چند بار مشخص کنید. برای اطلاعات بیشتر، بخش «کدگذاری‌ها (ENCODINGS)» را در ادامه ببینید.
نوشتن پیام‌های پیشرفت در خطای استاندارد.
هیچ فایلی ایجاد یا ویرایش نشود. در عوض، پیام‌هایی درباره روند فرضی پیشرفت برنامه در خطای استاندارد نوشته شود.
تولید تمام فایل‌ها، حتی اگر به نظر برسد نسخه‌هایی از آن‌ها از قبل نصب شده است.
هیچ پیام خطایی ایجاد نشود.
تنظیم پرچم‌های اشکال‌زدایی جستجوی مسیر. برای جزئیات به راهنمای Kpathsea مراجعه کنید.
چاپ اطلاعات نحوه استفاده و خروج.
چاپ شماره نسخه و اطلاعات کوتاه عدم ضمانت و خروج.

Otftotfm فایل‌های کدگذاری را به‌صورت Unicode تفسیر می‌کند. برای نمونه، فرض کنید یک کدگذاری ورودی دارای «/dotlessi» در موقعیت ۱۰ باشد. Otftotfm تشخیص می‌دهد که موقعیت ۱۰ باید شامل نویسه یونیکد U+0131 LATIN SMALL LETTER DOTLESS I باشد، و از گلیف قلم برای آن نویسه استفاده می‌کند (که احتمالاً توسط ویژگی‌های فعال تغییر یافته است). گلیف انتخاب‌شده ممکن است «dotlessi» نامیده نشود؛ تنها مقدار Unicode اهمیت دارد.

Otftotfm با استفاده از جدولی که توسط Adobe منتشر شده است (بخش «همچنین ببینید (SEE ALSO)» ارجاعی به آن دارد)، همراه با افزونه‌هایی برای TeX، مقادیر Unicode را به نام‌های گلیف اختصاص می‌دهد. برای کنترل دقیق‌تر، دستورهای UNICODING را به فایل کدگذاری ورودی اضافه کنید. این دستورها ساختار زیر را دارند:

% UNICODING glyph =: choice1 [choice2 ...] ;
این به otftotfm می‌گوید که گلیف با نام glyph به اولین مقدار Unicode در فهرست choice که نویسه‌ای در قلم دارد ترجمه شود. Glyph و choiceها نام‌های گلیف PostScript هستند؛ علامت «%» در ابتدا الزامی است؛ و هر خط UNICODING می‌تواند شامل چندین دستور باشد که با یک نقطه ویرگول فاصله‌دار از یکدیگر جدا شده‌اند. برای نمونه،
% UNICODING pi1 =: uni03D6 ;
نویسه «/pi1» را به‌صورت U+03D6 GREEK PI SYMBOL کدگذاری می‌کند، و
% UNICODING Delta =: uni0394 uni2206 ;
باعث می‌شود U+0394 GREEK CAPITAL LETTER DELTA نسبت به U+2206 INCREMENT به‌عنوان کدگذاری «/Delta» ترجیح داده شود. همچنین می‌توانید نام‌های گلیف را ارائه دهید:
% UNICODING Delta =: Deltagreek Delta ;
یک نگاشت بدون مقادیر Unicode، آن گلیف را از کدگذاری ورودی حذف می‌کند. برای نمونه، این دستور نویسه‌های متصل f (f-ligatures) را از کدگذاری پاک می‌کند:
% UNICODING ff =: ; fi =: ; fl =: ; ffi =: ; ffl =: ;
این جایگاه‌ها برای استفاده اختصاصی خود otftfm در دسترس قرار می‌گیرند؛ برای نمونه برای نویسه‌های دیگری که توسط قلم مورد نیاز هستند. (اگر خود حروف متصل f توسط قلم مورد نیاز باشند، مثلاً توسط ویژگی 'liga'، در صورت امکان در جایگاه‌های پیشین خود ذخیره خواهند شد.) اگر نمی‌خواهید otftotfm از جایگاهی استفاده کند، گلیف را به 'emptyslot' نگاشت کنید. برای نمونه، اگر قلم فاقد گلیف 'ff' باشد، این دستور جایگاه 'ff' را استفاده‌نشده رها می‌کند:
% UNICODING ff =: ff emptyslot ;
(توجه داشته باشید که بیشتر قلم‌های OpenType نمایشی دیداری برای جایگاه‌های کدگذاری استفاده‌نشده ارائه می‌دهند، یعنی کادری با یک علامت ضربدر X در داخل آن.)

توضیحات LIGKERN در کدگذاری می‌توانند حروف متصل (ligature) اضافه کرده و کرنینگ‌ها (kerns) را مهار کنند، همان‌طور که در afm2tfm(1). وجود دارد. برای افزودن یک لیگاتور، بنویسید:

% LIGKERN glyph1 glyph2 =: result ;
عملگر «=:» بیانگر یک اتصال معمولی است که در آن هر دو گلیف ورودی حذف شده و با result جایگزین می‌شوند. برای حفظ گلیف سمت چپ، جهت اعمال اثری مانند «glyph1 glyph2 =: glyph1 result»، به‌جای آن از «|=:» استفاده کنید؛ برای حفظ گلیف سمت راست، از «=:|» استفاده کنید. برای حذف تمام کرنینگ‌ها میان دو نویسه، بنویسید:
% LIGKERN glyph1 {} glyph2 ;
نویسه «*» با هر نویسه‌ای تطبیق می‌یابد، بنابراین
% LIGKERN a {} * ;
تمام کرنینگ‌ها با «a» به‌عنوان نویسه سمت چپ را حذف می‌کند، و
% LIGKERN * {} * ;
تمام کرنینگ‌ها را حذف می‌کند.

Otftotfm همچنین از نحو گسترش‌یافته برای تعیین مقادیر کرنینگ و جلوگیری از لیگاتورها پشتیبانی می‌کند. برای افزودن یک کرنینگ n-واحدی میان دو گلیف، بنویسید:

% LIGKERNX glyph1 {n} glyph2 ;
که در آن n یک عدد صحیح است. این دستور:
% LIGKERNX glyph1 {L} glyph2 ;
از هرگونه لیگاتور میان glyph1 و glyph2 جلوگیری می‌کند. «{LK}» و «{KL}» هم از لیگاتورها و هم از کرنینگ‌ها جلوگیری می‌کنند.

می‌توانید --boundary-char و --altselector-char را از درون یک فایل کدگذاری با دستورهایی شبیه به این تنظیم کنید:

% LIGKERN || = boundarychar ;
% LIGKERNX ^^ = altselectorchar ;
همانند UNICODING، هر خط LIGKERN یا LIGKERNX می‌تواند شامل چندین دستور باشد که با یک نقطه ویرگول فاصله‌دار از هم جدا شده‌اند.

Otftotfm دارای یک مجموعه پیش‌فرض از هشت لیگاتور است، یعنی:

space l =: lslash ; space L =: Lslash ;
question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ;
hyphen hyphen =: endash ; endash hyphen =: emdash ;
quoteleft quoteleft =: quotedblleft ;
quoteright quoteright =: quotedblright
دستورهای LIGKERN در فایل کدگذاری و گزینه‌های --ligkern می‌توانند این پیش‌فرض‌ها را بازنویسی کنند، یا با ارائه گزینه --no-default-ligkern آن‌ها را غیرفعال کنید..PP دستور POSITION یک گلیف (glyph) را درون کادر احاطه‌کننده‌اش (bounding box) جابه‌جا می‌کند. نحو (syntax) آن به این صورت است:
% POSITION glyph pdx pdy adx ;
این دستور pdx واحد فضا به لبه سمت چپ glyph می‌افزاید؛ آن را به اندازه pdy واحد بالا می‌برد؛ و adx واحد به پهنای آن اضافه می‌کند. به عنوان مثال، برای افزودن ۱۰ واحد فضا به هر دو طرف گلیف «T»، مقدار زیر را وارد کنید:
% POSITION T 10 0 20
برای انتقال نماد «degree» به اندازه ۲۰ واحد به سمت بالا، مقدار زیر را وارد کنید:
% POSITION degree 0 20 0

دستور CODINGSCHEME طرح‌واره کدگذاری (coding scheme) را برای فونت‌هایی که از این انکودینگ استفاده می‌کنند مشخص می‌کند. این مقدار یک رشته متنی با طول کمتر از ۴۰ نویسه و فاقد پرانتز است که انکودینگ را برای اهداف TeX دسته‌بندی می‌کند. نمونه‌هایی از طرح‌واره‌های کدگذاری شامل «TEX TEXT»، «TEX MATH ITALIC» و «EXTENDED TEX FONT ENCODING - LATIN» است. برای مثال:

% CODINGSCHEME EXTENDED TEX FONT ENCODING - LATIN
بیشتر ابزارها طرح‌واره کدگذاری را نادیده می‌گیرند؛ fontinst یک استثنا است. Otftotfm از نام PostScript مربوط به انکودینگ به عنوان طرح‌واره کدگذاری پیش‌فرض استفاده می‌کند.

در نهایت، دستور WARNMISSING باعث می‌شود هر گلیفی که توسط فونت ورودی پشتیبانی نمی‌شود، به صورت کادرهای سیاه نمایش داده شود. پردازشگر dvips(1) نیز هنگام مواجهه با این گلیف‌ها یک هشدار چاپ خواهد کرد. برای مثال:

% WARNMISSING yes

گزینه‌های --unicoding، --ligkern، --position، --coding-scheme و --warn-missing دستورهای UNICODING، LIGKERN/LIGKERNX، POSITION، CODINGSCHEME و WARNMISSING را به یک انکودینگ اضافه می‌کنند و می‌توانند دستورهای موجود در خود انکودینگ را بازنویسی (override) کنند. برخی از فایل‌های انکودینگ متداول دارای دستورهایی هستند که برای فونت‌های OpenType نامناسب‌اند؛ به عنوان مثال، «t1.enc» اتصال‌های f (f-ligatures) را به صورت مستقیم و صریح درج کرده است که می‌تواند برای فونت‌های حروف کوچکِ بزرگ‌نما (small-cap) مشکلاتی ایجاد کند. گزینه --no-encoding-commands را برای نادیده گرفتن تمام دستورهای فایل انکودینگ وارد کنید. دستورهای ناشی از گزینه‌هایی مانند --ligkern در هر صورت پردازش می‌شوند.

گلیف‌های جدید، مانند حروف متصل (ligatures) و جایگزین‌های متنی (contextual substitutions)، در هر فضای خالی به انکودینگ اضافه می‌شوند و در صورت امکان از مکان‌های اصلی خود استفاده می‌کنند. اگر انکودینگ فضای کافی برای همه گلیف‌های جدید نداشته باشد، اولویت با اتصال‌های کوتاه‌تری است که از حروف بدون اعراب تشکیل شده‌اند.

Otftotfm در صورتی که یک گلیف مورد نیاز در فونت ورودی موجود نباشد، می‌تواند با استفاده از دستکاری‌های فونت مجازی برخی از گلیف‌ها را تولید کند. به‌طور مشخص، این موارد را می‌سازد:

علامت کلمه مرکب TeX (یک خط تراز یا rule با پهنای صفر از نوع «strut» با ارتفاع برابر با x-height فونت)
«cwm» با ارتفاع برابر با صعودنده‌های (ascenders) فونت
«cwm» با ارتفاع برابر با حروف بزرگ (capitals) فونت
یک فنجان مربعی (square cup) که برای نمایش فاصله‌ها استفاده می‌شود
یک «j» بدون نقطه، ساخته‌شده با t1dotlessj(1)
نسخه کرن‌شده (kerned) از «[[»
نسخه کرن‌شده (kerned) از «]]»
نماد موازی «||»
علامت «*» با تراز وسط عمودی
اعراب حلقه‌ای که در مرکز پهنای «A» قرار گرفته است
خط تیره به پهنای 2/3-em
خط تیره به پهنای 3/4-em
«(درجه)C»
نماد ترکیبی «?!»
علامت interrobang وارونه
علامت در ده‌هزار (% به همراه دو 0 اضافی)
اتصال «IJ»
اتصال «ij»
«SS» (یک sharp-s بزرگ)
نسخه حروف کوچکِ بزرگ‌نما (small-capital) از «SS»
نسخه حروف کوچکِ بزرگ‌نما (small-capital) از «FF»
نسخه حروف کوچکِ بزرگ‌نما (small-capital) از «FI»
نسخه حروف کوچکِ بزرگ‌نما (small-capital) از «FL»
نسخه حروف کوچکِ بزرگ‌نما (small-capital) از «FFI»
نسخه حروف کوچکِ بزرگ‌نما (small-capital) از «FFL»

گزینه‌های --include-subs و --include-alternates و گونه‌های --exclude و --*-filter آن‌ها، انواع الگوهای زیر را می‌پذیرند.

  • نام‌های گلیف. مثال: «Aacute». برای فونت‌های متمایل به PostScript، از گزینهٔ -g برنامهٔ otfinfo(1) برای مشاهدهٔ نام‌های گلیف فونت استفاده کنید، و دستور «cfftot1 font.otf | t1testpage» را برای تولید یک فایل PostScript که هر گلیف را نشان می‌دهد به کار ببرید.
  • الگوهای نام گلیف با استفاده از قوانین تطبیق glob به سبک پوسته: «*» با هر تعداد نویسه، «?» با هر تک‌نویسه، و «[...]» با هر نویسه‌ای در یک مجموعه تطبیق می‌یابد. مثال: «*.end».
  • ویژگی‌های دسته‌بندی یونیکد در قلاب‌های زاویه‌دار (angle brackets). مثال‌ها: «<Letter>»، «<UppercaseLetter>»، «<Lu>». فهرست کامل هر دو نام کوتاه و بلند: Letter/L، UppercaseLetter/Lu، LowercaseLetter/Ll، TitlecaseLetter/Lt، ModifierLetter/Lm، OtherLetter/Lo؛ Number/N، DecimalNumber/Nd، LetterNumber/Nl، OtherNumber/No؛ Punctuation/P، ConnectorPunctuation/Pc، DashPunctuation/Pd، OpenPunctuation/Ps، ClosePunctuation/Pe، InitialPunctuation/Pi، FinalPunctuation/Pf، OtherPunctuation/Po؛ Symbol/S، MathSymbol/Sm، CurrencySymbol/Sc، ModifierSymbol/Sk، OtherSymbol/So؛ Mark/M، SpacingMark/Mc، EnclosingMark/Me، NonspacingMark/Mn؛ Separator/Z، SpaceSeparator/Zs، LineSeparator/Zl، ParagraphSeparator/Zp؛ Other/C، Surrogate/Cs، Format/Cf، Control/Cc، PrivateUse/Co، Unassigned/Cn. مقادیر دسته‌بندی بر اساس Unicode 4.0 به‌روز است.
  • محدوده‌های یونیکد. مثال: «U+007f-U+008C».

پیشوند «!» الگو را نفی می‌کند، و می‌توانید الگوهای چندگانه را با فاصله از یکدیگر جدا کنید.

این بخش ویژگی‌های مشترک قلم‌های غربی OpenType را فهرست کرده و نحوهٔ مدیریت آن‌ها توسط otftotfm را برای فونت‌های رایج شرح می‌دهد. لطفاً در صورتی که otftotfm ویژگی مورد نیاز شما را مدیریت نمی‌کند، یا معتقدید ویژگی خاصی را به‌درستی مدیریت نمی‌کند، به نویسنده ایمیل بفرستید.

به کاربر اجازه می‌دهد از میان تمام اشکال جایگزینِ موجود برای یک نویسه انتخاب کند. این شامل مواردی چون گونه‌های بالانویس و زیرنویس، سبک‌های مختلف (برای مثال swash) و حتی تزیینات (ornaments) می‌شود. گزینهٔ --altselector-feature=aalt می‌تواند به یک --altselector-char کمک کند تا دسترسی مفیدی به جایگزین‌ها فراهم سازد، اما ویژگی aalt معمولاً به‌تنهایی کاربردی نیست. به‌جای آن ویژگی‌های salt و calt را امتحان کنید.
حروف بزرگ را با حروف کوچکِ بزرگ‌نما (small capitals) جایگزین می‌کند: به‌نوعی برعکس ویژگی مرسوم‌ترِ smcp است که حروف کوچک را با حروف کوچک بزرگ‌نما جایگزین می‌کند. پشتیبانی می‌شود.
به کاربر امکان می‌دهد میان اشکال swash متناسب با بافت متن برای هر نویسه انتخاب کند. برای مثال، با فرض کلمهٔ «DREW» در یک قلم خط شکسته (cursive)، ممکن است «R E W» به اشکال آرام‌تری نسبت به «D» آغازین تبدیل شوند. ممکن است برای یک حرف بیش از یک انتخاب وجود داشته باشد، که در این حالت کاربر باید بتواند از میان آن‌ها انتخاب کند. TeX نمی‌تواند از جایگزین‌های متنی پیچیده یا گزینش جایگزین پشتیبانی کند، اما otftotfm برخی فونت‌ها را به‌خوبی پشتیبانی می‌کند. کدگذاری ورودی باید فضای خالی زیادی برای گونه‌ها داشته باشد و باید یک نویسهٔ مرزی را مشخص کند. همچنین ببینید: cswh.
علائم نگارشی را به موقعیتی بالاتر جابه‌جا می‌کند که با توالی حروف تمام‌بزرگ همخوانی خوبی داشته باشد. برای مثال، نویسهٔ خط تیره (hyphen) که عموماً از نظر عمودی بر روی x-height تراز می‌شود، بالا برده می‌شود تا به‌طور عمودی بر روی حروف بزرگ تراز شود. همچنین ارقام متنی را با ارقام تراز (lining figures) و علامت‌های اعراب (accent) را با اشکال مناسب‌تر برای حروف بزرگ جایگزین می‌کند. پشتیبانی می‌شود.
کمی فضا به هر دو طرفِ هر حرف بزرگ اضافه می‌کند. پشتیبانی می‌شود. (با این حال، ثبات برچسب‌های OpenType پیشنهاد می‌کند که cpsp به‌طور پیش‌فرض فعال باشد، اما تنها بر روی متن‌های تمام‌بزرگ اعمال گردد؛ TeX نمی‌تواند این هوشمندی وابسته به بافت را به‌سادگی پیاده‌سازی کند.)
به کاربر اجازه می‌دهد میان اشکال swash متناسب با بافت متن برای هر نویسه انتخاب کند. برای مثال، در کلمات «Ab AC»، نخستین «A» ممکن است به یک شکل کشیده و تزیینی (swash) تبدیل شود، در حالی که دومی تبدیل نشود. ممکن است برای یک حرف بیش از یک انتخاب وجود داشته باشد، که در این حالت کاربر باید بتواند از میان آن‌ها انتخاب کند. Otftotfm برخی فونت‌ها را به‌خوبی پشتیبانی می‌کند. کدگذاری ورودی باید فضای خالی زیادی برای گونه‌های swash داشته باشد و باید یک نویسهٔ مرزی را مشخص کند. همچنین ببینید: calt و swsh.
اتصال‌های نویسه‌ایِ اختیاری (مانند «c_t»، «s_p» و «s_t») را فعال می‌کند. پشتیبانی می‌شود.
ارقام و برخی علائم نگارشی را با اشکال کوچک‌تری که روی خط کرسی (baseline) می‌نشینند جایگزین می‌کند که برای مخرج کسرها در نظر گرفته شده‌اند. پشتیبانی می‌شود.
اشکال مناسب را برای حروفی که در انتهای کلمات ظاهر می‌شوند جایگزین می‌کند. این ویژگی گونه‌های swash را انتخاب نمی‌کند؛ برای استفادهٔ عادی طراحی شده و مشخصات فنی توصیه می‌کند که به‌طور پیش‌فرض فعال باشد. تا حدی پشتیبانی می‌شود: TeX فقط فاصله‌ها را به عنوان انتهای کلمات در نظر می‌گیرد، در حالی که یک پیاده‌سازی درست احتمالاً علائم نگارشی را نیز شامل می‌شود. برای انتخاب گونه‌های swash فعال در انتهای کلمات، cswh را ببینید.
توالی‌های ساده مانند «1/2» را با کسرهای زیبا جایگزین می‌کند. پشتیبانی می‌شود، اما مراقب باشید: بسیاری از فونت‌ها «11/32» را به «1» + «1/3» + «2» تبدیل می‌کنند.
نویسه‌ها را با گونه‌های تاریخی جایگزین می‌کند. معمولاً این کار حداقل به معنای تبدیل «s» معمولی به «s کشیده» (long s) است. پشتیبانی می‌شود.
فاصلهٔ بین نویسه‌ها (فاصله‌گذاری جفتی / pair kerning) را تنظیم می‌کند. به‌طور کلی پشتیبانی می‌شود و احتمالاً باید آن را فعال کنید. به عنوان یک حالت خاص، «-fkern» می‌تواند اطلاعات kerning را از جدول «kern» در قلم‌های معمولی TrueType نیز بخواند.
اتصال‌های نویسه‌ای استاندارد مانند «f_f»، «f_i»، «f_f_j» و (در برخی فونت‌های Adobe) «T_h» را فعال می‌کند. به‌طور کلی پشتیبانی می‌شود و احتمالاً باید آن را فعال کنید.
از ارقام تراز (Lining Figures) استفاده می‌کند؛ مجموعه‌ای از ارقام که همگی تقریباً به اندازهٔ حروف بزرگ ارتفاع دارند. پشتیبانی می‌شود. مقایسه کنید با onum؛ همچنین ببینید: pnum و tnum.
ارقام و برخی علائم نگارشی را با اشکال کوچک‌تر و بالاآمده جایگزین می‌کند که برای صورت کسرها در نظر گرفته شده‌اند. پشتیبانی می‌شود، اما معمولاً مفید نیست.
از ارقام سبک قدیمی (Old-style figures) که به عنوان ارقام متنی (text figures) نیز شناخته می‌شوند استفاده می‌کند. این مجموعه ارقامی هستند که مانند حروف کوچک دارای فراز و فرود (ascender و descender) هستند. پشتیبانی می‌شود. مقایسه کنید با lnum؛ همچنین ببینید: pnum و tnum.
برای زبان‌های اسپانیایی و فرانسوی طراحی شده است. اعداد ترتیبی، مانند «2.o» را با اشکالی جایگزین می‌کند که در آن‌ها «o» بالاتر قرار گرفته است، و توالی «No» را با یک گلیف یکپارچه جایگزین می‌کند. پشتیبانی می‌شود.
برخی نویسه‌های الفبایی در فونت را با نقوش تزیینی (ornaments) جایگزین می‌کند، و نویسهٔ bullet را به مجموعه‌ای از تمام تزیینات شبیه به bullet متصل می‌سازد تا کاربر بتواند از بین آن‌ها انتخاب کند. تا حدی پشتیبانی می‌شود: TeX می‌تواند جایگزینی‌های الفبایی را مدیریت کند، اما انتخاب bullet را پشتیبانی نمی‌کند..TP 5 pnum، ارقام متناسب (Proportional Figures) ارقام دارای عرض‌های متفاوتی خواهند بود. پشتیبانی می‌شود. با tnum مقایسه کنید؛ همچنین lnum و onum را ببینید.
به کاربر امکان می‌دهد از میان اشکال جایگزین سبکی برای یک نویسه انتخاب کند. سازوکار --altselector-char دسترسی مفیدی به این ویژگی فراهم می‌کند. اگر salt را به‌طور سراسری فعال کنید، هر زمان که بیش از یک انتخاب وجود داشته باشد، otftotfm نخستین شکل جایگزین را برمی‌گزیند. همچنین aalt و ss01 را ببینید؛ salt عموماً برای TeX از aalt کاربردی‌تر است، زیرا منحصراً به جایگزین‌های سبکی اشاره دارد.
ارقام و برخی از نشانه‌های نگارشی را با اشکال کوچک‌تر و پایین‌آمده که برای زیرنویس‌ها در نظر گرفته شده‌اند جایگزین می‌کند. پشتیبانی می‌شود. با subs مقایسه کنید.
این ویژگی اطلاعاتی را دربارهٔ محدودهٔ اندازه‌های بصری که قلم برای آن‌ها در نظر گرفته شده است، ذخیره می‌کند. دلیلی برای انتخاب آن با otftotfm وجود ندارد، زیرا نباید ظاهر قلم را به هیچ شکلی تغییر دهد.
حروف کوچک را با حروف بزرگ کوچک جایگزین می‌کند. پشتیبانی می‌شود. با c2sc مقایسه کنید.
نویسه‌ها را با مجموعه‌ای یکدست از جایگزین‌های سبکی جایگزین می‌کند. با ویژگی‌هایی مانند salt در این نکته تفاوت دارد که یک مجموعهٔ سبکی یکدست است: یک ویژگی ssXX هرگز نباید شامل انتخاب از میان مجموعه‌ای از نویسه‌های جایگزین ممکن باشد. پشتیبانی می‌شود.
نویسه‌ها را با اشکال کوچک‌تر و پایین‌آمده که برای زیرنویس‌ها در نظر گرفته شده‌اند جایگزین می‌کند. پشتیبانی می‌شود. با sinf مقایسه کنید؛ برخی از قلم‌ها از sinf پشتیبانی می‌کنند اما از subs خیر.
ارقام، برخی نشانه‌های نگارشی و برخی از حروف کوچک را با اشکال کوچک‌تر و بالابرده که برای بالانویس‌ها در نظر گرفته شده‌اند جایگزین می‌کند. پشتیبانی می‌شود.
تمام فرم‌های تزیینی را برای هر نویسه فعال می‌کند. ممکن است بیش از یک شکل تزیینی وجود داشته باشد، که در این صورت otftotfm نخستین مورد فهرست‌شده را برمی‌گزیند. پشتیبانی می‌شود، با این استثنا که گونه‌های تزیینی غیر از مورد اول، در دسترس نیستند. توجه داشته باشید که برخی از قلم‌های دارای گونه‌های تزیینی، منحصراً از ویژگی cswh پشتیبانی می‌کنند.
همهٔ ارقام عرض یکسانی خواهند داشت، تا جدول‌ها و موارد مشابه از نظر بصری تراز شوند. پشتیبانی می‌شود. با pnum مقایسه کنید؛ همچنین lnum و onum را ببینید.
نویسهٔ صفر را با صفر خط‌خورده جایگزین می‌کند. پشتیبانی می‌شود.
هیچ دایرکتوری قابل‌نوشتنی در $TEXMF پیدا نشد
Otftotfm نتوانست دایرکتوری قابل‌نوشتنی در مسیر $TEXMFVAR یا $TEXMF شما پیدا کند. آیا یک دایرکتوری $HOME/.texmf-var یا $HOME/texmf ایجاد کرده‌اید؟ در این صورت، دستور "kpsewhich --expand-path='$TEXMF'" را اجرا کنید تا بررسی شود که آیا آن دایرکتوری پیدا نمی‌شود یا خیر. ممکن است لازم باشد متغیر محیطی TEXMF خود را برای مثال روی '{!!'"$HOME"'/texmf,!!$TEXMFMAIN}' تنظیم کنید (به انواع مختلف علامت‌های نقل‌قول دقت کنید؛ در رایانهٔ من، این مقدار به '{!!/home/kohler/texmf,!!$TEXMFMAIN}' بسط می‌یابد).
نویسهٔ 'char' فاقد کدبندی است، نادیده‌گرفتن حذف kern
(یا حذف ligature، حذف lig/kern، یا ligature)
این پیام‌ها نشان‌دهندهٔ یک مشکل جزئی در فایل کدبندی شما هستند: یکی از دستورهای LIGKERN به نویسه‌ای ارجاع داده است که در کدبندی وجود ندارد. این امر ممکن است ناشی از یک غلط املایی در دستور LIGKERN یا فایل کدبندی باشد، یا ممکن است یک سهل‌انگاری بوده باشد. یا فایل کدبندی را اصلاح کنید یا این هشدار را نادیده بگیرید.
امکان نگاشت 'char' به Unicode وجود ندارد
مشکل دیگری در فایل کدبندی: یکی از نام‌های گلیف در یک بلوک UNICODING نتوانست به Unicode تبدیل شود. این مسئله مشکل‌ساز است چرا که UNICODING اساساً فقط برای تبدیل نام‌های گلیف به Unicode وجود دارد. فایل کدبندی را اصلاح کنید یا این هشدار را نادیده بگیرید.
فضای کافی در کدبندی وجود ندارد، نادیده‌گرفتن N گلیف...
فضای کافی در کدبندی برای تمامی گلیف‌هایی که ویژگی‌های انتخابی شما به آن‌ها ارجاع داده‌اند وجود نداشت. برای مثال، شاید قلم نسبت به جایگاه‌های خالی موجود در کدبندی، لیگچرهای بیشتری داشته است. این هشدار را با انتخاب ویژگی‌های کمتر، یا با استفاده از کدبندی‌ای با جایگاه‌های خالی بیشتر، مانند کدبندی 7t.enc که همراه با otftotfm توزیع شده است، برطرف کنید.
گزینهٔ '-a' قلم من را به‌درستی نصب نکرد.
دوباره با گزینهٔ '--verbose' امتحان کنید، که باعث می‌شود otftotfm رفتار خود را توضیح دهد. توجه داشته باشید که به‌طور پیش‌فرض، otftotfm فایل‌هایی را که از قبل در مسیرهای جستجوی TeX سیستم شما وجود دارند (برای نمونه در دایرکتوری جاری)، دوباره نصب نخواهد کرد. برای نادیده‌گرفتن این رفتار از '--force' استفاده کنید.

چگونه می‌توانم به‌جای sharp-S آلمانی، یک «SS» در قالب حروف بزرگ کوچک (small-caps) داشته باشم؟
گزینهٔ '--unicoding "germandbls =: SSsmall"' را مشخص کنید.
چگونه می‌توانم از تشکیل لیگچرهای f در یک قلم حروف بزرگ کوچک (small-caps) جلوگیری کنم؟
این کار باید به‌طور خودکار انجام شود، اما برخی از فایل‌های کدبندی زیاده‌کار، حتی زمانی که قلم درخواست نکرده باشد، لیگچرهای f را اضافه می‌کنند. اگر این موضوع برای شما مشکل‌ساز است، گزینهٔ "--no-encoding-commands" را امتحان کنید.
به نظر می‌رسد Otftotfm زمان زیادی می‌برد.
از گزینهٔ -V برای دیدن کارهایی که انجام می‌دهد استفاده کنید. اغلب مقصر، برنامهٔ updmap(1) است؛ اگر قصد دارید otftotfm را چندین بار اجرا کنید، گزینهٔ --no-updmap را به آن بدهید و هنگامی که کارتان تمام شد، updmap را به‌صورت دستی اجرا کنید.
چگونه می‌توانم به اشکال مختلف phi ارجاع دهم؟
Otftotfm از شیوهٔ TeX و بردارهای کدبندیِ به‌طور گسترده توزیع‌شدهٔ TeX پیروی می‌کند، بنابراین "/phi" در یک بردار کدبندی ورودی باید به یک phi «صاف» (straight) و "/phi1" باید به یک phi «حلقه‌ای» (loopy) نگاشت شود. توجه داشته باشید که شیوهٔ TeX با قراردادهای نام‌گذاری استاندارد PostScript تفاوت دارد، که در آن "/phi" حلقه‌ای و "/phi1" صاف است؛ این بدان معناست که otftotfm ممکن است "/phi" را در یک بردار کدبندی ورودی به گلیف "/phi1" یک قلم نگاشت کند، و برعکس. شاید صریح‌ترین روش این باشد که از "/uni03D5" برای شکل «صاف» و از "/uni03C6" برای شکل «حلقه‌ای» استفاده کنید.
چگونه می‌توانم همراه با حروف بزرگ کوچک ('-fsmcp')، ارقام تراز (یعنی ارقام با ارتفاع خط عادی) داشته باشم؟
بسیاری از قلم‌ها به‌طور پیش‌فرض همراه با حروف بزرگ کوچک از ارقام سبک قدیمی (old-style) استفاده می‌کنند. از آنجا که این پیش‌فرض مشخص نشده است، عاقلانه است که صراحتاً '-flnum' یا '-fonum' را مشخص کنید.

اگر در اجرای خروجی otftotfm از طریق fontinst با مشکلی مواجه شدید، مستندات مربوط به گزینهٔ --pl در بالا را مشاهده کنید.

pltotf(1), tftopl(1), vptovf(1), afm2tfm(1), dvips(1), cfftot1(1), otfinfo(1), t1dotlessj(1), t1testpage(1), ttftotype42(1), kpsewhich(1), updmap(1)

Adobe Type 1 Font Format

یادداشت‌های فنی Adobe شمارهٔ ۵۱۷۶، The Compact Font Format Specification، و شمارهٔ ۵۱۷۷، The Type 2 Charstring Format

OpenType Specification، نسخهٔ 1.4

A Directory Structure for TeX Files، http://www.tug.org/tds

Kpathsea: A library for path searching، http://www.tug.org/kpathsea

Sivan Toledo، Exploiting Rich Fonts، TUGboat 21(2), 2000، http://www.tug.org/TUGboat/Articles/tb21-2/tb67tole.pdf

Michel Goossens، Frank Mittelbach، و Alexander Samarin، The LaTeX Companion (برای اطلاعات دربارهٔ ساختار فایل .fd)

Adobe Systems، ‏«Unicode and Glyph Names». به فایل glyphlist.txt اشاره دارد که برای تبدیل نام‌های گلیف به نقاط کد یونیکد استفاده می‌شود. http://partners.adobe.com/public/developer/opentype/index_glyph.html

Eddie Kohler (ekohler@gmail.com)

با تشکر از Karl Berry، Marco Kuhlmann، Adam Lindsay، Bruce D'Arcus، Thomas Esser، Claire Connelly، Nelson H.F. Beebe و Ryuji Suzuki برای پیشنهادها، گزارش باگ‌ها و کمک‌هایشان. تشکر ویژه از Achim Blumensath و Michael Zedler برای پیشنهادها و وصله‌ها، که برخی از آن‌ها اساسی و گسترده بودند.

LCDF Typetools Version 2.110