اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع xepersian ریاضی‌نویسی شکل فونت فهرست مطالب شماره‌گذاری منابع bidi پانویس بیب‌تک tikz تک‌لایو parsilatex بیمر اسلاید زی‌پرشین پاورقی bibtex سربرگ نماد رسم شکل فرمول‌نویسی قالب ارجاع‌دهی biditexmaker هدر ویرایشگر beamer واژه‌نامه اندازه فونت texstudio عنوان فصل ماتریس اعمال نشدن تغییرات در پی‌دی‌اف رسم جدول bidipresentation شماره صفحه حاشیه رنگ عنوان شکل اسلاید فارسی محیط قضیه گراف مکان شکل tikzpicture حروف‌چینی کد شماره فصل enumerate tabriz_thesis نمایه align زیرنویس شکل کادر itemize فهرست اشکال الگوریتم listings عدم اجرا نیم‌فاصله متن لاتین و فارسی بسته فاصله بین خطوط قالب پایان‌نامه فرمول نصب تک‌لایو فارسی‌تک hyperref شماره فرمول glossaries کپشن نمودار خروجی لاتک حروف‌چینی چندستونی فونت فارسی و انگلیسی ماکرونویسی biditools شماره پاورقی پیوست‌ سوال امتحانی فاصله‌گذاری فرمول چندضابطه‌ای subfigure extrafootnotefeatures header texmaker pdf tex biditufte-book longtable تصویر شمارنده texlive2015 زیرنویس خطا رسم نمودار شماره‌گذاری صفحات پایان نامه دیاگرام فهرست جداول میک‌تک texlive2016 تنظیم جدول آکولاد kashida texworks caption اندیس lollipop iust-thesis multicol فصل‌نویسی شعر سوال چهارگزینه‌ای بولد تورفتگی اعداد فارسی فاصله عمودی xindy چپ‌چینی اوبونتو میکروسافت ورد قاب geometry texlive fancyhdr وسط‌چینی تک لایو 2015 عنوان بخش شماره گذاری به‌روزرسانی بسته aimc46 صفر توخالی فرمول طولانی بیرون‌زدگی xelatex کاما tcolorbox پوستر فاصله سطرها نوشتافت شکست خط tex-programming فونت اعداد pgfplots قرآن tabriz-thesis ایتالیک winedt جستجوی معکوس فلش جایابی تصویر قالب کتاب پاراگراف‌بندی بازیابی اطلاعات هایپرلینک فهرست نمادها شمارنده فصل font محیط ریاضی رسم کادر جداکننده جدول طولانی فهرست تصاویر شماره‌گذاری فرمول algorithm2e فونت بولد proof equation bidipoem eps جدول افقی عکس به‌روزرسانی پانویس چندستونی کمک مالی فاصله خطوط حروف‌چینی شعر زیرشکل minipage قلم پانویس پاراگرافی ltrfootnote پیوست computeautoilg متن فارسی و انگلیسی فرمول چندخطی neveshtuft غلط‌گیری املایی تک‌پارسی پیکان لاتکس tabular baselineskip شماره قسمت قسمت عنوان جدول
18 نفر آنلاین
0 عضو و 18 مهمان در سایت حاضرند
بازدید امروز: 5820
بازدید دیروز: 27333
بازدید کل: 25313307

فاصله نامتوازن بین خطوط متن با استفاده از زی‌پرشین

0 رای
3,261 بازدید

با سلام و احترام

در هنگام تایپ یک متن متوجه شدم فاصله خطوط، متناسب و هماهنگ نیست. گاهی زیاد و گاهی کم است. کد کمینه زیر را اجرا کردم:

\documentclass[10pt]{book}

\usepackage{ptext}
\usepackage{xepersian}
\settextfont{XB Zar}%{XB Niloofar}

\begin{document}
\ptext[1-10]
\end{document}

خروجی زیر حاصل می‌شود:

enter image description here

به وضوح فاصله خط پایانی با ماقبل خود با فاصله دیگر خطوط تفاوت دارد.
چرا این اتفاق می‌افتد؟ آیا فونت‌ها مشکل دارند؟

