| CTANIFY(1) | CTANIFY(1) |
ctanify - آمادهسازی یک بسته برای بارگذاری در CTAN
خلاصه دستور (SYNOPSIS)
ctanify [--pkgname=string] [--[no]auto] [--tdsonly=filespec ...] [--[no]unixify] [--[no]skip] [--tdsdir=dirname ...] [--tex=macro_pkg] [--[no]miscify] [--[no]tds] filespec[=dirname] ...
ctanify [--help]
ctanify [--version]
توضیحات (DESCRIPTION)
ctanify برای توسعهدهندگانی در نظر گرفته شده است که میخواهند بستهٔ LaTeX خود را از طریق «شبکهٔ جامع بایگانی تک» (CTAN) منتشر کنند. با دریافت فهرستی از نامهای فایل، ctanify یک tarball (یک فایل .tar.gz) ایجاد میکند که فایلها در آن با ساختار ترجیحی CTAN چیده شدهاند. علاوه بر این، این tarball شامل یک فایل ZIP (.zip) با رونوشتهایی از تمام فایلهای چیدهشده در «ساختار استاندارد دایرکتوری تک» (TDS) است که گنجاندن بسته را در توزیع TeX Live تسهیل میکند.
گزینهها (OPTIONS)
ctanify گزینههای خط فرمان زیر را میپذیرد:
- -h, --help
- نمایش اطلاعات استفادهٔ اولیه و خروج.
- -V, --version
- نمایش شماره نسخهٔ ctanify و خروج.
- -p string, --pkgname=string
- مشخص کردن صریح نام بسته. بهطور معمول، ctanify از نام پایهٔ نخستین فایل .ins یا .sty فهرستشده به عنوان نام بسته استفاده میکند. نام بسته، نام پایهٔ فایل tarball تولیدشده توسط ctanify را تشکیل میدهد.
- --noauto
- عدم افزودن خودکار فایلها به tarball. بهطور معمول، ctanify تمام فایلهای ذکرشده در یک فایل .ins را بهطور خودکار میگنجاند.
- -t filespec, --tdsonly=filespec
- مشخص کردن زیرمجموعهای از فایلهای نامبردهشده در خط فرمان برای گنجاندن صرفاً در فایل TDS ZIP، و نه در دایرکتوری بستهٔ CTAN. استفاده از نویسههای عمومی (wildcards) مجاز است (در صورت لزوم داخل نقلقول قرار گیرد)، و از --tdsonly میتوان چندین بار در همان خط فرمان استفاده کرد.
حداقل یک نام فایل باید در خط فرمان مشخص شود. ctanify فایلها را بر اساس پسوندشان بهطور خودکار در درخت TDS قرار میدهد، اما این رفتار را میتوان با مشخص کردن صریح دایرکتوری TDS مقصد به شکل filespec=dirname لغو کرد. نویسههای عمومی (wildcards) برای filespec مجاز هستند (در صورت لزوم داخل نقلقول قرار گیرند).
گزینههای اضافی (ADDITIONAL OPTIONS)
بعید است گزینههای زیر در استفادهٔ عادی ضروری باشند. آنها برای شرایط خاصی که ممکن است پیش بیاید ارائه شدهاند.
- -d dirname, --tdsdir=dirname
- بهجای ایجاد یک tarball برای CTAN، صرفاً درخت TDS بسته را با ریشه در دایرکتوری dirname ایجاد کند.
- -T macro_pkg, --tex=macro_pkg
- تأکید بر اینکه فایلهای بستهبندیشده برای CTAN، یک بستهٔ ماکروی TeX غیر از LaTeX را هدف قرار دادهاند. برخی از نمونههای رایج macro_pkg عبارتند از "generic"، "plain" و "context".
- -nou, --no-unixify
- ذخیرهٔ فایلهای متنی بدون تغییر، بهجای تبدیل نویسهٔ پایان خط آنها به قالب Unix (یک نویسهٔ linefeed تکی بدون نویسهٔ carriage-return)، اگرچه CTAN ترجیح میدهد تمام فایلها را با نویسههای پایان خط قالب Unix دریافت کند.
- -nok, --no-skip
- اجبار ctanify به گنجاندن فایلهایی مانند فایلهای پنهان Unix، فایلهای پشتیبان Emacs و فایلهای متادیتای سیستم کنترل نسخه، که همگی مواردی هستند که CTAN تمایلی به دریافت آنها ندارد.
- -m, --miscify
- تغییر نام دایرکتوریهای حاوی یک تکفایل به "misc". (بهعنوان مثال، تغییر نام "tex/latex/mypackage/mypackage.sty" به "tex/latex/misc/mypackage.sty".) این کار در گذشته یک رویهٔ معمول بود اما اکنون شدیداً منع میشود.
- -nos, --no-tds
- جاسازی نکردن فایل .tds.zip در tarball تولیدشده.
خطاها (DIAGNOSTICS)
- "Failed to copy filename (No such file or directory)"
- این پیام معمولاً به دلیل یک فایل .ins رخ میدهد که filename را تولید میکند اما هنوز برای تولید واقعی filename از طریق tex یا latex اجرا نشده است. ctanify بهطور خودکار tex یا latex را اجرا نمیکند؛ این کار باید بهصورت دستی توسط کاربر انجام شود. برای اطلاعات بیشتر به بخش «هشدارها» ("CAVEATS") مراجعه کنید.
- "Modified filename to use Unix line endings (use --no-unixify to prevent this)"
- برای سازگاری و یکدستی، CTAN تمام فایلهای متنی را با پایان خط سبک Unix ذخیره میکند (یک نویسهٔ linefeed تکی بدون نویسهٔ carriage-return). برای کمک به این امر، ctanify بهطور خودکار پایان خطهای غیر از سبک Unix را جایگزین میکند. پیام مذکور صرفاً به کاربر اطلاع میدهد که نباید از دیدن اندازهٔ متفاوت برای filename در tarball در مقایسه با filename اصلی روی دیسک (که ctanify هرگز آن را تغییر نمیدهد) نگران شود. اگر دلیل موجهی برای حفظ پایان خطهای اصلی وجود دارد (که بهندرت چنین است)، میتوان از گزینهٔ --no-unixify برای جلوگیری از تغییر هرگونه فایل توسط ctanify هنگام ذخیره در tarball استفاده کرد.
- "Excluding filename (use --no-skip to force inclusion)"
- ctanify بهطور معمول فایلهایی را که CTAN ترجیح میدهد دریافت نکند نادیده میگیرد--حتی زمانی که صریحاً در خط فرمان مشخص شده باشند--. این موارد شامل فایلهایی است که نام آنها با "." شروع میشود (فایلهای پنهان Unix)، به "~" ختم میشود (پشتیبانهای خودکار Emacs)، یا از یک دایرکتوری CVS یا .svn میآیند (فایلهای فرادادهٔ سیستم کنترل نسخه). اگر دلیل موجهی برای ارسال چنین فایلهایی به CTAN وجود دارد (که بهندرت چنین است)، میتوان از گزینهٔ --no-skip استفاده کرد تا از نادیده گرفتن آنها توسط ctanify جلوگیری شود.
- "CTAN prefers having only PDF documentation (re: filename)"
- به دلیل محبوبیت قالب PDF، شبکهٔ CTAN تمایل دارد تا حد ممکن مستندات در قالب PDF توزیع شوند. پیام فوق از کاربر میخواهد در صورت امکان هرگونه مستندات PostScript یا DVI را با PDF جایگزین کند. (ctanify همچنان مستندات PostScript و DVI را در tarball میگنجاند؛ پیام مذکور صرفاً یک درخواست محترمانه است.)
- "Not including filename in the TDS tree (unknown extension)"
- ctanify فایلها را بر اساس جدولی از پسوندهای فایل در درخت TDS قرار میدهد. بهعنوان مثال، تمام فایلهای .sty در tex/latex/package-name قرار میگیرند. اگر ctanify نداند فایلی را کجا قرار دهد، آن را در هیچ جا قرار نمیدهد. برای توضیحات در مورد نحوهٔ مشخص کردن صریح مکان هدف یک فایل در درخت TDS، به آخرین بند از بخش «گزینهها» ("OPTIONS") مراجعه کنید. برای پسوندهای فایل رایجی که احیاناً در جدول ctanify وجود ندارند، به نویسندهٔ ctanify در نشانی ذکرشده در زیر در بخش «نویسندگان» ("AUTHOR") اطلاع دهید..SH "مثالها (EXAMPLES)"
حالت متداول (The Common Case)
معمولاً، تنها کاری که باید انجام دهید این است که نام فایل .ins (یا در صورتی که بسته از DocStrip استفاده نمیکند، فایل .sty) و در صورت وجود، مستندات از پیش ساختهشده را به ctanify بدهید:
$ ctanify mypackage.ins mypackage.pdf README
490347 mypackage.tar.gz
1771 mypackage/README
15453 mypackage/mypackage.dtx
1957 mypackage/mypackage.ins
277683 mypackage/mypackage.pdf
246935 mypackage.tds.zip
1771 doc/latex/mypackage/README
277683 doc/latex/mypackage/mypackage.pdf
15453 source/latex/mypackage/mypackage.dtx
1957 source/latex/mypackage/mypackage.ins
1725 tex/latex/mypackage/mypackage.sty
ctanify اندازه برحسب بایتِ تاربال خروجی، هر فایل درون آن و هر فایلِ موجود در فایل ZIP درون بسته را در خروجی نمایش میدهد. در مثال بالا، توجه کنید که چگونه ctanify بهطور خودکار تمامی عملیات زیر را انجام داد:
- قرار دادن mypackage.dtx (یافتشده از طریق تجزیهٔ mypackage.ins) در هر دو دایرکتوری mypackage و فایل ZIP،
- قرار دادن mypackage.sty (یافتشده از طریق تجزیهٔ mypackage.ins) درون فایل ZIP، اما به این دلیل که یک فایل تولیدشده است، نه در دایرکتوری mypackage، و
- قرار دادن تمام فایلها در دایرکتوریهای مناسب TDS (مستندات، کد منبع، بستهٔ اصلی) درون فایل ZIP.
تصور کنید تولید دستی یک فایل mypackage.tar.gz معادل چقدر کار میبرد. ctanify قطعاً گزینهای سادهتر و سریعتر است.
کاربرد پیشرفته (Advanced Usage)
ctanify فرض میکند که فایلهای PostScript مستندات هستند و بنابراین آنها را در زیرمسیر doc/latex/package-name/ در درخت TDS درون فایل ZIP ذخیره میکند. با این حال، فرض کنید یک بستهٔ LaTeX از مجموعهای از فایلهای PostScript برای کنترل خروجی dvips استفاده میکند. در این صورت، باید به ctanify گفته شود که آن فایلهای PostScript را در دایرکتوری بسته قرار دهد، نه در دایرکتوری مستندات.
$ ctanify mypackage.ins "mypackage*.ps=tex/latex/mypackage"
فایلها (FILES)
هشدارها (CAVEATS)
ctanify خودبهخود tex یا latex را فراخوانی نمیکند، مثلاً برای پردازش یک فایل .ins. دلیل آن این است که ctanify در حالت کلی نمیداند چگونه تمام فایلهای تولیدی یک بسته را بسازد. اینگونه صلاح دانسته شد که کاری انجام نشود تا اینکه خطر رونویسی فایلهای موجود .sty (یا موارد دیگر) وجود داشته باشد یا فایلهای تولیدی قدیمی در تاربال گنجانده شوند. بهطور خلاصه، پیش از اجرای ctanify باید بهصورت دستی هرگونه فایل .ins را پردازش کرده و سایر فایلهایی را که باید به CTAN فرستاده شوند، تولید کنید.
ctanify تنها روی Linux آزمایش شده است. ممکن است روی OS X نیز کار کند. به من گفته شده است که هنگام اجرا با استفاده از Cygwin، روی Windows کار میکند. از داوطلبانی که مایل به کمک در پورت کردن ctanify به سایر پلتفرمها هستند بسیار استقبال میشود.
همچنین ببینید (SEE ALSO)
tar(1), zip(1), latex(1), دستورالعملهای بارگذاری بستههای TDS به CTAN (http://www.ctan.org/TDS-guidelines), ساختار دایرکتوری برای فایلهای TeX (http://tug.org/tds)
نویسنده (AUTHOR)
Scott Pakin, scott+ctify@pakin.org
کپیرایت و مجوز (COPYRIGHT AND LICENSE)
حق نشر ۲۰۱۷ متعلق به Scott Pakin است.
این اثر ممکن است تحت شرایط مجوز عمومی پروژه لاتک (LaTeX Project Public License)، ویرایش 1.3c این مجوز یا (به انتخاب شما) هر ویرایش بعدی توزیع و/یا تغییر داده شود. جدیدترین نسخهٔ این مجوز در نشانی زیر قرار دارد:
و نسخهٔ 1.3c یا بالاتر، بخشی از تمامی توزیعهای LaTeX نسخهٔ 2008/05/04 یا جدیدتر است.
| 2017-04-22 | v1.9.1 |