ARLATEX(1) User Commands ARLATEX(1)

arlatex - بسته‌بندی فایل‌های متنی و اسناد چندبخشی LaTeX در یک فایل واحد

arlatex [--outfile=filename.tex] --document=filename.tex filename ...

arlatex --version

arlatex --help

دستور arlatex برنامه‌ای برای آرشیو کردن و بسته‌بندی فایل‌ها مانند shar، tar، zip و غیره است. با این حال، بر خلاف سایر برنامه‌های آرشیو، arlatex به طور ویژه برای استفاده با لایتک (LaTeX) طراحی شده است. arlatex نام فایل اصلی .tex و تعدادی فایل کمکی استفاده‌شده توسط آن فایل اصلی (مانند فایل‌های .tex، .sty، .cls و .eps) را دریافت می‌کند. از این فایل‌ها، arlatex یک فایل واحد تولید می‌کند که با اجرا شدن توسط latex، هم فایل‌های کمکی را بازسازی می‌کند و هم سند را در قالب یک فایل .dvi کامپایل می‌نماید.

برنامه arlatex چندین مزیت نسبت به سایر برنامه‌های فشرده‌سازی و آرشیو دارد:

  • فایل‌های .tex تولیدشده توسط arlatex در قالب متن ساده (plain-text) هستند؛ بنابراین کاملاً قابل‌حمل بوده و ارسال آن‌ها با ایمیل به همکاران بسیار آسان است.
  • ابزار arlatex برای اجرا تنها به LaTeX نیاز دارد و هیچ وابستگی به ابزارهای خارجی دیگر ندارد.
  • هیچ مرحله استخراج جداگانه‌ای وجود ندارد. زمانی که سند تولیدشده توسط latex اجرا می‌شود، فایل‌های کمکی را استخراج کرده و سند را در همان مرحله می‌سازد. کاربری که latex را اجرا می‌کند حتی متوجه تولید شدن فایل‌های جانبی اضافی نخواهد شد.

نحوه کار arlatex به این صورت است که تعدادی بلوک "\begin{filecontents*}" ... "\end{filecontents*}" را به همراه محتویات فایل اصلی در فایل خروجی می‌نویسد. (در واقع، هرگونه کامنت لایتک در ابتدای فایل اصلی به بالای فایل تولیدشده منتقل می‌شود. این امر به نویسنده اجازه می‌دهد تا در صورت تمایل، توجه را به این نکته جلب کند که فایل‌های کمکی تولید خواهند شد.) محیط "filecontents*" که بخشی از استاندارد LaTeX2e است، محتویات خود را عیناً (verbatim) در یک فایل مشخص می‌نویسد.

نمایش شماره نسخه اسکریپت arlatex.
نمایش اطلاعات خلاصه نحوه استفاده از arlatex.
مشخص کردن سند اصلی. خروجی arlatex همین فایل خواهد بود که تمام فایل‌های دیگر نام‌برده‌شده در خط فرمان به ابتدای آن اضافه شده‌اند. توجه داشته باشید که "--document" یک پارامتر اجباری است؛ در صورت مشخص نشدن "--document"، برنامه arlatex با یک پیام خطا متوقف می‌شود.
مشخص کردن فایل خروجی. فایل خروجی کاملاً شبیه به سند اصلی است، اما تعدادی محیط "filecontents*" پیش از خط "\documentclass" در آن قرار گرفته است. اگر "--outfile" مشخص نشود، خروجی در خروجی استاندارد (stdout) نوشته خواهد شد.

فرض کنید مقاله‌ای به نام paper.tex دارید که یک بسته سفارشی را با "\usepackage{mypackage}" بارگذاری می‌کند. می‌خواهید مقاله را به یک کنفرانس ارسال کنید، اما می‌خواهید کاملاً مطمئن شوید که با دست‌به‌دست شدن مقاله بین افراد، فایل mypackage.sty گم نمی‌شود. در ادامه نحوه استفاده از arlatex آمده است:

arlatex --document=paper.tex mypackage.sty --outfile=paper-submit.tex

هنگامی که paper-submit.tex با latex پردازش می‌شود، دقیقاً مانند فایل اصلی paper.tex ساخته می‌شود، با این تفاوت که علاوه بر آن یک فایل mypackage.sty را نیز در پوشه جاری ایجاد می‌کند:

This is TeX, Version 3.14159 (Web2C 7.3.1)
(paper-submit.tex
LaTeX2e <1999/12/01> patch level 1
Babel <v3.6Z> and hyphenation patterns for american, french, german,
ngerman, italian, nohyphenation, loaded.
LaTeX Warning: Writing file `./mypackage.sty'.
(/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 1999/09/10 v1.4a Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size12.clo)) (mypackage.sty)
                              .
                              .
                              .

به عنوان مثالی دیگر، در ادامه نحوه بسته‌بندی تمام فایل‌های مورد نیاز برای ساخت یک سند بزرگ جهت نگهداری طولانی‌مدت آمده است:

arlatex --document=thesis.tex abstract.tex introduction.tex
  background.tex approach.tex experiments.tex relatedwork.tex
  conclusions.tex before.eps after.eps fast.eps slow.eps
  podunkUthesis.cls --outfile=thesis-all.tex

با افزایش تعداد فایل‌هایی که باید با هم آرشیو شوند، اجرای دستی arlatex دشوارتر می‌شود. خوشبختانه استفاده از arlatex همراه با bundledoc بسیار ساده است. ابزار bundledoc تمام فایل‌های مورد نیاز برای ساخت سند را پیدا می‌کند و arlatex آن‌ها را در یک فایل واحد ترکیب می‌نماید. موارد زیر نمونه‌هایی از خط "bundle:" هستند که می‌توانید در فایل پیکربندی bundledoc استفاده کنید:

bundle: (arlatex --document=$BDBASE.tex $BDINPUTS \
  --outfile=$BDBASE-all.tex)
bundle: arlatex --document=%BDBASE%.tex %BDINPUTS% \
  --outfile=%BDBASE%-all.tex

برای اطلاعات بیشتر به مستندات bundledoc مراجعه کنید.

برنامه arlatex از محیط "filecontents*" در LaTeX استفاده می‌کند. این برنامه گزینه "overwrite" را به "filecontents*" ارسال می‌کند تا نشان دهد فایل‌های موجود با همان نام باید بازنویسی (overwrite) شوند. توجه داشته باشید که ساخت فایل تولیدشده، فایل‌هایی را که برای ایجاد آن استفاده شده‌اند بازنویسی خواهد کرد.

بهتر است از بسته‌بندی فایل‌های باینری (مانند تصاویر گرافیکی گنجانده‌شده) با arlatex خودداری شود؛ چرا که این فایل‌ها معمولاً به درستی استخراج نمی‌شوند.

bundledoc(1), latex(1), shar(1), tar(1), zip(1)

Scott Pakin, scott+bdoc@pakin.org

2025-02-26 v1.1