xindy(1) xindy xindy(1)

xindy - ایجاد نمایه مرتب‌شده و برچسب‌گذاری‌شده از نمایه خام

xindy [-V?h] [-qv] [-d magic] [-o outfile.ind] [-t log] \
      [-L lang] [-C codepage] [-M module] [-I input] \
      [--interactive] [--mem-file=xindy.mem] \
      [idx0 idx1 ...]

-V / --version
-? / -h / --help
-q / --quiet
-v / --verbose
-d / --debug          (multiple times)
-o / --out-file
-t / --log-file
-L / --language
-C / --codepage
-M / --module         (multiple times)
-I / --input-markup   (supported: latex, xelatex, omega, xindy)

دستور xindy بخش مستقل از قالب‌بندی سامانه نمایه‌سازی انعطاف‌پذیر xindy است. این ابزار یک نمایه خام را به عنوان ورودی دریافت کرده و یک نمایه ادغام‌شده، مرتب‌شده و برچسب‌گذاری‌شده تولید می‌کند. ادغام، مرتب‌سازی و برچسب‌گذاری توسط فایل‌های شیوه‌نامه (style files) xindy کنترل می‌شوند.

فایل‌های حاوی نمایه خام به عنوان آرگومان به دستور داده می‌شوند. اگر هیچ آرگومانی داده نشود، نمایه خام از ورودی استاندارد خوانده خواهد شد.

دستور xindy به‌طور کامل در کتابچه راهنمای آن که در وبگاه http://www.xindy.org موجود است، شرح داده شده است. همچنین یک توضیح مقدماتی مناسب در فصل نمایه‌سازی کتاب LaTeX Companion (ویرایش دوم) آمده است.

اگر قصد تولید نمایه برای اسناد LaTeX را دارید، احتمالاً دستور texindy(1) برای شما کاربردی‌تر خواهد بود. این دستور یک پوشش (wrapper) برای xindy است که بسیاری از قواعد پیش‌فرض LaTeX را فعال می‌کند.

"--version" / -V
شماره نسخه تمام مؤلفه‌های مربوطه را در خروجی چاپ کرده و خارج می‌شود.
"--help" / -h / -?
پیام نحوه استفاده را به همراه توضیح گزینه‌ها نمایش می‌دهد.
"--quiet" / -q
پیام‌های پیشرفت را نمایش نمی‌دهد؛ تنها پیام‌های خطا را در خروجی چاپ می‌کند.
"--verbose" / -v
پیام‌های پیشرفت را به صورت تفصیلی نمایش می‌دهد.
"--debug" magic / -d magic
پیام‌های اشکال‌زدایی را نمایش می‌دهد؛ این گزینه می‌تواند چندین بار مشخص شود. مقدار magic تعیین می‌کند چه چیزی در خروجی چاپ شود:
magic          توضیحات
------------------------------------------------------------
script         پیام‌های پیشرفت داخلی اسکریپت‌های راه‌انداز
keep_tmpfiles  فایل‌های موقت را دور نمی‌ریزد
markup         چاپ ردگیری نشانه‌گذاری، طبق توضیحات راهنمای xindy
level=n        سطح ثبت لاگ، n برابر است با 0 (پیش‌فرض)، 1، 2، یا 3
"--out-file" outfile.ind / -o outfile.ind
نمایه را در فایل outfile.ind ذخیره می‌کند. اگر این گزینه داده نشود، نام فایل خروجی برگرفته از نام پایه اولین آرگومان با پسوند ind خواهد بود. اگر نمایه خام از ورودی استاندارد خوانده شود، مشخص کردن این گزینه اجباری است.
"--log-file" log.ilg / -t log.ilg
پیام‌های ثبت وقایع (log) را در فایل log.ilg می‌نویسد. این پیام‌های لاگ مستقل از پیام‌های پیشرفتی هستند که می‌توانید با "--debug" یا "--verbose" آن‌ها را تغییر دهید.
"--language" lang / -L lang
نمایه بر اساس قواعد زبان lang مرتب می‌شود. این قواعد در یک پودمان (ماژول) xindy که توسط make-rules ایجاد شده کدگذاری شده‌اند.

اگر هیچ کدگذاری ورودی از طریق "--codepage" مشخص نشده باشد یا توسط نشانه‌گذاری ورودی تحمیل نگردد، یک پودمان xindy برای آن زبان به ترتیب با کدگذاری‌های latin، سپس cp، سپس iso، سپس ascii یا utf8 جستجو می‌شود.

پودمان‌های زبان یا در زیردایرکتوری lang یا در contrib/lang از دایرکتوری پایه پودمان‌ها قرار دارند.

"--codepage" enc / -C enc
ورودی خام دارای کدگذاری enc است. از این اطلاعات برای انتخاب پودمان مرتب‌سازی مناسب xindy و کدگذاری خروجی سربرگ‌های گروه‌های حرفی استفاده می‌شود.

هنگامی که نشانه‌گذاری ورودی "xelatex" یا "omega" استفاده شود، همیشه "utf8" به عنوان صفحه کد به‌کار می‌رود و در نتیجه این گزینه نادیده گرفته می‌شود.

