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

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

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

چرا بعضی از فونت‌ها برای کشیده مناسب نیستند؟

+2 رای
1,027 بازدید

چرا تعدادی از فونت‌ها برای کشیده مناسب نیستند؟ چه ویژگی این فونت‌ها دارند که فونت‌های دیگر ندارند؟ میشه بدون تغییر فونت از کشیده استفاده کرد؟

سوال شده خرداد 28, 1395 توسط سحر توکلی (17 امتیاز)

3 پاسخ

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

اگر به کد موجود در فایل kashida-xepersian.def نگاه کنید، کاری که انجام می‌شود این است که برای کشیدگی تعداد خطی (\hrule) با استفاده از دستور \leaders وارد می‌شود تا فضای موجود را پر کند. ارتفاع و عمق این خط‌ها برابر با عمق و ارتفاع کاراکتر U+0640 (یا همان کاراکتر کشیده است) بنابراین بین حروف پارسی، خود کاراکتر کشیده وارد نمی‌شود بلکه \hrule‍ای با ارتفاع و عمق کاراکتر کشیده وارد می‌شود. برای اینکه حروف چسبان خاصتیت چسبان بودن خود را ار دست ندهند بین این حروف (قبل از وارد کردن \hrule) کاراکتر U+200D یا zero-width joiner قرار گرفته می‌شود.

برای اینکه ببینید چه قلمی مناسب است و چه قلمی مناسب نیست (بدون استفاده از گزینه کشیده)، می‌توانید با قلم موجود نحوه خروجی کد زیر را ببینید:

ه\char"200D\char"0640

مشکل روش حاضر کشیده این است که حروف باید در انتهای خود صاف باشند. آیا این بهترین روش موجود است؟ خیر اما متأسفانه تنها راه‌حل است. برای اینکه بتوان راه‌حل بهتری پیاده‌سازی کرد، باید الگوریتم شکستن پاراگراف را تغییر داد که متأسفانه در زی‌تک امکان آن وجود ندارد.

راه‌حل دیگر آن است که به جای قرار دادن خط، کاراکتر کشیده را به اندازه فضای موجود sclae کرد اما متأسفانه این روش با قلم‌هایی که به حالت cursive هستند مشکل خواهد داشت. برای دیدن این موضوع کد نمونه زیر و خروجی آن را ببینید:

\documentclass{article}
\usepackage{graphicx}
\usepackage{trimclip}
\usepackage{xepersian}
\settextfont[ExternalLocation,Scale=3]{amiri-regular}



