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

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

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

اعداد فارسی در عنوان هنگام استفاده از بسته titlesec

0 رای
103 بازدید

می‌خواهم فونت و رنگ عنوان بخش‌ها را با بسته titlesec تغییر دهم. وقتی از فونتی که اعداد فارسی و انگلیسی را دارد (مثلاً فونت IRNazanin) استفاده می‌کنم، اگر اعداد انگلیسی در عنوان وجود داشته باشد:

  • با استفاده از lr\: فونت مورد نظر اعمال نمی‌شود.
  • با استفاده از LR\: اعداد فارسی چاپ می‌شوند.

کد زیر را در نظر بگیرید:

\documentclass{book}
\usepackage{titlesec}
\usepackage{xecolor}
\usepackage{xepersian}

\definergbcolor{sectioncolor}{10a5cd}
\defpersianfont\sectionfont[Scale=1.6]{IRNazanin}
\titleformat*{\section}{\sectionfont\bfseries\xecolor{sectioncolor}}

\settextfont{IRNazanin}

\begin{document}

\section{بخش A 2 B 4}
قسمت انگلیسی راست به چپ است.

\section{بخش \lr{A 2 B 4}}
فونت عوض شده است.

\section{بخش \LR{A 2 B 4}}
اعداد فارسی نوشته می‌شوند.

\end{document}

خروجی این کد به صورت زیر است:
enter image description here

لطفاً راهنمایی بفرمایید که چگونه فونت و اعداد انگلیسی را همزمان داشته باشم.

سوال شده 17 مرداد 1402 توسط جابر (225 امتیاز)

1 پاسخ

0 رای
 
بهترین پاسخ

راهی که به ذهن من رسید این بود که در بخش تغییر فونت بخش‌ها، دستور \lr رو هم کمی تغییر بدیم تا بتونه رنگی بکنه.
یه دستور مشابه \lr تعریف کردم (\clr) که بتونه رنگ رو هم هر جا خواستین عوض کنه. تعریفی که در ادامه می‌بینین این‌طوریه که اگه بهش رنگ ندید، رنگ پیش‌فرضش همون sectioncolor خواهد بود؛ ولی با آپشن می‌تونین رنگش رو عوض کنین. توی مثالی که میارم مشخصه.

\documentclass{book}
\usepackage{titlesec}
\usepackage{xecolor}
\usepackage{etoolbox} % <=== added
\usepackage{xepersian}

\definergbcolor{mgreen}{00ff00} % <=== added
\definergbcolor{sectioncolor}{10a5cd}
\defpersianfont\sectionfont[Scale=1.6]{IRNazanin}
\titleformat*{\section}{%
    \patchcmd{\lr}{\resetlatinfont}{\resetlatinfont\xecolor{sectioncolor}}{}{}% <=== added
    \sectionfont\bfseries\xecolor{sectioncolor}%
}

% new command for colored latin text
\newcommand{\clr}[2][sectioncolor]{\LRE{\resetlatinfont \xecolor{#1}#2}} % colored lr

\settextfont{IRNazanin}

\begin{document}

    \section{بخش \lr{A 2 B 4}}
    متن لاتین سیاه می‌خواهم
    \lr{Black}

    \xecolor{sectioncolor}
    متن لاتین رنگی می‌خواهم
    \clr{colored}

    \xecolor{mgreen}
    رنگ دیگر برای لاتین می‌خواهم
    \clr[mgreen]{Other}

\end{document}

خروجی:
enter image description here


ویرایش:

مقیاس فونت:
برای متن‌هایی که کاربر (با دستور \lr{}، محیط ‍latin و…) لاتین می‌نویسه، بستهٔ زی‌پرشین از فونت lmroman10 استفاده می‌کنه. وقتی شما فونت فارسی با اسکیل ۱٫۶ تعریف می‌کنین ولی اسکیل فونت لاتین رو ۱٫۶ برابر نمی‌کنین، ناهماهنگی پیش میاد. اگه قصد تغییر اندازهٔ فونت دارین، همون طور که خودتون هم اشاره کردین، از دستور \fontsize{}{}\selectfont استفاده کنین.

بولدنشدن لاتین:
علتِ به چشم نیومدن بولد لاتین اینه که شدت بولد فونت IRNazanin بیشتر از لاتینه. می‌شه از بولدش استفاده نکرد و همون معمولی رو یکم بولد کرد.

\documentclass{book}
\usepackage{titlesec}
\usepackage{xecolor}
\usepackage{etoolbox} % <=== added

\usepackage{xepersian}

\definergbcolor{sectioncolor}{10a5cd}
\defpersianfont\sectionfont[% <=== changed
    Scale=1.2,%
    BoldFont=*,%
    BoldFeatures={FakeBold=1}%
]{IRNazanin}

\titleformat*{\section}{%
    \patchcmd{\lr}{\resetlatinfont}{\resetlatinfont\xecolor{sectioncolor}}{}{}% <=== added
    \sectionfont
    \fontsize{15}{18}\selectfont % <=== added
    \bfseries\xecolor{sectioncolor}%
}

\settextfont[% <=== changed
    Scale=1.2,%
    BoldFont=*,%
    BoldFeatures={FakeBold=1}%
]{IRNazanin}

\begin{document}

    \section{بخش \lr{A 2 B 4}}
    فونت معمولی
    \lr{A 2 B 4}

    \noindent\bfseries
    فونت سیاه
    \lr{A 2 B 4}

\end{document}

enter image description here

پاسخ داده شده 21 مرداد 1402 توسط بهمن میرزاخانی (3,143 امتیاز)
انتخاب شده 23 مرداد 1402 توسط جابر
ممنون از راه حل شما. این راه حل مشکل رنگ رو حل می‌کنه، اما یک مشکل دیگه هنوز وجود داره، وقتی از lr\ استفاده بشه مقیاس فونت رعایت نمیشه و متن انگلیسی در عنوان با همون مقیاس فونت متن نوشته میشه. اگه Scale رو به جای 1.6 یک عدد بزرگتر بگذارید کاملاً ملموس می‌بینید که مقیاس فونت فارسی و انگلیسی فرق داره. همچنین اگه عنوان رو بولد بنویسیم (در مثال صورت سؤال مشخص نیست) بولد بودن فونت انگلیسی دیده نمیشه. اگر راه حلی هم برای این موضوعات بگید کل مشکل حل میشه.
(*) قبلاً متوجه شده بودم که دستور LR\ در عنوان هم مقیاس و هم بولد بودن متنم انگلیسی رو حفظ می‌کنه، برای همین سعی کردم پچی که نوشته بودید رو برای این دستور اعمال کنم اما مشکل اعداد که فارسی نوشته می‌شدند همچنان پا برجا می‌مونه.
یک راه حل برای مشکل مقیاس فونت انگلیسی که پیدا کردم اینه که دستی اندازه فونت رو عوض کنیم. یعنی درون پچی که نوشتید، به جای resetlatinfont\xecolor{sectioncolor}\ بنویسیم
resetlatinfont\fontsize{15pt}{\baselineskip}\selectfont\xecolor{sectioncolor}\.
البته این راه حل هنوز یک مشکل داره، اون هم اینکه بولد بودن فونت انگلیسی از بین میره!
قسمت ویرایش پاسخم رو ببینین.
...