در نمونه شما احتیاجی به بسته sols
نیست.
یک نکتهای که در هنگام استفاده از بسته bidihl هست، این است که جعبه هایلایت از خط کرسی شروع شده و به بالا رسم میشود.
اگر میخواهید دستوری به نام \bidiol
داشته باشید که همانند \overline
کار کند:
\documentclass{report}
\usepackage{bidihl}
\usepackage{xepersian}
\settextfont{Yas}
\makeatletter
\def\bidiol{\bidihl@highlight\bidihl@highlight@depth{\bidihl@highlight@depth}{\ht\strutbox}}
\makeatother
\definecolor{bidihlcolor}{rgb}{1,0.7,0}
\begin{document}
\bidiol{
کنون ای خردمند وصف خرد بدین جایگه گفتن اندرخورد کنون تا چه داری بیار از خرد که گوش نیوشنده زو برخورد خرد بهتر از هر چه ایزد بداد ستایش خرد را به از راه داد خرد رهنمای و خرد دلگشای خرد دست گیرد به هر دو سرای ازو شادمانی وزویت غمیست وزویت فزونی وزویت کمیست خرد تیره و مرد روشن روان نباشد
همی شادمان یک زمان چه گفت آن خردمند مرد خرد که دانا ز گفتار از برخورد.
}
\end{document}
اگر میخواهید دستوری به نام \bidiml
تعریف کنید که از وسط باشد:
\documentclass{report}
\usepackage{bidihl}
\usepackage{xepersian}
\settextfont{Yas}
\makeatletter
\def\bidiml{\setbox\@tempboxa\hbox{-}%
\bidihl@highlight\bidihl@highlight@depth\bidihl@highlight@depth{.5\ht\@tempboxa}}
\makeatother
\setlength{\bidihlboxheight}{3pt}
\definecolor{bidihlcolor}{rgb}{1,0.7,0}
\begin{document}
\bidiml{
کنون ای خردمند وصف خرد بدین جایگه گفتن اندرخورد کنون تا چه داری بیار از خرد که گوش نیوشنده زو برخورد خرد بهتر از هر چه ایزد بداد ستایش خرد را به از راه داد خرد رهنمای و خرد دلگشای خرد دست گیرد به هر دو سرای ازو شادمانی وزویت غمیست وزویت فزونی وزویت کمیست خرد تیره و مرد روشن روان نباشد
همی شادمان یک زمان چه گفت آن خردمند مرد خرد که دانا ز گفتار از برخورد.
}
\end{document}
این موضوع زمانی که فاصله بین خطوط زیاد است و نیاز به هایلایت متن (با ارتفاع زیاد جعبه هایلایت کننده) وجود دارد و یا همانند مثال آورده شده ارتفاع جعبه رنگی هایلایت کم است، خروجی چندان جالب نخواهد شد.
وقتی من فاصله بین خطوط را زیاد میکنم و از دستور \large
به عنوان مثال استفاده میکنم مشکلی ندارم:
\documentclass{report}
\usepackage{bidihl}
\usepackage{xepersian}
\settextfont{Yas}
\renewcommand*{\baselinestretch}{2}
\makeatletter
\makeatother
\definecolor{bidihlcolor}{rgb}{1,0.7,0}
\begin{document}
\large
\bidihl{
کنون ای خردمند وصف خرد بدین جایگه گفتن اندرخورد کنون تا چه داری بیار از خرد که گوش نیوشنده زو برخورد خرد بهتر از هر چه ایزد بداد ستایش خرد را به از راه داد خرد رهنمای و خرد دلگشای خرد دست گیرد به هر دو سرای ازو شادمانی وزویت غمیست وزویت فزونی وزویت کمیست خرد تیره و مرد روشن روان نباشد
همی شادمان یک زمان چه گفت آن خردمند مرد خرد که دانا ز گفتار از برخورد.
}
\end{document}
در مورد حالت قبلی که مقدار \bidihlboxheight
برابر با 1pt
بود، خط کادر یا همان \vrule
عمق نیز دارد و با توجه به ارتفاع و عمق رسم میشود.
آیا این امکان وجود دارد که با توجه به ارتفاع تعیین شده برای جعبه هایلایت، میانه این جعبه بر میانه ارتفاع حروف منطبق گردد؟ به عبارت دیگر \vrule
رنگی، بالا (یا پایین) آورده شود تا میانهی جعبه رنگی و میانهی جعبه حروف بر هم منطبق گردند.
تصور میکنم پاسخ پرسش شما را با تعریف ماکروهای \bidiol
و \bidiml
دادم باشم. اگر باز هم پرسش شما بیپاسخ مانده است، لطفاً بگید.
ویرایش
فکر میکنم در مورد سوال شما اگر ارتفاع و عمق کادر رنگی، خودکار و توسط خود تک تعیین شود، مشکلی وجود نداشته باشد:
\documentclass{report}
\usepackage{bidihl}
\usepackage{xepersian}
\settextfont{Yas}
\makeatletter
\def\bidihlx#1{%
\setbox\@tempboxa\hbox{#1}%
\bidihlboxheight\ht\@tempboxa%
\bidihl@highlight\z@{-\dp\@tempboxa}{-\dp\@tempboxa}{#1}}
\makeatother
\definecolor{bidihlcolor}{rgb}{1,0.7,0}
\begin{document}
\fontsize{50}{60}\selectfont
\bidihlx{سرزمین دلاوران}
\end{document}