ENSCRIPT(1) ENSCRIPT ENSCRIPT(1)

enscript - تبدیل فایل‌های متنی به PostScript، HTML، RTF، ANSI و overstrikeها

enscript [-123456789BcgGhjkKlmOqrRvVzZ] [-# copies] [-a pages] [-A align] [-b header] [-C[start_line]] [-d printer] [-D key[:value]] [-e[char]] [-E[lang]] [-f font] [-F header_font] [-H[num]] [-i indent] [-I filter] [-J title] [-L lines_per_page] [-M media] [-n copies] [-N newline] [-o outputfile] [-o -] [-p outputfile] [-p -] [-P printer] [-s baselineskip] [-S key[:value]] [-t title] [-T tabsize] [-u[text]] [-U num] [-w language] [-X encoding] [filename ...]

برنامهٔ Enscript فایل‌های متنی را به PostScript یا زبان‌های خروجی دیگر تبدیل می‌کند. Enscript می‌تواند خروجی تولیدشده را مستقیماً به یک چاپگر مشخص ارسال کند (spool کند) یا آن را در یک فایل ذخیره نماید. در صورتی که هیچ فایل ورودی مشخص نشود، enscript ورودی استاندارد stdin را پردازش می‌کند. Enscript قابلیت توسعه برای پشتیبانی از انواع مختلف رسانه‌های خروجی (media) را دارد و دارای گزینه‌های متعددی است که می‌توان از آن‌ها برای سفارشی‌سازی خروجی‌های چاپ استفاده کرد.

-# num
چاپ num نسخه از هر صفحه.
-1, -2, -3, -4, -5, -6, -7, -8, -9, --columns=num
مشخص می‌کند که هر صفحه چند ستون داشته باشد. با گزینهٔ بلند --columns=num می‌توانید بیش از ۹ ستون در هر صفحه تعیین کنید.
مشخص می‌کند کدام صفحات چاپ شوند. مشخصهٔ صفحات pages می‌تواند در قالب‌های زیر داده شود:
چاپ صفحات از begin تا end
چاپ صفحات از 0 تا end
چاپ صفحات از begin تا انتها
page
چاپ صفحهٔ page
چاپ صفحات فرد
چاپ صفحات زوج
تراز کردن فایل‌های ورودی مجزا با تعداد صفحات مضربی از align. این گزینه در چاپ دو رو و چاپ ۲ صفحه در ۱ صفحه (2-up) مفید است (--file-align=2).
استفاده از متن header به عنوان سربرگ صفحه. سربرگ پیش‌فرض صفحه بر اساس نام فایل و زمان آخرین تغییر آن ساخته می‌شود.

رشتهٔ سربرگ header می‌تواند شامل همان نویسه‌های گریز قالب‌بندی باشد که می‌توان برای دستورالعمل‌های %Format در سربرگ‌های سفارشی تعریف‌شده توسط کاربر تعیین کرد. برای نمونه، گزینهٔ زیر نام فایل، تاریخ جاری و شمارهٔ صفحات را چاپ می‌کند:

enscript --header='$n %W Page $% of $=' *.c

رشتهٔ سربرگ همچنین می‌تواند شامل فیلدهای چپ‌چین، وسط‌چین و راست‌چین باشد. فیلدها با نویسهٔ '|' از یکدیگر جدا می‌شوند:

enscript --header='$n|%W|Page $% of $=' *.c

اکنون نام فایل به صورت چپ‌چین، تاریخ در وسط سربرگ و شماره‌های صفحه به صورت راست‌چین چاپ می‌شوند.

عدم چاپ سربرگ‌های صفحه.
بریدن خطوطی که برای صفحه بیش از حد طولانی هستند. به طور پیش‌فرض، enscript خطوط طولانی را به خط بعدی می‌شکند تا هیچ اطلاعاتی از دست نرود.

همچنین می‌توانید از گزینهٔ --slice استفاده کنید که خطوط طولانی را به صفحات جداگانه برش می‌دهد.

درج شمارهٔ خط در ابتدای هر سطر. آرگومان اختیاری start_line شمارهٔ اولین خط در ورودی را تعیین می‌کند. مقدار پیش‌فرض شمارهٔ خط اول 1 است.
ارسال خروجی (spool) به چاپگر name.
ارسال یک تعریف دستگاه صفحه (page device definition) به خروجی PostScript تولیدشده. اگر مقداری مشخص نشود، کلید key از تعاریف حذف می‌شود.

برای نمونه، دستور

enscript -DDuplex:true foo.txt

فایل foo.txt را در حالت دو رو (duplex) چاپ می‌کند.

عملگرهای دستگاه صفحه وابسته به پیاده‌سازی هستند اما استاندارد شده‌اند. برای جزئیات بخش PAGE DEVICE OPTIONS را ببینید.

فعال کردن تفسیر نویسه‌های گریز ویژه (بخش SPECIAL ESCAPES را ببینید). اگر آرگومان char داده شود، نویسهٔ گریز را به char تغییر می‌دهد. نویسهٔ گریز پیش‌فرض 0 است.
برجسته‌سازی نحو کد منبع (highlight) با ایجاد یک فیلتر ورودی ویژه از طریق برنامهٔ states. آرگومان اختیاری lang زبان مورد نظر برای برجسته‌سازی را تعیین می‌کند. به طور پیش‌فرض، برنامهٔ states زبانی را بر اساس حدس هوشمندانه انتخاب می‌کند.

می‌توانید شرح مختصری از زبان‌ها و قالب‌های فایل پشتیبانی‌شده را با دستور زیر چاپ کنید:

enscript --help-highlight

قواعد برجسته‌سازی در فایل‌های `/usr/share/enscript/hl/*.st' تعریف شده‌اند که می‌توان آن‌ها را برای تعریف برجسته‌سازی زبان‌های جدید ویرایش کرد.

نکته! با این گزینه نمی‌توانید از فیلترهای ورودی شخصی خود استفاده کنید.

انتخاب قلمی که برای متن بدنه استفاده می‌شود. قلم پیش‌فرض بدنه Courier10 است، مگر این‌که حالت چاپ چندستونه و افقی (landscape) انتخاب شده باشد که در این صورت قلم پیش‌فرض Courier7 خواهد بود.

مشخصهٔ قلم name شامل دو بخش است: نام قلم و اندازهٔ آن بر حسب پوینت‌های PostScript. برای نمونه، "Times-Roman12" قلم "Times-Roman" را با اندازهٔ 12pt انتخاب می‌کند.

مشخصهٔ قلم name همچنین می‌تواند در قالب `name@ptsize' داده شود که در آن نام قلم و اندازهٔ پوینت آن با یک نویسهٔ `@' از یکدیگر جدا می‌شوند. این قابلیت به enscript امکان می‌دهد از قلم‌هایی استفاده کند که در نامشان ارقام وجود دارد.

اندازهٔ پوینت قلم همچنین می‌تواند در قالب width/height مشخص شود که در آن width و height اندازهٔ قلم را در جهت‌های x و y تعیین می‌کنند. برای نمونه، "Times-Roman@10/12" یک قلم "Times-Roman" با پهنای 10 پوینت و ارتفاع 12 پوینت را انتخاب می‌کند.

همچنین می‌توانید اندازهٔ قلم‌ها را به صورت اعداد اعشاری وارد کنید. برای نمونه، "Times-Roman10.2" یک قلم "Times-Roman" با اندازهٔ 10.2pt را انتخاب می‌کند..TP 8 -F name, --header-font=name انتخاب قلم برای متن‌های سربرگ.

چاپ فایل حتی در صورت وجود داده‌های دودویی (باینری). این گزینه صرفاً برای اهداف سازگاری پیاده‌سازی شده است. Enscript در هر حال بدون توجه به این گزینه فایل‌های دودویی را چاپ می‌کند.
چاپ یک سربرگ تزیینی صفحه به نام name در بالای هر صفحه. گزینه -G سربرگ تزیینی پیش‌فرض را تعیین می‌کند. برای مشاهده نحوه تغییر سربرگ تزیینی پیش‌فرض، بخش CONFIGURATION FILES را ببینید.
جلوگیری از چاپ صفحه سربرگ کار.
تعیین ارتفاع نوارهای برجسته‌سازی بر حسب سطر. اگر num مشخص نشود، مقدار پیش‌فرض ۲ استفاده می‌شود. به‌طور پیش‌فرض، هیچ نوار برجسته‌سازی چاپ نمی‌شود.
-i num, --indent=num
تودندانه کردن هر خط به اندازه num نویسه. تورفتگی را می‌توان با افزودن شناسه واحد پس از عدد، در واحدهای دیگر نیز تعیین کرد. شناسه‌های واحدهای مجاز و واحدهای متناظر آن‌ها عبارتند از:
سانتی‌متر
اینچ
نویسه (پیش‌فرض)
پوینت‌های PostScript
خواندن تمام فایل‌های ورودی از طریق فیلتر ورودی filter. فیلتر ورودی می‌تواند یک دستور منفرد یا یک خط لوله از دستورها باشد. فیلتر می‌تواند با کد گریز `%s' به نام فایل ورودی ارجاع دهد. نام ورودی استاندارد را می‌توان با گزینه `--filter-stdin' تغییر داد.

برای مثال، دستور زیر فایل `foo.c' را تنها با نویسه‌های بزرگ چاپ می‌کند:

enscript --filter="cat %s | tr 'a-z' 'A-Z'" foo.c

دستور زیر تغییراتی را که از آخرین checkout در فایل‌ها اعمال شده است برجسته می‌کند:

enscript --filter="rcsdiff %s | diffpp %s" -e *.c

برای گنجاندن رشته "%s" در دستور فیلتر، باید آن را به صورت "%%s" بنویسید.

چاپ حاشیه در اطراف ستون‌ها.
نام مستعاری برای گزینه -t، --title.
فعال‌سازی تغذیه پیشاپیش صفحه (page prefeed).
غیرفعال‌سازی تغذیه پیشاپیش صفحه (پیش‌فرض).
شبیه‌سازی چاپگر سطری (lineprinter). این گزینه میان‌بری برای گزینه‌های --lines-per-page=66 و --no-header است.
چاپ فقط num خط در هر صفحه. به‌طور پیش‌فرض، تعداد خطوط هر صفحه بر اساس ارتفاع صفحه و اندازه قلم محاسبه می‌شود.
ارسال یک اعلان ایمیلی به کاربر پس از اتمام کار چاپ.
انتخاب رسانه خروجی name. رسانه خروجی پیش‌فرض Enscript برابر A4 است.
-n num, --copies=num
چاپ num نسخه از هر صفحه.
انتخاب نویسه خط جدید (newline). مقادیر ممکن برای nl عبارتند از: n (خط جدید یونیکس، 0xa هگز) و r (خط جدید مک، 0xd هگز).
نام مستعاری برای گزینه -p، --output.
چاپ فهرستی از کدهای نویسه‌ای که امکان چاپ آن‌ها وجود نداشت.
-p file, --output=file
ذخیره خروجی در فایل file. اگر file برابر `-' باشد، enscript خروجی را به خروجی استاندارد stdout می‌فرستد.
ارسال خروجی به صف چاپگر name (spool).
کاملاً بی‌صدا کردن enscript. تنها پیام‌های خطای مهلک در stderr چاپ می‌شوند.
چاپ در حالت افقی (landscape)؛ چرخاندن صفحه به میزان ۹۰ درجه.
چاپ در حالت عمودی (portrait) (پیش‌فرض).
تعیین فاصله خط کرسی بر حسب پوینت‌های PostScript. عدد num می‌تواند به صورت یک عدد اعشاری داده شود. هنگامی که enscript از خطی به خط دیگر می‌رود، مختصات y نقطه جاری به میزان (font point size + baselineskip) پوینت به پایین جابه‌جا می‌شود. فاصله خط کرسی پیش‌فرض ۱ است.
ارسال یک تعریف statusdict به خروجی PostScript تولیدشده. اگر مقداری داده نشود، کلید key از تعاریف حذف می‌شود.

عملگرهای statusdict وابسته به پیاده‌سازی هستند؛ برای جزئیات به مستندات چاپگر مراجعه کنید.

برای مثال، دستور

enscript -Ssetpapertray:1 foo.txt

فایل foo.txt را با استفاده از کاغذ سینی ۱ چاپ می‌کند (با این فرض که چاپگر از انتخاب سینی کاغذ پشتیبانی کند).

تنظیم عنوان کار در صفحه بنر روی title. این گزینه همچنین نام فایل ورودی stdin را تعیین می‌کند.
تنظیم اندازه تب (tabulator) به اندازه num نویسه. مقدار پیش‌فرض ۸ است.
چاپ رشته متنی text زیر هر صفحه (پس‌زمینه). ویژگی‌های متن را می‌توان با گزینه‌های --ul-angle، --ul-font، --ul-gray، --ul-position و --ul-style تغییر داد.

اگر text داده نشود، متن زیرین چاپ نمی‌شود. از این حالت می‌توان برای حذف متن زیرینی که با گزینه فایل پیکربندی `Underlay' مشخص شده بود استفاده کرد.

چاپ num صفحه منطقی در هر صفحه خروجی (چاپ N-up). مقدار num باید توانی از ۲ باشد.
گزارش آنچه enscript در حال انجام آن است.
چاپ اطلاعات نسخه enscript و خروج.
تولید خروجی برای زبان lang. مقادیر مجاز برای lang عبارتند از:
تولید PostScript (پیش‌فرض)
تولید HTML
تولید overstrike (برای چاپگرهای سطری، less)
تولید RTF (Rich Text Format)
تولید کدهای کنترلی ترمینال ANSI
استفاده از کدگذاری ورودی name. در حال حاضر enscript از کدگذاری‌های زیر پشتیبانی می‌کند:
88591, latin1
ISO-8859-1 (ISO Latin1) (کدگذاری پیش‌فرض enscript).
88592, latin2
ISO-8859-2 (ISO Latin2)
88593, latin3
ISO-8859-3 (ISO Latin3).TP 8 88594, latin4 کدگذاری ISO-8859-4 (لاتین۴ ISO)
88595, cyrillic
کدگذاری ISO-8859-5 (سیریلیک ISO)
88597, greek
کدگذاری ISO-8859-7 (یونانی ISO)
88599, latin5
کدگذاری ISO-8859-9 (لاتین۵ ISO)
885910, latin6
کدگذاری ISO-8859-10 (لاتین۶ ISO)
کدگذاری ascii هفت بیتی
کدگذاری ascii هفت بیتی همراه با برخی افزونه‌های اسکاندیناویایی (فنلاند، سوئد)
کدگذاری ascii هفت بیتی همراه با برخی افزونه‌های اسکاندیناویایی (دانمارک، نروژ)
مجموعه نویسهٔ IBM PC
مجموعه نویسهٔ Mac
مجموعه نویسهٔ چندملیتی VMS
مجموعه نویسهٔ HP Roman-8
مجموعه نویسهٔ قلم سیریلیک استاندارد ادوبی KOI8
کدگذاری پیش‌فرض قلم PostScript
کدگذاری “ISOLatin1Encoding” در مفسر PostScript
تفسیر نویسهٔ پرش صفحه (form feed) را غیرفعال می‌کند.
تمام فایل‌های PostScript و PCL را بدون هیچ تغییری عبور می‌دهد. این کار اجازه می‌دهد enscript به عنوان یک فیلتر lp استفاده شود.

فایل‌های PostScript با بررسی کوکی جادویی “%!” در ابتدای فایل شناسایی می‌شوند. توجه! دستور Enscript همچنین کوکی آسیب‌دیدهٔ ویندوزی “^D%!” را نیز شناسایی می‌کند.

فایل‌های PCL با بررسی کوکی‌های جادویی “^[E” یا “^[%” در ابتدای فایل شناسایی می‌شوند.

--color[=bool]
از رنگ‌ها در خروجی‌های برجسته‌سازی استفاده می‌کند.
فایل توصیف قلم (فایل .pfa یا .pfb) مربوط به قلم fontname را در خروجی تولیدشده می‌گنجاند.
مقدارهای بازگشتی گسترش‌یافته را فعال می‌کند. به‌طور پیش‌فرض، enscript هنگام بروز خطا ۱ و در غیر این صورت ۰ برمی‌گرداند. مقدارهای بازگشتی گسترش‌یافته جزئیات بیشتری دربارهٔ عملیات چاپ ارائه می‌دهند. برای جزئیات بخش RETURN VALUE را ببینید.
مشخص می‌کند که stdin چگونه به فیلتر ورودی نشان داده شود. مقدار پیش‌فرض یک رشتهٔ خالی ("") است، اما برخی برنامه‌ها نیازمند آن هستند که stdin با نام دیگری، معمولاً "-"، خوانده شود.
از متن footer به عنوان پاورقی صفحه استفاده می‌کند. در غیر این صورت، این گزینه مانند گزینهٔ --header عمل می‌کند.
ارتفاع ستون افقی را روی height نقطهٔ PostScript تنظیم می‌کند. این گزینه نوع برگه‌خور را به horizontal-columns تنظیم می‌کند.
پیام راهنمای کوتاهی نمایش داده و خارج می‌شود.
--help-highlight
تمامی زبان‌ها و قالب‌های پروندهٔ پشتیبانی‌شده برای --highlight را شرح می‌دهد.
سطح خاکستری مورداستفاده در چاپ نوارهای برجسته را مشخص می‌کند.
نام تمامی رسانه‌های خروجی شناخته‌شده را فهرست کرده و با موفقیت خارج می‌شود.
حاشیه‌های صفحه را دقیقاً روی مقادیر نقطه‌ای PostScript برای left (چپ)، right (راست)، top (بالا) و bottom (پایین) تنظیم می‌کند. هر یک از این آرگومان‌ها می‌توانند خالی رها شوند که در این صورت از مقدار پیش‌فرض استفاده می‌شود.
خطوط پیچیده‌شده را در خروجی با سبک style مشخص می‌کند. مقادیر ممکن برای style عبارتند از:
آن‌ها را علامت‌گذاری نکن (پیش‌فرض)
یک نویسهٔ مثبت (+) در انتهای هر خط پیچیده‌شده چاپ کن
یک جعبهٔ سیاه در انتهای هر خط پیچیده‌شده چاپ کن
یک فلش کوچک در انتهای هر خط پیچیده‌شده چاپ کن
نحوهٔ چاپ نویسه‌های غیرقابل‌چاپ را مشخص می‌کند. مقادیر ممکن برای format عبارتند از:
نماد هشتک (caret): “^@”، “^A”، “^B”، ...
نماد هشت‌هشتی (octal): “\000”، “\001”، “\002”، ... (پیش‌فرض)
نویسه‌های غیرقابل‌چاپ را با یک علامت سؤال “?” جایگزین می‌کند
نویسه‌های غیرقابل‌چاپ را با یک فاصله “ ” جایگزین می‌کند
چیدمان زیرصفحه‌ها را در چاپ N-up از حالت سطری به حالت ستونی تغییر می‌دهد.
فاصلهٔ لبهٔ افقی (x-padding) صفحه را در چاپ n-up روی num نقطهٔ PostScript تنظیم می‌کند. مقدار پیش‌فرض ۱۰ نقطه است.
فاصلهٔ لبهٔ عمودی (y-padding) صفحه را در چاپ n-up روی num نقطهٔ PostScript تنظیم می‌کند. مقدار پیش‌فرض ۱۰ نقطه است.
--page-label-format=format
قالب برچسب صفحه را روی format تنظیم می‌کند. قالب برچسب صفحه مشخص می‌کند که برچسب‌ها برای توضیحات PostScript از نوع “%%Page:” چگونه قالب‌بندی شوند. مقادیر ممکن عبارتند از:
شماره صفحهٔ فعلی را چاپ می‌کند: “%%Page: (1) 1” (پیش‌فرض)
نام فایل فعلی و شماره صفحه را چاپ می‌کند: “%%Page: (main.c: 1) 1”
--ps-level=level
سطح زبان PostScript که enscript برای خروجی خود استفاده می‌کند را روی level تنظیم می‌کند. مقادیر ممکن 1 و 2 هستند.
--printer-options=options
گزینه‌های اضافی را به دستور چاپگر ارسال می‌کند.
هر صفحه با شمارهٔ زوج را ۱۸۰ درجه می‌چرخاند.
برش عمودی num را چاپ می‌کند. برش‌ها بخش‌های عمودی فایل‌های ورودی هستند. یک برش جدید از نقطه‌ای آغاز می‌شود که در غیر این صورت خط به خط بعد پیچیده می‌شد. شماره‌گذاری برش‌ها از ۱ شروع می‌شود.
سبک برجسته‌سازی را روی style تنظیم می‌کند. مقادیر ممکن عبارتند از: a2ps، emacs، emacs_verbose، ifh و msvc.
حاشیه‌های چپ و راست صفحات دارای شمارهٔ زوج را با یکدیگر تعویض می‌کند.
یک جدول فهرست مطالب در انتهای خروجی چاپ می‌کند.
خطوط طولانی را از مرز کلمات می‌شکند.
زاویهٔ متن زیرلایه (underlay) را روی angle تنظیم می‌کند. به‌طور پیش‌فرض، این زاویه برابر با atan(-d_page_h, d_page_w) است..TP 8 --ul-font=name انتخاب قلم برای متن زیرلایه (underlay). قلم پیش‌فرض متن زیرلایه Times-Roman200 است.
چاپ متن زیرلایه با مقدار خاکستری num (از ۰ تا ۱)؛ مقدار خاکستری پیش‌فرض .8 است.
تنظیم موقعیت آغازین متن زیرلایه بر اساس position_spec. مشخصه موقعیت باید در قالب `sign xpos sign ypos' داده شود، که در آن sign باید `+' یا `-' باشد. ابعاد مثبت از گوشه پایین سمت چپ و ابعاد منفی از گوشه بالا سمت راست محاسبه می‌شوند. برای نمونه، مشخصه `+0-0' گوشه بالا سمت چپ و `-0+0' گوشه پایین سمت راست را مشخص می‌کند.
تنظیم سبک متن زیرلایه به style. مقادیر ممکن برای style عبارت‌اند از:
چاپ متن‌های زیرلایه به صورت توخالی/طرح بیرونی (پیش‌فرض)
چاپ متن‌های زیرلایه به صورت توپر

دستور Enscript اطلاعات پیکربندی را از منابع زیر (به همین ترتیب) می‌خواند: گزینه‌های خط فرمان، متغیر محیطی ENSCRIPT، فایل پیکربندی شخصی کاربر ($HOME/.enscriptrc)، فایل پیکربندی سایت (/etc/enscript/enscriptsite.cfg) و فایل پیکربندی سراسری سیستم (/etc/enscript/enscript.cfg).

فایل‌های پیکربندی قالب زیر را دارند:

خطوط خالی و خطوطی که با `#' آغاز می‌شوند، کامنت (توضیحات) هستند.

تمام خطوط دیگر، خطوط تنظیم گزینه هستند و قالب زیر را دارند:

option [arguments ...].

گزینه‌های زیر را می‌توان مشخص کرد:

مشخص می‌کند که آیا نویسه‌های ترکیبی (composite characters) قلم PostScript به عنوان نویسه قابل چاپ پذیرفته شوند یا به عنوان نویسه‌های ناموجود در نظر گرفته شوند. مقدار پیش‌فرض false (0) است.
مسیر جستجو برای فایل‌های AFM را مشخص می‌کند.
مشخص می‌کند که آیا نویسه Control-D (^D) به انتهای خروجی افزوده شود یا خیر. مقدار پیش‌فرض false (0) است.
نحوه چاپ نویسه‌های بزرگ‌تر از ۱۲۷ را مشخص می‌کند. مقدار true (1) با تبدیل نویسه‌های بزرگ‌تر از ۱۲۷ به نشانه‌گذاری هشت‌هشتی با بک‌اسلش (backslash-octal)، کد تمیز ۷ بیتی تولید می‌کند (پیش‌فرض). مقدار false (0) کد ۸ بیتی PostScript تولید کرده و تمام نویسه‌ها را دست‌نخورده باقی می‌گذارد.
انتخاب کدگذاری ورودی پیش‌فرض. نام کدگذاری name می‌تواند یکی از مقادیر گزینه -X یا --encoding باشد.
انتخاب سربرگ تزئینی پیش‌فرض. سربرگ پیش‌فرض هنگامی استفاده می‌شود که گزینه -G مشخص شده باشد یا گزینه --fancy-header بدون آرگومان داده شود. مقدار پیش‌فرض سراسری سیستم `enscript' است.
انتخاب رسانه (media) خروجی پیش‌فرض.
انتخاب مقصد پیش‌فرضی که خروجی تولیدشده به آن ارسال می‌شود. مقادیر ممکن برای method عبارت‌اند از:
ارسال خروجی به چاپگر (پیش‌فرض)
ارسال خروجی به stdout
گنجاندن فایل توصیف قلم مربوط به قلم fontname در خروجی تولیدشده.
مشخص کردن نویسه گریز برای دنباله‌های گریز ویژه. مقدار پیش‌فرض 0 است.
مشخص می‌کند در صورت مواجهه با نویسه برگه‌خور (formfeed) در ورودی چه اقدامی صورت گیرد. مقادیر ممکن برای type عبارت‌اند از:
رفتن به ابتدای ستون بعدی (پیش‌فرض)
رفتن به ابتدای صفحه بعدی
مشخص می‌کند که آیا تنظیمات دستگاه صفحه PageSize در خروجی PostScript تولید شود یا خیر. مقدار پیش‌فرض true (1) است.
مشخص کردن سطح خاکستری مورد استفاده برای چاپ نوارهای برجسته (highlight bars).
مشخص می‌کند ارتفاع نوارهای برجسته چند خط باشد. مقدار پیش‌فرض 0 است که به معنای چاپ نشدن هیچ نوار برجسته‌ای است.
مسیر کتابخانه enscript را برای جستجوی منابع مختلف مشخص می‌کند. مسیر پیش‌فرض عبارت است از: `/usr/share/enscript:home/.enscript'. که در آن home دایرکتوری خانگی کاربر است.
علامت‌گذاری خط‌های شکسته شده (wrap شده) در خروجی با سبک style. مقادیر ممکن برای format همان مقادیری هستند که می‌توان برای گزینه --mark-wrapped-lines مشخص کرد.
افزودن یک رسانه خروجی جدید با نام name. ابعاد فیزیکی رسانه width و height هستند. کادر تحدید (bounding box) رسانه توسط نقاط (llx, lly) و (urx, ury) مشخص می‌شود. Enscript تمام نگاره‌ها را درون کادر تحدید رسانه چاپ می‌کند.

کاربر می‌تواند این رسانه را با گزینه -M name انتخاب کند.

مشخص کردن گزینه اسپولر برای چشم‌پوشی از چاپ صفحه سربرگ کار. این گزینه زمانی به اسپولر چاپگر ارسال می‌شود که گزینه -h یا --no-job-header در enscript انتخاب شده باشد.
مشخص می‌کند که نویسه‌های غیرقابل‌چاپ چگونه چاپ شوند. مقادیر ممکن برای format همان‌هایی است که می‌توان برای گزینه --non-printable-format مشخص کرد.
تنظیم سطر نخست خروجی PostScript به line. مقدار پیش‌فرض PS-Adobe-3.0 است. از آن‌جایی که برخی چاپگرها سطوح DSC بالاتر از 2.0 را نمی‌پذیرند، این گزینه می‌تواند برای تغییر خط نخست خروجی به مقداری مناسب‌تر مانند %!PS-Adobe-2.0 یا %! به کار رود.
تنظیم قالب برچسب صفحه به format. مقادیر ممکن برای format همان‌هایی است که می‌توان برای گزینه --page-label-format مشخص کرد.
فعال یا غیرفعال کردن پیش‌خوراندن صفحه (page prefeed). مقدار پیش‌فرض false (0) است.
تنظیم سطح زبان PostScript که enscript برای خروجی استفاده می‌کند به level. مقادیر ممکن برای level همان مقادیری است که می‌توان برای گزینه --ps-level مشخص کرد.
تعیین نام چاپگری که خروجی برای آن صف‌بندی (spool) می‌شود.
سوئیچ دستور اسپولر برای انتخاب صف چاپگر؛ برای نمونه -P در lpr -Pps. از این گزینه همچنین می‌توان برای ارسال سایر پرچم‌ها به دستور اسپولر استفاده کرد. این گزینه‌ها باید قبل از سوئیچ صف مشخص شوند.
ارسال تعریف page device به خروجی PostScript تولیدشده.
تعیین دستور اسپولر چاپگر. Enscript خروجی PostScript تولیدشده را به دستور name لوله‌کشی (pipe) می‌کند.
تعیین یک مسیر مطلق برای برنامه states.
آیا برنامه states باید خروجی رنگی تولید کند یا خیر.
خواندن پیکربندی حالت‌های برجسته‌سازی از فایل file. فایل پیکربندی پیش‌فرض `/usr/share/enscript/hl/enscript.st' است.
تنظیم سبک برجسته‌سازی به style..TP 8 StatesPath: path مسیر برنامه states را مشخص می‌کند. برنامه states فایل‌های تعریف وضعیت خود را از این مسیر جستجو خواهد کرد. مقدار پیش‌فرض `$HOME/.enscript:/usr/share/enscript/hl' است.
یک تعریف statusdict را به خروجی PostScript تولیدشده ارسال می‌کند.
ورودی‌های جدول محتوا (فهرست مطالب) را با رشته قالب format قالب‌بندی می‌کند. رشته قالب format می‌تواند شامل همان دنباله‌های گریزی باشد که برای قالب‌بندی رشته‌های سرصفحه با توضیح ویژه `%Format' استفاده می‌شوند.
رشته text را در زیر متن هر صفحه (به عنوان پس‌زمینه) چاپ می‌کند.
زاویه متن پس‌زمینه را روی num تنظیم می‌کند.
یک قلم برای متن پس‌زمینه انتخاب می‌کند.
متن پس‌زمینه را با مقدار روشنایی خاکستری num چاپ می‌کند.
موقعیت شروع متن پس‌زمینه را بر اساس position_spec تنظیم می‌کند.
سبک متن پس‌زمینه را روی style تنظیم می‌کند.

کاربران می‌توانند با ساخت یک فایل توصیف سرصفحه و قرار دادن آن در دایرکتوری‌ای که در مسیر کتابخانه enscript باشد، سرصفحه‌های سفارشی خود را ایجاد کنند. نام فایل سرصفحه باید در قالب `headername.hdr' باشد. سرصفحه را می‌توان با مشخص کردن گزینه --fancy-header=headername انتخاب کرد.

فایل توصیف سرصفحه شامل کد PostScript است که سرصفحه را ترسیم می‌کند. فایل توصیف باید رویه do_header را ارائه دهد که توسط enscript در ابتدای هر صفحه فراخوانی می‌شود.

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

% -- code follows this line --

Enscript تنها بخش کد فایل توصیف را به خروجی PostScript تولیدشده کپی می‌کند. بخش توضیحات می‌تواند حاوی هر داده‌ای باشد و کپی نمی‌شود. اگر خط جداکننده وجود نداشته باشد، هیچ داده‌ای به خروجی کپی نخواهد شد.

Enscript ثابت‌های زیر را تعریف می‌کند که می‌توان از آن‌ها در فایل‌های توصیف سرصفحه استفاده کرد:

عرض صفحه
ارتفاع صفحه
مختصات x گوشه پایین-چپ سرصفحه
مختصات y گوشه پایین-چپ سرصفحه
عرض سرصفحه
ارتفاع سرصفحه
مختصات x گوشه پایین-چپ پانویس
مختصات y گوشه پایین-چپ پانویس
عرض پانویس
ارتفاع پانویس
عرض ناحیه خروجی متن
ارتفاع ناحیه خروجی متن
گزاره‌ای که مشخص می‌کند آیا کاربر رشته سرصفحه خود را تعریف کرده است یا خیر: true/false
اگر user_header_p برابر با true باشد، این فیلد سمت چپ رشته سرصفحه ارائه‌شده توسط کاربر است.
اگر user_header_p برابر با true باشد، این فیلد مرکزی رشته سرصفحه ارائه‌شده توسط کاربر است
اگر user_header_p برابر با true باشد، این فیلد سمت راست رشته سرصفحه ارائه‌شده توسط کاربر است
گزاره‌ای که مشخص می‌کند آیا کاربر رشته پانویس خود را تعریف کرده است یا خیر: true/false
اگر user_footer_p برابر با true باشد، این فیلد سمت چپ رشته پانویس ارائه‌شده توسط کاربر است.
اگر user_footer_p برابر با true باشد، این فیلد مرکزی رشته پانویس ارائه‌شده توسط کاربر است
اگر user_footer_p برابر با true باشد، این فیلد سمت راست رشته پانویس ارائه‌شده توسط کاربر است
قلم استاندارد سرصفحه (از گزینه -F، --header-font). این قلم را می‌توان به‌سادگی با اجرای دستور `HF setfont' انتخاب کرد.
شماره صفحه جاری
نام کامل فایل چاپ‌شده (/foo/bar.c)
بخش دایرکتوریِ نام فایل (/foo)
نام فایل بدون بخش دایرکتوری (bar.c)
سطح زبان مفسر PostScript (در حال حاضر ۱ یا ۲)

همچنین می‌توانید از توضیحات ویژه زیر برای سفارشی‌سازی سرصفحه‌های خود و مشخص کردن برخی گزینه‌های اضافی استفاده کنید. توضیحات ویژه مانند توضیحات DSC هستند، اما با یک نویسه `%' آغاز می‌شوند؛ توضیحات ویژه از ابتدای خط شروع شده و ساختار دستوری زیر را دارند:

%commentname: options

در حال حاضر enscript از توضیحات ویژه زیر پشتیبانی می‌کند:

%Format: name format
یک ثابت رشته‌ای جدید با نام name را مطابق با رشته قالب‌بندی format تعریف می‌کند. رشته قالب‌بندی از نخستین نویسه غیرفاصله شروع شده و در انتهای خط پایان می‌یابد. رشته قالب‌بندی می‌تواند شامل گریزهای عمومی `%' و گریزهای مربوط به فایل ورودی `$' باشد. در حال حاضر دنباله‌های گریز زیر پشتیبانی می‌شوند:
%%
نویسه `%'
$$
نویسه `$'
$%
شماره صفحه جاری
$=
تعداد صفحات در فایل جاری
$p
تعداد صفحاتی که تاکنون پردازش شده‌اند
$(VAR)
مقدار متغیر محیطی VAR.
%c
مؤلفه انتهایی دایرکتوری کاری جاری
%C ($C)
زمان جاری (زمان ویرایش فایل) در قالب `hh:mm:ss'
%d
دایرکتوری کاری جاری
%D ($D)
تاریخ جاری (تاریخ ویرایش فایل) در قالب `yy-mm-dd'
%D{string} ($D{string})
رشته string را با تابع strftime(3) قالب‌بندی می‌کند. `%D{}' به تاریخ جاری و `$D{}' به تاریخ آخرین تغییرات فایل ورودی اشاره دارد.
%E ($E)
تاریخ جاری (تاریخ ویرایش فایل) در قالب `yy/mm/dd'.TP 8 %F ($F) تاریخ جاری (تاریخ تغییر فایل) در قالب `dd.mm.yyyy'
%H
عنوان سند
$L
تعداد خطوط در فایل ورودی جاری. این مورد فقط برای مدخل‌های فهرست مطالب (toc) معتبر است و نمی‌توان از آن در رشته‌های سرآیند استفاده کرد.
%m
نام میزبان تا اولین نویسهٔ `.'
%M
نام کامل میزبان
%n
نام کاربری (لاگین)
$n
نام فایل ورودی بدون بخش دایرکتوری
%N
فیلد pw_gecos کاربر تا اولین نویسهٔ `,'
$N
نام کامل فایل ورودی
%t ($t)
زمان جاری (زمان تغییر فایل) در قالب ۱۲ ساعته am/pm
%T ($T)
زمان جاری (زمان تغییر فایل) در قالب ۲۴ ساعته `hh:mm'
%* ($*)
زمان جاری (زمان تغییر فایل) در قالب ۲۴ ساعته همراه با ثانیه `hh:mm:ss'
$v
شمارهٔ ترتیبی فایل ورودی جاری
$V
شمارهٔ ترتیبی فایل ورودی جاری در قالب «Table of Contents» (فهرست مطالب): اگر گزینهٔ --toc داده شده باشد، کد گریز به `num-' گسترش می‌یابد؛ اگر --toc داده نشده باشد، به یک رشتهٔ خالی تبدیل می‌شود.
%W ($W)
تاریخ جاری (تاریخ تغییر فایل) در قالب `mm/dd/yy'
تمام دستورالعمل‌های قالب‌بندی به جز `$=' را می‌توان در قالب زیر نیز مشخص کرد:

escape width directive

که در آن width عرض ستونی را تعیین می‌کند که کد گریز در آن چاپ می‌شود. برای مثال، کد گریز "$5%" به چیزی شبیه " 12" گسترش خواهد یافت. اگر مقدار عرض منفی باشد، مقدار به صورت چپ‌چین چاپ خواهد شد.

برای مثال، فایل `emacs.hdr' رشتهٔ تاریخ خود را با کامنت قالب زیر تعریف می‌کند:

%Format: eurdatestr %E

که به مقدار زیر گسترش می‌یابد:

/eurdatestr (96/01/08) def

%HeaderHeight: height
تخصیص فضای height نقطه برای سرآیند صفحه. ارتفاع پیش‌فرض سرآیند ۳۶ نقطه است.
%FooterHeight: height
تخصیص فضای height نقطه برای پانویس صفحه. ارتفاع پیش‌فرض پانویس ۰ نقطه است.

طبق قراردادهای ساختاردهی سند ادوبی (DSC)، تمام منابع مورد نیاز یک سند باید در بخش آغازین (prolog) سند فهرست شوند. از آنجا که کاربران می‌توانند سرآیندهای اختصاصی خود را بسازند، enscript نمی‌داند که این سرآیندها از چه منابعی استفاده می‌کنند. به همین دلیل، تمام سرآیندها باید حاوی یک کامنت استاندارد DSC باشند که کلیهٔ منابع مورد نیاز را فهرست کند. به عنوان مثال، فونت‌های استفاده‌شده را می‌توان با کامنت زیر فهرست کرد:

%%DocumentNeededResources: font fontname1 fontname2

کامنت را می‌توان با کامنت ادامه‌دهندهٔ استاندارد در خط بعد ادامه داد:

%%+ font fontname3

دستور enscript از دنباله‌های گریز ویژه پشتیبانی می‌کند که می‌توان از آن‌ها برای افزودن برخی دستورات قالب‌بندی صفحه به اسناد ASCII استفاده کرد. به طور پیش‌فرض، تفسیر کدهای گریز ویژه غیرفعال است، بنابراین تمام فایل‌های ASCII همان‌طور که انتظار می‌رود چاپ می‌شوند. تفسیر کدهای گریز ویژه با دادن گزینهٔ -e یا --escapes به enscript فعال می‌شود.

تمام کدهای گریز ویژه با نویسهٔ گریز آغاز می‌شوند. نویسهٔ گریز پیش‌فرض ^@ (اکتال 000) است؛ نویسهٔ گریز را می‌توان با گزینهٔ -e یا --escapes تغییر داد. پس از نویسهٔ گریز، نام گریز و گزینه‌ها و آرگومان‌های اختیاری قرار می‌گیرند.

در حال حاضر enscript از کدهای گریز زیر پشتیبانی می‌کند:

تغییر رنگ پس‌زمینهٔ متن. نحو این کد گریز به صورت زیر است:

^@bgcolor{red green blue}

که در آن مؤلفه‌های رنگی red، green و blue به صورت اعداد اعشاری بین مقادیر 0 و 1 مشخص می‌شوند.

تغییر رنگ پس‌زمینهٔ متن. نحو این کد گریز به صورت زیر است:

^@bggray{gray}

که در آن gray مقدار خاکستری جدید پس‌زمینهٔ متن است. مقدار پیش‌فرض 1.0 (سفید) است.

تغییر رنگ متن. نحو این کد گریز به صورت زیر است:

^@color{red green blue}

که در آن مؤلفه‌های رنگی red، green و blue به صورت اعداد اعشاری بین مقادیر 0 و 1 مشخص می‌شوند.

کامنت کردن بقیهٔ خط شامل نویسهٔ خط جدید. نحو این کد گریز عبارت است از:

^@comment text newline_character

تغییر نویسهٔ گریز. نحو این کد گریز عبارت است از:

^@escape{code}

که در آن code کد ده‌دهی نویسهٔ گریز جدید است.

درج درون‌خطی (inline) فایل EPS در سند. نحو این کد گریز عبارت است از:

^@epsf[options]{filename}

که در آن options دنباله‌ای اختیاری از نویسه‌ها و مقادیر گزینه درون براکت‌ها بوده و filename نام فایل EPS است.

اگر filename به نویسهٔ `|' ختم شود، آنگاه فرض می‌شود که filename نام دستوری است که داده‌های EPS را در خروجی استاندارد خود چاپ می‌کند. در این حالت، enscript یک لوله (pipe) به دستور مشخص‌شده باز کرده و داده‌های EPS را از لوله می‌خواند.

گزینه‌های زیر را می‌توان برای کد گریز epsf مشخص کرد:

چاپ تصویر به صورت وسط‌چین
چاپ تصویر به صورت راست‌چین
عدم به‌روزرسانی مکان جاری. خروجی بعدی در همان موقعیتی چاپ می‌شود که نقطهٔ جاری دقیقاً پیش از کد گریز epsf در آن قرار داشت
عدم به‌روزرسانی مختصات x نقطهٔ جاری
عدم به‌روزرسانی مختصات y نقطهٔ جاری
انتقال مختصات x گوشهٔ بالا-چپ تصویر به اندازهٔ num نویسه از مختصات x نقطهٔ جاری (موقعیت نسبی)
تنظیم مختصات x گوشهٔ بالا-چپ تصویر در ستون num (موقعیت مطلق)
انتقال مختصات y گوشهٔ بالا-چپ تصویر به اندازهٔ num خط از خط جاری (موقعیت نسبی)
تنظیم مختصات y گوشهٔ بالا-چپ تصویر در خط num (موقعیت مطلق)
تنظیم ارتفاع تصویر به اندازهٔ num خط.TP 8 snum مقیاس‌بندی تصویر با ضریب num
مقیاس‌بندی تصویر در راستای x با ضریب num
مقیاس‌بندی تصویر در راستای y با ضریب num

به‌طور پیش‌فرض، تمام ابعاد بر حسب خطوط (عمودی) و نویسه‌ها (افقی) مشخص می‌شوند. همچنین می‌توانید با افزودن یک مشخص‌کنندهٔ واحد پس از عدد، واحدهای دیگری را تعیین کنید. مشخص‌کننده‌های واحد ممکن و واحدهای متناظر آن‌ها عبارتند از:

سانتی‌متر
اینچ
خطوط یا نویسه‌ها (پیش‌فرض)
پوینت‌های PostScript

به‌عنوان مثال، برای چاپ تصویری با ارتفاع یک اینچ، می‌توانید ارتفاع را با گزینه‌های زیر مشخص کنید: h1i (۱ اینچ)، h2.54c (۲٫۵۴ سانتی‌متر)، h72p (۷۲ پوینت).

انتخاب قلم جاری. نحو این توالی گریز (escape) به‌صورت زیر است:

^@font{fontname[:encoding]}

که در آن fontname یک مشخصهٔ استاندارد قلم است. مشخصهٔ ویژهٔ قلم default می‌تواند برای انتخاب قلم پیش‌فرض بدنه به کار رود (پیش‌فرض enscript یا قلم تعیین‌شده توسط گزینهٔ خط فرمان -f یا --font).

آرگومان اختیاری encoding کدگذاری مورد استفاده برای قلم جدید را تعیین می‌کند. در حال حاضر، این کدگذاری تنها می‌تواند کدگذاری ورودی سراسری enscript یا ps باشد.

گنجاندن کد خام PostScript در خروجی. نحو این توالی گریز به‌صورت زیر است:

^@ps{code}

برجسته‌سازی بخش‌هایی از متن با تغییر رنگ پس‌زمینهٔ متن. نحو این توالی گریز به‌صورت زیر است:

^@shade{gray}

که در آن gray مقدار جدید خاکستری پس‌زمینهٔ متن است. مقدار پیش‌فرض 1.0 (سفید) است که برجسته‌سازی را غیرفعال می‌کند.

دستگاه صفحه (Page device) یکی از قابلیت‌های سطح ۲ زبان PostScript است که رابطی یکپارچه برای کنترل دستگاه خروجی چاپگر ارائه می‌دهد. Enscript تمام گزینه‌های دستگاه صفحه را درون یک بلوک شرطی if محافظت می‌کند تا در مفسرهای سطح ۱ بی‌اثر باشند. اگرچه تمام مفسرهای سطح ۲ از دستگاه صفحه پشتیبانی می‌کنند، اما نیازی نیست که از تمام گزینه‌های آن پشتیبانی به عمل آورند. برای نمونه، برخی از چاپگرها قابلیت چاپ دورو دارند و برخی ندارند. برای گزینه‌های پشتیبانی‌شده به مستندات چاپگر خود مراجعه کنید.

در ادامه برخی از گزینه‌های کاربردی دستگاه صفحه که می‌توان با گزینهٔ -D یا --setpagedevice انتخاب کرد آورده شده است. برای مشاهدهٔ فهرست کامل، به PostScript Language Reference Manual، بخش 4.11 Device Setup مراجعه کنید.

چگونگی مرتب‌سازی خروجی هنگام چاپ چند نسخه
چاپ دورو (دو طرفه)
سینی تغذیهٔ دستی کاغذ
چاپ خروجی به‌صورت رو به بالا (`face up') یا رو به پایین (`face down')
چگونگی جهت‌گیری صفحات مقابل هم در چاپ دورو

