.TH PATGEN 1 "10 January 2026" "Web2C 2026" .\"===================================================================== .if t .ds TX \fRT\\h'-0.10m'\\v'0.17v'E\\v'-0.17v'\\h'-0.06m'X\fP .if n .ds TX TeX .ie t .ds OX \fIT\h'-0.17m'\v'+0.21m'E\v'-0.21m'\h'-0.04m'X\fP .el .ds OX TeX .\"===================================================================== .SH "نام (NAME)" patgen \- تولید الگوها برای خط‌فاصله‌گذاری در TeX .SH "خلاصه دستور (SYNOPSIS)" .B patgen .I dictionary_file pattern_file patout_file translate_file .\"===================================================================== .SH "توضیحات (DESCRIPTION)" برنامهٔ .I patgen یک .I dictionary_file حاوی فهرستی از واژگان خط‌فاصله‌گذاری‌شده و یک .I pattern_file حاوی الگوهای از پیش تولیدشده (در صورت وجود) برای یک زبان خاص (نه یک فایل منبع کامل \*(TX؛ بخش زیر را ببینید) را می‌خواند، و فایل .I patout_file را به همراه الگوهای خط‌فاصله‌گذاری (الگوهای قبلی به علاوهٔ الگوهای جدیداً تولیدشده) برای آن زبان تولید می‌کند. فایل .I translate_file مقادیر ویژه‌زبان را برای پارامترهای .IR left_hyphen_min " و " right_hyphen_min که توسط الگوریتم خط‌فاصله‌گذاری \*(TX استفاده می‌شوند، و همچنین نمایش خارجی نسخه(های) حروف کوچک و بزرگ تمام «حروف» آن زبان را تعریف می‌کند. جزئیات بیشتر فرایند تولید الگو مانند سطوح خط‌فاصله‌گذاری و طول الگوها به صورت تعاملی از ترمینال کاربر درخواست می‌شوند. به صورت اختیاری، .I patgen یک فایل واژه‌نامهٔ جدید به نام .BI pattmp. n می‌سازد که خط‌فاصله‌های خوب و بد پیدا شده توسط الگوهای تولیدشده را نشان می‌دهد، که در آن .I n بالاترین سطح خط‌فاصله‌گذاری است. .PP الگوهای تولیدشده توسط .I patgen می‌توانند توسط .BR initex (1) جهت استفاده در خط‌فاصله‌گذاری واژگان خوانده شوند. برای نمونهٔ اصلی خروجی .IR patgen ، به فایل .IR $TEXMFMAIN/tex/generic/hyphen/hyphen.tex (در \*(TX Live) مراجعه کنید که حاوی الگوهایی است که \*(TX به طور پیش‌فرض برای انگلیسی استفاده می‌کند. در \*(TX Live، الگوها برای (بسیاری از) زبان‌های دیگر نیز در دسترس هستند (مگر اینکه نصب نشدن آن‌ها انتخاب شده باشد). .PP تمامی نام‌های فایل باید کامل باشند؛ هیچ پسوند پیش‌فرضی افزوده نمی‌شود و هیچ جستجویی در مسیر انجام نمی‌گیرد. .\"===================================================================== .SH "قالب‌های فایل (FILE FORMATS)" .TP \w'@@'u+2n .B حروف (Letters) هنگامی که .B initex الگوهای خط‌فاصله‌گذاری را تحلیل می‌کند، \*(TX ابتدا ماکروها را بسط می‌دهد و نتیجه باید کاملاً از ارقام (سطوح خط‌فاصله‌گذاری)، نقطه‌ها ('.'، به معنی لبهٔ کلمه) و حروف تشکیل شده باشد. در فایل‌های الگوی زبان‌های غیرانگلیسی، حروف اغلب توسط ماکروها یا دیگر ساختارهای قابل‌بسط نشان داده می‌شوند. برای اهداف .I patgen این‌ها صرفاً دنباله‌هایی از نویسه‌ها هستند، مشروط به این شرط که هیچ دنباله‌ای پیشوند دنبالهٔ دیگری نباشد. .TP \w'@@'u+2n .B فایل واژه‌نامه (Dictionary file) یک فایل واژه‌نامه شامل فهرستی وزن‌دار از کلمات خط‌فاصله‌گذاری‌شده است، هر کلمه در یک خط، که هر کدام از ستون ۱ آغاز می‌شوند. یک رقم در ستون ۱ نشان‌دهندهٔ وزن سراسری کلمه (در ابتدا =1) است که برای تمام کلمات بعدی تا وزن سراسری بعدی اعمال می‌شود. یک رقم در موقعیتی بین نویسه‌ها نشان‌دهندهٔ وزن تنها برای همان موقعیت است. خط‌فاصله‌ها در یک کلمه با '-'، '*' یا '.' (یا جایگزین‌های آن‌ها طبق تعریف در فایل ترجمه) به ترتیب برای خط‌فاصله‌هایی که هنوز پیدا نشده‌اند، خط‌فاصله‌های «خوب» (به‌درستی یافت‌شده توسط الگوها) و خط‌فاصله‌های «بد» (به‌اشتباه یافت‌شده توسط الگوها) مشخص می‌شوند؛ هنگام خواندن فایل واژه‌نامه، با '*' مانند '-' رفتار می‌شود و '.' نادیده گرفته می‌شود. .TP .B فایل الگو (Pattern file) یک فایل الگو تنها حاوی الگوهایی در قالب بالا است، مثلاً از یک اجرای قبلی patgen. این فایل \fIنباید\fR هیچ توضیح یا دنبالهٔ کنترلی \*(TX داشته باشد. برای مثال، این یک فایل الگوی معتبر نیست: .nf % this is an invalid pattern file for TeX. \\patterns{% .\|.\|. } .fi فایل‌های الگو فقط می‌توانند شامل الگوهای واقعی باشند، یعنی «.\|.\|.». .TP .B فایل ترجمه (Translate file) یک فایل ترجمه با خطی شامل مقادیر .I left_hyphen_min در ستون‌های ۱\-۲، .I right_hyphen_min در ستون‌های ۳\-۴، و یا یک فاصله یا جایگزین یکی از نویسه‌های «خط‌فاصله» یعنی '-'، '*' و '.' در ستون‌های ۵، ۶ و ۷ آغاز می‌شود. خطوط ورودی همانند بسیاری از برنامه‌های مرتبط با \*(TX با فاصله‌ها پر می‌شوند. هر یک از خطوط بعدی یک «حرف» را تعریف می‌کند: یک نویسهٔ جداکنندهٔ دلخواه در ستون ۱، و به دنبال آن یک یا چند نمایش خارجی از آن نویسه (ابتدا حالت «کوچک» آن که برای خروجی استفاده می‌شود)، که هر کدام با نویسهٔ جداکننده پایان می‌یابند و کل دنباله با جداکنندهٔ دیگری خاتمه می‌یابد. اگر فایل ترجمه خالی باشد، مقادیر پیش‌فرض عبارتند از .IR left_hyphen_min "=2, " right_hyphen_min "=3," و ۲۶ حرف کوچک .BR a .\|.\|. z با نمایش‌های حروف بزرگ آن‌ها .BR A .\|.\|. Z . .TP .B ورودی ترمینال (Terminal input) پس از خواندن .I translate_file و هرگونه الگوهای از پیش تولیدشده از .IR pattern_file ، برنامهٔ .I patgen ورودی را از ترمینال کاربر درخواست می‌کند. ابتدا مقادیر عدد صحیح .IR hyph_start " و " hyph_finish ، یعنی پایین‌ترین و بالاترین سطح خط‌فاصله‌گذاری که قرار است الگوها برای آن‌ها تولید شوند. مقدار .I hyph_start باید از هر سطح خط‌فاصله‌گذاری موجود در .I pattern_file بزرگ‌تر باشد. سپس، برای هر سطح خط‌فاصله‌گذاری، مقادیر عدد صحیح .IR pat_start " و " pat_finish ، یعنی کوتاه‌ترین و بلندترین طول الگوی مورد تجزیه و تحلیل، و همچنین .IR "good weight" "، " "bad weight" " و " threshold ، وزن‌های خط‌فاصله‌های خوب و بد و یک آستانهٔ وزنی برای الگوهای مفید. در نهایت، تصمیم (پاسخ 'y' یا 'Y' در برابر هر چیز دیگر) در این باره که آیا فهرست کلمات خط‌فاصله‌گذاری‌شده ایجاد شود یا خیر. .\"===================================================================== .SH "فایل‌ها (FILES)" .TP \w'@@'u+2n $TEXMFMAIN/tex/generic/hyphen/hyphen.tex الگوهای اصلی خط‌فاصله‌گذاری برای انگلیسی، توسط Donald Knuth و Frank Liang. .TP $TEXMFMAIN/tex/generic/hyphen/zerohyph.tex یک فایل الگو بدون هیچ الگویی، برای زبان‌هایی که از خط‌فاصله‌گذاری استفاده نمی‌کنند. .\"===================================================================== .SH "همچنین ببینید (SEE ALSO)" Frank Liang and Peter Breitenlohner, patgen.web. .PP Frank Liang, .IR "Word hy-phen-a-tion by com-puter" , STAN-CS-83-977, Stanford University Ph.D. thesis, 1983, http://tug.org/docs/liang .PP Donald E. Knuth, .IR "The \*(OXbook" , Addison-Wesley, Appendix H. .TP https://ctan.org/pkg/hyphenex استثنائات خط‌فاصله‌گذاری برای انگلیسی آمریکایی، نگهداری‌شده توسط ویراستاران \fITUGboat\fP، و استفاده‌شده در مقاله‌های \fITUGboat\fP به‌طور پیش‌فرض. .TP https://ctan.org/pkg/hyph-utf8 الگوهای خط‌فاصله‌گذاری گردآوری‌شده برای زبان‌های متعدد در قالب‌های مختلف. .TP https://ctan.org/pkg/ushyph مجموعهٔ بزرگی از الگوهای اضافی خط‌فاصله‌گذاری برای انگلیسی، گسترش‌یافته توسط Gerard Kuiken. .TP https://ctan.org/tex-archive/language دایرکتوری عمومی CTAN برای الگوها و پشتیبانی از بسیاری از زبان‌های دیگر. .TP https://tug.org/TUGboat/Contents/listkeyword.html#CatTAGMultilingualDocumentProcessing مقاله‌های \fITUGboat\fP دربارهٔ خط‌فاصله‌گذاری و دیگر جنبه‌های پردازش اسناد وابسته به زبان. .\"===================================================================== .SH "نویسندگان (AUTHORS)" Frank Liang نسخهٔ نخست این برنامه را نوشت. Peter Breitenlohner در سال ۱۹۹۱ بازنگری عمده‌ای برای \*(TX 3 روی آن اعمال کرد. نسخهٔ نخست به عنوان ضمیمهٔ گزارش فنی .I \*(OXware منتشر شد. Howard Trickey در اصل آن را به Unix پورت کرد. .PP فهرست گفتگوی عمومی و گزارش اشکالات: https://lists.tug.org/tex-k