راهی که به ذهن من رسید این بود که در بخش تغییر فونت بخشها، دستور \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}
خروجی:
ویرایش:
مقیاس فونت:
برای متنهایی که کاربر (با دستور \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}