SOELIM(1) دستورهای کاربری SOELIM(1)

soelim - بازگشایی و درج بازگشتی درخواستهای فراخوانی فایل در مستندات roff

soelim [ -Crt ] [ -I شاخه ] [ فایل... ]

دستور soelim فایلهای مشخصشده را خوانده و هرگونه سطر فراخوانی فایل (.so) را با محتوای فایل فراخوانیشده جایگزین میکند.

برنامه soelim متعلق به گنو (GNU) یک پیش‌پردازنده برای سامانه قالب‌بندی اسناد groff(7) است. دستور soelim به‌عنوان یک پالایه (فیلتر) برای حذف درخواست‌های فراخوانی منبع (source requests) در فایل‌های ورودی roff(7) عمل می‌کند؛ بدین معنا که سطرهای با قالب «.so included-file» درون هر فایل-ورودی متنی را به‌طور بازگشتی با محتوای included-file جایگزین می‌نماید.

به‌طور پیش‌فرض، این برنامه درخواست‌های lf را نیز برای ثبت نام و شماره سطر هر فایل-ورودی و فایل-فراخوانی‌شده می‌نویسد تا هرگونه گزارش تشخیصی یا خطای حاصل از پردازش‌های بعدی، به‌طور دقیق به ورودی اصلی ارجاع داده شود. گزینه‌ها امکان نادیده گرفتن این اطلاعات (-r) یا درج آن‌ها در قالب یادداشت‌های TeX (-t) را فراهم می‌کنند.

در صورت مشخص نشدن آرگومان‌های فایل-ورودی، دستور soelim از جریان ورودی استاندارد می‌خواند. خروجی نیز در جریان خروجی استاندارد نوشته می‌شود.

اگر نام یک فایل-ماکرو شامل نویسه وارون‌ممیز (بک‌اسلش) باشد، از \\ یا \e برای درج آن استفاده کنید. برای درج فاصله، عبارت «\ » (یک وارون‌ممیز به همراه یک فاصله) را بنویسید. هر توالی گریز دیگری در فایل-ماکرو، شامل «\[rs]»، مانع از جایگزینی درخواست فراخوانی منبع توسط soelim خواهد شد.

نقطه (.) باید در ابتدای سطر باشد و بلافاصله عبارت «so» بدون هیچ‌گونه فاصله یا تب میان آن‌ها بیاید تا soelim آن را پردازش کند. این قرارداد اجازه می‌دهد درخواست‌های فراخوانی منبع از پردازش توسط soelim «محافظت» شوند؛ برای نمونه زمانی که بخشی از تعریف‌های ماکرو یا درخواست‌های «if» هستند.

همچنین باید دست‌کم یک فاصله میان عبارت «so» و آرگومان فایل-ماکرو آن وجود داشته باشد. گزینه -C این الزام را لغو می‌کند.

موارد فوق کل شناخت soelim از زبان roff است؛ برای نمونه این دستور سطر ورودی

.if 1 .so otherfile
را با محتوای otherfile جایگزین نمی‌کند. بنابراین با استفاده از گزینه -r، می‌توان از soelim برای پردازش کلی فایل‌های متنی و مسطح‌سازی ساختار درختی اسناد ورودی استفاده کرد.

دستور soelim برای مدیریت شرایطی طراحی شده است که مقصد یک درخواست فراخوانی منبع در roff، نیازمند پیش‌پردازنده‌ای همچون eqn(1)، pic(1)، refer(1) یا tbl(1) باشد. توالی معمول پردازش در groff(1) به‌صورت زیر است:

  input        sourced
  file          file
    ⎪             ⎪
    ↓             ↓
preprocessor ⎯→ troff ⎯→ postprocessor
                              ⎪
                              ↓
                           output
                            file

بدین معنی که فایل‌های فراخوانی‌شده با «so» معمولاً تنها توسط قالب‌بند یعنی troff خوانده می‌شوند. برای آنکه troff فایل‌ها را فراخوانی کند، نیازی به soelim نیست .

اما اگر فایلی که قرار است فراخوانی شود باید پیش‌پردازش نیز روی آن صورت گیرد، باید پیش از آنکه فایل ورودی از پیش‌پردازنده عبور داده شود خوانده شده باشد. دستور soelim، که معمولاً از طریق گزینه -s دستور groff فراخوانی می‌شود، این کار را انجام می‌دهد:

 input
 file
   ⎪
   ↓
 soelim ⎯→ preprocessor ⎯→ troff ⎯→ postprocessor
   ↑                                     ⎪
   ⎪                                     ↓
sourced                               output
 file                                  file

گزینه --help پیام راهنمای استفاده از دستور را نمایش می‌دهد، در حالی که گزینه‌های -v و --version اطلاعات نگارش برنامه را نشان می‌دهند؛ با اجرای هر یک، برنامه پس از نمایش اطلاعات خارج می‌شود.

شناسایی سطر ورودی که با .so شروع می‌شود، حتی اگر نویسه‌ای غیر از فاصله یا سطر جدید پس از آن قرار گرفته باشد.
جستجوی مسیر شاخه dir برای یافتن فایل‌های-ورودی و فایل‌های-فراخوانی‌شده. گزینه -I می‌تواند چندین بار مشخص شود؛ هر dir به همان ترتیبی که تعیین شده جستجو می‌شود. برای جستجوی پوشه کاری جاری پیش از سایر مسیرها، عبارت «-I .» را در جایگاه دلخواه مشخص کنید؛ در غیر این صورت، شاخه جاری در آخرین اولویت جستجو می‌شود.
نوشتن فایل‌ها به‌صورت خام («raw»)؛ بدون افزودن درخواست‌های lf.
ارسال سطرهای یادداشت (کامنت) TeX که با «%» آغاز می‌شوند برای نشان دادن نام فایل و شماره سطر جاری، به‌جای استفاده از درخواست‌های lf برای این منظور.

در صورتی که هر دو گزینه -r و -t مشخص شوند، گزینه‌ای که در آخر ذکر شده اعمال خواهد شد.

groff(1)

مه ۲۰۲۵ groff