2

For a certain part of text, I needed to make the text bold + underlined in addition to changing the background color

I needed to do all this while maintaining hyphenation

Thus I could not use the underline command, I used Uline and also Ic ould not use the color box command, I had to use the tcolorbox.

I have only one issue which is that the Background text color does not stop where the text stops, it extends till the end of the line. IS there any Fix for This

HERE IS THE LINK FOR SIMPLIFIED ARABIC FONT, INSTALL IT ON YOUR SYSTEM TO RUN THE CODE: https://fontzone.net/font-details/simplified-arabic

I Am using polyglossia + xelatex Here is the code with various examples:

\documentclass[a4paper,12pt,twoside]{book}

\usepackage

[a4paper,top=2.5cm,bottom=2.5cm,margin=2.5cm,bindingoffset=0.5cm]{geometry} 

\usepackage{fontspec} 

\usepackage{tcolorbox} 

\usepackage{ulem}

\usepackage[hidelinks,colorlinks=true,linkcolor = blue,anchorcolor = blue,citecolor = blue,filecolor = blue,urlcolor = blue]{hyperref} 
\usepackage{url,graphicx}

\usepackage{tikz}

\usetikzlibrary{arrows.meta,arrows,positioning,matrix,quotes, shapes.geometric,calc}  
\usepackage{rotating}  
\usepackage{polyglossia} 
\setdefaultlanguage[calendar=gregorian,locale=default,numerals=mashriq]{arabic} 
\setotherlanguages{english}
\newfontfamily\arabicfont[Script=Arabic,Mapping=arabicdigits]{Simplified Arabic} 

\begin{document}

\chapter{}

\begin{bfseries}

\begin{tcolorbox}

[colframe=white,colback=lightgray]

\uline{

لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق رقم (2) لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة بفصول الكتاب المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.}

\end{tcolorbox}

\end{bfseries}

\bigskip

\underline{\textbf{\colorbox{lightgray}{

لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق رقم (2) لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة بفصول الكتاب المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.}}}

\bigskip

\uline{\textbf{\colorbox{lightgray}{

لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق رقم (2) لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة بفصول الكتاب المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.}}}

\begin{bfseries}

\begin{tcolorbox}

[colframe=white,colback=lightgray]

\underline{
لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق رقم (2) لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة بفصول الكتاب المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.}

\end{tcolorbox}

\end{bfseries}

\end{document}

4

I couldn't make it work with the soul package. But your idea of using a tcolorbox might be an option.

I've stayed with lualatex and babel as with my answers to your other questions.

The white after the text is basically faked by drawing leaders with a white \vrule at the end of the text. You get some artefacts on screen, but I think it will print OK.

There are a lot of hacks in this though…

MWE

Compile with lualatex.

\documentclass{article}

\usepackage[nil,bidi=basic-r,layout=counters]{babel}
\babelprovide[import=ar,mapdigits,main]{arabic}
\babelprovide[import=en,language=Default]{english}
\babelfont{rm}{Latin Modern Roman}
\babelfont[arabic]{rm}{Amiri}

\usepackage{ulem}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{hl}[1][]{%
  frame empty, sharp corners, top=0pt, right=0pt, bottom=0pt, left=0pt,
  boxsep=0pt, toprule=0pt, rightrule=0pt, bottomrule=0pt, leftrule=0pt,
  colback=lightgray, fontupper=\bfseries,
  before upper=\selectlanguage{arabic}%
    {\color{white}\vrule width 1.5em},
  after upper={{\color{white}\leaders\vrule\hfill\null}},
  before=\noindent\begingroup\selectlanguage{english},after=\endgroup,
#1}

\usepackage[hidelinks,colorlinks=true,allcolors=blue]{hyperref}

\begin{document}
لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق رقم (2)
لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة بفصول الكتاب
المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.

\begin{hl}
  \uline{لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق
  رقم (2) لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة
  بفصول الكتاب المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.}
\end{hl}

لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق رقم (2)
لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة بفصول الكتاب
المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.

\begin{hl}[colback=yellow]
  \uline{لتسهيل عملية الدراسة، من المحبب ان يبدأ الطالب بالدراسة من خلال ملحق
  رقم (2) لإحتوائه على أهم القواعد اللغوية المطلوبة لإتقان المواضيع الموضحة
  بفصول الكتاب المختلفة وذلك تسهيلاً على الطالب حتى يتجنب كثرة التفاصيل.}
\end{hl}

\end{document}

MWE output

  • Is there a way to make the highlight color a function in the command so that I may not need to redefine a new command for each HL color? – Silva Sep 4 at 22:45
  • 1
    @Silva, yes, this is straight forward. See my updated answer. – David Purton Sep 5 at 1:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.