4

When you create a multilevel list in Microsoft Word 2013 (or earlier versions), then by default the list numbers (e.g. 3.2.4, where 3 here is the top most level) appears correctly for Left-to-Right languages. However, for Arabic, I need the number to appear mirrored: 4.2.3. How to do this? I tried defining new list but it does not work properly.

Any ideas?

djsmiley2kStaysInside
  • 6,943
  • 2
  • 36
  • 48
student1
  • 151

4 Answers4

1

Monika's answer didn't work for me in MS Word 2019, it does not accept inserting Unicode character in Multilevel List dialog (I tried both Alt+200F and 200F then Alt+X methods).

So I tried adding an space after separator character (the .) in Multilevel List dialog. It fixes the RTL problem, but there will be an empty space between numbers.

Things will get a little tricky if you want to get rid of that space. You need to use a Zero-width space character instead. It's a totally invisible character but behaves like a normal space. Follow these steps:

  1. In your document type some word (like "سلام")
  2. Put the cursor in the middle of the word
  3. From "Insert" tab click on "Symbol" and then click "More Symbols ..."
  4. In "Symbol" window go to "Special Characters" tab
  5. Find and select "No-Width Non Break" in the list and click "Insert"

Your first word in document must look like "سل ام" so far. Although letters are right next to each other, but there's something there between them that beaks the word, you need to copy that to the clipboard!

  1. Use Shift and arrow keys to select that, you won't see anything selected, you just need to feel it
  2. Press Ctrl+C to copy the character
  3. Form "Home" tab click on "Multilevel List" and then "Define New Multilevel List ..."
  4. In "Enter Formatting ..." text box, put cursor after separator character(s) and press Ctrl+V to paste, again, you won't see anything pasted
  5. Click OK
saastn
  • 85
1

What I understood from your question is that when you create a numbered list and want to change its' direction to RTL, the content probably looked something like ( نص عربيl4. ) as the number 14 is touching the text instead of having the dot as a separator. If that's your case then try this:

  1. Simply highlight the text you want to change its' direction.

  2. Right click to bring the options menu

  3. Choose the paragraph option

  4. In the first page in the general section, choose the direction of the text "right-to-left".

The highlighted lines will change, It's possible to show bullet points from the same list in different directions but I don't think you can split a text from the same line and show each part in a different direction.

0

Here's an example of how to do it for a depth-2 list:

  • Click the menu part of the Multilevel List ribbon menu-button.
  • Select "Define New Multilevel list".
  • Go to level 2 of your list (there's a listbox of the 9 levels).
  • In the 'Formatting for Number' textbox, place the cursor after the dot (.) character.
  • Insert a Unicode RLM (Right-to-Left Mark; U+200F). Here's how you can do that.
  • Accept the changes you made.

That's it, now the numbers are in right-to-left order. Obviously you would need to do this for levels 3, 4, etc. with multiple RLMs.

einpoklum
  • 10,666
-1

It can be easily done by VBA as follows, separator is "/" if other is needed, you can replace it

Sub rightToLiftMultiLevelList()
'
' Muhammad Abu-gabal
' Arabic Multilevel list, separator ="/"
' ChrW(8207) is the right to left character, unicode U+200F
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = "%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.3)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 1"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(2)
        .NumberFormat = "%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.4)
        .TabPosition = wdUndefined
        .ResetOnHigher = 1
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 2"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(3)
        .NumberFormat = "%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.5)
        .TabPosition = wdUndefined
        .ResetOnHigher = 2
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 3"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(4)
        .NumberFormat = "%4/%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.6)
        .TabPosition = wdUndefined
        .ResetOnHigher = 3
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 4"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(5)
        .NumberFormat = "%5/%4/%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.7)
        .TabPosition = wdUndefined
        .ResetOnHigher = 4
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 5"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(6)
        .NumberFormat = "%6/%5/%4/%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.8)
        .TabPosition = wdUndefined
        .ResetOnHigher = 5
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 6"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(7)
        .NumberFormat = "%7/%6/%5/%4/%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(0.9)
        .TabPosition = wdUndefined
        .ResetOnHigher = 6
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 7"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(8)
        .NumberFormat = "%8/%7/%6/%5/%4/%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(1)
        .TabPosition = wdUndefined
        .ResetOnHigher = 7
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 8"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(9)
        .NumberFormat = "%9/%8/%7/%6/%5/%4/%3/%2/%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = InchesToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = InchesToPoints(1.1)
        .TabPosition = wdUndefined
        .ResetOnHigher = 8
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
            .SizeBi = wdUndefined
            .NameBi = ""
            .BoldBi = wdUndefined
            .ItalicBi = wdUndefined
        End With
        .LinkedStyle = "Heading 9"
    End With
    ListGalleries(wdOutlineNumberGallery).ListTemplates(1).Name = ""
    Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdOutlineNumberGallery).ListTemplates(1), _
        ContinuePreviousList:=True, ApplyTo:=wdListApplyToWholeList, _
        DefaultListBehavior:=wdWord10ListBehavior
End Sub