| PKFIX-HELPER(1) | PKFIX-HELPER(1) |
pkfix-helper - پیشپردازش اسناد PostScript تولیدشده توسط dvips پیش از ارسال آنها به pkfix
خلاصه دستور (SYNOPSIS)
pkfix-helper [--help] [--verbose] [--force=name=fontspec] [--ps=filename.ps] [--tex=filename.tex] [--cache=filename] [--include=fontspec] [--exclude=regexp] [--keep=fontspec] [--quiet] [--no-repeats] [--spp=number] [input.ps [output.ps]]
توضیحات (DESCRIPTION)
انگیزه (Motivation)
اسناد PostScript ایجادشده با نسخههای قدیمی dvips تقریباً همواره از فونتهای بیتی (PostScript Type 3) استفاده میکنند. مشکل فونتهای بیتی این است که وضوح تصویر دستگاه خاصی را هدف قرار میدهند؛ یک فایل PostScript تولیدشده با فونتهای 300 DPI روی یک چاپگر 600 DPI دانهدانه به نظر میرسد. از آن بدتر، همه فونتهای بیتی هنگام بزرگنمایی روی صفحه نمایش دانهدانه به نظر میرسند. راهحل، استفاده از فونتهای برداری (PostScript Type 1) است که به وضوح تصویر وابسته نیستند و در هر اندازه یا مقیاسی واضح و شفاف به نظر میرسند.
اگرچه دیگر پیکربندی dvips برای استفاده از فونتهای برداری دشوار نیست، اما اجرای مجدد dvips روی یک فایل .dvi قدیمی همواره ممکن نیست. فایل .dvi و سورس سند ممکن است مفقود شده باشند؛ یا ممکن است سورس به دلیل در دسترس نبودن بستههایی که به آنها وابسته است دیگر کامپایل نشود.
اسکریپت pkfix کاری از Heiko Oberdiek، فونتهای بیتی را در فایلهای PostScript تولیدشده توسط dvips با فونتهای برداری متناظر جایگزین میکند. نحوه کار آن تجزیه توضیحات (کامنتهای) PostScript است که dvips تعاریف فونتهای بیتی را با آنها احاطه کرده است. برای نمونه، تعریف فونتی که با کامنت "%DVIPSBitmapFont: Fi cmss10 11 28" آغاز شده و با کامنت متناظر %EndDVIPSBitmapFont خاتمه مییابد، به عنوان تعریف فونت "Fi" به صورت "cmss10" (Computer Modern Sans Serif در اندازه طراحی 10 پوینت) مقیاسبندیشده به 11 پوینت شناخته میشود. تنها 28 نویسهای که واقعاً توسط سند استفاده شدهاند تعریف میشوند. سپس pkfix تعریف فونت را با تعریفی جایگزین میکند که "Fi" را با استفاده از همان مجموعه نویسهها اما برگرفته از فایل فونت برداری cmss10.pfb تعریف میکند.
متأسفانه pkfix تنها با نسخههایی از dvips کار میکند که جدیدتر از نسخه v5.58 (حدود سال ۱۹۹۶) باشند. طبیعتاً هر چه یک سند PostScript قدیمیتر باشد، احتمال وجود سورسهای آن و امکان کامپایل مجددش کمتر است. نسخههای قدیمیتر dvips فاقد کامنتهای %DVIPSBitmapFont و انواع کامنتهای دیگر PostScript هستند که pkfix به آنها تکیه دارد. بدون کامنتهای PostScript برای راهنمایی، pkfix قادر به تشخیص این نیست که کدام فونتهای برداری با کدام فونتهای بیتی متناظر هستند.
نمای کلی (Overview)
اسکریپت pkfix-helper یک پیشپردازنده برای pkfix است که تلاش میکند ارتباط بین نام هر فونت سند (مانند "Fi") در یک فایل PostScript و فونت اصلی (مانند "cmss10") و اندازه فونت (مانند 11 پوینت) را مشخص کند. سپس کامنتهای PostScript را که pkfix انتظار دیدن آنها را دارد بازتولید میکند تا pkfix بتواند کار خود را انجام دهد.
pkfix-helper با مقایسه هر فونت سند در برابر هر فایل فونت .tfm که میشناسد (با فرض اینکه هر کدام از این فونتها نسخه برداری .pfb متناظری دارند) و انتخاب بهترین فایل .tfm منطبق برای هر فونت سند کار میکند. pkfix-helper تنها به عرض نویسهها و فقط به آن نویسههایی که واقعاً در سند به کار رفتهاند دسترسی دارد. همچنین، این برنامه تنها مجموعه محدودی از پرکاربردترین فایلهای .tfm و ضریبهای مقیاس را تشخیص میدهد. در نتیجه، مقایسه کامل نبوده و ممکن است pkfix-helper فونت نادرستی را به یک نام مشخص نسبت دهد. فونتهایی که فقط شامل یک یا دو نویسه واقعاً استفادهشده در یک سند هستند بهویژه برای pkfix-helper دردسرسازند زیرا ممکن است فونتهای متعددی تطابقهای به اندازه کافی نزدیکی داشته باشند که برنامه را به اشتباه بیندازند.
pkfix-helper بهگونهای طراحی شده است که کاربر بتواند فرایند انتخاب فونت را با تعیین دستی فونتهای منطبق هدایت کند. با اندکی دقت و شکیبایی، کاربر میتواند هر فونت ناهماهنگ را اصلاح کرده و به برنامه در ارائه ورودی مناسب به pkfix کمک کند.
گزینهها (OPTIONS)
pkfix-helper نام فایل یک سند PostScript را برای پردازش (با پیشفرض ورودی استاندارد) و نام فایل سند PostScript تغییریافته را برای ایجاد (با پیشفرض خروجی استاندارد) در خط فرمان میپذیرد. این برنامه همچنین گزینههای خط فرمان زیر را میپذیرد:
گزینههای پرکاربرد (Frequently Used Options)
- -h, --help
- نمایش اطلاعات نحوه استفاده و خروج. گزینههای --verbose و --quiet را میتوان برای افزایش و کاهش حجم اطلاعات ارائهشده به کار برد.
- -v, --verbose
- افزایش مقدار اطلاعات وضعیتی که pkfix-helper هنگام اجرا نمایش میدهد. تکرار --verbose در خط فرمان، پرگویی برنامه را بیش از پیش افزایش میدهد. بهطور پیشفرض، تنها عملیاتهای اصلی نمایش داده میشوند. یکبار درج --verbose علاوه بر این، اطلاعات مربوط به مقایسههای تکتک فونتها را نمایش میدهد. درج دوباره --verbose جزئیات مربوط به برخی از عملیاتهای داخلی برنامه را نیز نشان میدهد.
- -f name=fontspec, --force=name=fontspec
- اجبار pkfix-helper
به
مرتبطسازی
یک فونت خاص
با یک نام
فونت مشخص
که در سند
آمده است. name
(معمولاً)
یک نام فونت
دو
نویسهای
dvips مانند
"Fa" است.
fontspec مشخصه یک
فونت است که
شامل یک نام
فونت و یک
مقیاس
اختیاری
است: "font
["@" scale]".
چند نمونه
از fontspec
عبارتاند
از "cmmi8" و
"cmsy10 @ 1.1X".
علامت ستاره استفادهشده در نام فونت (برای نمونه، "cmti*") با تمام اعداد صحیح از ۵ تا ۱۷ ("cmti5"، "cmti6"، ...، "cmti17") جایگزین خواهد شد. مقیاس را میتوان به صورت مضربی از اندازه طراحی ("X") یا به عنوان یک اندازه مطلق بر حسب پوینتهای TeX ("pt") یا پوینتهای "بزرگ" PostScript ("bp") نوشت. از این رو، "cmsy8 @ 1.5X"، "cmsy8 @ 12pt" و "cmsy8 @ 11.96bp" همگی بیانگر فونت Computer Modern Math Symbols 8 Point مقیاسبندیشده به ۱۲ پوینت TeX یا ۱۱٫۹۶ پوینت PostScript هستند. به جای تعیین مقیاس صریح، میتوان از یک ستاره (مانند "cmsy8 @ *") استفاده کرد تا درخواست شود که pkfix-helper مقیاسی را که بهترین تطابق را با معیارهای (متریکهای) فونت اصلی دارد پیدا کند.
گزینه --force میتواند به صورت مکرر در خط فرمان مشخص شود.
- -p filename.ps, --ps=filename.ps
- ایجاد یک فایل PostScript به نام filename.ps که نام dvips و نمونهای از هر فونت استفادهشده توسط سند ورودی را نشان میدهد.
- -t filename.tex, --tex=filename.tex
- ایجاد یک فایل Plain TeX به نام filename.tex که نام dvips و نمونهای از هر فونت استفادهشده توسط pkfix-helper در سند خروجی را نشان میدهد.
- -k fontspec, --keep=fontspec
- عدم جایگزینی یک فونت برداری با فونت بیتی fontspec ("Fa"، "Fb"، و غیره). این گزینه هنگام تبدیل اسنادی که از فونتهای بیتی ناشناختهای استفاده میکنند که معادل برداری ندارند، مفید است. به عنوان مثال، در گذشته گنجاندن نگارههایی مانند نشانوارههای دانشگاهی یا شرکتی در یک سند از طریق تبدیل تصویر بیتی به یک فونت تکنویسهای و استفاده از آن فونت در LaTeX تا حدی رایج بود. --keep از جایگزینی چنین فونتهایی جلوگیری میکند. گزینه --keep میتواند به دفعات در خط فرمان مشخص شود.
- -1, --no-repeats
- جلوگیری از اینکه pkfix-helper یک fontspec یکسان را با بیش از یک نام فونت dvips مرتبط سازد..SS "گزینههای کمتر استفادهشده (Less-frequently Used Options)"
- -q, --quiet
- به pkfix-helper دستور میدهد تا در حین اجرای خود هیچ خروجیای به جز پیامهای خطا و هشدار تولید نکند.
- -C filename, --cache=filename
- با ذخیره (کش) کردن متریکهای نویسه در فایل filename، پردازش فایلهای TFM را تسریع میکند. در برخی سیستمها، خواندن یک فایل TFM، اجرای tftopl برای تبدیل آن به قالب PL و استخراج متریکهای هر نویسه از دادههای PL زمان زیادی میبرد. نخستین باری که --cache مشخص شود، pkfix-helper طبق روال معمول عمل کرده و سپس تمام متریکهای استخراجشده نویسهها را در filename مینویسد. در اجراهای بعدی که --cache=filename مشخص شود، pkfix-helper متریکهای استخراجشده قبلی را از filename میخواند و فرایند مبتنی بر tftopl را فقط برای فایلهای TFM طی میکند که پیشتر با آنها مواجه نشده است.
- -i fontspec, --include=fontspec
- مشخصه قلم fontspec را به فهرست مشخصات قلمی که pkfix-helper هر قلم سند را با آنها مقایسه میکند، میافزاید. (در مقابل، --force مشخصه قلمی را تعیین میکند که فقط برای یک قلم سند خاص استفاده شود.) گزینه --include میتواند به دفعات در خط فرمان مشخص شود.
- -x regexp, --exclude=regexp
- تمام مشخصات قلم منطبق با عبارت باقاعده regexp را از فهرست قلمهای شناختهشده pkfix-helper حذف میکند. گزینه --exclude را میتوان به دفعات در خط فرمان مشخص کرد.
- -s, --spp
- تعداد نمونههای قلم در هر صفحه را برای چاپ در فایلهای مشخصشده با استفاده از گزینههای --ps و --tex تعیین میکند. مقدار پیشفرض، 25، باید در بیشتر شرایط به خوبی کار کند.
خطاها (DIAGNOSTICS)
- "Best match for name is rather poor"
- بهترین قلمی که pkfix-helper برای نام قلم dvips یعنی name پیدا کرده است، دارای مقدار عدمتطابق بزرگتر یا مساوی 1.0 است. (مقدار عدمتطابق، مجموع مربعات اختلاف بین پهنای نویسههای قلم سند و قلم جایگزین بالقوه است.) از گزینه --force برای تعیین یک قلم جایگزین دیگر یا مقدار مقیاسبندی استفاده کنید.
- "name uses characters that don't appear in any candidate font"
- هیچیک از قلمهای بررسیشده برای تطابق، شامل تمام نویسههای موجود در قلم name نیستند. کاربر باید از گزینه --force برای آگاه کردن pkfix-helper از اینکه از کدام قلم استفاده کند، یا از گزینه --keep برای نگهداشتن قلم نقشبیتی اصلی استفاده کند.
- "Processing name ... done (font with mismatch=number, tied with font...)"
- بهترین تطابق برای name، قلم font است. یک تطابق کامل دارای number برابر با 0.00000 است. تطابقهای ضعیفتر مقادیر بزرگتری دارند. اگر یک تساوی گزارش شود، به این معنی است که یک یا چند قلم به یک اندازه با name تطابق داشتهاند (یعنی number یکسانی دارند). در این حالت، pkfix-helper قلمی را که از نظر کیفی محتملتر است به عنوان برنده انتخاب میکند.
مثالها (EXAMPLES)
برای اهداف مثالهای زیر، فرض کنید oldfile.ps نام یک فایل PostScript تولیدشده توسط نسخه قدیمی dvips است که دستکم از یک قلم نقشبیتی استفاده میکند. همیشه ارزش دارد ابتدا بررسی کنید که آیا خود pkfix میتواند فایل را به تنهایی تبدیل کند یا خیر:
$ pkfix oldfile.ps newfile.ps PKFIX 1.3, 2005/02/25 - Copyright (c) 2001, 2005 by Heiko Oberdiek. ==> no fonts converted
(همچنین ممکن است pkfix پیام خطایی مانند "!!! Error: Parse error (@start parameters)!" صادر کند.) تنها زمانی که pkfix نتواند قلمهای نقشبیتی را با قلمهای برداری جایگزین کند، به pkfix-helper نیاز خواهد بود. در سادهترین حالت، pkfix-helper نام یک فایل ورودی (در این مثال oldfile.ps) و نام یک فایل خروجی (pkfix-oldfile.ps) را میگیرد که همان محتوای فایل ورودی را خواهد داشت اما به عنوان ورودی مناسب برای pkfix عمل میکند:
$ 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' -> `CMTI10'.
*** Font conversion: `cmr8' -> `CMR8'.
*** Font conversion: `cmr6' -> `CMR6'.
*** Font conversion: `cmmi10' -> `CMMI10'.
*** Font conversion: `cmbx10' -> `CMBX10'.
*** Font conversion: `cmbx12' -> `CMBX12'.
*** Font conversion: `cmsy10' -> `CMSY10'.
*** Font conversion: `cmtt10' -> `CMTT10'.
*** Font conversion: `cmr10' -> `CMR10'.
*** Font conversion: `cmbx12' -> `CMBX12'.
*** Merging font `CMBX12' (2).
==> 10 converted fonts.
==> 1 merged font.
اگرچه pkfix-helper تلاش میکند تا فرایند تشخیص قلم را تا حد امکان خودکار کند، اما همواره برخی قلمها به اشتباه شناسایی خواهند شد. این برنامه اگر بداند که یک تطابق نامناسب است، یک پیام هشدار صادر میکند؛ اما عدم وجود پیام هشدار لزوماً به این معنی نیست که pkfix-helper کار خود را به خوبی انجام داده است. از این رو، اکیداً توصیه میشود که کاربر برگههای نمونه قلم «قبل» ("before") و «بعد» ("after") را تولید کند:
$ pkfix-helper -q oldfile.ps pkfix-oldfile.ps \ --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) ' TeX output 2006.06.11:1636' -> newfonts.ps <texc.pro><8r.enc><texps.pro>. <cmr6.pfb><cmsy10.pfb><cmbx10.pfb><cmbx12.pfb> <cmmi10.pfb><cmtt10.pfb><cmr8.pfb><cmti10.pfb><cmr10.pfb>[1]
پس از اجرای دستورهای فوق، oldfonts.ps نمونههایی از قلمهای موجود در oldfile.ps و newfonts.ps نمونههایی از قلمهای جایگزینی را که pkfix-helper برای ایجاد pkfix-oldfile.ps استفاده کرده است، نشان میدهند. فایلهای oldfonts.ps و newfonts.ps را چاپ کرده و آنها را با دقت از نظر قلمها و اندازههای نادرست با یکدیگر مقایسه کنید.
فرض کنید انتخاب "cmbx12 @ 1.2X" برای قلم "Ff" نادرست به نظر میرسد؛ مثلاً نویسهها در oldfonts.ps بلندتر از newfonts.ps به نظر میرسند. اینجاست که مرحله آزمون و خطا آغاز میشود. فرض کنیم که "cmb12" تطابق بهتری نسبت به "cmbx12" است، اما نمیدانیم قلم را چقدر باید مقیاسبندی کنیم. خوشبختانه، pkfix-helper اجازه میدهد از "*" به عنوان ضریب مقیاسبندی استفاده شود تا به برنامه بگوید ضریب مقیاسبندی بهینه را بهطور خودکار تشخیص دهد، حتی اگر این کار به معنای انتخاب یک اندازه قلم غیراستاندارد باشد:
$ 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"
ظاهراً فایل cmb12.tfm را روی سیستم خود نداریم. بیایید در عوض بزرگنمایی cmb10.tfm را امتحان کنیم:
$ 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).
میزان تطابق قطعاً بهبود یافته است، اگرچه 15 pt. مسلماً اندازه عجیبی برای یک قلم است. از سوی دیگر، بسیاری از اسناد واقعاً از اندازههای غیراستاندارد استفاده میکنند، بنابراین این نتیجه ممکن است در عمل درست باشد. بهترین راه برای اطمینان این است که مجدداً یک جفت نمونه قلم تولید و چاپ کنید و آنها را مقایسه نمایید، و این فرایند را تکرار کنید تا تمام قلمها درست به نظر برسند. برای هر قلمی که میخواهید تغییر دهید، از یک نمونه --force استفاده کنید..SH "محیط (ENVIRONMENT)" pkfix-helper متغیرهای محیطی زیر را در نظر میگیرد:
محدودیتها (RESTRICTIONS)
pkfix-helper تنها با فایلهای PostScript تولیدشده توسط dvips کار میکند، نه با فایلهای دلخواه PostScript. تنها فونتهای نقشهبیتی بارگذاریشده توسط dvips قابل تجزیهوتحلیل هستند، نه فونتهای نقشهبیتی بارگذاریشده توسط گرافیکهای تعبیهشده (embedded).
pkfix-helper با مقایسه عرض نویسهها کار میکند، نه گلیفهای واقعی. در نتیجه، ممکن است توسط مجموعهفونتهایی با عرض نویسه مشابه (دستکم برای نویسههای استفادهشده در یک سند مشخص) به اشتباه بیفتد. به عنوان یک مثال مفرط، تمام فونتهای Computer Modern Teletype با یک اندازه طراحی مشخص (مانند "cmtt10"، "cmsltt10" و "cmitt10") دقیقاً از عرضهای یکسانی برای تمام نویسهها استفاده میکنند. به طور کلی، برای هدایت رویههای تطبیق فونت pkfix-helper، بهویژه برای فونتهایی که نویسههای نسبتاً کمی از آنها در سند ظاهر میشوند، به کمک انسانی نیاز است.
تنوع شگفتانگیزی در خروجیهای dvips وجود دارد. نسخههای مختلف برنامه و گزینههای متفاوت خط فرمان میتوانند به فایلهای PostScript با ساختاری کاملاً متفاوت منجر شوند. pkfix-helper تلاش زیادی میکند تا اطلاعات فونت پنهانشده در گونههای متعدد فایل خروجی را پیدا کند، اما غیرمعمول نیست که یک فایل PostScript تولیدشده توسط نسخهای به قدر کافی قدیمی از dvips یا با گزینههای خط فرمان به اندازه کافی مبهم، pkfix-helper را کاملاً سردرگم کند. در این صورت، لطفاً فایلهای مشکلدار PostScript خود را برای نویسنده pkfix-helper ارسال کنید (بخش "نویسنده (AUTHOR)" در ادامه را ببینید)، که شاید بتواند pkfix-helper را برای مدیریت آنها ارتقا دهد.
نکات (NOTES)
فایلهای تولیدشده با استفاده از گزینه --tex از نوع Plain TeX هستند و بنابراین باید با tex (یا نسخههای دیگری مانند pdftex، luatex، xetex و غیره) کامپایل شوند، نه با latex.
فایلهای PostScript تولیدشده توسط dvips میتوانند به صورت بخشبندیشده ساختاربندی شوند، که با %DVIPSBeginSection و %DVIPSEndSection مشخص میگردند. نام فونتها برای هر بخش محلی است. بنابراین، یک فونت با نام "Fa" ممکن است در یک بخش به "cmex10" و در بخش دیگری به "cmmi7" نگاشت شود. pkfix-helper با الحاق یک پسوند شماره بخش، به هر فونت در یک سند چندبخشی نامی یکتا اختصاص میدهد: "Fa_S01"، "Fa_S02" و غیره.
نام فونتها به ترتیب نزولی تعداد نویسههایی که در سند نمایش دادهاند پردازش میشوند. بدین معنا که اگر سند شامل ۱۰ نویسه از "Fa" و ۲۳ نویسه از "Fb" باشد، pkfix-helper پیش از "Fa" فونت "Fb" را پردازش خواهد کرد.
همچنین ببینید (SEE ALSO)
pkfix(1), dvips(1), tex(1), gs(1)
PostScript Language Reference, Third Edition. Published by Addison-Wesley, ISBN 0-201-37922-8, http://www.adobe.com/products/postscript/pdfs/PLRM.pdf.
نویسنده (AUTHOR)
Scott Pakin, scott+pkfh@pakin.org
کپیرایت و مجوز (COPYRIGHT AND LICENSE)
حق نشر (C) 2009-2020، Scott Pakin
این فایل ممکن است تحت شرایط «مجوز عمومی پروژه لیتک» (LaTeX Project Public License)، چه نسخه 1.3c این مجوز یا (به انتخاب شما) هر نسخه جدیدتری توزیع و/یا تغییر داده شود. آخرین نسخه این مجوز در http://www.latex-project.org/lppl.txt موجود است و نسخه 1.3c یا بالاتر بخشی از تمامی توزیعهای LaTeX نسخه 2006/05/20 یا جدیدتر است.
| 2020-08-06 | v1.6 |