.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" 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 turned on, 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 "CTANIFY 1" .TH CTANIFY 1 "2017-04-22" "v1.9.1" "" .\" 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)" ctanify \- آماده‌سازی یک بسته برای بارگذاری در CTAN .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" ctanify [\fB\-\-pkgname\fR=\fIstring\fR] [\fB\-\-\fR[\fBno\fR]\fBauto\fR] [\fB\-\-tdsonly\fR=\fIfilespec\fR ...] [\fB\-\-\fR[\fBno\fR]\fBunixify\fR] [\fB\-\-\fR[\fBno\fR]\fBskip\fR] [\fB\-\-tdsdir\fR=\fIdirname\fR ...] [\fB\-\-tex\fR=\fImacro_pkg\fR] [\fB\-\-\fR[\fBno\fR]\fBmiscify\fR] [\fB\-\-\fR[\fBno\fR]\fBtds\fR] \&\fIfilespec\fR[=\fIdirname\fR] ... .PP ctanify [\fB\-\-help\fR] .PP ctanify [\fB\-\-version\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBctanify\fR برای توسعه‌دهندگانی در نظر گرفته شده است که می‌خواهند بستهٔ LaTeX خود را از طریق «شبکهٔ جامع بایگانی تک» (\s-1CTAN\s0) منتشر کنند. با دریافت فهرستی از نام‌های فایل، \fBctanify\fR یک tarball (یک فایل \fI.tar.gz\fR) ایجاد می‌کند که فایل‌ها در آن با ساختار ترجیحی \s-1CTAN\s0 چیده شده‌اند. علاوه بر این، این tarball شامل یک فایل \s-1ZIP \s0(\fI.zip\fR) با رونوشت‌هایی از تمام فایل‌های چیده‌شده در «ساختار استاندارد دایرکتوری تک» (\s-1TDS\s0) است که گنجاندن بسته را در توزیع TeX Live تسهیل می‌کند. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" \&\fBctanify\fR گزینه‌های خط فرمان زیر را می‌پذیرد: .IP "\fB\-h\fR, \fB\-\-help\fR" 5 .IX Item "-h, --help" نمایش اطلاعات استفادهٔ اولیه و خروج. .IP "\fB\-V\fR, \fB\-\-version\fR" 5 .IX Item "-V, --version" نمایش شماره نسخهٔ \fBctanify\fR و خروج. .IP "\fB\-p\fR \fIstring\fR, \fB\-\-pkgname\fR=\fIstring\fR" 5 .IX Item "-p string, --pkgname=string" مشخص کردن صریح نام بسته. به‌طور معمول، \fBctanify\fR از نام پایهٔ نخستین فایل \fI.ins\fR یا \fI.sty\fR فهرست‌شده به عنوان نام بسته استفاده می‌کند. نام بسته، نام پایهٔ فایل tarball تولیدشده توسط \fBctanify\fR را تشکیل می‌دهد. .IP "\fB\-\-noauto\fR" 5 .IX Item "--noauto" عدم افزودن خودکار فایل‌ها به tarball. به‌طور معمول، \fBctanify\fR تمام فایل‌های ذکرشده در یک فایل \fI.ins\fR را به‌طور خودکار می‌گنجاند. .IP "\fB\-t\fR \fIfilespec\fR, \fB\-\-tdsonly\fR=\fIfilespec\fR" 5 .IX Item "-t filespec, --tdsonly=filespec" مشخص کردن زیرمجموعه‌ای از فایل‌های نام‌برده‌شده در خط فرمان برای گنجاندن صرفاً در فایل \s-1TDS ZIP\s0، و نه در دایرکتوری بستهٔ \s-1CTAN\s0. استفاده از نویسه‌های عمومی (wildcards) مجاز است (در صورت لزوم داخل نقل‌قول قرار گیرد)، و از \fB\-\-tdsonly\fR می‌توان چندین بار در همان خط فرمان استفاده کرد. .PP حداقل یک نام فایل باید در خط فرمان مشخص شود. \fBctanify\fR فایل‌ها را بر اساس پسوندشان به‌طور خودکار در درخت \s-1TDS\s0 قرار می‌دهد، اما این رفتار را می‌توان با مشخص کردن صریح دایرکتوری \s-1TDS\s0 مقصد به شکل \fIfilespec\fR=\fIdirname\fR لغو کرد. نویسه‌های عمومی (wildcards) برای filespec مجاز هستند (در صورت لزوم داخل نقل‌قول قرار گیرند). .SH "گزینه‌های اضافی (ADDITIONAL OPTIONS)" .IX Header "ADDITIONAL OPTIONS" بعید است گزینه‌های زیر در استفادهٔ عادی ضروری باشند. آن‌ها برای شرایط خاصی که ممکن است پیش بیاید ارائه شده‌اند. .IP "\fB\-d\fR \fIdirname\fR, \fB\-\-tdsdir\fR=\fIdirname\fR" 5 .IX Item "-d dirname, --tdsdir=dirname" به‌جای ایجاد یک tarball برای \s-1CTAN\s0، صرفاً درخت \s-1TDS\s0 بسته را با ریشه در دایرکتوری \fIdirname\fR ایجاد کند. .IP "\fB\-T\fR \fImacro_pkg\fR, \fB\-\-tex\fR=\fImacro_pkg\fR" 5 .IX Item "-T macro_pkg, --tex=macro_pkg" تأکید بر اینکه فایل‌های بسته‌بندی‌شده برای \s-1CTAN\s0، یک بستهٔ ماکروی TeX غیر از LaTeX را هدف قرار داده‌اند. برخی از نمونه‌های رایج \fImacro_pkg\fR عبارتند از \f(CW\*(C`generic\*(C'\fR، \f(CW\*(C`plain\*(C'\fR و \f(CW\*(C`context\*(C'\fR. .IP "\fB\-nou\fR, \fB\-\-no\-unixify\fR" 5 .IX Item "-nou, --no-unixify" ذخیرهٔ فایل‌های متنی بدون تغییر، به‌جای تبدیل نویسهٔ پایان خط آن‌ها به قالب Unix (یک نویسهٔ linefeed تکی بدون نویسهٔ carriage-return)، اگرچه \s-1CTAN\s0 ترجیح می‌دهد تمام فایل‌ها را با نویسه‌های پایان خط قالب Unix دریافت کند. .IP "\fB\-nok\fR, \fB\-\-no\-skip\fR" 5 .IX Item "-nok, --no-skip" اجبار \fBctanify\fR به گنجاندن فایل‌هایی مانند فایل‌های پنهان Unix، فایل‌های پشتیبان Emacs و فایل‌های متادیتای سیستم کنترل نسخه، که همگی مواردی هستند که \s-1CTAN\s0 تمایلی به دریافت آن‌ها ندارد. .IP "\fB\-m\fR, \fB\-\-miscify\fR" 5 .IX Item "-m, --miscify" تغییر نام دایرکتوری‌های حاوی یک تک‌فایل به \f(CW\*(C`misc\*(C'\fR. (به‌عنوان مثال، تغییر نام \f(CW\*(C`tex/latex/mypackage/mypackage.sty\*(C'\fR به \f(CW\*(C`tex/latex/misc/mypackage.sty\*(C'\fR.) این کار در گذشته یک رویهٔ معمول بود اما اکنون شدیداً منع می‌شود. .IP "\fB\-nos\fR, \fB\-\-no\-tds\fR" 5 .IX Item "-nos, --no-tds" جاسازی نکردن فایل .tds.zip در tarball تولیدشده. .SH "خطاها (DIAGNOSTICS)" .IX Header "DIAGNOSTICS" .ie n .IP """Failed to copy \f(CIfilename\f(CW (No such file or directory)""" 5 .el .IP "\f(CWFailed to copy \f(CIfilename\f(CW (No such file or directory)\fR" 5 .IX Item "Failed to copy filename (No such file or directory)" این پیام معمولاً به دلیل یک فایل \fI.ins\fR رخ می‌دهد که \fIfilename\fR را تولید می‌کند اما هنوز برای تولید واقعی \fIfilename\fR از طریق \fItex\fR یا \fIlatex\fR اجرا نشده است. \fBctanify\fR به‌طور خودکار \fItex\fR یا \fIlatex\fR را اجرا نمی‌کند؛ این کار باید به‌صورت دستی توسط کاربر انجام شود. برای اطلاعات بیشتر به بخش «هشدارها» (\*(L"\s-1CAVEATS\*(R"\s0) مراجعه کنید. .ie n .IP """Modified \f(CIfilename\f(CW to use Unix line endings (use \-\-no\-unixify to prevent this)""" 5 .el .IP "\f(CWModified \f(CIfilename\f(CW to use Unix line endings (use \-\-no\-unixify to prevent this)\fR" 5 .IX Item "Modified filename to use Unix line endings (use --no-unixify to prevent this)" برای سازگاری و یکدستی، \s-1CTAN\s0 تمام فایل‌های متنی را با پایان خط سبک Unix ذخیره می‌کند (یک نویسهٔ linefeed تکی بدون نویسهٔ carriage-return). برای کمک به این امر، \fBctanify\fR به‌طور خودکار پایان خط‌های غیر از سبک Unix را جایگزین می‌کند. پیام مذکور صرفاً به کاربر اطلاع می‌دهد که نباید از دیدن اندازهٔ متفاوت برای \fIfilename\fR در tarball در مقایسه با \fIfilename\fR اصلی روی دیسک (که \fBctanify\fR هرگز آن را تغییر نمی‌دهد) نگران شود. اگر دلیل موجهی برای حفظ پایان خط‌های اصلی وجود دارد (که به‌ندرت چنین است)، می‌توان از گزینهٔ \fB\-\-no\-unixify\fR برای جلوگیری از تغییر هرگونه فایل توسط \fBctanify\fR هنگام ذخیره در tarball استفاده کرد. .ie n .IP """Excluding \f(CIfilename\f(CW (use \-\-no\-skip to force inclusion)""" 5 .el .IP "\f(CWExcluding \f(CIfilename\f(CW (use \-\-no\-skip to force inclusion)\fR" 5 .IX Item "Excluding filename (use --no-skip to force inclusion)" \&\fBctanify\fR به‌طور معمول فایل‌هایی را که \s-1CTAN\s0 ترجیح می‌دهد دریافت نکند نادیده می‌گیرد\*(--حتی زمانی که صریحاً در خط فرمان مشخص شده باشند\*(--. این موارد شامل فایل‌هایی است که نام آن‌ها با "\fI.\fR\*(L" شروع می‌شود (فایل‌های پنهان Unix)، به \*(R"\fI~\fR" ختم می‌شود (پشتیبان‌های خودکار Emacs)، یا از یک دایرکتوری \fI\s-1CVS\s0\fR یا \fI.svn\fR می‌آیند (فایل‌های فرادادهٔ سیستم کنترل نسخه). اگر دلیل موجهی برای ارسال چنین فایل‌هایی به \s-1CTAN\s0 وجود دارد (که به‌ندرت چنین است)، می‌توان از گزینهٔ \fB\-\-no\-skip\fR استفاده کرد تا از نادیده گرفتن آن‌ها توسط \fBctanify\fR جلوگیری شود. .ie n .IP """CTAN prefers having only PDF documentation (re: \f(CIfilename\f(CW)""" 5 .el .IP "\f(CWCTAN prefers having only PDF documentation (re: \f(CIfilename\f(CW)\fR" 5 .IX Item "CTAN prefers having only PDF documentation (re: filename)" به دلیل محبوبیت قالب \s-1PDF\s0، شبکهٔ \s-1CTAN\s0 تمایل دارد تا حد ممکن مستندات در قالب \s-1PDF\s0 توزیع شوند. پیام فوق از کاربر می‌خواهد در صورت امکان هرگونه مستندات PostScript یا \s-1DVI\s0 را با \s-1PDF\s0 جایگزین کند. (\fBctanify\fR همچنان مستندات PostScript و \s-1DVI\s0 را در tarball می‌گنجاند؛ پیام مذکور صرفاً یک درخواست محترمانه است.) .ie n .IP """Not including \f(CIfilename\f(CW in the TDS tree (unknown extension)""" 5 .el .IP "\f(CWNot including \f(CIfilename\f(CW in the TDS tree (unknown extension)\fR" 5 .IX Item "Not including filename in the TDS tree (unknown extension)" \&\fBctanify\fR فایل‌ها را بر اساس جدولی از پسوندهای فایل در درخت \s-1TDS\s0 قرار می‌دهد. به‌عنوان مثال، تمام فایل‌های \fI.sty\fR در \fItex/latex/\fIpackage-name\fI\fR قرار می‌گیرند. اگر \fBctanify\fR نداند فایلی را کجا قرار دهد، آن را در هیچ جا قرار نمی‌دهد. برای توضیحات در مورد نحوهٔ مشخص کردن صریح مکان هدف یک فایل در درخت \s-1TDS\s0، به آخرین بند از بخش «گزینه‌ها» (\*(L"\s-1OPTIONS\*(R"\s0) مراجعه کنید. برای پسوندهای فایل رایجی که احیاناً در جدول \fBctanify\fR وجود ندارند، به نویسندهٔ \fBctanify\fR در نشانی ذکرشده در زیر در بخش «نویسندگان» (\*(L"\s-1AUTHOR\*(R"\s0) اطلاع دهید..SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" .SS "حالت متداول (The Common Case)" .IX Subsection "The Common Case" معمولاً، تنها کاری که باید انجام دهید این است که نام فایل \&\fI.ins\fR (یا در صورتی که بسته از DocStrip استفاده نمی‌کند، فایل \fI.sty\fR) و در صورت وجود، مستندات از پیش ساخته‌شده را به \fBctanify\fR بدهید: .PP .Vb 1 \& $ 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 .Ve .PP \&\fBctanify\fR اندازه برحسب بایتِ تاربال خروجی، هر فایل درون آن و هر فایلِ موجود در فایل \s-1ZIP\s0 درون بسته را در خروجی نمایش می‌دهد. در مثال بالا، توجه کنید که چگونه \fBctanify\fR به‌طور خودکار تمامی عملیات زیر را انجام داد: .IP "\(bu" 5 قرار دادن \fImypackage.dtx\fR (یافت‌شده از طریق تجزیهٔ \fImypackage.ins\fR) در هر دو دایرکتوری \fImypackage\fR و فایل \s-1ZIP\s0، .IP "\(bu" 5 قرار دادن \fImypackage.sty\fR (یافت‌شده از طریق تجزیهٔ \fImypackage.ins\fR) درون فایل \s-1ZIP\s0، اما به این دلیل که یک فایل تولیدشده است، نه در دایرکتوری \fImypackage\fR، و .IP "\(bu" 5 قرار دادن تمام فایل‌ها در دایرکتوری‌های مناسب \s-1TDS\s0 (مستندات، کد منبع، بستهٔ اصلی) درون فایل \s-1ZIP\s0. .PP تصور کنید تولید دستی یک فایل \fImypackage.tar.gz\fR معادل چقدر کار می‌برد. \&\fBctanify\fR قطعاً گزینه‌ای ساده‌تر و سریع‌تر است. .SS "کاربرد پیشرفته (Advanced Usage)" .IX Subsection "Advanced Usage" \&\fBctanify\fR فرض می‌کند که فایل‌های PostScript مستندات هستند و بنابراین آن‌ها را در زیرمسیر \fIdoc/latex/\fIpackage-name\fI/\fR در درخت \s-1TDS\s0 درون فایل \s-1ZIP\s0 ذخیره می‌کند. با این حال، فرض کنید یک بستهٔ LaTeX از مجموعه‌ای از فایل‌های PostScript برای کنترل خروجی \fBdvips\fR استفاده می‌کند. در این صورت، باید به \fBctanify\fR گفته شود که آن فایل‌های PostScript را در دایرکتوری بسته قرار دهد، نه در دایرکتوری مستندات. .PP .Vb 1 \& $ ctanify mypackage.ins "mypackage*.ps=tex/latex/mypackage" .Ve .SH "فایل‌ها (FILES)" .IX Header "FILES" .IP "\fIperl\fR" 5 .IX Item "perl" \&\fBctanify\fR به زبان Perl نوشته شده است و برای اجرا به نصب بودن Perl نیاز دارد. .IP "\fItar\fR, \fIgzip\fR" 5 .IX Item "tar, gzip" \&\fBctanify\fR برای ایجاد یک تاربال فشرده (\fI.tar.gz\fR) به برنامه‌های \s-1GNU \s0\fItar\fR و \fIgzip\fR نیاز دارد. .IP "\fIzip\fR" 5 .IX Item "zip" \&\fBctanify\fR برای بایگانی درخت \s-1TDS\s0 درون تاربال اصلی از برنامهٔ \fIzip\fR استفاده می‌کند. .SH "هشدارها (CAVEATS)" .IX Header "CAVEATS" \&\fBctanify\fR خودبه‌خود \fItex\fR یا \fIlatex\fR را فراخوانی نمی‌کند، مثلاً\ برای پردازش یک فایل \fI.ins\fR. دلیل آن این است که \fBctanify\fR در حالت کلی نمی‌داند چگونه تمام فایل‌های تولیدی یک بسته را بسازد. این‌گونه صلاح دانسته شد که کاری انجام نشود تا این‌که خطر رونویسی فایل‌های موجود \&\fI.sty\fR (یا موارد دیگر) وجود داشته باشد یا فایل‌های تولیدی قدیمی در تاربال گنجانده شوند. به‌طور خلاصه، پیش از اجرای \fBctanify\fR باید به‌صورت دستی هرگونه فایل \fI.ins\fR را پردازش کرده و سایر فایل‌هایی را که باید به \&\s-1CTAN\s0 فرستاده شوند، تولید کنید. .PP \&\fBctanify\fR تنها روی Linux آزمایش شده است. ممکن است روی \s-1OS\s0\ X نیز کار کند. به من گفته شده است که هنگام اجرا با استفاده از Cygwin، روی Windows کار می‌کند. از داوطلبانی که مایل به کمک در پورت کردن \fBctanify\fR به سایر پلتفرم‌ها هستند بسیار استقبال می‌شود. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fItar\fR\|(1), \&\fIzip\fR\|(1), \&\fIlatex\fR\|(1), دستورالعمل‌های بارگذاری بسته‌های TDS به \s-1CTAN \&\s0(), ساختار دایرکتوری برای فایل‌های TeX () .SH "نویسنده (AUTHOR)" .IX Header "AUTHOR" Scott Pakin, \fIscott+ctify@pakin.org\fR .SH "کپی‌رایت و مجوز (COPYRIGHT AND LICENSE)" .IX Header "COPYRIGHT AND LICENSE" حق نشر ۲۰۱۷ متعلق به Scott Pakin است. .PP این اثر ممکن است تحت شرایط مجوز عمومی پروژه لاتک (LaTeX Project Public License)، ویرایش\ 1.3c این مجوز یا (به انتخاب شما) هر ویرایش بعدی توزیع و/یا تغییر داده شود. جدیدترین نسخهٔ این مجوز در نشانی زیر قرار دارد: .Sp .RS 4 .RE .PP و نسخهٔ\ 1.3c یا بالاتر، بخشی از تمامی توزیع‌های LaTeX نسخهٔ 2008/05/04 یا جدیدتر است.