TYPOG-GREP(1) User Contributed Perl Documentation TYPOG-GREP(1)

typog-grep - ابزار grep تخصصی برای عناصر typog-inspect در فایل‌های لاگ LaTeX

فرم نخست، “حالت کشف”، تمام IDهای عناصرِ

<typog-inspect id="ID" ...>

در LOG-FILE را نمایش می‌دهد.

فرم دوم، محتویات (LOG-DATA) آن دسته از عناصر

<typog-inspect id="ID" ...>
LOG-DATA
</typog-inspect>

را که ID آن‌ها در LOG-FILE با REGEXP مطابقت دارد، نمایش می‌دهد.

اگر هیچ LOG-FILEی مشخص نشود، از stdin خوانده می‌شود. نام فایل "-" معادل stdin است..SH "توضیحات (DESCRIPTION)" typog-grep یک پس‌پردازشگر سفارشی‌شده برای فایل‌های log مربوط به LaTeX و محیط "typoginspect" ارائه‌شده توسط بستهٔ LaTeX به نام typog است. این ابزار شباهت بیشتری به ابزار قدیمی sgrep https://www.cs.helsinki.fi/u/jjaakkol/sgrep.html دارد تا به POSIX grep https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html.

در فایل مبدأ LaTeX، کاربر متن یا کد خود را درون یک محیط "typoginspect" قرار می‌دهد:

\begin{typoginspect}{ID}
TEXT-OR-CODE-TO-INVESTIGATE
\end{typoginspect}

که در آن ID برای شناسایی یک یا چند قطعه‌کد قرارگرفته در محیط استفاده می‌شود. ID نیازی نیست که یکتا باشد. سازوکار REGEXP انتخاب گروه‌هایی از IDهای مرتبط را در صورت نام‌گذاری متناسب، آسان می‌کند.

در LOG-FILE، نتیجهٔ محیط به همراه اطلاعات ردگیری (tracing)، به این صورت ظاهر می‌شود:

<typog-inspect id="ID" job="JOB-NAME" line="LINE-NUMBER" page="PAGE-NUMBER">
LOG-DATA
</typog-inspect>

که در آن تمام دنباله‌های حروف بزرگ، فرامتغیر هستند و به‌ویژه JOB-NAME بسط‌یافتهٔ "\jobname" است، LINE-NUMBER شماره خط فایل مبدأ LaTeX در نقطهٔ آغاز محیط "typoginspect" است، و PAGE-NUMBER صفحه‌ای است که خروجی "TEXT-OR-CODE-TO-INVESTIGATE" در آن قرار دارد.

typog-grep محتویات LOG-FILE را بین "<typog-inspect id="ID" ...>" و "</typog-inspect>" بدون در نظر گرفتن خود برچسب‌های XML آشکار می‌سازد. با استفاده از گزینه‌های خط فرمان --job-name، --line-number، و --page-number به JOB-NAME، LINE-NUMBER و PAGE-NUMBER دسترسی پیدا کنید. از --id برای نمایش نام IDهایی که با REGEXP تطابق دارند استفاده کنید.

محیط‌های "typoginspect" می‌توانند تو در تو باشند. typog-grep ساختار تو در تو را در نظر می‌گیرد؛ بدین معنا که اگر ID محیط تو در تو با REGEXP مطابقت نداشته باشد، در خروجی برنامه قرار نخواهد گرفت.

فهرست گزینه‌ها بر اساس نام گزینه‌های بلند مرتب شده است.

حالت کشف شناسه (ID-discovery mode): کشف تمام عنصرهای "typog-inspect" مستقل از هرگونه الگوی تطبیقی و چاپ IDهای آن‌ها. نتایج به ترتیب وقوع آن‌ها در LOG-FILEها چاپ می‌شوند. برای دریافت IDها با ترتیب الفبایی، خروجی را به sort هدایت (pipe) کنید.

برای اطلاعات بیشتر، با گزینه‌های --job-name، --line-number، --log-line-number یا --page-number ترکیب کنید.

رنگی‌کردن محتوای مشخص گزارش برای IDهای تطبیق‌یافته. آرگومان WHEN زمان اعمال رنگ را تعیین می‌کند: "always"، "never" یا "auto". تنظیم "auto" بررسی می‌کند که آیا خروجی استاندارد تغییر مسیر داده شده است یا خیر. این مقدار پیش‌فرض است.
تنظیم یک یا چند جفت KEY=VALUE برای پیکربندی. برای توضیح تمام موارد پیکربندی موجود، بخش "CONFIGURATION" را ببینید. برای نمایش پیکربندی پیش‌فرض از گزینهٔ --show-config استفاده کنید.
فعال‌کردن خروجی اشکال‌زدایی روی stderr.
تنظیم ENCODING مربوط به LOG-FILE برای تبدیل به UTF-8. حالت پیش‌فرض تنظیم‌نشده است.