اگر ورودی خام با فرمت LICR باشد، باید به جای xindy(1) از texindy(1) استفاده شود. این ابزار نگاشت کدگذاری inputenc را برای نشانه‌گذاری ورودی "latex" به صفحه کد انتخابی ورودی خام فعال خواهد کرد.

"--module" module / -M module
پودمان xindy با نام module.xdy را بارگذاری می‌کند. این گزینه می‌تواند چندین بار مشخص شود. پودمان‌ها در مسیر جستجوی xindy جستجو می‌شوند؛ این مسیر را می‌توان با متغیر محیطی "XINDY_SEARCHPATH" تغییر داد.
"--input-markup" input / -I input
نشانه‌گذاری ورودی نمایه خام را مشخص می‌کند. مقادیر پشتیبانی‌شده برای input عبارتند از "latex"، "xelatex"، "omega" و "xindy".

نشانه‌گذاری ورودی "latex" و "xelatex" همان ساختاری است که به طور پیش‌فرض توسط هسته LaTeX یا بسته ماکروی "index" متعلق به David Jones تولید می‌شود. نمادگذاری ^^- برای نویسه‌های تک‌بایتی پشتیبانی می‌شود. نگاشت مجدد نویسه‌های کدگذاری‌شده با LICR انجام نمی‌شود؛ برای این کار از texindy(1) استفاده کنید. اگر از LaTeX استاندارد یا pdfLaTeX استفاده می‌کنید، از نشانه‌گذاری ورودی "latex" و اگر از XeLaTeX یا LuaLaTeX استفاده می‌کنید، از نشانه‌گذاری ورودی "xelatex" استفاده کنید.

نشانه‌گذاری ورودی "omega" مشابه نشانه‌گذاری ورودی "latex" است، اما از نمادگذاری ^^- مربوط به Omega برای کدگذاری نویسه‌های غیر ASCII استفاده می‌کند.

نشانه‌گذاری ورودی "xindy" در کتابچه راهنمای xindy مشخص شده است.

"--interactive"
اجرای xindy در حالت تعاملی (interactive). شما وارد یک حلقه خواندن-ارزیابی (read-eval-loop) در xindy خواهید شد که در آن عبارت‌های زبان xindy به صورت تعاملی خوانده و ارزیابی می‌شوند.
"--mem-file" xindy.mem
این گزینه تنها برای توسعه‌دهندگان یا در شرایط بسیار نادر قابل استفاده است. هسته کامپایل‌شده xindy در یک اصطلاحاً memory file (فایل حافظه) ذخیره می‌شود که نام متعارف آن xindy.mem است و در دایرکتوری کتابخانه xindy قرار دارد. این گزینه امکان استفاده از یک هسته دیگر xindy را فراهم می‌سازد..SH "زبان‌ها / صفحه‌های کد پشتیبانی‌شده (SUPPORTED LANGUAGES / CODEPAGES)" زبان‌های زیر پشتیبانی می‌شوند:

albanian      gypsy             portuguese
croatian      hausa             romanian
czech         hungarian         russian-iso
danish        icelandic         slovak-small
english       italian           slovak-large
esperanto     kurdish-bedirxan  slovenian
estonian      kurdish-turkish   spanish-modern
finnish       latin             spanish-traditional
french        latvian           swedish
general       lithuanian        turkish
german-din    lower-sorbian     upper-sorbian
german-duden  norwegian         vietnamese
greek-iso     polish

زبان آلمانی دو طرح مرتب‌سازی متفاوت را برای کار با اُملاوت‌ها به رسمیت می‌شناسد: به‌طور معمول، "ae" مانند "ae" مرتب می‌شود، اما در دفترچه‌های تلفن یا فرهنگ‌های لغت، مانند "a" مرتب می‌گردد. طرح نخست با عنوان ترتیب DIN و طرح دوم با عنوان ترتیب Duden شناخته می‌شود.

نام‌های زبان "*-iso" فرض می‌کنند که مدخل‌های خام نمایه در کدگذاری ISO 8859-9 هستند.

"gypsy" یک گویش روسی شمالی است.

belarusian    mongolian         serbian
bulgarian     russian           ukrainian
macedonian

greek         klingon

این بخش هنوز نوشته نشده است. می‌توانید آن‌ها را در توزیع xindy خود، در دایرکتوری modules/lang/language/ (که در آن language زبان شماست) بررسی کنید. آن‌ها به‌صورت variant-codepage-lang.xdy نام‌گذاری شده‌اند، که در آن اغلب variant- خالی است (برای آلمانی، "din5007" و "duden" است؛ برای اسپانیایی، "modern" و "traditional" و غیره).

< Describe available codepages for each language >
< Describe relevance of codepages (as internal representation) for
  LaTeX inputenc >

"XINDY_SEARCHPATH"
فهرستی از دایرکتوری‌ها که ماژول‌های xindy در آن‌ها جستجو می‌شوند. هیچ جستجویی در زیردرخت‌ها (مانند آنچه در TeX سازگار با TDS است) انجام نمی‌گیرد.