\newcommand*{\Kashida}[4]{%
  \leavevmode
  #1\char"200D %
  \llap{\clipbox{-1ex 0pt {\width} 0pt}{#2}}%
  \resizebox{#3}{\height}{\clipbox{0pt}{#2}}%
  \rlap{\clipbox{{\width} 0pt -1ex 0pt}{#2}}%
  \char"200D #4%
}

\begin{document}
مــــــــــــــــــــــن

\medskip
\Kashida{م}{ـ}{100pt}{ن}

\Kashida{م}{ـ}{200pt}{ن}

\end{document}

راه‌حل دیگر آن است که به اندازه فضای موجود، کاراکتر کشیده را وارد کرد و اگر فضای اضافه دیگری وجود داشت، کاراکتر کشیده را به اندازه این فضا scale کرد:

\documentclass{article}
\usepackage{graphicx}
\usepackage{trimclip}
\usepackage{xepersian}
\settextfont[ExternalLocation,Scale=3]{amiri-regular}


\makeatletter
\newcommand*{\Kashida}[4]{%
  \leavevmode
  #1\char"200D %
  \ifdim#3>\z@ % 0pt
    \begingroup
      \def\glyphline{#2}%
      \settowidth{\dimen@}{\glyphline}%
      \let\next@glyphline\glyphline
      \@whiledim#3>\dimen@\do{%
        \let\glyphline\next@glyphline
        \expandafter
        \def\expandafter\next@glyphline\expandafter{\glyphline#2}%
        \settowidth{\dimen@}{\next@glyphline}%
      }%
      \llap{\clipbox{-1ex 0pt {\width} 0pt}{\glyphline}}%
      \resizebox{#3}{\height}{\clipbox{0pt}{\glyphline}}%
      \rlap{\clipbox{{\width} 0pt -1ex 0pt}{\glyphline}}%
    \endgroup
  \fi
  \char"200D #4%
}
\makeatother

\begin{document}

مــــــــــــــــــــــن

\Kashida{م}{ـ}{50pt}{ن}

\Kashida{م}{ـ}{100pt}{ن}

\Kashida{م}{ـ}{150pt}{ن}

\Kashida{م}{ـ}{200pt}{ن}

\end{document}

این روش از روش قبلی و روش موجود در زی‌پرشین بهتر است اما همان مشکل روش پیش‌فرض زی‌پرشین را خواهد داشت یعنی هر قلمی که با

ه\char"200D\char"0640

اینجا هم مشکل خواهد داشت.

در آخر برای اینکه ببینید چرا این مشکل، مشکل قلم است و نه کد، کافی است خروجی کد زیر را ببینید:

\documentclass{article}
\usepackage{xepersian}
\settextfont[Scale=30]{XB Yas}
\begin{document}
ه%
\char"200D
\char"0640
\char"200D
م
\end{document}

enter image description here

همانطور که می‌بینید در این نمونه حتی از گزینه کشیده هم استفاده نشده است.

پاسخ داده شده خرداد 28, 1395 توسط وفا (24,180 امتیاز)
انتخاب شده خرداد 28, 1395 توسط سحر توکلی
ممنون از شما. مولف قلم‌های hm در سایتشون ادعا کرده بودند که مشکل از کد شماست و قلمهاشون مشکلی ندارند. با پاسخ شما ادعای نادرست ایشان رو شد.
دوست عزیز، از شخصی که با دروغ، تزویر و حلیه‌‌‌های کثیف روز خود را شب می‌کند، چه انتظاری دارید؟ من در جریان ادعای ایشون نبودم ولی اگر هم بودم برایم فرقی نمی‌کرد چون مثل ایشون بی‌کار نیستم.
چه ربطی داشت؟
وفاجان ایدهٔ بسیار جالبی بکار برده‌اید. :دی
سلام
من این کدهایی را که آقا وفا نوشته اند کپی و چسبانده ام اما خطای فونت می گیرم

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "amiri -regular" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................  
                                                  
l.3 ...ExternalLocation,Scale=3]{amiri -regular}

 
این فونت های amiri -regular را از کجا می تونم دانلود و در تک لایو نصب کنم.
من هم مثل آقا سید جواد برای این کدهایی که آقا وفا نوشته اند به ایشون دست مریزاد میگم و براشون آروزی موفقیت می کنم.
یک سوال: چه کتابها و منابعی را باید مطالعه کنیم تا بتونیم همچین کدهایی بنویسیم؟
ممنون
دوست عزیز لطفا یک بار قوانین سایت رو بخونید.
۱- لطف کنید برای مشکلتان یک سوال جدید طرح کنید. الان این متن شما به عنوان یک جواب برای چرایی مشکل گزینهٔ هست؟
۲- لطف کنید مثال کمینه و فایل log رو پیوست بفرمایید. دیگران هم باید بتونن مثال شما رو اجرا کنند و ببینند آیا به همین مشکل شما بر میخورند یا نه
۳- لطفا در هر پست تنها یک سوال بفرستید.
خیلی ممنون که جواب دادین.
ببخشین. قوانین و راهنما را خونده بودم اما نه اونقدر دقیق که باید.
مشکلم هم حل شد. یک فاصلهٔ اضافی در اسم فونت بود که در کپی و چسب اضافه شده بود. نمی دونم مشکل از من بوده
یا از سایت پارسی لاتک.
بازهم ممنون و ببخشین
0 رای

این مشکل در نسخه 20.3 بسته xepersian حل شده است. برای اطلاعات بیشتر این پرسش و پاسخ را ببینید.

پاسخ داده شده دی 13, 1396 توسط وفا (24,180 امتیاز)
0 رای

نحوه حل مشکل در نسخه 20.5 بسته xepersian نسبت به چگونگی حل مشکل در نسخه 20.3 بسته xepersian تفاوت کرده است. برای حل مشکل، اگر حداقل از نسخه 20.5 بسته xepersian استفاده می‌کنید، می‌توانید گزینه KashidaXBFix را به کار ببرید.

\documentclass{article}
\usepackage[Kashida=on,KashidaXBFix=on]{xepersian}
\settextfont[Scale=6]{XB Niloofar}
\begin{document}
من با شما سخن‌ها دارم.
\end{document}

enter image description here

پاسخ داده شده دی 14, 1396 توسط وفا (24,180 امتیاز)
...