از این گزینه برای خلاصی از توالی‌های گریز آزاردهندهٔ "<HEX-DIGITS>" روی پایانه‌های UTF-8 استفاده کنید. برای کدگذاری‌های شناخته‌شده گزینهٔ --show-encodings و برای خلاصه‌ای از تمام کدگذاری‌ها Encode::Supported را ببینید. همچنین به بخش "Some Common Encodings" مراجعه کنید.

پیش از اجرای این ابزار، می‌توانید iconv https://pubs.opengroup.org/onlinepubs/9699919799/utilities/iconv.html (POSIX) یا recode https://github.com/rrthomas/recode (GNU) را روی LOG-FILE اعمال کنید تا نیازی به استفاده از گزینهٔ --encoding نباشد.

نمایش راهنمای مختصر و سپس خروج.
چاپ نام واقعی ID که با REGEXP مطابقت داشته است. ظاهر ID تطبیق‌یافته را با مورد پیکربندی "id-heading" کنترل کنید.
تطبیق IDها بدون تمایز بین حروف بزرگ و کوچک در الگوها و داده‌ها.
چاپ "\jobname" که latex به فایل ورودی مرتبط کرده است.
چاپ شماره خطی در فایل مبدأ LaTeX که محیط "typoginspect" در آن یافت شده است.
چاپ شماره خط فایل log که خط فعلی در آن قرار دارد.
چاپ شماره صفحه‌ای در سند حروف‌چینی‌شده که محتوای محیط "typoginspect" در آن شروع می‌شود.
تغییر مسیر خروجی از stdout به صفحه‌بندی‌کنندهٔ (pager) پیکربندی‌شده.
نمایش پیکربندی پیش‌فرض و خروج.
نمایش تمام کدگذاری‌های شناخته‌شده و خروج.
نمایش اطلاعات نگارش و خروج.
فقط تطبیق کلمات کامل..SH "پیکربندی (CONFIGURATION)"
"id-format"=FORMAT
کنترل FORMAT برای چاپ شناسه‌های منطبق در حالت درون‌خطی (inline-mode)، که در آن FORMAT به "printf" در Perl ارسال می‌شود. پیش‌فرض: %s:.
"id-heading"=0|1
انتخاب میان شیوه‌های چاپ IDهای منطبق با گزینهٔ --id: درون‌خطی (0) یا به‌صورت سربرگ پیش از داده‌های منطبق (1). پیش‌فرض: 0.
"id-heading-format"=FORMAT
کنترل FORMAT برای چاپ IDهای منطبق در حالت سربرگ (heading-mode)، که در آن FORMAT به "printf" در Perl ارسال می‌شود. پیش‌فرض: "--> %s <--".
"id-indent"=INDENT
دندانه‌گذاری برچسب‌های تودرتوی typog-inspect. فقط در ``حالت کشف'' (فرم اول) استفاده می‌شود؛ یعنی زمانی که --all فعال باشد. پیش‌فرض: 8.
"id-max-length"=MAXIMUM-LENGTH
تنظیم حداکثر طول یک ID منطبق برای چاپ. اگر یک ID منطبق از این طول تجاوز کند، بریده می‌شود و سه نویسهٔ آخر آن (تا سقف MAXIMUM-LENGTH) با نقطه جایگزین خواهد شد. پیش‌فرض: 40.
"line-number-format"=FORMAT
کنترل FORMAT برای چاپ شماره خطوط فایل سورس TeX، که در آن FORMAT به "printf" در Perl ارسال می‌شود. پیش‌فرض: %5d.
"log-line-number-format"=FORMAT
کنترل FORMAT برای چاپ شماره خطوط فایل گزارش (log)، که در آن FORMAT به "printf" در Perl ارسال می‌شود. پیش‌فرض: %6d.
"page-number-format"=FORMAT
کنترل FORMAT برای چاپ شماره صفحات، که در آن FORMAT به "printf" در Perl ارسال می‌شود. پیش‌فرض: "[%3d]".
"pager"=PAGER
نام برنامهٔ صفحه‌بندی (pager) برای هدایت خروجی به آن از طریق لوله‌کشی (pipe)، در صورتی که با گزینهٔ --pager اجرا شود. پیش‌فرض: "less".
"pager-flags"=FLAGS
ارسال FLAGS به PAGER. پیش‌فرض: "--quit-if-one-screen".
پیکربندی رنگ (Color Configuration)
برای نحو تعیین مشخصات رنگ، صفحهٔ راهنمای Term::ANSIColor(pm) را ببینید.
"file-header-color"
رنگ سربرگ نام فایل.
"fill-state-color"
رنگ پیام‌هایی که ``Underfull hbox'' یا ``Overfull hbox'' را گزارش می‌دهند.
"first-vbox-color"
رنگ نخستین vbox در یک صفحه.
"font-spec-color"
رنگ مشخصات قلم (font specifications).
"horizontal-break-candidate-color"
رنگ خطوط حاوی کاندیداهای نقطهٔ شکست افقی "@".
"horizontal-breakpoint-color"
رنگ خطوط حاوی نقاط شکست افقی "@@".
"id-color"
رنگ IDهای منطبق هنگام چاپ درون‌خطی.
"id-heading-color"
رنگ IDهای منطبق هنگام چاپ به‌صورت سربرگ.
"line-break-pass-color"
رنگ خطوطی که نشان می‌دهند کدام گذر (مانند @firstpass) از الگوریتم شکست خط (line-breaking) فعال است.
"line-number-color"
رنگ شماره خطوط فایل سورس TeX.
"log-line-number-color"
رنگ شماره خطوط فایل لاگ (log).
"math-color"
رنگ مورد استفاده برای عبارت‌های ریاضی به‌همراه مشخصات قلم آن‌ها.
"page-number-color"
رنگ شماره صفحات در خروجی نهایی.
"tightness-color"
رنگ خطوط حاوی گزارش‌های Tight/Loose برای hbox.
"vertical-breakpoint-color"
رنگ نقاط شکست عمودی احتمالی.
رنگ پیش‌زمینه
"black", "red", "green", "yellow", "blue", "magenta", "cyan", "white",

