完全新手。我使用 Pandoc 创建了一个 Word 文档,但阿拉伯语输出需要一些修改。浏览在线文档和帖子,我得到了以下代码:
Sub pandoc_RTL()
'
' pandoc_RTL Macro
'
'
Dim objPara As Paragraph
For Each objPara In ActiveDocument.Paragraphs
If objPara.Style = "body AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "hadith AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "hadith in-list AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "athar AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "body AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
Next
End Sub
我的问题:
- 正则表达式是避免重复的唯一方法,因为所有必需的样式都以"AR"结尾?
- 除了遍历所有段落之外,有没有更快的方法来做到这一点?
您只需要修改样式。此功能的单选按钮可通过已启用 RTL 语言的任何文档中的"管理样式>修改>格式>段落>缩进和间距"访问。无论如何,使用 VBA:
Dim i As Long, ArrStl
ArrStl = Array("body AR", "hadith AR", "hadith in-list AR", "athar AR")
For i = 0 To UBound(ArrStl)
ActiveDocument.Styles(ArrStl(i)).ParagraphFormat.ReadingOrder = wdReadingOrderRtl
Next
做。