مثال‌های چاپ زیر با فرض این است که enscript از پیکربندی پیش‌فرض استفاده می‌کند. اگر رفتارهای پیش‌فرض از طریق فایل‌های پیکربندی تغییر داده شده باشند، برخی مثال‌ها عملکرد متفاوتی خواهند داشت.

چاپ فایل foo.txt در چاپگر پیش‌فرض.
چاپ فایل foo.txt در چاپگر ossu.
چاپ فایل foo.txt، اما هدایت خروجی PostScript به فایل foo.ps.
چاپ فایل foo.txt به‌صورت دو ستونه.
چاپ فایل به‌صورت دو ستونه و چرخاندن خروجی به اندازهٔ ۹۰ درجه (افقی/landscape).
چاپ فایل در حالت دورو (دو طرفه) (وابسته به چاپگر).
دستور پیش‌فرض من برای چاپ کد: سربرگ پرزرق‌وبرق (gaudy)، دو ستونه، افقی، برجسته‌سازی کد، چاپ دو صفحه در یک برگه (2-up).
یک گزارش زیبای HTML از فایل‌های منبع C پروژهٔ شما..SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)"

متغیر محیطی ENSCRIPT می‌تواند برای انتقال گزینه‌های پیش‌فرض به enscript استفاده شود. برای نمونه، جهت انتخاب فونت بدنه پیش‌فرض به صورت Times-Roman 7pt، مقدار زیر را برای متغیر محیطی ENSCRIPT تنظیم کنید:

