.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKFIX-HELPER 1" .TH PKFIX-HELPER 1 "2020-08-06" "v1.6" " " .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh.SH "نام (NAME)" pkfix\-helper \- پیش‌پردازش اسناد PostScript تولیدشده توسط dvips پیش از ارسال آن‌ها به pkfix .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" pkfix-helper [\fB\-\-help\fR] [\fB\-\-verbose\fR] [\fB\-\-force\fR=\fIname\fR=\fIfontspec\fR] [\fB\-\-ps\fR=\fIfilename.ps\fR] [\fB\-\-tex\fR=\fIfilename.tex\fR] [\fB\-\-cache\fR=\fIfilename\fR] [\fB\-\-include\fR=\fIfontspec\fR] [\fB\-\-exclude\fR=\fIregexp\fR] [\fB\-\-keep\fR=\fIfontspec\fR] [\fB\-\-quiet\fR] [\fB\-\-no\-repeats\fR] [\fB\-\-spp\fR=\fInumber\fR] [\fIinput.ps\fR [\fIoutput.ps\fR]] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" .SS "انگیزه (Motivation)" .IX Subsection "Motivation" اسناد PostScript ایجادشده با نسخه‌های قدیمی \fBdvips\fR تقریباً همواره از فونت‌های بیتی (PostScript Type\ 3) استفاده می‌کنند. مشکل فونت‌های بیتی این است که وضوح تصویر دستگاه خاصی را هدف قرار می‌دهند؛ یک فایل PostScript تولیدشده با فونت‌های 300\ \s-1DPI\s0 روی یک چاپگر 600\ \s-1DPI\s0 دانه‌دانه به نظر می‌رسد. از آن بدتر، \fIهمه\fR فونت‌های بیتی هنگام بزرگ‌نمایی روی صفحه نمایش دانه‌دانه به نظر می‌رسند. راه‌حل، استفاده از فونت‌های برداری (PostScript Type\ 1) است که به وضوح تصویر وابسته نیستند و در هر اندازه یا مقیاسی واضح و شفاف به نظر می‌رسند. .PP اگرچه دیگر پیکربندی \fBdvips\fR برای استفاده از فونت‌های برداری دشوار نیست، اما اجرای مجدد \fBdvips\fR روی یک فایل \fI.dvi\fR قدیمی همواره ممکن نیست. فایل \fI.dvi\fR و سورس سند ممکن است مفقود شده باشند؛ یا ممکن است سورس به دلیل در دسترس نبودن بسته‌هایی که به آن‌ها وابسته است دیگر کامپایل نشود. .PP اسکریپت \fBpkfix\fR کاری از Heiko Oberdiek، فونت‌های بیتی را در فایل‌های PostScript تولیدشده توسط \&\fBdvips\fR با فونت‌های برداری متناظر جایگزین می‌کند. نحوه کار آن تجزیه توضیحات (کامنت‌های) PostScript است که \&\fBdvips\fR تعاریف فونت‌های بیتی را با آن‌ها احاطه کرده است. برای نمونه، تعریف فونتی که با کامنت \f(CW\*(C`%DVIPSBitmapFont: Fi cmss10 11 28\*(C'\fR آغاز شده و با کامنت متناظر \f(CW%EndDVIPSBitmapFont\fR خاتمه می‌یابد، به عنوان تعریف فونت \f(CW\*(C`Fi\*(C'\fR به صورت \f(CW\*(C`cmss10\*(C'\fR (Computer Modern Sans Serif در اندازه طراحی 10\ پوینت) مقیاس‌بندی‌شده به \f(CW11\fR\ پوینت شناخته می‌شود. تنها \f(CW28\fR نویسه‌ای که واقعاً توسط سند استفاده شده‌اند تعریف می‌شوند. سپس \fBpkfix\fR تعریف فونت را با تعریفی جایگزین می‌کند که \f(CW\*(C`Fi\*(C'\fR را با استفاده از همان مجموعه نویسه‌ها اما برگرفته از فایل فونت برداری \fIcmss10.pfb\fR تعریف می‌کند. .PP متأسفانه \fBpkfix\fR تنها با نسخه‌هایی از \fBdvips\fR کار می‌کند که جدیدتر از نسخه v5.58 (حدود سال ۱۹۹۶) باشند. طبیعتاً هر چه یک سند PostScript قدیمی‌تر باشد، احتمال وجود سورس‌های آن و امکان کامپایل مجددش کمتر است. نسخه‌های قدیمی‌تر \fBdvips\fR فاقد کامنت‌های \f(CW%DVIPSBitmapFont\fR و انواع کامنت‌های دیگر PostScript هستند که \fBpkfix\fR به آن‌ها تکیه دارد. بدون کامنت‌های PostScript برای راهنمایی، \fBpkfix\fR قادر به تشخیص این نیست که کدام فونت‌های برداری با کدام فونت‌های بیتی متناظر هستند. .SS "نمای کلی (Overview)" .IX Subsection "Overview" اسکریپت \fBpkfix-helper\fR یک پیش‌پردازنده برای \fBpkfix\fR است که تلاش می‌کند ارتباط بین نام هر فونت سند (مانند\ \f(CW\*(C`Fi\*(C'\fR) در یک فایل PostScript و فونت اصلی (مانند\ \f(CW\*(C`cmss10\*(C'\fR) و اندازه فونت (مانند\ \f(CW11\fR\ پوینت) را مشخص کند. سپس کامنت‌های PostScript را که \fBpkfix\fR انتظار دیدن آن‌ها را دارد بازتولید می‌کند تا \fBpkfix\fR بتواند کار خود را انجام دهد. .PP \&\fBpkfix-helper\fR با مقایسه هر فونت سند در برابر هر فایل فونت \&\fI.tfm\fR که می‌شناسد (با فرض این‌که هر کدام از این فونت‌ها نسخه برداری \fI.pfb\fR متناظری دارند) و انتخاب بهترین فایل \&\fI.tfm\fR منطبق برای هر فونت سند کار می‌کند. \&\fBpkfix-helper\fR تنها به عرض نویسه‌ها و فقط به آن نویسه‌هایی که واقعاً در سند به کار رفته‌اند دسترسی دارد. همچنین، این برنامه تنها مجموعه محدودی از پرکاربردترین فایل‌های \fI.tfm\fR و ضریب‌های مقیاس را تشخیص می‌دهد. در نتیجه، مقایسه کامل نبوده و ممکن است \fBpkfix-helper\fR فونت نادرستی را به یک نام مشخص نسبت دهد. فونت‌هایی که فقط شامل یک یا دو نویسه واقعاً استفاده‌شده در یک سند هستند به‌ویژه برای \&\fBpkfix-helper\fR دردسرسازند زیرا ممکن است فونت‌های متعددی تطابق‌های به اندازه کافی نزدیکی داشته باشند که برنامه را به اشتباه بیندازند. .PP \&\fBpkfix-helper\fR به‌گونه‌ای طراحی شده است که کاربر بتواند فرایند انتخاب فونت را با تعیین دستی فونت‌های منطبق هدایت کند. با اندکی دقت و شکیبایی، کاربر می‌تواند هر فونت ناهماهنگ را اصلاح کرده و به برنامه در ارائه ورودی مناسب به \fBpkfix\fR کمک کند. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" \&\fBpkfix-helper\fR نام فایل یک سند PostScript را برای پردازش (با پیش‌فرض ورودی استاندارد) و نام فایل سند PostScript تغییریافته را برای ایجاد (با پیش‌فرض خروجی استاندارد) در خط فرمان می‌پذیرد. این برنامه همچنین گزینه‌های خط فرمان زیر را می‌پذیرد: .SS "گزینه‌های پرکاربرد (Frequently Used Options)" .IX Subsection "Frequently Used Options" .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" نمایش اطلاعات نحوه استفاده و خروج. گزینه‌های \fB\-\-verbose\fR و \fB\-\-quiet\fR را می‌توان برای افزایش و کاهش حجم اطلاعات ارائه‌شده به کار برد. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" افزایش مقدار اطلاعات وضعیتی که \fBpkfix-helper\fR هنگام اجرا نمایش می‌دهد. تکرار \fB\-\-verbose\fR در خط فرمان، پرگویی برنامه را بیش از پیش افزایش می‌دهد. به‌طور پیش‌فرض، تنها عملیات‌های اصلی نمایش داده می‌شوند. یک‌بار درج \fB\-\-verbose\fR علاوه بر این، اطلاعات مربوط به مقایسه‌های تک‌تک فونت‌ها را نمایش می‌دهد. درج دوباره \fB\-\-verbose\fR جزئیات مربوط به برخی از عملیات‌های داخلی برنامه را نیز نشان می‌دهد. .IP "\fB\-f\fR \fIname\fR=\fIfontspec\fR, \fB\-\-force\fR=\fIname\fR=\fIfontspec\fR" 4 .IX Item "-f name=fontspec, --force=name=fontspec" اجبار \fBpkfix-helper\fR به مرتبط‌سازی یک فونت خاص با یک نام فونت مشخص که در سند آمده است. \fIname\fR (معمولاً) یک نام فونت دو نویسه‌ای \&\fBdvips\fR مانند \f(CW\*(C`Fa\*(C'\fR است. \fIfontspec\fR مشخصه یک فونت است که شامل یک نام فونت و یک مقیاس اختیاری است: "\fIfont\fR [\f(CW\*(C`@\*(C'\fR\ \fIscale\fR]". چند نمونه از \fIfontspec\fR عبارت‌اند از \f(CW\*(C`cmmi8\*(C'\fR و \&\f(CW\*(C`cmsy10\ @\ 1.1X\*(C'\fR. .Sp علامت ستاره استفاده‌شده در نام فونت (برای نمونه،\ \f(CW\*(C`cmti*\*(C'\fR) با تمام اعداد صحیح از ۵ تا ۱۷ (\f(CW\*(C`cmti5\*(C'\fR، \f(CW\*(C`cmti6\*(C'\fR،\ ...، \&\f(CW\*(C`cmti17\*(C'\fR) جایگزین خواهد شد. مقیاس را می‌توان به صورت مضربی از اندازه طراحی (\f(CW\*(C`X\*(C'\fR) یا به عنوان یک اندازه مطلق بر حسب پوینت‌های TeX (\f(CW\*(C`pt\*(C'\fR) یا پوینت‌های \*(L"بزرگ\*(R" PostScript (\f(CW\*(C`bp\*(C'\fR) نوشت. از این رو، \f(CW\*(C`cmsy8\ @\ 1.5X\*(C'\fR، \f(CW\*(C`cmsy8\ @\ 12pt\*(C'\fR و \f(CW\*(C`cmsy8\ @\ 11.96bp\*(C'\fR همگی بیانگر فونت \fIComputer Modern Math Symbols 8 Point\fR مقیاس‌بندی‌شده به ۱۲ پوینت TeX یا ۱۱٫۹۶ پوینت PostScript هستند. به جای تعیین مقیاس صریح، می‌توان از یک ستاره (مانند \f(CW\*(C`cmsy8\ @\ *\*(C'\fR) استفاده کرد تا درخواست شود که \&\fBpkfix-helper\fR مقیاسی را که بهترین تطابق را با معیارهای (متریک‌های) فونت اصلی دارد پیدا کند. .Sp گزینه \fB\-\-force\fR می‌تواند به صورت مکرر در خط فرمان مشخص شود. .IP "\fB\-p\fR \fIfilename.ps\fR, \fB\-\-ps\fR=\fIfilename.ps\fR" 4 .IX Item "-p filename.ps, --ps=filename.ps" ایجاد یک فایل PostScript به نام \fIfilename.ps\fR که نام \fBdvips\fR و نمونه‌ای از هر فونت استفاده‌شده توسط سند ورودی را نشان می‌دهد. .IP "\fB\-t\fR \fIfilename.tex\fR, \fB\-\-tex\fR=\fIfilename.tex\fR" 4 .IX Item "-t filename.tex, --tex=filename.tex" ایجاد یک فایل Plain TeX به نام \fIfilename.tex\fR که نام \fBdvips\fR و نمونه‌ای از هر فونت استفاده‌شده توسط \fBpkfix-helper\fR در سند خروجی را نشان می‌دهد. .IP "\fB\-k\fR \fIfontspec\fR, \fB\-\-keep\fR=\fIfontspec\fR" 4 .IX Item "-k fontspec, --keep=fontspec" عدم جایگزینی یک فونت برداری با فونت بیتی \fIfontspec\fR (\f(CW\*(C`Fa\*(C'\fR، \&\f(CW\*(C`Fb\*(C'\fR، و غیره). این گزینه هنگام تبدیل اسنادی که از فونت‌های بیتی ناشناخته‌ای استفاده می‌کنند که معادل برداری ندارند، مفید است. به عنوان مثال، در گذشته گنجاندن نگاره‌هایی مانند نشان‌واره‌های دانشگاهی یا شرکتی در یک سند از طریق تبدیل تصویر بیتی به یک فونت تک‌نویسه‌ای و استفاده از آن فونت در LaTeX تا حدی رایج بود. \fB\-\-keep\fR از جایگزینی چنین فونت‌هایی جلوگیری می‌کند. گزینه \&\fB\-\-keep\fR می‌تواند به دفعات در خط فرمان مشخص شود. .IP "\fB\-1\fR, \fB\-\-no\-repeats\fR" 4 .IX Item "-1, --no-repeats" جلوگیری از اینکه \fBpkfix-helper\fR یک \fIfontspec\fR یکسان را با بیش از یک نام فونت \fBdvips\fR مرتبط سازد..SS "گزینه‌های کمتر استفاده‌شده (Less-frequently Used Options)" .IX Subsection "Less-frequently Used Options" .IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 .IX Item "-q, --quiet" به \fBpkfix-helper\fR دستور می‌دهد تا در حین اجرای خود هیچ خروجی‌ای به جز پیام‌های خطا و هشدار تولید نکند. .IP "\fB\-C\fR \fIfilename\fR, \fB\-\-cache\fR=\fIfilename\fR" 4 .IX Item "-C filename, --cache=filename" با ذخیره (کش) کردن متریک‌های نویسه در فایل \&\fIfilename\fR، پردازش فایل‌های \s-1TFM\s0 را تسریع می‌کند. در برخی سیستم‌ها، خواندن یک فایل \s-1TFM\s0، اجرای \fItftopl\fR برای تبدیل آن به قالب \s-1PL\s0 و استخراج متریک‌های هر نویسه از داده‌های \s-1PL\s0 زمان زیادی می‌برد. نخستین باری که \fB\-\-cache\fR مشخص شود، \fBpkfix-helper\fR طبق روال معمول عمل کرده و سپس تمام متریک‌های استخراج‌شده نویسه‌ها را در \fIfilename\fR می‌نویسد. در اجراهای بعدی که \fB\-\-cache\fR=\fIfilename\fR مشخص شود، \fBpkfix-helper\fR متریک‌های استخراج‌شده قبلی را از \fIfilename\fR می‌خواند و فرایند مبتنی بر \&\fItftopl\fR را فقط برای فایل‌های \s-1TFM\s0 طی می‌کند که پیش‌تر با آن‌ها مواجه نشده است. .IP "\fB\-i\fR \fIfontspec\fR, \fB\-\-include\fR=\fIfontspec\fR" 4 .IX Item "-i fontspec, --include=fontspec" مشخصه قلم \fIfontspec\fR را به فهرست مشخصات قلمی که \&\fBpkfix-helper\fR \fIهر\fR قلم سند را با آن‌ها مقایسه می‌کند، می‌افزاید. (در مقابل، \&\fB\-\-force\fR مشخصه قلمی را تعیین می‌کند که فقط برای یک قلم سند \fIخاص\fR استفاده شود.) گزینه \fB\-\-include\fR می‌تواند به دفعات در خط فرمان مشخص شود. .IP "\fB\-x\fR \fIregexp\fR, \fB\-\-exclude\fR=\fIregexp\fR" 4 .IX Item "-x regexp, --exclude=regexp" تمام مشخصات قلم منطبق با عبارت باقاعده \fIregexp\fR را از فهرست قلم‌های شناخته‌شده \fBpkfix-helper\fR حذف می‌کند. گزینه \fB\-\-exclude\fR را می‌توان به دفعات در خط فرمان مشخص کرد. .IP "\fB\-s\fR, \fB\-\-spp\fR" 4 .IX Item "-s, --spp" تعداد نمونه‌های قلم در هر صفحه را برای چاپ در فایل‌های مشخص‌شده با استفاده از گزینه‌های \fB\-\-ps\fR و \fB\-\-tex\fR تعیین می‌کند. مقدار پیش‌فرض،\ 25، باید در بیشتر شرایط به خوبی کار کند. .SH "خطاها (DIAGNOSTICS)" .IX Header "DIAGNOSTICS" .ie n .IP """Best match for \fIname\fP is rather poor""" 4 .el .IP "\f(CWBest match for \f(CIname\f(CW is rather poor\fR" 4 .IX Item "Best match for name is rather poor" بهترین قلمی که \fBpkfix-helper\fR برای نام قلم \fBdvips\fR یعنی \fIname\fR پیدا کرده است، دارای مقدار عدم‌تطابق بزرگتر یا مساوی\ 1.0 است. (مقدار عدم‌تطابق، مجموع مربعات اختلاف بین پهنای نویسه‌های قلم سند و قلم جایگزین بالقوه است.) از گزینه \&\fB\-\-force\fR برای تعیین یک قلم جایگزین دیگر یا مقدار مقیاس‌بندی استفاده کنید. .ie n .IP """\fIname\fP uses characters that don\*(Aqt appear in any candidate font""" 4 .el .IP "\f(CW\f(CIname\f(CW uses characters that don\*(Aqt appear in any candidate font\fR" 4 .IX Item "name uses characters that dont appear in any candidate font" هیچ‌یک از قلم‌های بررسی‌شده برای تطابق، شامل تمام نویسه‌های موجود در قلم \fIname\fR نیستند. کاربر باید از گزینه \fB\-\-force\fR برای آگاه کردن \&\fBpkfix-helper\fR از اینکه از کدام قلم استفاده کند، یا از گزینه \fB\-\-keep\fR برای نگه‌داشتن قلم نقش‌بیتی اصلی استفاده کند. .ie n .IP """Processing \fIname\fP ... done (\fIfont\fP with mismatch=\fInumber\fP, tied with \fIfont\fP...)""" 4 .el .IP "\f(CWProcessing \f(CIname\f(CW ... done (\f(CIfont\f(CW with mismatch=\f(CInumber\f(CW, tied with \f(CIfont\f(CW...)\fR" 4 .IX Item "Processing name ... done (font with mismatch=number, tied with font...)" بهترین تطابق برای \fIname\fR، قلم \fIfont\fR است. یک تطابق کامل دارای \&\fInumber\fR برابر با 0.00000 است. تطابق‌های ضعیف‌تر مقادیر بزرگتری دارند. اگر یک تساوی گزارش شود، به این معنی است که یک یا چند قلم به یک اندازه با \fIname\fR تطابق داشته‌اند (یعنی \fInumber\fR یکسانی دارند). در این حالت، \fBpkfix-helper\fR قلمی را که از نظر کیفی محتمل‌تر است به عنوان برنده انتخاب می‌کند. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" برای اهداف مثال‌های زیر، فرض کنید \fIoldfile.ps\fR نام یک فایل PostScript تولیدشده توسط نسخه قدیمی \&\fBdvips\fR است که دست‌کم از یک قلم نقش‌بیتی استفاده می‌کند. همیشه ارزش دارد ابتدا بررسی کنید که آیا خود \fBpkfix\fR می‌تواند فایل را به تنهایی تبدیل کند یا خیر: .PP .Vb 3 \& $ pkfix oldfile.ps newfile.ps \& PKFIX 1.3, 2005/02/25 \- Copyright (c) 2001, 2005 by Heiko Oberdiek. \& ==> no fonts converted .Ve .PP (همچنین ممکن است \fBpkfix\fR پیام خطایی مانند \f(CW\*(C`!!! Error: Parse error (@start parameters)!\*(C'\fR صادر کند.) تنها زمانی که \fBpkfix\fR نتواند قلم‌های نقش‌بیتی را با قلم‌های برداری جایگزین کند، به \fBpkfix-helper\fR نیاز خواهد بود. در ساده‌ترین حالت، \fBpkfix-helper\fR نام یک فایل ورودی (در این مثال \fIoldfile.ps\fR) و نام یک فایل خروجی (\fIpkfix\-oldfile.ps\fR) را می‌گیرد که همان محتوای فایل ورودی را خواهد داشت اما به عنوان ورودی مناسب برای \fBpkfix\fR عمل می‌کند: .PP .Vb 10 \& $ pkfix\-helper oldfile.ps pkfix\-oldfile.ps \& Reading oldfile.ps ... done. \& Number of Type 3 fonts encountered: 10 \& Bitmapped fonts are typeset at 600 DPI. \& Finding character widths ... done. \& Reading TFM files ... done (103 TFMs in 193 scaling variations). \& Matching fonts: \& Processing Fi ... done (cmr10 @ 1X, mismatch=0.11683). \& Processing Fa ... done (cmti10 @ 1X, mismatch=0.08892). \& Processing Fb ... done (cmr8 @ 1X, mismatch=0.07133). \& Processing Ff ... done (cmbx12 @ 1.2X, mismatch=0.02948). \& Processing Fh ... done (cmtt10 @ 1X, mismatch=0.06895). \& Processing Fd ... done (cmmi10 @ 1X, mismatch=0.03966). \& Processing Fj ... done (cmbx12 @ 1X, mismatch=0.03972). \& Processing Fe ... done (cmbx10 @ 1X, mismatch=0.00762). \& Processing Fg ... done (cmsy10 @ 1X, mismatch=0.00875). \& Processing Fc ... done (cmr6 @ 1X, mismatch=0.00284). \& \& $ pkfix pkfix\-oldfile.ps newfile.ps \& PKFIX 1.3, 2005/02/25 \- Copyright (c) 2001, 2005 by Heiko Oberdiek. \& *** Font conversion: \`cmti10\*(Aq \-> \`CMTI10\*(Aq. \& *** Font conversion: \`cmr8\*(Aq \-> \`CMR8\*(Aq. \& *** Font conversion: \`cmr6\*(Aq \-> \`CMR6\*(Aq. \& *** Font conversion: \`cmmi10\*(Aq \-> \`CMMI10\*(Aq. \& *** Font conversion: \`cmbx10\*(Aq \-> \`CMBX10\*(Aq. \& *** Font conversion: \`cmbx12\*(Aq \-> \`CMBX12\*(Aq. \& *** Font conversion: \`cmsy10\*(Aq \-> \`CMSY10\*(Aq. \& *** Font conversion: \`cmtt10\*(Aq \-> \`CMTT10\*(Aq. \& *** Font conversion: \`cmr10\*(Aq \-> \`CMR10\*(Aq. \& *** Font conversion: \`cmbx12\*(Aq \-> \`CMBX12\*(Aq. \& *** Merging font \`CMBX12\*(Aq (2). \& ==> 10 converted fonts. \& ==> 1 merged font. .Ve .PP اگرچه \fBpkfix-helper\fR تلاش می‌کند تا فرایند تشخیص قلم را تا حد امکان خودکار کند، اما همواره برخی قلم‌ها به اشتباه شناسایی خواهند شد. این برنامه اگر \fIبداند\fR که یک تطابق نامناسب است، یک پیام هشدار صادر می‌کند؛ اما عدم وجود پیام هشدار لزوماً به این معنی نیست که \fBpkfix-helper\fR کار خود را به خوبی انجام داده است. از این رو، اکیداً توصیه می‌شود که کاربر برگه‌های نمونه قلم «قبل» (\*(L"before\*(R") و «بعد» (\*(L"after\*(R") را تولید کند: .PP .Vb 2 \& $ pkfix\-helper \-q oldfile.ps pkfix\-oldfile.ps \e \& \-\-ps=oldfonts.ps \-\-tex=newfonts.tex \& \& $ tex newfonts.tex \& This is TeX, Version 3.14159 (Web2C 7.4.5) \& (./newfonts.tex [1] ) \& Output written on newfonts.dvi (1 page, 1292 bytes). \& Transcript written on newfonts.log. \& \& $ dvips newfonts.dvi \-o newfonts.ps \& This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com) \& \*(Aq TeX output 2006.06.11:1636\*(Aq \-> newfonts.ps \& <8r.enc>. \& [1] .Ve .PP پس از اجرای دستورهای فوق، \fIoldfonts.ps\fR نمونه‌هایی از قلم‌های موجود در \fIoldfile.ps\fR و \fInewfonts.ps\fR نمونه‌هایی از قلم‌های جایگزینی را که \fBpkfix-helper\fR برای ایجاد \&\fIpkfix\-oldfile.ps\fR استفاده کرده است، نشان می‌دهند. فایل‌های \fIoldfonts.ps\fR و \fInewfonts.ps\fR را چاپ کرده و آن‌ها را با دقت از نظر قلم‌ها و اندازه‌های نادرست با یکدیگر مقایسه کنید. .PP فرض کنید انتخاب \f(CW\*(C`cmbx12 @ 1.2X\*(C'\fR برای قلم \f(CW\*(C`Ff\*(C'\fR نادرست به نظر می‌رسد؛ مثلاً نویسه‌ها در \fIoldfonts.ps\fR بلندتر از \fInewfonts.ps\fR به نظر می‌رسند. اینجاست که مرحله آزمون و خطا آغاز می‌شود. فرض کنیم که \f(CW\*(C`cmb12\*(C'\fR تطابق بهتری نسبت به \f(CW\*(C`cmbx12\*(C'\fR است، اما نمی‌دانیم قلم را چقدر باید مقیاس‌بندی کنیم. خوشبختانه، \&\fBpkfix-helper\fR اجازه می‌دهد از \f(CW\*(C`*\*(C'\fR به عنوان ضریب مقیاس‌بندی استفاده شود تا به برنامه بگوید ضریب مقیاس‌بندی بهینه را به‌طور خودکار تشخیص دهد، حتی اگر این کار به معنای انتخاب یک اندازه قلم غیراستاندارد باشد: .PP .Vb 7 \& $ pkfix\-helper oldfile.ps pkfix\-oldfile.ps \-\-force="Ff=cmb12 @ *" \& Reading oldfile.ps ... done. \& Number of Type 3 fonts encountered: 10 \& Bitmapped fonts are typeset at 600 DPI. \& Finding character widths ... done. \& Reading TFM files ... failed. \& pkfix\-helper: Unable to process user\-specified TFM file "cmb12" .Ve .PP ظاهراً فایل \fIcmb12.tfm\fR را روی سیستم خود نداریم. بیایید در عوض بزرگ‌نمایی \fIcmb10.tfm\fR را امتحان کنیم: .PP .Vb 10 \& $ pkfix\-helper oldfile.ps pkfix\-oldfile.ps \-\-force="Ff=cmb10 @ *" \& Reading oldfile.ps ... done. \& Number of Type 3 fonts encountered: 10 \& Bitmapped fonts are typeset at 600 DPI. \& Finding character widths ... done. \& Reading TFM files ... done (103 TFMs in 193 scaling variations). \& Matching fonts: \& Processing Fi ... done (cmr10 @ 1X, mismatch=0.11683). \& Processing Fa ... done (cmti10 @ 1X, mismatch=0.08892). \& Processing Fb ... done (cmr8 @ 1X, mismatch=0.07133). \& Processing Ff ... done (cmb10 @ 1.5X, mismatch=0.00035). \& Processing Fh ... done (cmtt10 @ 1X, mismatch=0.06895). \& Processing Fd ... done (cmmi10 @ 1X, mismatch=0.03966). \& Processing Fj ... done (cmbx12 @ 1X, mismatch=0.03972). \& Processing Fe ... done (cmbx10 @ 1X, mismatch=0.00762). \& Processing Fg ... done (cmsy10 @ 1X, mismatch=0.00875). \& Processing Fc ... done (cmr6 @ 1X, mismatch=0.00284). .Ve .PP میزان تطابق قطعاً بهبود یافته است، اگرچه 15\ pt. مسلماً اندازه عجیبی برای یک قلم است. از سوی دیگر، بسیاری از اسناد \fIواقعاً\fR از اندازه‌های غیراستاندارد استفاده می‌کنند، بنابراین این نتیجه ممکن است در عمل درست باشد. بهترین راه برای اطمینان این است که مجدداً یک جفت نمونه قلم تولید و چاپ کنید و آن‌ها را مقایسه نمایید، و این فرایند را تکرار کنید تا تمام قلم‌ها درست به نظر برسند. برای هر قلمی که می‌خواهید تغییر دهید، از یک نمونه \&\fB\-\-force\fR استفاده کنید..SH "محیط (ENVIRONMENT)" .IX Header "ENVIRONMENT" \&\fBpkfix-helper\fR متغیرهای محیطی زیر را در نظر می‌گیرد: .IP "\s-1GS\s0" 8 .IX Item "GS" نام مفسر Ghostscript (پیش‌فرض: \fIgs\fR) .IP "\s-1TFTOPL\s0" 8 .IX Item "TFTOPL" نام ابزاری برای تبدیل فایل‌های \fI.tfm\fR به فایل‌های \fI.pl\fR (پیش‌فرض: \fItftopl\fR) .SH "محدودیت‌ها (RESTRICTIONS)" .IX Header "RESTRICTIONS" \&\fBpkfix-helper\fR تنها با فایل‌های PostScript تولیدشده توسط \fBdvips\fR کار می‌کند، نه با فایل‌های دلخواه PostScript. تنها فونت‌های نقشه‌بیتی بارگذاری‌شده توسط \&\fBdvips\fR قابل تجزیه‌وتحلیل هستند، نه فونت‌های نقشه‌بیتی بارگذاری‌شده توسط گرافیک‌های تعبیه‌شده (embedded). .PP \&\fBpkfix-helper\fR با مقایسه عرض نویسه‌ها کار می‌کند، نه گلیف‌های واقعی. در نتیجه، ممکن است توسط مجموعه‌فونت‌هایی با عرض نویسه مشابه (دست‌کم برای نویسه‌های استفاده‌شده در یک سند مشخص) به اشتباه بیفتد. به عنوان یک مثال مفرط، تمام فونت‌های Computer Modern Teletype با یک اندازه طراحی مشخص (مانند \f(CW\*(C`cmtt10\*(C'\fR، \f(CW\*(C`cmsltt10\*(C'\fR و \f(CW\*(C`cmitt10\*(C'\fR) دقیقاً از عرض‌های یکسانی برای تمام نویسه‌ها استفاده می‌کنند. به طور کلی، برای هدایت رویه‌های تطبیق فونت \fBpkfix-helper\fR، به‌ویژه برای فونت‌هایی که نویسه‌های نسبتاً کمی از آن‌ها در سند ظاهر می‌شوند، به کمک انسانی نیاز است. .PP تنوع شگفت‌انگیزی در خروجی‌های \fBdvips\fR وجود دارد. نسخه‌های مختلف برنامه و گزینه‌های متفاوت خط فرمان می‌توانند به فایل‌های PostScript با ساختاری کاملاً متفاوت منجر شوند. \&\fBpkfix-helper\fR تلاش زیادی می‌کند تا اطلاعات فونت پنهان‌شده در گونه‌های متعدد فایل خروجی را پیدا کند، اما غیرمعمول نیست که یک فایل PostScript تولیدشده توسط نسخه‌ای به قدر کافی قدیمی از \fBdvips\fR یا با گزینه‌های خط فرمان به اندازه کافی مبهم، \fBpkfix-helper\fR را کاملاً سردرگم کند. در این صورت، لطفاً فایل‌های مشکل‌دار PostScript خود را برای نویسنده \fBpkfix-helper\fR ارسال کنید (بخش \*(L"\s-1نویسنده (AUTHOR)\*(R"\s0 در ادامه را ببینید)، که شاید بتواند \&\fBpkfix-helper\fR را برای مدیریت آن‌ها ارتقا دهد. .SH "نکات (NOTES)" .IX Header "NOTES" فایل‌های تولیدشده با استفاده از گزینه \fB\-\-tex\fR از نوع Plain TeX هستند و بنابراین باید با \fBtex\fR (یا نسخه‌های دیگری مانند \fBpdftex\fR، \fBluatex\fR، \&\fBxetex\fR و غیره) کامپایل شوند، \fIنه\fR با \fBlatex\fR. .PP فایل‌های PostScript تولیدشده توسط \fBdvips\fR می‌توانند به صورت بخش‌بندی‌شده ساختاربندی شوند، که با \f(CW%DVIPSBeginSection\fR و \f(CW%DVIPSEndSection\fR مشخص می‌گردند. نام فونت‌ها برای هر بخش محلی است. بنابراین، یک فونت با نام \&\f(CW\*(C`Fa\*(C'\fR ممکن است در یک بخش به \f(CW\*(C`cmex10\*(C'\fR و در بخش دیگری به \&\f(CW\*(C`cmmi7\*(C'\fR نگاشت شود. \fBpkfix-helper\fR با الحاق یک پسوند شماره بخش، به هر فونت در یک سند چندبخشی نامی یکتا اختصاص می‌دهد: \f(CW\*(C`Fa_S01\*(C'\fR، \&\f(CW\*(C`Fa_S02\*(C'\fR و غیره. .PP نام فونت‌ها به ترتیب نزولی تعداد نویسه‌هایی که در سند نمایش داده‌اند پردازش می‌شوند. بدین معنا که اگر سند شامل ۱۰ نویسه از \f(CW\*(C`Fa\*(C'\fR و ۲۳ نویسه از \&\f(CW\*(C`Fb\*(C'\fR باشد، \fBpkfix-helper\fR پیش از \f(CW\*(C`Fa\*(C'\fR فونت \f(CW\*(C`Fb\*(C'\fR را پردازش خواهد کرد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBpkfix\fR\|(1), \fBdvips\fR\|(1), \fBtex\fR\|(1), \fBgs\fR\|(1) .PP PostScript Language Reference, Third Edition. Published by Addison-Wesley, \s-1ISBN 0\-201\-37922\-8,\s0 . .SH "نویسنده (AUTHOR)" .IX Header "AUTHOR" Scott Pakin, \fIscott+pkfh@pakin.org\fR .SH "کپی‌رایت و مجوز (COPYRIGHT AND LICENSE)" .IX Header "COPYRIGHT AND LICENSE" حق نشر (C) 2009\-2020، Scott Pakin .PP این فایل ممکن است تحت شرایط «مجوز عمومی پروژه لیتک» (LaTeX Project Public License)، چه نسخه 1.3c این مجوز یا (به انتخاب شما) هر نسخه جدیدتری توزیع و/یا تغییر داده شود. آخرین نسخه این مجوز در موجود است و نسخه 1.3c یا بالاتر بخشی از تمامی توزیع‌های LaTeX نسخه 2006/05/20 یا جدیدتر است.