اگر این متغیر محیطی تنظیم نشده باشد، از مقدار پیش‌فرض استفاده می‌شود: ".:"modules_dir":"modules_dir"/base". مقدار modules_dir در زمان اجرا و نسبت به مکان دستور xindy تعیین می‌شود: یا ../modules است، که مربوط به نصب‌های opt است؛ یا ../lib/xindy/modules است، که مربوط به نصب‌های usr می‌باشد.

"XINDY_LIBDIR"
دایرکتوری کتابخانه‌ای که xindy.mem در آن قرار دارد.

دایرکتوری ماژول‌ها می‌تواند یک زیردایرکتوری نیز باشد.

ابزار xindy ادعای سازگاری کامل با MakeIndex را ندارد، چرا که این امر مانع از برخی بهبودهای آن می‌شد. با این حال، ما تلاش می‌کنیم تا جای ممکن بیشترین سازگاری را فراهم کنیم. مهم‌ترین ناسازگاری‌ها عبارتند از:

  • برای مدخل‌های نمایه خام در نحو LaTeX، عبارت "\index{aaa|bbb}" به‌گونه‌ای متفاوت تفسیر می‌شود. برای MakeIndex، عبارت "bbb" نشانه‌گذاری‌ای است که به عنوان یک برچسب LaTeX برای این شماره صفحه در خروجی درج می‌شود. برای xindy، این یک ویژگی مکان است؛ شناسهٔ انتزاعی‌ای که بعداً با نشانه‌گذاری‌ای که باید برای آن ویژگی در خروجی قرار گیرد، مرتبط خواهد شد.

    برای کاربردهای مستقیم و ساده، زمانی که "bbb" برابر با "textbf" یا موارد مشابه باشد، ما تعاریف ویژگی مکانی را ارائه می‌دهیم که رفتار MakeIndex را تقلید می‌کند.

    برای کاربردهای پیچیده‌تر، هنگامی که "bbb" یک شناسه نباشد، چنین تعاریف سازگاری وجود ندارند و ممکن است در نسخهٔ فعلی xindy نیز نتوان آن‌ها را ایجاد کرد. گزارش شده که چنین وضعیتی در کلاس LaTeX با نام "memoir" وجود دارد.

    برنامه‌نویسانی که Common Lisp و Lex را می‌شناسند و مایلند روی راه‌حلی برای این مورد کار کنند، لطفاً با نویسنده تماس بگیرند.

  • اگر یک محدوده نمایه و یک ویژگی مکان داشته باشید، برای مثال، "\index{key\(attr}" آغازگر محدوده باشد، باید (۱) آن ویژگی در مدخل بستن محدوده نیز مشخص شود (یعنی به‌صورت "\index{key\)attr}") و (۲) ویژگی نمایه باید در یک فایل شیوه‌نامه xindy تعریف گردد.

    برنامه MakeIndex برای چنین ساختاری، نشانه‌گذاری "\attr{page1--page2}" را در خروجی تولید می‌کند. دستیابی به این ساختار در xindy ممکن نیست و خروجی به‌صورت "\attrMarkup{page1}--\attrMarkup{page2}" خواهد بود. (این مورد در واقع یک باگ تلقی می‌شود، اما اولویت بالایی ندارد.)

    تفاوت میان برچسب‌های شماره صفحه MakeIndex و ویژگی‌های مکان xindy پیش‌تر در مورد قبلی شرح داده شد.

  • تعاریف سازگاری MakeIndex تنها از نحو نمایهٔ خام پیش‌فرض و تعریف نشانه‌گذاری پشتیبانی می‌کنند. پیکربندی تجزیه نمایه خام یا استفاده از یک فایل شیوه‌نامه MakeIndex برای تعیین نشانه‌گذاری خروجی امکان‌پذیر نیست..SH "مشکلات شناخته‌شده (KNOWN ISSUES)" گزینه -q از خروجی پیام‌های خطا نیز جلوگیری می‌کند. پیام‌های خطا باید در stderr و پیام‌های پیشرفت در stdout فرستاده شوند.

باید روشی برای هدایت نمایه نهایی به stdout وجود داشته باشد. این امر مسلماً مستلزم -q خواهد بود.

تجزیه نمایه خام LaTeX باید قابل‌پیکربندی باشد.

کدپیج "utf8" باید برای همه زبان‌ها پشتیبانی شود و به عنوان کدپیج داخلی برای بازکدگذاری inputenc در LaTeX مورد استفاده قرار گیرد.

texindy(1), tex2xindy(1)

Joachim Schrod

حق تکثیر (c) 2004-2014 متعلق به Joachim Schrod.

xindy یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «پروانه همگانی عمومی گنو» (GNU General Public License) منتشر شده توسط بنیاد نرم‌افزار آزاد؛ چه نسخه ۲ پروانه و چه (به انتخاب خودتان) هر نسخهٔ بعدی دیگری، مجدداً توزیع کرده و/یا تغییر دهید.

این برنامه به این امید توزیع شده است که مفید باشد، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای هدفی خاص. برای جزئیات بیشتر به پروانه عمومی همگانی GNU مراجعه کنید.

2020-05-28 Release 2.5.1