سوال شده بهمن 29, 1395 توسط حسین بهبودی (797 امتیاز)
برچسب گذاری دوباره بهمن 30, 1395 توسط وحید دامن‌افشان
با سلام
تا آنجا که بنده می‌دانم در نوشتن متون فارسی باید فاصله سطرها تنظیم شود و ربطی به نوع فونت ندارد. اما اگر متن لاتین باشد. به‌صورت پیش‌فرض توازن بین سطرها برقرار است.
این موضوع رو مدت‌ها پیش منم کشف کردم. با تمام فونت‌هایی که کار کردم هم این نامتوازنی وجود داره. اگه دقت کنید، فقط توی بعضی از خط‌ها این حالت دیده می‌شه. به نظر می‌رسه وقتی پیش میاد که مثلاً یه حرفی مثل م در خط بالا و حرف آ در خط پایین ظاهر بشه. همون‌طور که آقای موسوی هم گفتن، با تغییر فاصله بین خطوط این موضوع حل می‌شه.

1 پاسخ

+3 رای
 
بهترین پاسخ

متأسفانه نه تنها پاسخ کاربر A-Mahdavi گمراه‌کننده است بلکه کاملاً اشتباه است.

این یک مشکل بسیار قدیمی در زیپرشین است و به فونت هم مربوط نمی‌شود.

مشکلی وجود ندارد که بخواهد بسیار قدیمی باشد مگر آنکه شما قصد و نیت خراب کردن اعتبار زی‌پرشین را داشته باشید.. این مشکل ربطی به زی‌پرشین ندارد و در واقع اصلاً مشکلی وجود ندارد. آنچه که هست یک رفتار ناخواسته اما منطقی است که در پائین توضیح داده خواهد شد. به قلم مربوط نمی‌شود اما به خاصیت الفبای زبان پارسی ارتباط پیدا می‌کند. توحیحات بیشتر در پائیین.

و با کد زیر در کانتکست ... دارای خروجی زیر است که در آن فاصله بین خطوط موزون می‌باشد

مقایسه کانتکست و زی‌پرشین بی‌معنی است زیرا که نخستین از موتور زی‌تک استفاده می‌کند و . دومی از موتور لواتک. گذشته از این لواتک دیگر تک شمرده نمی‌شود زیرا که دارای مشکلات بسیاری است که دیگر منطبق با تک نیست و رفتاری که از تک انتظار می‌رود را نمی‌توان از لواتک انتظار داشت.

گذشته از این خروجی کانتکست دقیقاً دارای همین مشکل است. پیشنهاد می‌کنم دوباره به خروجی کانتکست خود نگاه کنید و اگر واقعاً نمی‌توانید فاصله غیر موزون و درهم سطرها را ببینید، به یک چشم‌پزشک مراجعه کنید!

جدای همه این‌ها پاسخ شما بیهوده است زیرا که نه پرسش را پاسخ می‌دهد و نه کمکی می‌کند. پرسش این است:

چرا این اتفاق می‌افتد؟ آیا فونت‌ها مشکل دارند؟

اثبات ادعای دروغین کاربر A-Mahdavi

کاربر A-Mahdavi ادعا می‌کند که کانتکست (توسط dabeer) فاصله خط کرسی را بصورت خودکار انتخاب می‌کند. اما این یک دروغ بیش نیست. این کار بصورت کاملاً دستی انجام می‌شود. برای دیدن آن کافی است سطرهای ۵۶ و ۵۷ را در فایل p-dabeer.mkiv نگاه کنید. محتوای دو سطر ذکر شده این است:

%D Persian fonts usually have incorrect heights.  We fix this issue here.
\setupinterlinespace[line=3.2ex]  % default is 2.8ex

که به وضوح نشان می‌دهد که فاصله حط کرسی بصورت کاملاً دستی انتخاب می‌شود.

قبل از پرسش به دو پاسخ، نظر زیر از کاربر وحید دامن‌افشان:

این موضوع رو مدت‌ها پیش منم کشف کردم

