| PERLTEX(1) | PERLTEX(1) |
نام (NAME)
perltex - امکان تعریف ماکروهای LaTeX با استفاده از کدهای Perl
خلاصه دستور (SYNOPSIS)
perltex [--help] [--latex=program] [--[no]safe] [--permit=feature] [--makesty] [latex options]
توضیحات (DESCRIPTION)
سامانه LaTeX -- از طریق سامانه حروفچینی زیربنایی TeX -- اسنادی با حروفچینی بسیار زیبا تولید میکند، اما دارای زبان ماکرویی است که برنامهنویسی با آن دشوار است. بهویژه، پشتیبانی از دستکاریهای پیچیده رشتهها تا حد زیادی در آن وجود ندارد. از سوی دیگر، Perl یک زبان برنامهنویسی همهمنظوره و محبوب است که نقطه قوت اصلی آن دستکاری رشتههاست. با این حال، به هیچ وجه از قابلیتهای حروفچینی برخوردار نیست.
بدیهی است که قابلیت برنامهنویسی Perl میتواند مکمل نقاط قوت حروفچینی LaTeX باشد. perltex ابزاری است که همزیستی میان این دو سامانه را ممکن میسازد. تمام کاری که کاربر باید انجام دهد، کامپایل کردن سند LaTeX با استفاده از perltex به جای latex است. (perltex در واقع یک پوشش (wrapper) برای latex است، بنابراین هیچکدام از قابلیتهای latex از دست نمیرود.) اگر سند در دیباچه (preamble) خود شامل دستور "\usepackage{perltex}" باشد، آنگاه ماکروهای "\perlnewcommand" و "\perlrenewcommand" در دسترس قرار خواهند گرفت. رفتار این ماکروها دقیقاً مانند "\newcommand" و "\renewcommand" در LaTeX است، با این تفاوت که بدنه ماکرو به جای کد LaTeX، شامل کد Perl است.
گزینهها (OPTIONS)
perltex گزینههای خط فرمان زیر را میپذیرد:
- --help
- نمایش اطلاعات پایه درباره نحوه استفاده.
- --latex=program
- مشخص کردن یک برنامه برای استفاده به جای latex. برای مثال، "--latex=pdflatex" سند دادهشده را با استفاده از pdflatex به جای latex معمولی حروفچینی میکند.
- --[no]safe
- فعال یا غیرفعال کردن محیط ایزوله (sandboxing). در حالت پیشفرض --safe، perltex کد ناشی از یک ماکروی "\perlnewcommand" یا "\perlrenewcommand" را درون یک محیط محافظتشده اجرا میکند که از عملیات «ناامن» مانند دسترسی به فایلها یا اجرای برنامههای خارجی جلوگیری مینماید. مشخص کردن --nosafe به سند LaTeX اختیار تام (carte blanche) میدهد تا هر کد دلخواه Perl را اجرا کند، از جمله کدهایی که میتوانند به فایلهای کاربر آسیب برسانند. برای اطلاعات بیشتر Safe را ببینید.
- --permit=feature
- اجازه دادن به انجام عملیاتهای خاص در Perl. گزینه --permit که میتواند بیش از یک بار در خط فرمان مشخص شود، امکان کنترل دقیقتر روی محیط ایزوله perltex را فراهم میسازد. برای اطلاعات بیشتر Opcode را ببینید.
- --makesty
- تولید یک فایل استایل LaTeX به نام noperltex.sty. جایگزین کردن خط "\usepackage{perltex}" در سند با "\usepackage{noperltex}" همان خروجی را تولید میکند، اما به PerlTeX نیازی ندارد؛ این امر سند را برای توزیع میان افرادی که PerlTeX را نصب ندارند مناسب میسازد. عیب این روش این است که فایل noperltex.sty مختص همان سندی است که آن را تولید کرده است. هرگونه تغییر در تعاریف ماکروهای PerlTeX یا فراخوانیهای ماکرو در سند، مستلزم اجرای مجدد perltex با گزینه --makesty خواهد بود.
سپس به دنبال این گزینهها، هر گزینهای که به طور معمول به latex (یا هر برنامهای که با "--latex" مشخص شده است) ارسال میشود، قرار میگیرد؛ از جمله، برای نمونه، نام فایل .tex برای کامپایل.
مثالها (EXAMPLES)
در سادهترین حالت، perltex درست مانند latex اجرا میشود:
perltex myfile.tex
برای استفاده از pdflatex به جای latex معمولی، از گزینه --latex استفاده کنید:
perltex --latex=pdflatex myfile.tex
اگر LaTeX خطای «"trapped by operation mask"» را نشان داد و شما به فایل .tex که قصد کامپایل آن را دارید اطمینان دارید که کد مخرب Perl را اجرا نمیکند (مثلاً به این دلیل که خودتان آن را نوشتهاید)، میتوانید سازوکارهای امنیتی perltex را با گزینه --nosafe غیرفعال کنید:
perltex --nosafe myfile.tex
دستور زیر به اسناد تنها مجوزهای پیشفرض perltex (":browse") را به همراه قابلیت باز کردن فایلها و فراخوانی دستور "time" اعطا میکند:
perltex --permit=:browse --permit=:filesys_open --permit=time myfile.tex
محیط (ENVIRONMENT)
perltex از متغیرهای محیطی زیر پیروی میکند:
- PERLTEX
- نام فایل کامپایلر LaTeX را مشخص میکند. کامپایلر LaTeX به طور پیشفرض «"latex"» است. متغیر محیطی "PERLTEX" این پیشفرض را بازنویسی میکند، و گزینه خط فرمان --latex (بخش «گزینهها (OPTIONS)» را ببینید) آن را نیز لغو و بازنویسی مینماید.
فایلها (FILES)
هنگام کامپایل jobname.tex، perltex از فایلهای زیر استفاده میکند:
- jobname.lgpl
- فایل گزارش (log) نوشتهشده توسط Perl؛ مفید برای اشکالزدایی ماکروهای Perl
- jobname.topl
- اطلاعات ارسالشده از LaTeX به Perl
- jobname.frpl
- اطلاعات ارسالشده از Perl به LaTeX
- jobname.tfpl
- فایل «نشانگر» (flag) که وجود آن نشان میدهد jobname.topl حاوی دادههای معتبر است
- jobname.ffpl
- فایل «نشانگر» (flag) که وجود آن نشان میدهد jobname.frpl حاوی دادههای معتبر است
- jobname.dfpl
- فایل «نشانگر» (flag) که وجود آن نشان میدهد jobname.ffpl حذف شده است
- noperltex-#.tex
- فایل تولیدشده توسط noperltex.sty برای هر فراخوانی ماکروی PerlTeX
نکات (NOTES)
محیط ایزوله (sandbox) perltex به طور پیشفرض روی چیزی تنظیم شده است که Opcode آن را «":browse"» مینامد.
همچنین ببینید (SEE ALSO)
نویسنده (AUTHOR)
Scott Pakin, scott+pt@pakin.org
| 2024-12-03 | v2.3 |