.\" صفحه راهنما برای ttf2tfm . .TH TTF2TFM 1 27-Jun-2013 "FreeType2 version" .SH "نام (NAME)" ttf2tfm \- ساخت فایل‌های متریک TeX از یک قلم TrueType .SH "خلاصه دستور (SYNOPSIS)" .na .nh .B ttf2tfm 'in +\n(.ku .I ttffile\c .RB [ .ttf | .ttc ] [\c .BI \-c \ \%caps-height-factor\c ] [\c .BI \-e \ \%extension-factor\c ] [\c .BI \-E \ \%encoding-id\^\c ] [\c .BI \-f \ \%font-index\c ] [\c .B \-l\c ] [\c .B \-L\ \c .IR \%ligature-file [ .sfd ]\c ] [\c .B \-n\c ] [\c .B \-N\c ] [\c .B \-O\c ] [\c .B \-p\ \c .IR \%inencfile [ .enc ]\c ] [\c .BI \-P \ \%platform-id\^\c ] [\c .B \-q\c ] [\c .BI \-r \ \%old-glyphname\ \%new-glyphname\c ] [\c .B \-R\ \c .IR \%replacement-file [ .rpl ]\c ] [\c .BI \-s \ \%slant-factor\c ] [\c .B \-t\ \c .IR \%outencfile [ .enc ]\c ] [\c .B \-T\ \c .IR \%inoutencfile [ .enc ]\c ] [\c .B \-u\c ] [\c .B \-v\ \c .IR \%vplfile [ .vpl ]\c ] [\c .B \-V\ \c .IR \%scvplfile [ .vpl ]\c ] [\c .B \-w\c ] [\c .B \-x\c ] [\c .BI \-y \ \%vertical-shift-factor\c ] [\c .IR \%tfmfile [ .tfm ]\c ] .br .in .B "ttf2tfm \-\^\-version" | .B \-\^\-help .ad .hy . . . .\" ==== .\" ==== تعریف ماکروها .\" ==== . .\" در اینجا \TeX برای troff و nroff تعریف می‌شود .if t .ds TX T\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X .if n .ds TX TeX . .\" و در اینجا همان برای \LaTeX .if t \{\ .ie '\*(.T'dvi' \ .ds LX L\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\*(TX .el .ds LX L\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\*(TX .\} .if n .ds LX LaTeX . .\" \LaTeXe .\" توجه داشته باشید که برای TeX به جای \eps به \vareps نیاز داریم که تنها .\" با دنباله گریز \N (در قلم Math Italic) در دسترس است .if t \{\ .ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' .el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' .\} .if n .ds LE LaTeX\ 2e . .\" قلم ماشین تحریر .if t \{\ .de C \fC\\$1\fP\\$2\fC\\$3\fP\\$4 .. .\} .if n \{\ .de C \\$1\\$2\\$3\\$4 .. .\} . .\" ==== .\" ==== پایان تعریف ماکروها .\" ==== . . ..SH "توضیحات (DESCRIPTION)" این برنامه اطلاعات متریک و فاصله‌گذاری بین‌حروفی (kerning) یک قلم TrueType را استخراج کرده و آن را به فایل‌های متریک قابل استفاده برای \*(TX تبدیل می‌کند (بسیار شبیه به .B afm2tfm که بخشی از بستهٔ .B dvips است؛ لطفاً برای جزئیات بیشتر دربارهٔ پارامترهای گوناگون، به‌ویژه فایل‌های کدگذاری، به فایل‌های info آن مراجعه کنید). .PP از آن‌جا که یک قلم TrueType اغلب شامل بیش از ۲۵۶\ نگاره (glyph) است، روش‌هایی برای نگاشت زیرمجموعه‌ای از نگاره‌های TrueType روی یک قلم \*(TX مورد نیاز است. برای انجام این کار، دو جدول نگاشت لازم است: نخستین جدول (با نام کدگذاری «ورودی» یا «خام») قلم TrueType را به یک قلم خام \*(TX نگاشت می‌کند (این جدول نگاشت هم توسط .B ttf2tfm و هم توسط .BR ttf2pk ) استفاده می‌شود، و جدول دوم (با نام کدگذاری «خروجی» یا «مجازی») قلم خام \*(TX را به قلم (مجازی) دیگری از \*(TX نگاشت می‌کند که تمامی اطلاعات kerning و حروف متصل (ligature) مورد نیاز \*(TX را فراهم می‌سازد. .PP این نگاشت دومرحله‌ای این مزیت را دارد که یک قلم خام می‌تواند از طریق سازوکار قلم مجازی با کدگذاری‌های گوناگون \*(LX (مانند\ T1 و OT1) در دسترس باشد، و تنها یک فایل .C PK لازم خواهد بود. .PP برای قلم‌های CJKV (چینی/ژاپنی/کره‌ای/ویتنامی کهن)، سازوکار متفاوتی ارائه شده است (بخش .B "SUBFONT DEFINITION FILES" در زیر را ببینید). . . .SH "پارامترها (PARAMETERS)" بیشتر نام‌های سوییچ‌های خط فرمان برای راحتی کار همانند .B afm2tfm هستند. وجود یک یا چند نویسهٔ فاصله میان یک گزینه و مقدار آن اجباری است؛ گزینه‌ها نمی‌توانند زنجیره‌ای ترکیب شوند. به دلایل تاریخی، نخستین پارامتر .I نمی‌تواند یک سوییچ باشد، بلکه باید نام قلم باشد. .TP .BI \-c \ caps-height-factor ارتفاع حروف کوچک بزرگ‌نما (small caps) ساخته‌شده با سوییچ .BR \-V . مقدار پیش‌فرض این عدد حقیقی\ 0.8 برابر ارتفاع نگاره‌های بزرگ (uppercase) است. .IP در حالت subfont نادیده گرفته می‌شود. .TP .BI \-e \ extension-factor ضریب امتداد برای کشیدن افقی نویسه‌ها. مقدار پیش‌فرض این عدد حقیقی\ 1.0 است؛ اگر کمتر از\ 1.0 باشد، یک قلم متراکم (condensed) به دست می‌آید. .TP .BI \-E \ encoding-id شناسهٔ کدگذاری (encoding ID) قلم TrueType. مقدار پیش‌فرض این عدد صحیح غیرمنفی\ 1 است. .IP در صورت استفاده از .B \-N نادیده گرفته خواهد شد. .TP .BI \-f \ font-index نمایهٔ قلم در یک مجموعهٔ TrueType (TrueType Collection). پیش‌فرض، نخستین قلم (نمایهٔ\ 0) است. [مجموعه‌های TrueType معمولاً در برخی قلم‌های CJK یافت می‌شوند؛ برای نمونه، نمایهٔ اول قلم نگاره‌ها و متریک‌ها را برای نگارش افقی تعیین می‌کند و نمایهٔ دوم همین کار را برای نگارش عمودی انجام می‌دهد؛ این مجموعه‌ها معمولاً دارای پسوند `\c .C \&.ttc '.] .IP برای قلم‌های معمولی TrueType نادیده گرفته می‌شود. .TP .B \-l ایجاد حروف متصل (ligature) در زیرقلم‌ها میان بایت‌های اول و دوم تمام کدهای نویسهٔ اصلی. مثال: کد نویسهٔ\ 0xABCD به موقعیت نویسهٔ\ 123 در زیرقلم\ 45 نگاشت می‌شود. سپس یک ligature در زیرقلم\ 45 بین موقعیت 0xAB و\ 0xCD که به نویسهٔ\ 123 اشاره دارد ایجاد خواهد شد. قلم‌های بستهٔ کره‌ای H\*(LX از این ویژگی استفاده می‌کنند. توجه داشته باشید که این گزینه تنها برای قلم‌های TrueTypeای ligatureهای درست ایجاد می‌کند که در آن‌ها cmap ورودی با کدگذاری خروجی یکسان باشد. در مورد H\*(LX، فایل‌های TTF باید دارای شناسهٔ پلتفرم\ 3 و شناسهٔ کدگذاری\ 5 باشند. .IP اگر در حالت subfont نباشد نادیده گرفته خواهد شد. .TP .BI \-L \ ligature-file همانند .BR \-l ، اما کدهای نویسه برای ligatureها در .IR \%ligature-file مشخص می‌شوند. برای نمونه، `\c .C \-L\ \%KS-HLaTeX ' صرف‌نظر از شناسهٔ پلتفرم و کدگذاری قلم TrueType مورد استفاده، ligatureهای صحیحی را برای بستهٔ کره‌ای H\*(LX تولید می‌کند (فایل .C KS-HLaTeX.sfd بخشی از بستهٔ ttf2pk است). .IP فایل‌های ligature همان قالب و پسوند فایل‌های .C SFD را دارند. این گزینه اگر در حالت subfont نباشد نادیده گرفته خواهد شد. .TP .B \-n استفاده از نام‌های PS (نگاره‌های) قلم TrueType. تنها نگاره‌هایی با یک مدخل معتبر در cmap انتخاب‌شده استفاده می‌شوند. .IP در حالت subfont نادیده گرفته می‌شود. .TP .B \-N تنها استفاده از نام‌های PS قلم TrueType. هیچ cmapای استفاده نمی‌شود، بنابراین سوییچ‌های .B \-E و .B \-P هیچ اثری نخواهند داشت و باعث صدور یک پیام هشدار می‌شوند. .IP در حالت subfont نادیده گرفته می‌شود. .TP .B \-O استفاده از مقادیر هشت‌هشتی (octal) برای تمام کدهای نویسه در فایل .C VPL به جای نام‌ها؛ این گزینه برای قلم‌های نماد یا CJK که در آن‌ها نام نویسه‌ها مانند `A` بی‌معنی است، کاربرد دارد. .TP .BI \-p \ inencfile نام فایل کدگذاری ورودی برای نگاشت TTF\(->raw\ \*(TX. این پارامتر باید در یک فایل نگاشت (پیش‌فرض: .C \%ttfonts.map ) ثبت‌شده در .C \%ttf2pk.cfg برای فراخوانی‌های پیاپی .B ttf2pk تعیین شود. .IP در حالت subfont نادیده گرفته می‌شود. .TP .BI \-P \ platform-id شناسهٔ پلتفرم (platform ID) قلم TrueType. مقدار پیش‌فرض این عدد صحیح غیرمنفی\ 3 است. .IP در صورت استفاده از .B \-N نادیده گرفته خواهد شد. .TP .B \-q ساکت کردن .BR ttf2tfm . این گزینه هرگونه خروجی اطلاعاتی به جز پیام‌های هشدار و خطا را سرکوب می‌کند. برای قلم‌های CJK، اگر این سوییچ را مشخص نکنید، خروجی می‌تواند بسیار طولانی و حجیم شود. .TP .BI \-r \ old-glyphname\ new-glyphname جایگزین کردن .I \%old-glyphname با .IR \%new-glyphname . این سوییچ زمانی مفید است که بخواهید به یک نگارهٔ بدون نام (یعنی نگاره‌ای که فقط می‌تواند با `.gXXX` یا `.cXXX` نمایش داده شود) یک نام اختصاص دهید یا اگر بخواهید نام یک نگارهٔ موجود را تغییر دهید. شما نمی‌توانید از ساختارهای نام نگارهٔ `.gXXX` یا `.cXXX` برای .IR \%new-glyphname استفاده کنید؛ استفادهٔ چندباره از .B \-r امکان‌پذیر است. .IP در صورت قرار داشتن در حالت subfont یا در صورتی که هیچ فایل کدگذاری مشخص نشده باشد، این سوییچ نادیده گرفته می‌شود..TP .BI \-R \ replacement-file اگر جفت‌های جایگزینی زیادی دارید، از این گزینه استفاده کنید؛ آن‌ها را می‌توان در فایلی که باید پسوند `\c .C \&.rpl ' داشته باشد جمع‌آوری کرد. نحو مورد استفاده در چنین فایل‌های جایگزینی ساده است: هر خط غیرخالی باید شامل یک جفت `\c .IR "\%old-glyphname \%new-glyphname" ' باشد که با نویسه فاصله (بدون علامت‌های نقل‌قول) جدا شده‌اند. علامت درصد، یک یادداشت خطی را آغاز می‌کند؛ با قرار دادن یک بک‌اسلش به عنوان آخرین نویسه، می‌توانید یک خط را در خط بعدی ادامه دهید. .IP اگر در حالت subfont باشد یا هیچ فایل کدگذاری مشخص نشده باشد، این گزینه نادیده گرفته می‌شود. .TP .BI \-s \ slant-factor ضریب مورب‌سازی برای شیب‌دار کردن قلم، که معمولاً بسیار کوچکتر از\ 1 است. مقدار پیش‌فرض این عدد حقیقی\ 0.0 است؛ اگر مقدار بزرگتر از صفر باشد، نویسه‌ها به سمت راست متمایل می‌شوند، در غیر این صورت به سمت چپ. .TP .BI \-t \ outencfile نام فایل کدگذاری خروجی برای قلم(های) مجازی. فقط از نویسه‌های موجود در قلم خام \*(TX استفاده می‌شود. .IP در حالت subfont نادیده گرفته خواهد شد. .TP .BI \-T \ inoutencfile این گزینه معادل است با .RB ` \-p .I inoutencfile .B \-t .IR inoutencfile '. .IP در حالت subfont نادیده گرفته خواهد شد. .TP .B \-u تنها از نویسه‌های مشخص‌شده در کدگذاری خروجی استفاده می‌کند و نه موارد دیگر. به‌طور پیش‌فرض، .B ttf2tfm تلاش می‌کند تمام نویسه‌ها را در قلم مجازی بگنجاند، حتی مواردی که در کدگذاری قلم مجازی وجود ندارند (آن‌ها را نسبتاً اختیاری در موقعیت‌های استفاده‌نشده دیگر قرار می‌دهد). .IP در حالت subfont نادیده گرفته خواهد شد. .TP .BI \-v \ vplfile خروجی دادن یک فایل .C VPL علاوه بر فایل .C TFM . اگر هیچ فایل کدگذاری خروجی مشخص نشده باشد، .B ttf2tfm از یک کدگذاری پیش‌فرض قلم (cmtt10) استفاده می‌کند. .B نکته: دقت کنید که از نام‌های متفاوتی برای قلم مجازی و قلم خام استفاده کنید! .IP در حالت subfont نادیده گرفته خواهد شد. .TP .BI \-V \ scvplfile مشابه .BR \-v ، اما قلم مجازی تولیدشده یک قلم شبه small caps است که با مقیاس‌بندی حروف بزرگ به میزان\ 0.8 (یا مقداری که با .BR \-c مشخص شده است) برای حروف‌چینی حروف کوچک حاصل می‌شود. این قلم حروف نشانه‌دار (accented) را مدیریت کرده و فاصله‌گذاری متناسب (kerning) مناسب را حفظ می‌کند. .IP در حالت subfont نادیده گرفته خواهد شد. .TP .B \-w بردارهای کدگذاری PostScript حاوی نمایه‌های گلیف تولید می‌کند، که در درجه اول برای جاسازی قلم‌های TrueType در pdf\*(TX استفاده می‌شود. .B ttf2tfm نام‌های .C TFM را گرفته و پسوند را با .C \&.enc جایگزین می‌کند؛ یعنی برای فایل‌های .C foo01.tfm ، .C foo02.tfm ،\ \&.\|.\|.\& فایل‌های .C foo01.enc ، .C foo02.enc ،\ \&.\|.\|.\|\& را در همان مکان ایجاد می‌کند. .IP اگر در حالت subfont نباشد، نادیده گرفته خواهد شد. .TP .B \-x چرخش همه گلیف‌ها به اندازه ۹۰ درجه در خلاف جهت عقربه‌های ساعت. اگر هیچ پارامتر .B \-y داده نشود، گلیف‌های چرخیده به صورت عمودی به میزان\ 0.25em به پایین منتقل می‌شوند. .IP اگر در حالت subfont نباشد، نادیده گرفته خواهد شد. .TP .BI \-y \ vertical-shift-factor انتقال گلیف‌های چرخیده به پایین به میزان داده‌شده (واحد آن .IR em است). .IP اگر در حالت subfont نباشد یا گلیف‌ها چرخیده نشده باشند، نادیده گرفته می‌شود. .TP .B \-\^\-version نسخه فعلی .B ttf2tfm و کتابخانه جستجوی فایل مورد استفاده (مانند .BR kpathsea ) را نمایش می‌دهد. .TP .B \-\^\-help اطلاعات نحوه استفاده را نمایش می‌دهد. .PP اگر هیچ نام فایلی برای .C TFM داده نشود، از نام فایل .C TTF شامل مسیر کامل با جایگزینی پسوند با `\c .C \&.tfm ' استفاده می‌شود. . ..SH "جدول‌های نگاشت (CMAPS)" برخلاف قلم‌های Type\ 1 PostScript (اما مشابه با قالب جدید قلم‌های CID PostScript)، بیشتر قلم‌های TrueType بیش از یک جدول نگاشت بومی دارند که `cmap' نیز نامیده می‌شود و نمایه‌های (داخلی) گلیف TTF را به کدهای (خارجی) نویسهٔ TTF نگاشت می‌کند. نمونه‌های رایج شامل یک جدول نگاشت به موقعیت‌های نویسه‌ای کدگذاری‌شده با Unicode و نگاشت استاندارد Macintosh هستند. برای تعیین یک جدول نگاشت TrueType، از گزینه‌های .B \-P و .BR \-E استفاده کنید. با .B \-P شناسهٔ بستر (platform ID) را مشخص می‌کنید؛ مقادیر تعریف‌شده عبارتند از: .PP .TS l l. \fIplatform\fP \fIplatform ID (pid)\fP _ Apple Unicode 0 Macintosh 1 ISO 2 Microsoft 3 .TE .PP شناسهٔ کدگذاری به بستر بستگی دارد. برای pid=0، پارامتر .B \-E را نادیده می‌گیریم (آن را روی صفر تنظیم می‌کنیم) زیرا جدول نگاشت همواره Unicode نسخهٔ\ 2.0 است. برای pid=1، جدول زیر مقادیر تعریف‌شده را فهرست می‌کند: .PP .RS platform ID = 1 .RE .TS l l. \fIscript\fP \fIencoding ID (eid)\fP _ Roman 0 Japanese 1 Chinese 2 Korean 3 Arabic 4 Hebrew 5 Greek 6 Russian 7 Roman Symbol 8 Devanagari 9 Gurmukhi 10 Gujarati 11 Oriya 12 Bengali 13 Tamil 14 Telugu 15 Kannada 16 Malayalam 17 Sinhalese 18 Burmese 19 Khmer 20 Thai 21 Laotian 22 Georgian 23 Armenian 24 Maldivian 25 Tibetan 26 Mongolian 27 Geez 28 Slavic 29 Vietnamese 30 Sindhi 31 Uninterpreted 32 .TE .PP شناسه‌های کدگذاری ISO در اینجا آمده‌اند: .PP .RS platform ID = 2 .RE .TS l l. \fIencoding\fP \fIencoding ID (eid)\fP ASCII 0 ISO 10646 1 ISO 8859-1 2 .TE .PP و در نهایت، شناسه‌های کدگذاری Microsoft: .PP .RS platform ID = 3 .RE .TS l l. \fIencoding\fP \fIencoding ID (eid)\fP Symbol 0 Unicode 2.0 1 Shift JIS 2 GB 2312 (1980) 3 Big 5 4 KS X 1001 (Wansung) 5 KS X 1001 (Johab) 6 UCS-4 10 .TE .PP اگر یک جفت شناسهٔ بستر/کدگذاری نامعتبر تعیین کنید، برنامه متوقف خواهد شد. سپس جفت‌های pid/eid ممکن را نمایش می‌دهد. لطفاً توجه داشته باشید که بیشتر قلم‌ها حداکثر دو یا سه cmap دارند که در مورد قلم‌های مبتنی بر لاتین معمولاً متناظر با جفت‌های pid/eid به صورت (1,0)، (3,0) یا (3,1) هستند. قلم‌های معتبر Microsoft باید یک جدول نگاشت (3,1) داشته باشند، اما برخی قلم‌ها وجود دارند (عمدتاً قلم‌های آسیایی) که دارای یک cmap به صورت (3,1) هستند که در Unicode کدگذاری نشده است. دلیل این رفتار عجیب این واقعیت است که برخی از نسخه‌های قدیمی MS\ Windows قلم‌هایی را که دارای cmap غیر (3,1) باشند رد می‌کنند (زیرا تمامی شناسه‌های کدگذاری غیر Unicode در Microsoft برای نسخه‌های آسیایی MS\ Windows هستند). .PP گزینه‌های .B \-P و .B \-E برنامهٔ .B ttf2tfm باید به طور مشابه برای .B ttf2pk نیز مشخص شوند؛ پارامترهای متناظر در یک فایل نگاشت (map file) به ترتیب `Pid' و `Eid' هستند. .PP جفت pid/eid پیش‌فرض (3,1) است. .PP به همین ترتیب، گزینهٔ .B \-f باید به عنوان پارامتر `Fontindex' در یک فایل نگاشت مشخص شود. .PP اگر از سوئیچ .B \-N استفاده کنید، تمام cmapها نادیده گرفته شده و تنها از نام‌های PostScript موجود در قلم TrueType استفاده می‌شود. گزینهٔ متناظر در یک فایل نگاشت \%`PS=Only' است. اگر از سوئیچ .B \-n استفاده کنید، نام‌های پیش‌فرض گلیف که درون .B ttf2tfm تعبیه شده‌اند با نام‌های گلیف PS موجود در قلم جایگزین می‌شوند. در بسیاری از موارد این چیزی نیست که بخواهید، زیرا نام‌های گلیف موجود در قلم اغلب نادرست یا غیراستاندارد هستند. گزینهٔ متناظر در یک فایل نگاشت \%`PS=Yes' است. .PP نام‌های گلیف جایگزین تکی مشخص‌شده با .B \-r باید مستقیماً به صورت `\c .IR "old-glyphname new-glyphname" ' در یک فایل نگاشت داده شوند؛ .B \-R معادل گزینهٔ `Replacement' است. . ..SH "کدگذاری‌های ورودی و خروجی (INPUT AND OUTPUT ENCODINGS)" شما باید بردارهای کدگذاری را از فونت TrueType به فونت خام \*(TX و از فونت خام \*(TX به فونت مجازی \*(TX دقیقاً مانند .BR afm2tfm ، مشخص کنید، اما امکانات بیشتری برای آدرس‌دهی کدهای نویسه در اختیار دارید. [منظور از «بردار کدگذاری» یک جدول نگاشت با ۲۵۶\ ورودی در قالب یک بردار PostScript است؛ برای نمونه فایل .C \%T1-WGL4.enc این بسته را ببینید.] در .BR afm2tfm ، شما باید به هر گلیف با نام گلیف Adobe آن دسترسی پیدا کنید، به عنوان مثال\ \c \%`/quotedsingle' یا \%`/Acircumflex'. این قابلیت در .BR ttf2tfm گسترش یافته است؛ اکنون می‌توانید (و گاهی باید) مستقیماً با استفاده از نحو زیر برای تعیین موقعیت نویسه در نماد ده‌دهی، هشت‌هشتی، یا شانزده‌شانزدهی، به نقاط کد و/یا گلیف‌ها دسترسی داشته باشید: `/.c\c .IR '، `/.c0\c .IR '، یا `/.c0x\c .IR '. مثال‌ها: \%`/.c72'، \%`/.c0646'، \%`/.c0x48'. برای دسترسی مستقیم به نمایه گلیف (glyph index)، در نحو معرفی‌شده به جای `c' از نویسه `g' استفاده کنید. مثال: \%`/.g0x32'. [نکته: در صورت استفاده از .BR \-N ، نشانه‌گذاری `.cXXX' معنایی نخواهد داشت.] .PP برای جفت‌های pid/eid با مقادیر (1,0) و (3,1)، هر دو ابزار .B ttf2tfm و .B ttf2pk نام‌های پیش‌فرض درونی گلیف‌های Adobe را تشخیص می‌دهند؛ اولی از نام‌های ارائه‌شده در پیوست\ E کتاب `Inside Macintosh'، جلد\ 6 پیروی می‌کند و دومی از نام‌های ارائه‌شده در مشخصات TrueType (مجموعه WGL4، یک زیرمجموعه از Unicode) استفاده می‌کند. توجه داشته باشید که نام‌های Adobe برای یک گلیف معین اغلب یکتا نبوده و گاهی تفاوت دارند؛ به عنوان مثال، بسیاری از فونت‌های PS دارای گلیف `mu' هستند، در حالی که این گلیف در مجموعه نویسه WGL4 با نام `mu1' خوانده می‌شود تا از حرف واقعی یونانی mu متمایز گردد. همچنین توجه داشته باشید که فونت‌های OpenType (یعنی TrueType\ 2.0) از یک جدول WGL4 به‌روزشده استفاده می‌کنند؛ ما از داده‌های آخرین نسخه منتشرشده مشخصات TrueType (1.66) استفاده می‌کنیم. می‌توانید این جدول‌های نگاشت را در فایل کد منبع .C \%ttfenc.c بیابید. .PP از سوی دیگر، سوئیچ‌های .B \-n و .B \-N باعث می‌شوند که .B ttf2tfm به جای نام‌های پیش‌فرض گلیف‌های Adobe، نام‌های PostScript موجود در خود فونت TrueType (ذخیره‌شده در جدول `post') را خوانده و استفاده کند. .PP از سوئیچ .B \-r برای نگاشت مجدد نام‌های تکی گلیف و از .B \-R برای تعیین فایلی شامل جفت‌نام‌های جایگزین گلیف استفاده کنید. .PP اگر کدگذاری ورودی را انتخاب نکنید، نخستین ۲۵۶\ گلیف از فونت TrueType با یک ورودی معتبر در cmap انتخاب‌شده، به فونت خام \*(TX نگاشت خواهند شد (بدون گزینه .BR \-q ، ابزار .B ttf2tfm این جدول نگاشت را در خروجی استاندارد چاپ می‌کند)، و به دنبال آن تمامی گلیف‌هایی که هنوز در cmap انتخاب‌شده آدرس‌دهی نشده‌اند نگاشت می‌شوند. با این حال، برخی از نقاط کد برای جفت pid/eid با مقدار (1,0) نادیده گرفته می‌شوند، زیرا گلیف‌های مفیدی برای \*(TX به شمار نمی‌روند: 0x00 (null)،‏ 0x08 (backspace)،‏ 0x09 (horizontal tabulation)،‏ 0x0d (carriage return)، و 0x1d (group separator). «نویسه نامعتبر» با نمایه گلیف\ 0 نیز حذف خواهد شد. .PP اگر سوئیچ .B \-N را انتخاب کنید، در صورتی که هیچ کدگذاری ورودی مشخص نشده باشد، نخستین ۲۵۶\ گلیف از فونت TrueType با یک نام PostScript معتبر استفاده خواهند شد. در این مورد نیز برخی گلیف‌ها نادیده گرفته می‌شوند: `.notdef'،‏ `.null'، و `nonmarkingreturn'. .PP اگر کدگذاری خروجی را انتخاب نکنید، .B ttf2tfm از همان جدول نگاشتی استفاده می‌کند که .B afm2tfm استفاده می‌کرد (می‌توانید آن را در فایل کد منبع .C \%texenc.c بیابید)؛ این جدول متناظر با متن ماشین‌تحریری (typewriter) در \*(TX است. موقعیت‌های استفاده‌نشده (خواه به دلیل نقاط کد خالی در جدول نگاشت باشند یا گلیف‌های ناموجود در فونت TrueType) (به صورت تا حدی دلخواه) با نویسه‌های موجود در کدگذاری ورودی که در کدگذاری خروجی مشخص نشده‌اند پر خواهند شد (بدون گزینه .B \-q ابزار .B ttf2tfm کدگذاری خروجی نهایی را در خروجی استاندارد چاپ می‌کند). اگر فقط گلیف‌هایی را در فونت مجازی می‌خواهید که در فایل کدگذاری خروجی تعریف شده‌اند و نه بیشتر، از گزینه .B \-u استفاده کنید. .PP یک ویژگی که در .B afm2tfm وجود نداشت و برای کدگذاری T1 در \*(LX مورد نیاز است اضافه شده است: .B ttf2tfm در صورت امکان، حتی برای فونت‌های معمولی نیز گلیف `Germandbls' را (صرفاً با متصل کردن دو گلیف `S') ایجاد خواهد کرد. این گلیف به عنوان آخرین مورد در فهرست گلیف‌ها ظاهر می‌شود و با یک ستاره مشخص شده است. از آنجا که این یک گلیف واقعی نیست، تنها در فونت مجازی در دسترس خواهد بود. .PP هم برای کدگذاری ورودی و هم خروجی، یک موقعیت کد خالی با نام گلیف \%`/.notdef' نشان داده می‌شود. .PP در فایل‌های کدگذاری، می‌توانید از `\\' به عنوان نویسه انتهایی یک خط استفاده کنید تا نشان دهید ورودی در خط بعدی ادامه می‌یابد. بک‌اسلش و نویسه خط جدید پس از آن حذف خواهند شد. .PP . ..SH "فایل‌های تعریف زیرقلم (SUBFONT DEFINITION FILES)" قلم‌های CJKV (چینی/ژاپنی/کره‌ای/ویتنامی کهن) معمولاً شامل چندین هزار گلیف هستند؛ برای استفاده از آن‌ها با \*(TX ضروری است که چنین قلم‌های بزرگی به زیرقلم‌ها (subfonts) تقسیم شوند. فایل‌های تعریف زیرقلم (معمولاً با پسوند `\c .C \&.sfd ') روشی ساده برای انجام روان این کار هستند. .PP نام یک فایل زیرقلم معمولاً از یک پیشوند (prefix)، یک میانوند زیرقلم (infix) و یک پسوند (postfix \- که در بیشتر موارد خالی است) تشکیل می‌شود؛ مانند: .PP .in +2m ntukai23 \(-> prefix: ntukai، infix: 23، postfix: (خالی) .PP در اینجا نحو یک سطر در یک فایل .C SFD که توصیف‌کننده یک زیرقلم است، آورده شده است: .in +2m .TP .I .sp .TP .IR \ := هر چیزی به جز فاصله‌های خالی (whitespace). بهتر است تنها از نویسه‌های حرفی\-عددی استفاده شود. .TP .IR \ := فاصله (space)، انتقال صفحه (formfeed)، بازگشت به ابتدای سطر (carriage return)، تب‌های افقی و عمودی \-\- بدون نویسه سطر جدید (newline). .TP .IR \ := .IR " " \ | .br .IR " " \ | .br .I .TP .IR \ := .I .br .TP .IR \ := .IR \ `_' \ .br .TP .IR \ := .IR \ `:' .TP .IR \ := هگزادسیمال (با پیشوند `0x')، ده‌دهی، یا اکتال (با پیشوند `0') .PP یک سطر می‌تواند با قرار گرفتن یک بک‌اسلش در انتهای آن، در سطر بعدی ادامه یابد. محدوده‌ها نباید همپوشانی داشته باشند؛ آفست‌ها باید در بازه 0\-255 باشند. .PP مثال: .PP .in +2m سطرِ .PP .in +4m .C "03 10: 0x2349 0x2345_0x2347" .PP .in +2m کدهای نویسه 0x2349،‏ 0x2345،‏ 0x2346 و 0x2347 را به ترتیب به موقعیت‌های کد 10، 11، 12 و\ 13 از زیرقلمی با میانوند `03' اختصاص می‌دهد. .PP فایل‌های .C SFD موجود در توزیع، برای بسته CJK در \*(LX سفارشی‌سازی شده‌اند. .PP باید نام فایل .C SFD را در داخل نام قلم .C TFM (در همان جایی که میانوند قرار خواهد گرفت) در میان دو علامت `@' قرار دهید، چه در خط فرمان و چه در یک فایل نگاشت (map file)؛ در این صورت هر دو برنامه .B ttf2tfm و .B ttf2pk به حالت زیرقلم (subfont mode) تغییر وضعیت می‌دهند. .PP می‌توان بیش از یک فایل .C SFD را با جدا کردن آن‌ها به وسیله ویرگول و بدون هیچ فاصله خالی استفاده کرد؛ برای یک زیرقلم مشخص، ابتدا اولین فایل برای یافتن ورودی پیمایش می‌شود، سپس فایل بعدی و به همین ترتیب. ورودی‌های بعدی، ورودی‌های یافت‌شده پیشین را بازنویسی (override) می‌کنند (که ممکن است فقط به صورت جزئی باشد). برای نمونه، اولین فایل .C SFD محدوده 0x10\-0xA0 را تنظیم می‌کند و فایل بعدی ورودی‌های 0x12 و 0x25 را اصلاح می‌نماید. همان‌طور که به سادگی مشخص است، این الگوریتم اجازه افزودن و جایگزینی را می‌دهد، اما امکان حذف ورودی‌ها را فراهم نمی‌سازد. .PP حالت زیرقلم گزینه‌های .BR \-n ، .BR \-N ، .BR \-p ، .BR \-r ، .BR \-R ، .BR \-t ، .BR \-T ، .BR \-u ، .BR \-v ، .BR \-V و .B \-w را برای .B ttf2tfm غیرفعال می‌کند؛ به طور مشابه، هیچ پارامتر `Encoding' یا `Replacement' در یک فایل نگاشت مجاز نیست. نام‌های منفرد گلیف جایگزین نیز نادیده گرفته می‌شوند. .PP .B ttf2tfm تمام فایل‌های .C TFM زیرقلمِ مشخص‌شده در فایل‌های .C SFD را (به شرطی که زیرقلم حاوی گلیف باشد) در یک بار اجرا ایجاد خواهد کرد. .PP مثال: .PP .in +2m فراخوانیِ .PP .in +4m .C "ttf2tfm ntukai.ttf ntukai@Big5,Big5-supp@" .PP .in +2m از .C Big5.sfd و .C Big5-supp.sfd استفاده کرده و .I تمام فایل‌های زیرقلم .C ntukai01.tfm ، .C ntukai02.tfm و غیره را تولید خواهد کرد. . ..SH "مقدار بازگشتی (RETURN VALUE)" برنامهٔ ttf2tfm در صورت موفقیت مقدار 0 و در صورت بروز خطا 1 را بازمی‌گرداند؛ پیام‌های هشدار و خطا در خروجی خطای استاندارد نوشته می‌شوند. . . .SH "نکاتی درباره جستجوی فایل (SOME NOTES ON FILE SEARCHING)" هر دو برنامهٔ .B ttf2pk و .B ttf2tfm از یکی از کتابخانه‌های .BR kpathsea ، .BR emtexdir یا .B MiK\*(TX برای جستجوی فایل‌ها استفاده می‌کنند .RB ( emtexdir تنها روی سیستم‌عامل‌هایی کار می‌کند که پیشینهٔ شبه MS-DOS دارند، یعنی MS-DOS، OS/2 و Windows؛ .B Mik\*(TX مختص MS Windows است). .PP به‌عنوان آخرین راهکار، هر دو برنامه می‌توانند بدون کتابخانهٔ جستجو کامپایل شوند؛ در این صورت، فایل‌های مورد جستجو باید در دایرکتوری جاری باشند یا با یک مسیر مشخص شوند. پسوندهای پیش‌فرض نیز افزوده خواهند شد (با این استثنا که فقط `\c .C \&.ttf ' افزوده می‌شود و نه `\c .C \&.ttc '). . . .SS kpathsea نسخهٔ واقعی kpathsea در صورتی که هر یک از برنامه‌های .B ttf2pk یا .B ttf2tfm را با گزینهٔ خط فرمان .B \-\^\-version فراخوانی کنید، روی صفحه نمایش داده می‌شود. .PP در اینجا جدول نوع فایل و متغیرهای متناظر .B kpathsea آورده شده است. .C TTF2PKINPUTS و .C TTF2TFMINPUTS متغیرهای محیطی خاص برنامه هستند که در نسخهٔ\ 3.2 از .B kpathsea معرفی شده‌اند: .PP .RS .TS l l. \&.ttf and .ttc TTFONTS ttf2pk.cfg TTF2PKINPUTS \&.map TTF2PKINPUTS \&.enc TTF2PKINPUTS, TTF2TFMINPUTS \&.rpl TTF2PKINPUTS, TTF2TFMINPUTS \&.tfm TFMFONTS \&.sfd TTF2PKINPUTS, TTF2TFMINPUTS .TE .RE .PP لطفاً برای جزئیات مربوط به این متغیرها به فایل‌های info مربوط به .B kpathsea مراجعه کنید. .PP باید متغیر .C TEXMFCNF را روی دایرکتوری‌ای تنظیم کنید که فایل پیکربندی .C texmf.cnf شما در آن قرار دارد. .PP دستور مناسب برای یافتن مقداری که یک متغیر .B kpathsea روی آن تنظیم شده در اینجا آمده است (ما از .C TTFONTS به‌عنوان مثال استفاده می‌کنیم). این کار به‌ویژه زمانی مفید است که یک متغیر در .C texmf.cnf یا در محیط تنظیم نشده باشد، و در نتیجه به مقدار پیش‌فرضی اشاره دارد که درون کتابخانهٔ .B kpathsea به‌صورت ثابت کدگذاری شده است (hard-coded). .PP .RS .C "kpsewhich -progname=ttf2tfm -expand-var='$TTFONTS'" .RE .PP ما نام برنامه را نیز انتخاب می‌کنیم چرا که امکان تعیین متغیرهایی وجود دارد که فقط برای یک برنامهٔ خاص جستجو شوند -- در مثال ما این متغیر .C TTFONTS.ttf2tfm خواهد بود. .PP روشی مشابه اما نه کاملاً یکسان، اجرای دستور زیر است: .PP .in +2m .C "kpsewhich -progname=ttf2tfm -show-path='truetype fonts'" .PP [فهرست کاملی از انواع قالب‌ها را می‌توان با وارد کردن `\c .C "kpsewhich --help" ' در اعلان خط فرمان به دست آورد.] این دقیقاً همان روشی است که .B ttf2tfm (و .BR ttf2pk ) برای جستجوی فایل‌ها استفاده می‌کنند؛ عیب این روش آن است که تمام متغیرها بسط داده می‌شوند که می‌تواند باعث ایجاد رشته‌های بسیار طولانی شود. . ..SS emtexdir در اینجا فهرستی از پسوندها و متغیرهای محیطی مرتبط با آن‌ها که باید در .C autoexec.bat (و به‌طور متناظر در .C config.sys برای OS/2) تنظیم شوند آمده است: .PP .RS .TS l l. \&.ttf و .ttc TTFONTS ttf2pk.cfg TTFCFG \&.map TTFCFG \&.enc TTFCFG \&.rpl TTFCFG \&.tfm TEXTFM \&.sfd TTFCFG .TE .RE .PP اگر یکی از متغیرها تنظیم نشده باشد، یک پیام هشدار صادر می‌شود. دایرکتوری جاری همیشه جستجو خواهد شد. طبق معمول، افزودن یک علامت تعجب به انتهای مسیر دایرکتوری باعث جستجو در زیردایرکتوری‌ها تا یک سطح عمق می‌شود و دو علامت تعجب باعث جستجو در تمام زیردایرکتوری‌ها خواهد شد. مثال: .PP .in +2m .C TTFONTS=c:\\\\fonts\\\\truetype!!;d:\\\\myfonts\\\\truetype! .PP ساختارهایی مانند `\c .C c:\\\\fonts!!\\\\truetype ' امکان‌پذیر نیستند. . . .SS MiK\*(TX هر دو .B ttf2tfm و .B ttf2pk به‌طور کامل در .BR MiK\*(TX ادغام شده‌اند. لطفاً برای جزئیات بیشتر دربارهٔ جستجوی فایل به مستندات .B MiK\*(TX مراجعه کنید. . . .SH "مشکلات (PROBLEMS)" بسیاری از پیاده‌سازی‌های .B vptovf تنها 100\ بایت را برای سرآیند .C TFM مجاز می‌دانند (این محدودیت در خود قالب فایل .C TFM برابر با 1024 است): 8\ بایت برای checksum و اندازهٔ طراحی (design size)، 40\ بایت برای نام خانواده، 20\ بایت برای کدگذاری، و 4\ بایت برای بایت face. تنها 28\ بایت برای برخی اطلاعات تکمیلی باقی می‌ماند که توسط .B ttf2tfm برای یک رشتهٔ شناسایی (که اساساً رونوشتی از خط فرمان است) استفاده می‌شود، و همیشه از این محدودیت فراتر رفته می‌شود. راهکار بهینه این است که مقدار .I \%max_header_bytes در فایل .C vptovf.web (و احتمالاً .C pltotf.web نیز) برای مثال به\ 400 افزایش داده شود و .B vptovf (و .BR pltotf ) دوباره کامپایل شوند. در غیر این صورت با پیام‌های خطایی (بی‌ضرر) مانند .PP .in +2m .C "This HEADER index is too big for my present table size" .PP مواجه خواهید شد که می‌توان با خیال آسوده آن‌ها را نادیده گرفت. . ..SH "همچنین ببینید (SEE ALSO)" .BR ttf2pk (1), .BR afm2tfm (1), .BR vptovf (1), .br صفحات info برای .B dvips و .B kpathsea . . .SH "در دسترس بودن (AVAILABILITY)" .B ttf2tfm بخشی از بستهٔ FreeType\ 1 است، یک کتابخانهٔ باکیفیت برای رندر کردن TrueType. . . .SH "نویسندگان (AUTHORS)" Werner LEMBERG .C .br Fr\('ed\('eric LOYER .C