مقدار متغیر ENSCRIPT پیش از گزینه‌های خط فرمان پردازش می‌شود، بنابراین می‌توان از گزینه‌های خط فرمان برای بازنویسی این مقادیر پیش‌فرض استفاده کرد.

متغیر ENSCRIPT_LIBRARY دایرکتوری کتابخانه enscript را مشخص می‌کند. از این متغیر می‌توان برای بازنویسی مقدار پیش‌فرض داخلی '/usr/share/enscript' استفاده کرد.

در صورت بروز هرگونه خطا، Enscript مقدار 1 و در غیر این صورت مقدار 0 را به شل برمی‌گرداند. اگر گزینه --extended-return-values مشخص شده باشد، مقدار بازگشتی از پرچم‌های زیر ساخته می‌شود:

0
بدون هیچ‌گونه خطا یا هشدار
2
برخی از خطوط بریده یا شکسته شدند (wrap)
4
برخی نویسه‌ها در فونت‌های استفاده‌شده موجود نبودند
8
برخی نویسه‌ها غیرقابل‌چاپ بودند

/usr/share/enscript/*.hdr		فایل‌های سرآیند
/usr/share/enscript/*.enc		بردارهای کدگذاری ورودی
/usr/share/enscript/enscript.pro	پرولوگ PostScript
/usr/share/enscript/afm/*.afm		فایل‌های AFM برای فونت‌های PostScript
/usr/share/enscript/font.map	نمایه برای فایل‌های AFM
/usr/share/enscript/hl/*.st	فایل‌های تعریف states
/etc/enscript/enscript.cfg		فایل پیکربندی سراسری سیستم
/etc/enscript/enscriptsite.cfg		فایل پیکربندی سایت
~/.enscriptrc				فایل پیکربندی شخصی
~/.enscript/				دایرکتوری منابع شخصی

diffpp(1), ghostview(1), gs(1), lpq(1), lpr(1), lprm(1), states(1)

Markku Rossi <mtr@iki.fi> http://www.iki.fi/~mtr

صفحه وب خانگی GNU Enscript: http://www.iki.fi/~mtr/genscript

March 12, 1999 ENSCRIPT