.TH match_parens 1 "September 30, 2025" "match_parens version 1.45" "DekDoc scripts" .SH "نام (NAME)" match_parens \- یافتن عدم تطابق انواع پرانتزها، قلاب‌ها و علامت‌های نقل‌قول .SH "خلاصه دستور (SYNOPSIS)" .B match_parens [\fIنام‌فایل\fR] .SS "گزینه‌ها (OPTIONS)" .B \-h .RS چاپ این راهنما و خروج .RE .B \-H,\-\-help .RS چاپ مستندات کامل و خروج .RE .B \-V,\-\-version .RS چاپ نسخه و خروج .RE .B \-l,\-\-latex .RS تبدیل ``...'' به “...” پیش از آزمودن .RE .B \-n,\-\-number=\fIN\fR .RS تنظیم تعداد نویسه‌های ناسازگار نمایش‌داده‌شده به \fIN\fR (پیش‌فرض: 10) .RE .B \-p,\-\-pairs=\fIS\fR .RS تنظیم جفت‌های تطبیق به \fIS\fR (پیش‌فرض: {}[]()“”«»‘’""'') .RE .B \-\-test .RS انجام آزمایش داخلی و خروج .RE .SH "توضیحات (DESCRIPTION)" ردیابی عدم تطابق پرانتزها، آکولادها و قلاب‌ها (از جمله قلاب‌های زاویه‌دار)، به‌ویژه در متون مبدأ TeX که ممکن است سرشار از آن‌ها باشند، می‌تواند دشوار باشد. این اسکریپت کوچک با نوشتن متن شما در خروجی استاندارد، پس از افزودن یک حاشیه در سمت چپ متن که معمولاً تقریباً خالی است اما تا ۱۰ مورد عدم تطابق را به‌روشنی نشان می‌دهد، به شما کمک می‌کند. (کافی است این اسکریپت را روی خودش امتحان کنید تا ببینید پرانتز ابتدای این جمله در انتهای فایل جفت‌نشده نمایش داده می‌شود. اگر در ویرایشگر vim به این متن نگاه می‌کنید، این پاراگراف را انتخاب کرده و دستور :!% را امتحان کنید). .PP به‌طور پیش‌فرض، جفت‌های زیر بررسی می‌شوند: .PP .B () .RS پرانتزهای گرد .RE .B {} .RS آکولادها .RE .B [] .RS قلاب‌ها (کروشه‌ها) .RE .B <> .RS قلاب‌های زاویه‌دار (تنها در متن‌های HTML) .RE .B \(dq\(dq .RS علامت‌های نقل‌قول دوتایی ASCII .RE .B “” .RS علامت‌های نقل‌قول دوتایی یونیکد .RE .B '' .RS علامت‌های نقل‌قول تکی ASCII .RE .B ‘’ .RS علامت‌های نقل‌قول تکی یونیکد .RE .PP مقدار خروج اسکریپت در صورت نبود عدم تطابق 0، و در غیر این صورت 1 است. .PP قلاب‌های زاویه‌دار تنها در متن‌های HTML جستجو می‌شوند؛ جایی که فرض می‌شود متن HTML با .B یا .B =begin␣rdoc آغاز شده و با .B یا .B =end پایان می‌یابد. .SH "گزینه‌ها (OPTIONS)" .B \-h,\-\-help .RS چاپ اطلاعات راهنمای کوتاه و خروج. .RE .B \-H,\-\-Help .RS چاپ مستندات کامل از طریق less و خروج. .RE .B \-V,\-\-version .RS چاپ نگارش این اسکریپت و خروج. .RE .B \-l,\-\-latex .RS تبدیل ``...'' به “...” پیش از آزمودن. .RE .B \-n,\-\-number=\fIN\fR .RS تنظیم تعداد نویسه‌های ناسازگار نمایش‌داده‌شده به \fIN\fR. به‌طور پیش‌فرض، تنها ۱۰ مورد نخست نمایش داده می‌شوند. .RE .B \-p,\-\-pairs=\fIS\fR .RS تنظیم جفت‌های تطبیق به \fIS\fR (پیش‌فرض: {}[]()“”''«»""‘’). برای نمونه، اگر می‌خواهید \fIتنها\fR به دنبال علامت‌های نقل‌قول تکی ASCII جفت‌نشده بگردید، از .B \-\-pairs="''" استفاده کنید. یا اگر تنها می‌خواهید آکولادها و گیومه‌ها را تطبیق دهید، از .B \-p␣«» استفاده کنید. توجه داشته باشید که اگر در متن شما HTML تشخیص داده شود، <> به‌طور خودکار به فهرست جفت‌ها افزوده می‌شود. بنابراین به‌طور پیش‌فرض، <...> تنها در HTML بررسی می‌شود، اما می‌توانید با مشخص کردن جفت <> در گزینه .B \-\-pairs آن را در سایر متن‌ها نیز بررسی کنید. .RE .B \-\-test .RS انجام یک آزمایش داخلی و خروج. توجه داشته باشید که اگر با استفاده از گزینه .B \-\-pairs فهرست جفت‌هایی غیر از پیش‌فرض مشخص کنید، آزمایش احتمالاً با شکست مواجه می‌شود، اما همچنان می‌توانید تأثیرات فهرست جفت‌های خود را روی داده‌های آزمایشی مشاهده کنید. .RE .SH "مثال‌ها (EXAMPLES)" فرض کنید دو فایل با نام‌های good و bad داریم که حاوی متن‌های زیر هستند: .PP .B good: .RS .nf This is a (simple) test without mismatches .fi .RE .PP .B bad: .RS .nf This is a (simple test containing mismatches .fi .RE .PP در ادامه چند نمونه از کاربرد دستور آورده شده است. نخست یک آزمایش ساده روی این فایل‌ها: .PP .nf $ matchparens good 1 || This is a (simple) test 2 || without mismatches $ echo $? 0 $ matchparens bad 1 | (| This is a (simple test 2 | (| containing mismatches $ echo $? 1 .fi .PP تنها گزارش دادن این‌که آیا عدم تطابقی وجود دارد یا خیر: .PP .nf $ matchparens good >/dev/null && echo fine || echo problems fine $ matchparens bad >/dev/null && echo fine || echo problems problems .fi .PP گزارش تمام فایل‌های tex دارای عدم تطابق در دایرکتوری جاری: .PP .nf $ for i in *.tex; do matchparens $i >/dev/null || echo $i; done .fi .PP تطابق‌ها باید به ترتیب درست باشند: .PP .nf $ echo -e "This is a ([simple)] test\en" | match_parens 1 ([)]This is a ([simple)] test 2 ([)] .fi .SH "نویسنده (AUTHOR)" Wybo Dekker (wybodekker@me.com) .SH "حق نشر (COPYRIGHT)" منتشر شده تحت مجوز عمومی همگانی گنو (GPL) ()