چیزی وجود نداشته که کشف شود. متأسفانه شما که ادعای نوشتن چندین کلاس هم دارید حتی یک بار زحمت خواندن کتاب تک را به خود نداده‌اید. ای کاش به خاطر کشف کردن وقت خود را صرف کمی مطالعه می‌کردید!

متأسفانه اکثر کاربران موجود نه دانشی از تک دارند و پاسخ‌های اشتباه و گمراه‌کننده می‌دهند حال آنکه خود حتی نمی‌دانند در مورد چه چیزی صحبت می‌کنند!

پاسخ پرسش دوم ساده‌تر است.

آیا فونت‌ها مشکل دارند؟

تصور نمی‌کنم مشکل از قلم باشد. بله مشکل از خاصیت الفبای پارسی است. بگذاریددر متن نمونه شما چند مورد را نگاه کنیم:

  • در سطر دوم «ر» وجود دارد که عمق منفی دارد و در سطر سوم درست در پائین «ر» حرف «گ» وجود دارد که ارتفاع مثبت زیادی دارد.
  • سطر پنجم «ی» که عمق منفی دارد و درست در زیر آن در سطر ششم حرف «ا» که ارتفاع مثبتی دارد.

چرا این اتفاق می‌افتد؟

در تک سه پارامتر \baselineskip، \lineskiplimit و \lineskip برای تنظیم فاصله بین سطرها وجود دارد. تک بصورت عمومی ازپارامتر \baselineskip برای اینکه فاصله یکسانی بین سطرها وجود داشته باشد استفاده می‌کند. اما زمانی که نویسه‌هایی وجود دارند که عمق و ارتفاعی دارند که ممکن است باعث شوند دو سطر بالایی و پائینی با هم تداخل داشته باشند (مانند دو نمونه ذکر شده در بالا) پارامتر \lineskiplimit تعیین می‌کند که این سطرها چقدر می‌توانند به هم نزدیک شوند. اگر این حالت پیش بیاد (زمانی که نویسه‌هایی وجود دارند که عمق و ارتفاعی دارند که ممکن است باعث شوند دو سطر بالایی و پائینی با هم تداخل داشته باشند) تک دیگر از پارامتر \baselineskip استفاده نمی‌کنه و به جای اون از پارامتر \lineskip برای تعیین فاصله بین دو سطر مربوط استفاده می‌کند.

راه‌حل این است که مقدار پارامتر \baselineskip (در لاتک می‌توان آن را با استفاده از دستور \baselinestretch و یا \linespread تغییر داد) را به اندازه‌ای بزرگ تعیین کرد تا احتمال تداخل سطرهای مربوط پیش نیاید.

برای اطلاعات بیشتر کتاب تک نوشته Knuth را بخوانید.

پاسخ داده شده اسفند 1, 1395 توسط وفا (24,432 امتیاز)
ویرایش شده اسفند 2, 1395 توسط وفا
ممنون
کمترین عددی که برای این فاصله باید تعیین شود چقدر است؟
ممنونم وفا جان بابت توضیحات کاملت.
چه تغییری در نسخه 17.6 بسته زی‌پرشین صورت گرفته است؟
هیچ‌کدام از نرم‌افزارهای حروف‌چین فاصله خط کرسی رو بصورت خودکار و فعال محاسبه نمی‌کنند. همه این نرم‌افزارها یک فاصله خط کرسی پیش‌فرض آن هم بصورت دستی دارند. به عنوان نمونه کانتکست و dabeer این کار را کاملاً دستی انجام می‌دهد. کافی است ویرایش پاسخ را برای توضیح آن بخوانید. بنابراین در کانتکست و dabeer گرد کردنی در کار نیست و آنچه که هست هم سر تا پا اشتباه است!

زی‌پرشین با نسخه 17.6 نخستین و تنها نرم‌افزاری است که  فاصله خط کرسی مناسب را بصورت خودکار و پویا می‌تواند محاسبه کند.
خودت رو گرفتی؟
شما خودت نمی‌دونی در مورد چی صحبت می‌کنی! پیشنهاد می‌کنم قبل از اینکه انگشت‌های دستت رو روی صفحه کلید ببری، از مغزت کمک بگیری.
...