.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" 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 >0, 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 "ltx2crossrefxml 1" .TH ltx2crossrefxml 1 "2025-09-04" "" "LATEX CROSSREFWARE" .\" 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)" ltx2crossrefxml.pl \- ایجاد فایل‌های XML برای ارسال به crossref.org .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" ltx2crossrefxml [\fB\-\-debug\fR] [\fB\-c\fR \fIconfig_file\fR] [\fB\-o\fR \fIoutput_file\fR] [\fB\-input\-is\-xml\fR] \fIlatex_file1\fR \fIlatex_file2\fR ... .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-c\fR \fIconfig_file\fR" 4 .IX Item "-c config_file" فایل پیکربندی. اگر این فایل وجود نداشته باشد، مقادیر پیش‌فرض استفاده می‌شوند. برای آگاهی از قالب آن، بخش زیر را ببینید. .IP "\fB\-o\fR \fIoutput_file\fR" 4 .IX Item "-o output_file" فایل خروجی. اگر از این گزینه استفاده نشود، \s-1XML\s0 به stdout فرستاده می‌شود. .IP "\fB\-rpi\-is\-xml\fR" 4 .IX Item "-rpi-is-xml" رشته‌های ورودی نویسنده و عنوان تبدیل نشوند؛ فرض می‌شود آن‌ها \s-1XML\s0 معتبر هستند. .IP "\fB\-\-debug\fR" 4 .IX Item "--debug" چاپ برخی گزارش‌های پیشرفت کار. .PP گزینه‌های معمول \f(CW\*(C`\-\-help\*(C'\fR و \f(CW\*(C`\-\-version\*(C'\fR نیز پشتیبانی می‌شوند. گزینه‌ها می‌توانند با \f(CW\*(C`\-\*(C'\fR یا \f(CW\*(C`\-\-\*(C'\fR آغاز شوند و ترتیب آن‌ها دلخواه است. .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" به ازای هر \fIlatex_file\fR ارائه‌شده، این اسکریپت فایل‌های \f(CW\*(C`.rpi\*(C'\fR و (در صورت وجود) \f(CW\*(C`.bbl\*(C'\fR و \f(CW\*(C`.aux\*(C'\fR را خوانده و \s-1XML\s0 متناظری تولید می‌کند که می‌تواند در Crossref () بارگذاری شود. هر پسوندی از \fIlatex_file\fR نادیده گرفته می‌شود و خودِ \fIlatex_file\fR خوانده نمی‌شود (و حتی نیازی به وجود آن نیست). .PP هر فایل \f(CW\*(C`.rpi\*(C'\fR فراداده‌های مربوط به یک مقالهٔ تکی را جهت بارگذاری به Crossref (یک عنصر \f(CW\*(C`journal_article\*(C'\fR در طرح‌وارهٔ آن‌ها) مشخص می‌کند؛ مثالی در زیر آمده است. این فایل‌ها توسط بسته‌های \f(CW\*(C`resphilosophica\*(C'\fR ()، \f(CW\*(C`aomart\*(C'\fR ()، فرایند انتشار TUGboat () و بسته‌های دیگر تولید می‌شوند. همچنین می‌توان آن‌ها را دستی یا با هر روش دیگری که پیاده‌سازی می‌کنید ایجاد کرد. .PP هرگونه فایل \f(CW\*(C`.bbl\*(C'\fR، \f(CW\*(C`.aux\*(C'\fR و \f(CW\*(C`.bib\*(C'\fR برای اطلاعات ارجاع در \s-1XML\s0 خروجی به کار می‌روند. بخش \s-1CITATIONS\s0 در زیر را ببینید. .PP مگر در حالتی که \f(CW\*(C`\-\-rpi\-is\-xml\*(C'\fR تعیین شده باشد، برای تمام متن‌ها (نویسندگان، عنوان، ارجاعات)، دنباله‌های کنترلی استاندارد TeX در صورت نیاز با متن ساده یا \s-1UTF\-8\s0 جایگزین یا حذف می‌شوند. روال \f(CW\*(C`LaTeX::ToUnicode::convert\*(C'\fR برای این کار استفاده می‌شود (). توالی‌های کنترلی پیچیدهٔ TeX تقریباً به‌طور قطع به درستی پردازش نخواهند شد. .PP اگر \f(CW\*(C`\-\-rpi\-is\-xml\*(C'\fR داده شود، رشته‌های نویسنده و عنوان از فایل‌های rpi همان‌گونه که هستند در خروجی قرار می‌گیرند، با این فرض که \s-1XML\s0 معتبر هستند؛ هیچ بررسی انجام نمی‌شود. .PP متن ارجاع از فایل‌های \f(CW\*(C`.bbl\*(C'\fR همواره از LaTeX به متن ساده تبدیل می‌شود. .PP این اسکریپت فقط یک فایل \s-1XML\s0 می‌نویسد. بارگذاری آن به Crossref بر عهدهٔ شماست؛ برای نمونه، می‌توانید از ابزار جاوا آن‌ها به نام \&\f(CW\*(C`crossref\-upload\-tool.jar\*(C'\fR () استفاده کنید. .PP برای تعاریف طرح‌وارهٔ Crossref که هم‌اکنون توسط این اسکریپت در خروجی قرار می‌گیرد، ببینید: به همراه پیوندها و اطلاعات تکمیلی در . .SH "قالب فایل پیکربندی (CONFIGURATION FILE FORMAT)" .IX Header "CONFIGURATION FILE FORMAT" فایل پیکربندی به عنوان کد Perl خوانده می‌شود. بنابراین، خطوط توضیحات که با \f(CW\*(C`#\*(C'\fR آغاز می‌شوند و خطوط خالی نادیده گرفته می‌شوند. سایر خطوط معمولاً انتساب‌هایی به این شکل هستند (فاصله‌ها اختیاری‌اند): .PP .Vb 1 \& $variable = value ; .Ve .PP معمولاً بر اساس قواعد نحوی Perl، مقدار یک \f(CW"string"\fR محصور در نویسه‌های نقل‌قول تکی یا دوتایی \s-1ASCII\s0 است. هدف، تعیین مقادیر خاص کاربر و خاص مجله است که برای بارگذاری به Crossref مورد نیاز است. متغیرهایی که استفاده می‌شوند عبارتند از: .PP .Vb 7 \& $depositorName = "Depositor Name"; \& $depositorEmail = \*(Aqdepositor@example.org\*(Aq; \& $registrant = \*(AqRegistrant\*(Aq; # required, organization name \& $fullTitle = "FULL TITLE"; # required, journal name \& $issn = "1234\-5678"; # required, ISSN \& $abbrevTitle = "ABBR. TTL."; # optional, abbreviated journal name \& $coden = "CODEN"; # optional .Ve .PP برای هر اجرای مشخص، فرض می‌شود تمام داده‌های \f(CW\*(C`.rpi\*(C'\fR خوانده‌شده متعلق به مجله‌ای هستند که در فایل پیکربندی تعیین شده است. دقیق‌تر بگوییم، داده‌های پیکربندی به صورت یک عنصر \f(CW\*(C`journal_metadata\*(C'\fR با \f(CW\*(C`full_title\*(C'\fR و \f(CW\*(C`issn\*(C'\fR داده‌شده و غیره نوشته می‌شوند، و سپس هر \f(CW\*(C`.rpi\*(C'\fR به صورت عناصر \f(CW\*(C`journal_issue\*(C'\fR به‌علاوهٔ \f(CW\*(C`journal_article\*(C'\fR نوشته می‌شود. .PP فایل پیکربندی همچنین می‌تواند یک تابع Perl به نام \&\f(CW\*(C`LaTeX_ToUnicode_convert_hook\*(C'\fR تعریف کند. در صورت تعریف شدن، این تابع در ابتدای روال تبدیل متن LaTeX به Unicode فراخوانی می‌شود؛ عملیاتی که با ماژول LaTeX::ToUnicode از بستهٔ \f(CW\*(C`bibtexperllibs\*(C'\fR () انجام می‌گیرد. تابع باید یک رشته (متن LaTeX) را بپذیرد و یک رشته (احتمالاً رشتهٔ تبدیل‌شده) بازگرداند. سپس تبدیل‌های استاندارد روی رشتهٔ بازگردانده‌شده اعمال می‌شوند، بنابراین تابع پیکربندی‌شده تنها کافی است موارد خاص، مانند توالی‌های کنترلی ویژهٔ مجلهٔ مورد نظر، را مدیریت کند. (برای نمونه، فایل \f(CW\*(C`ltx2crossrefxml\-tugboat.cfg\*(C'\fR متعلق به TUGboat را ببینید.) .PP فایل پیکربندی همچنین می‌تواند یک هش \f(CW\*(C`BibentryToCrossref\*(C'\fR تعریف کند که انواع مدخل‌های Crossref را به انواع مدخل‌های BibTeX مورد استفاده در پردازش کتاب‌شناسی نگاشت می‌کند (بخش \s-1CITATIONS\s0 را ببینید)، برای نمونه: .PP .Vb 2 \& %BibentryToCrossref = (\*(AqWEBPAGE\*(Aq => \*(Aqother\*(Aq, \& \*(AqMISC\*(Aq => \*(Aqother\*(Aq); .Ve .PP کلیدهای این هش باید با حروف بزرگ (upper case) و مقادیر مدخل‌ها باید با حروف کوچک (lower case) باشند..SH "قالب فایل RPI (RPI FILE FORMAT)" .IX Header "RPI FILE FORMAT" در اینجا (بخش مربوطه از) فایل \f(CW\*(C`.rpi\*(C'\fR متناظر با مثال \&\f(CW\*(C`rpsample.tex\*(C'\fR در بستهٔ \f(CW\*(C`resphilosophica\*(C'\fR () آمده است: .PP .Vb 10 \& %authors=Boris Veytsman\eand A. U. Th{\eo }r\eand C. O. R\e"espondent \& %title=A Sample Paper:\e\e \eemph {A Template} \& %year=2012 \& %volume=90 \& %issue=1\-\-2 \& %startpage=1 \& %endpage=1 \& %doi=10.11612/resphil.A31245 \& %paperUrl=http://borisv.lk.net/paper12 \& %publicationType=full_text .Ve .PP سایر خطوط، که برخی با % شروع نمی‌شوند، نادیده گرفته می‌شوند (و نمایش داده نشده‌اند). برای جزئیات بیشتر دربارهٔ پردازش، کد را ببینید. .PP مقدار \f(CW%paperUrl\fR چیزی است که با \f(CW%doi\fR داده‌شده مرتبط خواهد شد (به عنوان عنصر \f(CW\*(C`resource\*(C'\fR خروجی داده می‌شود). Crossref قویاً توصیه می‌کند که نشانی وب (url) برای به اصطلاح یک صفحه فرود (landing page) باشد، و نه مستقیماً یک فایل pdf (). مورد خاص: اگر نشانی وب مشخص نشده باشد، و مجله \fIRes\ Philosophica\fR باشد، یک نشانی وب جستجوی اختصاصی با استفاده از pdcnet.org بازگردانده می‌شود. هر مجلهٔ دیگری همیشه باید این مورد را مشخص کند. .PP فیلد \f(CW%authors\fR در \f(CW\*(C`\eand\*(C'\fR تقسیم می‌شود (با نادیده گرفتن فاصله‌های خالی قبل و بعد از آن)، و به عنوان عنصر \f(CW\*(C`contributors\*(C'\fR خروجی داده می‌شود، با استفاده از \&\f(CW\*(C`sequence="first"\*(C'\fR برای اولین فرد فهرست‌شده، و \f(CW\*(C`sequence="additional"\*(C'\fR برای بقیه. نویسندگان با استفاده از \f(CW\*(C`BibTeX::Parser::Author\*(C'\fR () تجزیه می‌شوند. .PP اگر \f(CW%publicationType\fR مشخص نشده باشد، مقدار پیش‌فرض آن \&\f(CW\*(C`full_text\*(C'\fR خواهد بود، چرا که از گذشته به همین صورت بوده است؛ \f(CW\*(C`full_text\*(C'\fR می‌تواند به صورت صریح نیز مشخص شود. مقادیر مجاز دیگر توسط اسکیمای Crossref، مقادیر \f(CW\*(C`abstract_only\*(C'\fR و \f(CW\*(C`bibliographic_record\*(C'\fR هستند. در نهایت، اگر مقدار آن \f(CW\*(C`omit\*(C'\fR باشد، صفت \f(CW\*(C`publication_type\*(C'\fR به طور کامل از عنصر داده‌شدهٔ \f(CW\*(C`journal_article\*(C'\fR حذف می‌شود. .PP هر فایل \f(CW\*(C`.rpi\*(C'\fR باید تنها حاوی اطلاعات یک مقاله باشد، اما چندین فایل را می‌توان در یک بار اجرا خواند. پشتیبانی از چندین مقاله در یک فایل \f(CW\*(C`.rpi\*(C'\fR واحد دشوار نبود، اما محدود کردن ورودی به یک مقاله در هر فایل، اشکال‌زدایی و اصلاح خطاها را آسان‌تر می‌کند. .SS "\s-1اطلاعات بیشتر درباره نام نویسندگان (MORE ABOUT AUTHOR NAMES)\s0" .IX Subsection "MORE ABOUT AUTHOR NAMES" سه قالبی که برای نام‌ها شناسایی می‌شوند (نه به صورت تصادفی) همانند BibTeX هستند: .PP .Vb 3 \& First von Last \& von Last, First \& von Last, Jr., First .Ve .PP این قالب‌ها را می‌توان آزادانه درون یک خط \f(CW%authors\fR ترکیب کرد، که با \f(CW\*(C`\eand\*(C'\fR (شامل بک‌اسلش) از یکدیگر جدا می‌شوند. برخلاف BibTeX، کاما به عنوان جداکننده نام پشتیبانی نمی‌شود. .PP به طور خلاصه، تقریباً همیشه می‌توانید از شکل اول استفاده کنید؛ تنها نباید در حالتی استفاده کنید که یا بخش Jr وجود داشته باشد، یا بخش Last شامل چندین نشانه باشد اما هیچ بخش von وجود نداشته باشد. برای جزئیات، سند \f(CW\*(C`btxdoc\*(C'\fR (‏«BibTeXing» نوشتهٔ Oren Patashnik) را ببینید. نویسندگان با استفاده از \&\f(CW\*(C`BibTeX::Parser::Author\*(C'\fR () تجزیه می‌شوند. .PP در خط \f(CW%authors\fR یک فایل \f(CW\*(C`.rpi\*(C'\fR، برخی دستورالعمل‌های فرعی شناسایی می‌شوند که با نویسه‌های \f(CW\*(C`|\*(C'\fR مشخص می‌گردند. توضیح آن با یک مثال آسان‌تر است: .PP .Vb 1 \& %authors=|organization|\eLaTeX\e Project Team \eand Alex Brown|orcid=123 .Ve .PP بنابراین: ۱) اگر \f(CW\*(C`|organization|\*(C'\fR مشخص شده باشد، نام نویسنده طبق الزام اسکیمای Crossref، به جای \f(CW\*(C`person_name\*(C'\fR معمول، به عنوان مشارکت‌کنندهٔ \f(CW\*(C`organization\*(C'\fR خروجی داده خواهد شد. .PP ۲) اگر \f(CW\*(C`|orcid=\f(CIvalue\f(CW|\*(C'\fR مشخص شده باشد، مقدار \fIvalue\fR به عنوان یک عنصر \&\f(CW\*(C`ORCID\*(C'\fR برای آن \f(CW\*(C`person_name\*(C'\fR خروجی داده می‌شود. .PP این دو دستورالعمل، \f(CW\*(C`|organization\*(C'\fR| و \f(CW\*(C`|orcid|\*(C'\fR مانعة‌الجمع هستند، زیرا اسکیمای Crossref آن‌ها را به این صورت تعریف کرده است. علامت \f(CW\*(C`=\*(C'\fR بعد از \f(CW\*(C`orcid\*(C'\fR الزامی است، در حالی که تمام فاصله‌های بعد از کلیدواژهٔ \f(CW\*(C`orcid\*(C'\fR نادیده گرفته می‌شوند. به جز آن، مقدار \s-1ORCID\s0 به صورت عین‌به‌عین در خروجی درج می‌شود. (برای نمونه، مقدار \s-1ORCID\s0 برابر با \f(CW123\fR در بالا آشکارا نامعتبر است، اما به هر حال، بدون هیچ هشداری خروجی داده خواهد شد.) .PP نویسه‌های اضافی \f(CW\*(C`|\*(C'\fR، در ابتدا یا انتهای کل رشتهٔ \f(CW%authors\fR، یا به صورت دوتایی در میان آن، پذیرفته شده و نادیده گرفته می‌شوند. فاصله‌های خالی در اطراف تمامی نویسه‌های \f(CW\*(C`|\*(C'\fR نادیده گرفته می‌شوند..SH "ارجاعات (CITATIONS)" .IX Header "ارجاعات (CITATIONS)" هر فایل \f(CW\*(C`.bbl\*(C'\fR متناظر با یک فایل ورودی \f(CW\*(C`.rpi\*(C'\fR خوانده شده و برای تولید عنصر \f(CW\*(C`citation_list\*(C'\fR برای آن \f(CW\*(C`journal_article\*(C'\fR در \s-1XML\s0 خروجی استفاده می‌شود. اگر برای یک \f(CW\*(C`.rpi\*(C'\fR مشخص هیچ فایل \f(CW\*(C`.bbl\*(C'\fRی وجود نداشته باشد، هیچ \f(CW\*(C`citation_list\*(C'\fRی برای آن مقاله در خروجی تولید نخواهد شد. .PP فایل‌های \f(CW\*(C`.bbl\*(C'\fR برای ایجاد ارجاعات \f(CW\*(C`unstructured_citation\*(C'\fR تعریف‌شده توسط Crossref پردازش می‌شوند، یعنی محتویات ارجاع (هر بند در \f(CW\*(C`.bbl\*(C'\fR) به‌صورت یک رشته متنی هموار بدون هیچ‌گونه نشانه‌گذاری، از جمله تغییرات قلم. .PP متن کتاب‌شناسی بدون قید و شرط از طریق روش شرح‌داده‌شده در بالا از TeX به \s-1XML\s0 تبدیل می‌شود. غیرعادی نیست که این تبدیل ناقص یا نادرست باشد. بررسی این موضوع به عهده شماست؛ برای مثال، اگر هرگونه بک‌اسلش یا جفت‌علامت دلاری در خروجی باقی بماند، به احتمال زیاد یک خطا است. .PP علاوه بر این، فرض بر این است که فایل \f(CW\*(C`.bbl\*(C'\fR حاوی دنباله‌ای از ارجاعات است که هر یک با \f(CW\*(C`\ebibitem{\f(CIKEY\f(CW}\*(C'\fR آغاز می‌شوند (که خود آن باید در ابتدای یک خط باشد و قبل از آن فقط نویسه‌های فاصله قرار گیرند)، و کل کتاب‌شناسی با \f(CW\*(C`\eend{thebibliography}\*(C'\fR پایان می‌یابد (مشابهاً در ابتدای یک خط). یک فایل \f(CW\*(C`.bbl\*(C'\fR که از این قالب پیروی نکند، نتایج مفیدی ایجاد نخواهد کرد. فایل \f(CW\*(C`.bbl\*(C'\fR تا زمانی که دارای این قالب باشد، می‌تواند به‌صورت دستی، با BibTeX یا هر روش دیگری ایجاد شود. .PP صفت \f(CW\*(C`key\*(C'\fR برای عنصر \f(CW\*(C`citation\*(C'\fR، همان آرگومان \fI\s-1KEY\s0\fR دستور \f(CW\*(C`\ebibitem\*(C'\fR در نظر گرفته می‌شود. شماره ترتیبی ارجاع (1، 2، ...). آرگومان \f(CW\*(C`\ebibitem\*(C'\fR می‌تواند خالی باشد (\f(CW\*(C`\ebibitem{}\*(C'\fR)، و شماره ترتیبی به‌تنهایی استفاده خواهد شد. اگرچه TeX کلیدهای خالی \f(CW\*(C`\ebibitem\*(C'\fR را پردازش نخواهد کرد، اما هنگام ایجاد یک \f(CW\*(C`.bbl\*(C'\fR صرفاً برای Crossref می‌تواند مناسب و راحت باشد. .PP فایل \f(CW\*(C`.rpi\*(C'\fR نیز برای اطلاعات کتاب‌شناسی، در همین قالب بررسی می‌شود. .PP ارجاعات ساختاریافته‌ی Crossref به شرح زیر افزوده می‌شوند: .ie n .IP "1. اگر یک فایل "".aux"" وجود داشته باشد، برای هر دستور ""\ebibdata"" بررسی می‌شود. فایل‌های ""bib"" در این دستورها خوانده می‌شوند و از اطلاعات موجود در آن‌ها برای تولید مدخل‌های \s-1XML\s0 استفاده می‌شود. این اسکریپت از ""kpsewhich"" برای جستجوی فایل‌های bib استفاده می‌کند، بنابراین از قراردادهای معمول BibTeX برای مسیرهای جستجو پیروی می‌شود." 4 .el .IP "1. اگر یک فایل \f(CW.aux\fR وجود داشته باشد، برای هر دستور \f(CW\ebibdata\fR بررسی می‌شود. فایل‌های \f(CWbib\fR در این دستورها خوانده می‌شوند و از اطلاعات موجود در آن‌ها برای تولید مدخل‌های \s-1XML\s0 استفاده می‌شود. این اسکریپت از \f(CWkpsewhich\fR برای جستجوی فایل‌های bib استفاده می‌کند، بنابراین از قراردادهای معمول BibTeX برای مسیرهای جستجو پیروی می‌شود." 4 .IX Item "1. If an .aux file is present, it is checked for any bibdata commands. The bib files in these commands are read, and the information there is used to generate XML entries. The script uses kpsewhich to look for the bib files, so the usual BibTeX conventions for the search paths are followed." .PD 0 .ie n .IP "2. برای هر ارجاع، مدخل متناظر در فایل ""bib"" پردازش می‌شود." 4 .el .IP "2. برای هر ارجاع، مدخل متناظر در فایل \f(CWbib\fR پردازش می‌شود." 4 .IX Item "2. For any citation the corresponding entry in the bib file is processed." .ie n .IP "3. نوع مدخل Crossref طبق الگوریتم شرح‌داده‌شده در زیر (""انواع مدخل ارجاع (\s-1CITATION ENTRY TYPES\s0)"") تعیین می‌شود." 4 .el .IP "3. نوع مدخل Crossref طبق الگوریتم شرح‌داده‌شده در زیر (``انواع مدخل ارجاع (\s-1CITATION ENTRY TYPES\s0)''\s0) تعیین می‌شود." 4 .IX Item "3. The Crossref entry type is determined according to the algorithm describe below (CITATION ENTRY TYPES)." .IP "4. از فیلدهای مدخل برای پر کردن ارجاع ساختاریافته استفاده می‌شود." 4 .IX Item "4. The entry fields are used to populate structured citation." .PD .SS "انواع مدخل ارجاع (\s-1CITATION ENTRY TYPES\s0)" .IX Subsection "انواع مدخل ارجاع (CITATION ENTRY TYPES)" طرح‌واره‌ی فعلی Crossref در صفت \f(CW\*(C`type\*(C'\fR را برای یک ارجاع تعریف می‌کند. متأسفانه فهرست انواع ممکن کاملاً با فهرست انواع مدخل BibTeX مطابقت ندارد. بنابراین، اسکریپت از الگوریتم زیر برای تعیین نوع مدخل Crossref برای یک ارجاع استفاده می‌کند: .ie n .IP "1. اگر مدخل دارای فیلد ""crossrefentrytype"" باشد، از آن استفاده می‌شود." 4 .el .IP "1. اگر مدخل دارای فیلد \f(CWcrossrefentrytype\fR باشد، از آن استفاده می‌شود." 4 .IX Item "1. If the entry has the field crossrefentrytype, it is used." .PD 0 .ie n .IP "2. در غیر این صورت اگر نوع مدخل BibTeX در هش ""BibentryToCrossref"" در فایل پیکربندی (""قالب فایل پیکربندی (\s-1CONFIGURATION FILE FORMAT\s0)"") آمده باشد، مقدار آن استفاده می‌شود." 4 .el .IP "2. در غیر این صورت اگر نوع مدخل BibTeX در هش \f(CWBibentryToCrossref\fR در فایل پیکربندی (``قالب فایل پیکربندی (\s-1CONFIGURATION FILE FORMAT\s0)'') آمده باشد، مقدار آن استفاده می‌شود." 4 .IX Item "2. Otherwise if BibTeX entry type appears in the hash BibentryToCrossref) in the configuration file (CONFIGURATION FILE FORMAT), its value is used." .IP "3. در غیر این صورت، از نگاشت پیش‌فرض استفاده می‌شود. این اسکریپت انواع متعددی از مدخل‌های BibTeX را می‌شناسد و در بیشتر موارد کار را به‌خوبی انجام می‌دهد." 4 .IX Item "3. Otherwise the default mapping is used. The script knows many BibTeX entry types, and should do a good job in most cases." .PD .SH "مثال‌ها (EXAMPLES)" .IX Header "مثال‌ها (EXAMPLES)" .Vb 2 \& ltx2crossrefxml.pl ../paper1/paper1.tex ../paper2/paper2.tex \e \& \-o result.xml \& \& ltx2crossrefxml.pl \-c myconfig.cfg paper.tex \-o paper.xml .Ve .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Boris Veytsman .SH "کپی‌رایت و مجوز (COPYRIGHT AND LICENSE)" .IX Header "COPYRIGHT AND LICENSE" کپی‌رایت (C) 2012\-2025 متعلق به Boris Veytsman .PP این یک نرم‌افزار آزاد است. شما می‌توانید نسخه‌های آن را تحت شرایط «مجوز عمومی همگانی گنو» (\s-1GNU\s0 General Public License) (هر نسخه‌ای) بازتوزیع کنید. تا حد مجاز طبق قانون، \s-1هیچ ضمانتی وجود ندارد.\s0