| HBF2GF(1) | General Commands Manual | HBF2GF(1) |
نام (NAME)
hbf2gf - تبدیل یک فونت بیتمپ CJK به زیرفونتهای قابل استفاده توسط TeX و Omega.
خلاصه دستور (SYNOPSIS)
hbf2gf [-q] configuration-file[.cfg]
hbf2gf
[-q] [-p] [-g] [-n] subfont-name
x-resolution [y-scale | y-resolution]
hbf2gf -t [-q] subfont-name
hbf2gf --version | --help
فونتهای
بیتی CJK را
نمیتوان
بهطور
مستقیم با TeX
به کار برد،
زیرا تعداد
نویسهها
در این
فونتها
از 256، که
محدودیت یک
فونت TeX است،
فراتر
میرود.
بنابراین
ضروری است
که این
فونتها به
زیرفونتها
تقسیم شوند
و این
دقیقاً
همان کاری
است که hbf2gf
انجام
میدهد.
همانطور که از نامش پیداست، hbf2gf از فونتهای CJK در قالب خاصی به نام Hanzi Bitmap Font (HBF) استفاده میکند. این ساختار صرفاً از فایل(های) بیتی CJK و یک فایل متنی با قالبی بسیار مشابه با قالب BDF در سامانه پنجرهای X (X Window System) تشکیل شده است که فایلهای فونت بیتی را توصیف میکند: کدگذاری، اندازه و غیره. فایلهای GF تولیدشده میتوانند سپس با gftopk به فایلهای استاندارد PK تبدیل شوند.
دستور hbf2gf میتواند در سه حالت فراخوانی شود:
hbf2gf [-q] configuration-file[.cfg]
این
فراخوانی
معمولاً
مجموعهای
از
فایلهای GF،
یک فایل PL و
یک فایل
دستهای (batch file)
ایجاد
میکند که
باید پس از
پایان کار
hbf2gf اجرا شود.
این
اسکریپت
سپس gftopk را
فراخوانی
میکند تا
تمام
فایلهای GF
را به
فایلهای PK
تبدیل کند،
و pltotf را
فراخوانی
میکند تا
فایل PL را به
یک فایل TFM
تبدیل
نماید. در
نهایت،
فایل TFM را
کپی میکند
تا هر فایل PK
فایل TFM
مخصوص به
خود را
داشته باشد
(که همگی
یکسان
هستند).
اگر ofm_file در
فایل
پیکربندی
روی ‘yes’
تنظیم شده
باشد،
فایلهای OFM
و OVF نیز
ایجاد
خواهند شد.
گزینه -q
دستور hbf2gf را
بیصدا
میکند.
hbf2gf
[-q] [-p] [-g] [-n] subfont-name
x-resolution [y-scale | y-resolution]
این حالت
برای
استفاده به
همراه mktexpk و
مشتقات آن
در نظر
گرفته شده
است. تنها یک
فایل GF به
همراه یک
فایل PL برای
زیرفونت
مشخصشده
محاسبه
خواهد شد،
که وضوح
افقی و ضریب
مقیاس
عمودی (اگر
مقدار کمتر
از 10 باشد)
یا وضوح
عمودی (در
غیر این
صورت) را از
خط فرمان
دریافت
کرده و
پارامتر nmb_fonts
در فایل
پیکربندی
را نادیده
میگیرد. دو
نویسه آخر
(که به عنوان
شماره
زیرفونت
تفسیر
میشوند)
حذف
میشوند تا
نام فایل
پیکربندی
به دست آید
(که باید به
‘.cfg’) ختم شود).
هیچ فایل
اجرایی (job file)
ایجاد
نخواهد شد.
اگر گزینه -p
تنظیم شود،
هیچ فایل PL
ایجاد
نمیشود.
اگر -g تنظیم
شود، هیچ
فایل GF ایجاد
نمیشود.
پسوند فایل
را میتوان
با -n کنترل
کرد؛ اگر
تنظیم شود،
پسوند ‘.gf’
خواهد بود،
در غیر این
صورت
‘.<resolution>gf’.
گزینه -q
دستور hbf2gf را
بیصدا
میکند.
hbf2gf
-t [-q] subfont-name
این حالت
برای
استفاده در
اسکریپتهایی
مانند mktexpk در
نظر گرفته
شده است؛
بررسی
میکند که
آیا نام
زیرفونت
مشخصشده
به یک فایل
پیکربندی
hbf2gf منتهی
میشود یا
خیر. در صورت
موفقیت 0
بازمیگرداند
و نام آن
فایل
پیکربندی
را چاپ
میکند (به
شرطی که
گزینه -q
تنظیم نشده
باشد). این
آزمون کامل
و دقیق
نیست؛
صرفاً دو
نویسه آخر
را حذف کرده
و بررسی
میکند که
آیا فایل
پیکربندی
با آن نام
وجود دارد
یا خیر.
برای جزئیات بیشتر درباره فایلهای پیکربندی، بخش بعدی را ببینید.
مشخص کردن گزینه --version نسخه فعلی hbf2gf و کتابخانه جستجوی فایل مورد استفاده (مانند kpathsea) را بازمیگرداند. اطلاعات نحوه استفاده با پارامتر --help نمایش داده میشود. در اینجا یک نمونه فایل پیکربندی (gsfs14.cfg) برای یک قلم چینی 56×56 با کدگذاری GB آمده است؛ توجه داشته باشید که تمام اطلاعات مربوط به قلم در فایل jfs56.hbf قرار دارد. برای آگاهی از نحوهٔ یافتن قلمهای HBF و فایلهای پیکربندی hbf2gf بخش FILE SEARCHING را ببینید. برای اطلاع از نحوهٔ تهیه قلمهای CJK به همراه فایلهای HBF آن، بخش AVAILABILITY را ببینید:
hbf_header jfs56.hbf mag_x 1 threshold 128 comment jianti fansongti 56x56 pixel font design_size 14.4 y_offset -13 nmb_files -1 output_name gsfs14 checksum 123456789 dpi_x 300 pk_files no tfm_files yes coding codingscheme GuoBiao encoded TeX text pk_directory $HBF_TARGET/pk/modeless/gb2312/gsfs14/ tfm_directory $HBF_TARGET/tfm/gb2312/gsfs14/
یک فایل پیکربندی، یک فایل متنی ساده متشکل از کلمات کلیدی و آرگومانهای آنها است. یک کلمه کلیدی باید در ابتدای یک خط باشد، در غیر این صورت کل خط نادیده گرفته خواهد شد. اگر کلمهای که خط با آن آغاز میشود یک کلمه کلیدی نباشد، آن خط نیز نادیده گرفته خواهد شد. خطهای خالی نیز نادیده گرفته میشوند. جستجو برای کلمات کلیدی به بزرگی و کوچکی حروف حساس نیست؛ در مقابل، آرگومانها دقیقاً همانگونه که داده شدهاند در نظر گرفته میشوند (به جز ‘yes’ و ‘no’ که میتوانند با حروف بزرگ یا کوچک نوشته شوند). هر کلمه کلیدی دارای یک آرگومان است که باید با نویسههای فاصله (فاصله یا تب) از کلمه کلیدی جدا شده و در همان خط باشد. طول هیچ خطی نباید بیشتر از ۲۵۶ نویسه باشد.
میتوانید از متغیرهای محیطی در فایل پیکربندی استفاده کنید. نویسهٔ گریز که آغازگر یک متغیر محیطی در فایل پیکربندی است، همواره ‘$’ است، حتی برای سیستمعاملهایی مانند DOS که قواعد دیگری دارند. دستور hbf2gf تنها نامهای متغیرهای محیطی را تشخیص میدهد که با یک حرف یا یک خط زیر (underscore) آغاز شوند و در ادامه نویسههای الفبایی-عددی یا خط زیر داشته باشند. میتوانید متغیر را درون آکولاد قرار دهید تا پایان نام متغیر مشخص شود، برای نمونه ${FOO}. برای نوشتن علامت دلار باید ‘$$’ را بنویسید. بسط متغیرهای محیطی در خود hbf2gf (بدون کمک روالهای جستجوی kpathsea، emtexdir یا MiKTeX) بسیار محدود است؛ این ویژگی از نسخههای پیشین منتقل شده است. این قابلیت نمیتواند متغیرهای تنظیمشده در texmf.cnf را بسط دهد؛ همچنین نمیتواند بیش از یک دایرکتوری را به عنوان مقدار متغیر مدیریت کند. از آن جز برای پارامترهای ‘pk_directory’ و ‘tfm_directory’ استفاده نکنید!
این فهرستی از تمام کلمات کلیدی ضروری است:
- hbf_header
- نام فایل سرآیند HBF برای قلم(های) ورودی. دستور hbf2gf از سازوکار جستجوی مشخصشده (kpathsea، emtexdir یا MiKTeX) برای یافتن این فایل استفاده میکند.
- output_name
- ریشهٔ نام فایلهای خروجی. یک شمارهٔ دهدهی دورقمی متوالی که از ‘01’ آغاز میشود، پیوست خواهد شد. برای قلمهای Unicode کلمه کلیدی unicode در زیر را ببینید. این مقدار تقریباً در تمام موارد با نام فایل پیکربندی یکسان است.
و اینک تمام کلمات کلیدی اختیاری:
- x_offset
- عرض نویسه را افزایش میدهد. بر هر دو سمت اعمال میشود؛ مقدار پیشفرض برای گلیفهای نچرخیده، مقداری است که در سرآیند HBF (HBF_BITMAP_BOUNDING_BOX) آمده و با design_size (به پیکسل) مقیاسبندی شده است.
- y_offset
- تمام نویسهها را به بالا یا پایین جابهجا میکند؛ مقدار پیشفرض برای گلیفهای نچرخیده، مقداری است که در سرآیند HBF (HBF_BITMAP_BOUNDING_BOX) آمده و با design_size (به پیکسل) مقیاسبندی شده است.
- design_size
- اندازهٔ طراحی قلم (به پوینت). x_offset و y_offset به این اندازه ارجاع دارند. پیشفرض 10.0 است.
- slant
- میزان کجی قلم (به صورت Delta_x / Delta_y داده میشود). تنها مقادیر در بازهٔ 0 ≤ slant ≤ 1 مجاز هستند. پیشفرض 0.0 است.
- rotation
- اگر روی ‘yes’ تنظیم شود، تمام گلیفها ۹۰ درجه پادساعتگرد چرخانده خواهند شد. آفستهای پیشفرض ارائهشده در سرآیند HBF نادیده گرفته میشوند (و روی 0 تنظیم خواهند شد). پیشفرض ‘no’ است.
- mag_x
-
- mag_y
- مقادیر مقیاسبندی نویسهها برای رسیدن به اندازهٔ طراحی. اگر تنها یک بزرگنمایی داده شود، مقادیر x و y برابر فرض میشوند. پیشفرض mag_x = mag_y = 1.0 است.
- threshold
- مقداری بین ۱ و 254 که آستانهای را برای تبدیل نگاشت خاکستری (graymap) درونی به بیتمپ خروجی تعیین میکند؛ مقادیر کمتر، پیکسلهای بیشتری را حذف میکنند. مقدار پیشفرض 128 است.
- comment
- توضیحی در توصیف قلم؛ مقدار پیشفرض هیچ (none) است.
- nmb_fonts
- تعداد زیرقلمهایی که باید ایجاد شوند. مقدار پیشفرض برای ایجاد همهٔ قلمها -1 است.
- unicode
- اگر ‘yes’ باشد، یک عدد هگزادسیمال دو رقمی به عنوان شمارهٔ متوالی استفاده خواهد شد که با مقدار نخستین بایت از نخستین محدودهٔ کد آغاز میشود. پیشفرض ‘no’ است.
- min_char
- کمترین مقدار کدگذاری. اگر این مقدار با کمترین کد نویسه در فایل HBF یکسان نباشد، باید آن را برای دریافت آفستهای درست زیرفایل تنظیم کنید.
- dpi_x
-
- dpi_y
- تفکیکپذیری افقی و عمودی چاپگر (بر حسب dpi). اگر تنها یک تفکیکپذیری داده شود، مقادیر x و y یکسان فرض میشوند. پیشفرض 300 است.
- checksum
- یک چکسام برای تطبیق دادن فایلهای GF با فایلهای مناسب TFM. مقدار پیشفرض این عدد صحیح ۳۲ بیتی بدون علامت 0 است..TP coding یک توضیح برای توصیف طرح کدگذاری؛ پیشفرض هیچ (none) است.
- pk_directory
- دایرکتوری مقصد فایلهای PK ؛ پیشفرض: هیچ (none). توجه! فایل بچ بررسی نخواهد کرد که آیا این دایرکتوری وجود دارد یا خیر.
- tfm_directory
- دایرکتوری مقصد فایلهای TFM ؛ پیشفرض: هیچ (none). توجه! فایل بچ بررسی نخواهد کرد که آیا این دایرکتوری وجود دارد یا خیر.
- pk_files
- تعیین ایجاد شدن یا نشدن فایلهای PK ؛ پیشفرض ‘yes’ است.
- tfm_files
- تعیین ایجاد شدن یا نشدن فایلهای TFM ؛ پیشفرض ‘yes’ است.
- ofm_file
- تعیین ایجاد شدن یا نشدن یک فایل OPL ؛ پیشفرض ‘no’ است. سپس فایل بچ از ovp2ovf توزیع Omega برای تبدیل آن به یک فایل OFM و یک فایل OVF استفاده خواهد کرد. فایل OPL صرفاً تمام زیرقلمها را دوباره به یک قلم واحد Omega نگاشت میکند.
- long_extension
- اگر ‘yes’ باشد، فایلهای PK شامل وضوح در پسوند خواهند بود (مانند gsso1201.300pk). این مورد فقط بر فایل بچ تأثیر میگذارد (پیشفرض ‘yes’ است).
- rm_command
- دستور شل برای حذف فایلها؛ پیشفرض: ‘rm’.
- cp_command
- دستور شل برای رونوشت فایلها؛ پیشفرض: ‘cp’.
- job_extension
- پسوند فایل بچ که gftopk و pltotf را برای تبدیل فایلهای GF و PL به ترتیب به فایلهای PK و TFM فراخوانی میکند؛ پیشفرض هیچ (none) است.
جستجوی فایل (FILE SEARCHING)
hbf2gf برای جستجوی فایلها از یکی از کتابخانههای kpathsea، emtexdir، یا MiKTeX استفاده میکند (emtexdir تنها روی سیستمعاملهایی با پیشزمینه شبه MS-DOS یعنی MS-DOS، OS/2 و Windows کار خواهد کرد؛ MiKTeX برای سیستمهای Win32 است). نسخهٔ واقعی kpathsea در صورت اجرای دستور hbf2gf --version روی صفحه نمایش داده میشود.
در اینجا جدولی از نوع فایل و متغیرهای متناظر kpathsea آمده است.
.hbf MISCFONTS
.cfg HBF2GFINPUTS
لطفاً برای جزئیات بیشتر دربارهٔ این متغیرها، فایلهای info مربوط به kpathsea را مطالعه کنید. تصمیمگیری دربارهٔ اینکه از کدام طرح نامگذاری برای متغیرها استفاده شود، در زمان کامپایل انجام میگیرد.
شما باید متغیر TEXMFCNF را روی پوشهای که فایل پیکربندی texmf.cnf شما در آن قرار دارد تنظیم کنید.
در اینجا دستور مناسب برای یافتن مقداری که یک متغیر kpathsea روی آن تنظیم شده آمده است (ما از MISCFONTS به عنوان مثال استفاده میکنیم). این روش به ویژه زمانی مفید است که متغیری در texmf.cnf یا در محیط تنظیم نشده باشد، و در نتیجه به مقدار پیشفرضی اشاره دارد که به صورت سختکد شده درون کتابخانهٔ kpathsea قرار دارد.
kpsewhich -progname=hbf2gf -expand-var='$MISCFONTS'
ما نام برنامه را نیز انتخاب میکنیم چرا که امکان مشخص کردن متغیرهایی وجود دارد که تنها برای یک برنامهٔ خاص جستجو میشوند – در مثال ما این متغیر MISCFONTS.hbf2gf خواهد بود.
روشی مشابه اما نه کاملاً یکسان، اجرای دستور زیر است:
kpsewhich -progname=hbf2gf -show-path='misc fonts'
[فهرست کاملی از انواع قالبها را میتوان با وارد کردن ‘kpsewhich --help’ در خط فرمان به دست آورد.] این دقیقاً روشی است که hbf2gf برای جستجوی فایلها استفاده میکند؛ عیب این روش آن است که تمام متغیرها بسط داده میشوند که میتواند رشتههای بسیار طولانی ایجاد کند.
emtexdir
در اینجا فهرست پسوندها و متغیرهای محیطی مربوط به آنها که باید در autoexec.bat (یا به ترتیب در config.sys برای OS/2) تنظیم شوند آمده است:
.hbf HBFONTS
.cfg HBFCFG
اگر یکی از متغیرها تنظیم نشده باشد، یک پیام هشدار صادر میشود. پوشهٔ جاری همیشه جستجو خواهد شد. طبق معمول، افزودن یک علامت تعجب به انتهای مسیر پوشه باعث جستجوی زیرپوشهها تا یک سطح عمق میشود و دو علامت تعجب باعث جستجو در تمام زیرپوشهها میگردد. مثال:
HBFONTS=c:\fonts\hbf!!;d:\myfonts\hbf!
ساختارهایی مانند ‘c:\fonts!!\hbf’ امکانپذیر نیستند.
لطفاً برای جزئیات بیشتر به مستندات MiKTeX مراجعه کنید.
محدودیتها (LIMITATIONS)
اندازه خروجی x و y نباید از MAX_CHAR_SIZE، که در زمان کامپایل تعریف میشود فراتر رود؛ مقدار پیشفرض آن 1023 (پیکسل) است.
همچنین ببینید (SEE ALSO)
hbf2gf.w:
این کد منبع
نوشته شده
به زبان CWEB
است که
میتواند
با استفاده
از cweave به یک
سند آراسته
TeX تبدیل شود.
بسته CJK
همچنین
شامل یک
فایل hbf2gf.pdf از
پیش
قالببندیشده
است.
فایلهای مستندات CJK (hbf2gf.txt).
استاندارد Hanzi Bitmap File (HBF) نسخه 1.3؛ موجود در ftp.ifcss.org.
مستندات Omega موجود در ftp.ens.fr و میزبانها و آینههای CTAN.
فایلها (FILES)
- *.cfg
- اسکریپتهای پیکربندی hbf2gf.
- *.hbf
- فایلهای سرآیند HBF که فونتهای بیتمپ با عرض ثابت را توصیف میکنند. توجه داشته باشید که نام(های) خود فونت بیتمپ مشخصشده در فایلهای سرآیند، برای hbf2gf اهمیتی ندارند.
در دسترس بودن (AVAILABILITY)
hbf2gf بخشی از بسته ماکروی CJK برای LaTeX 2e است که در میزبانهای CTAN و آینههای آن در دسترس است.
فونتهای CJK به همراه فایلهای سرآیند HBF را میتوان در ftp.ifcss.org و آینههای آن پیدا کرد.
نویسندگان (AUTHORS)
Werner Lemberg <wl@gnu.org>
Ross Paterson (the HBF API) <ross@soi.city.ac.uk>
| 16-Oct-2021 | CJK Version 4.8.5 |