برای پیش‌زمینه پررنگ یا با شدت روشنایی بالا، پیشوند "bright_" را اضافه کنید.

خاکستری پیش‌زمینه
"grey0", ..., "grey23"
رنگ پس‌زمینه
"on_black", "on_red", "on_green", "on_yellow", "on_blue", "on_magenta", "on_cyan", "on_white"

برای پس‌زمینه پررنگ یا با شدت روشنایی بالا، "on_" را با "on_bright_" جایگزین کنید.

خاکستری پس‌زمینه
"on_grey0", ..., "on_grey23"
ویژگی‌های متن
"bold", "dark", "italic", "underline", "reverse"

فهرست زیر برخی از کدگذاری‌های مناسب برای گزینه --encoding را نشان می‌دهد.

"iso-8859-1", "cp850", "cp860", "cp1252"
"iso-8859-2", "cp852", "cp1250"
"iso-8859-3"
"iso-8859-4"
سیریلیک
"iso-8859-5", "cp855", "cp866" (اوکراینی), "cp1251"
عربی
"iso-8859-6", "cp864", "cp1006" (فارسی), "cp1256"
یونانی
"iso-8859-7", "cp737", "cp1253"
عبری
"iso-8859-8", "cp862", "cp1255"
ترکی
"iso-8859-9", "cp857", "cp1254"
نوردیک
"iso-8859-10", "cp865", "cp861" (ایسلندی)
تایلندی
"iso-8859-11", "cp874"
بالتیک
"iso-8859-13", "cp775", "cp1257"
سلتیک
"iso-8859-14"
"iso-8859-15"
"iso-8859-16"

وضعیت خروج برابر 0 است اگر دست‌کم یک ID با REGEXP مطابقت داشته باشد، 1 است اگر هیچ ID با REGEXP مطابقت نداشته باشد، و 2 است اگر خطایی رخ دهد.

برچسب پایانی "</typog-inspect>" گاهی بسیار زود در خروجی قرار می‌گیرد و ردگیری به نظر می‌رسد ناقص شده است. با این حال، LaTeX اطلاعات ردگیری درخواست‌شده را با قابلیت اطمینان ثبت می‌کند، اما عملیات نوشتن برای داده‌های ردگیری و کدی که برای چاپ برچسب پایانی استفاده می‌شود همگام‌سازی نشده‌اند..SH "همچنین ببینید (SEE ALSO)" grep(1), printf(3), Encode::Supported(pm), Term::ANSIColor(pm)

2025/10/27 0.5