如何设置 LibreOffice 使用波斯语/阿拉伯-印度语/印地语页码?

如何设置 LibreOffice 使用波斯语/阿拉伯-印度语/印地语页码?

我希望 LibreOffice Impress 中的页码使用波斯语。这意味着 ۰۱۲۳۴۵۶۷۸۹ 而不是 0123456789。

答案1

这些设置适用于所有 LibreOffice 应用程序和文档,因此您可以从任何一组应用程序进行更改。

更改语言环境

您可以将波斯语设置为所有文档的默认语言,或者仅将当前文档的默认语言设置为波斯语。

在菜单栏中,工具 >> 选项,然后展开语言设定并点击语言

在此处输入图片描述

改变区域设置到波斯语。 (请注意,这与上面的用户界面设置无关。)

改变细胞毒性T淋巴细胞默认 - 波斯语. 这也会自动检查适用于复杂文本布局 (CTL)以下。CTL 处理从右到左的语言。

查看仅适用于当前文档根据您的喜好。

更改全局数字样式

点击复杂的文本布局并将数字更改为印地语. (此屏幕截图中未显示)

使用插入>>页码显示页眉/页脚对话框以便向幻灯片添加页码。

将数字设置为印地语语言设置中的“阿拉伯数字”功能可让您使用“阿拉伯”数字,而无需使用 Ibus 等输入法编辑器。当然,在这种情况下,阿拉伯数字是1,2,3...

幻灯片页脚页码功能中可以使用印地语数字吗没有把每个数字都改成印地语?

简短回答:不能通过 GUI 设置。除了全局数字样式设置外,似乎没有任何方法可以修改插入页码的功能。

有趣的是,页脚可让您轻松更改日期转换为波斯语。我相信页码不能以类似的方式更改,因为页码似乎是从与打印机配合使用的功能中提取的。

解决方案是完全不使用内置页脚页码,而是在同一区域插入您自己的文本形状,并按您想要的方式设置文本。对于少量幻灯片,这还不算太糟;但如果幻灯片数量太多,就不可行了。

解决方案问题是使用 LibreOffice Basic 宏为您插入页码。有关 LibreOffice 宏的简要概述以及如何在文档中使用它们,请参阅这个答案

以下是宏代码:

Sub AddPersianPageNumbers

    Dim Doc as Object
    Set Doc = ThisComponent

    'Get the collection of DrawingPages
    Dim DrwPages as Object
    Set DrwPages = Doc.getDrawPages()

    Dim DrwPg as Object
    Dim TxtShp as Object
    Dim TxtPoint as New com.sun.star.awt.Point

    Dim i as Long
    Dim k as Long

    Dim strNum as string
    Dim strI as string
    Dim idx as long
    Dim uni as string

    'Each slide has it's own Drawpage, so go through the collection
    For i = 0 to DrwPages.getCount() - 1

        'Get the Drawing Page and create a TextShape    
        Set DrwPg = DrwPages.getByIndex(i)
        Set TxtShp = Doc.createInstance("com.sun.star.drawing.TextShape")

        'Add it to the Drawing Page (must do first)
        DrwPg.Add(TxtShp)   

        TxtPoint.X = DrwPg.Width * 0.9
        TxtPoint.Y = DrwPg.Height * 0.9

        TxtShp.Position = TxtPoint  
        TxtShp.TextAutoGrowWidth = true
        TxtShp.TextAutoGrowHeight = true

        'Just changing the font is not enough since it will still show as Arabic
        'You can change the locale and ComplexText props for just this para
        'but I couldn't find a way to set the para to be seen as ComplexText
        'That would have been elegant, but instead just convert
        'the page number to a string converted from the Unicode code points 

        strI = Cstr(i + 1)

        for k = 1 to Len(strI)
            uni =  "&H66" & mid(strI, k, 1) 'Hindi numeral code points are ascii+660
            strNum = strNum & Chr(uni)
        next k

        TxtShp.SetString(strNum)
        strNum = ""

        TxtShp.CharFontName = "Lohit Hindi"

    Next i  


End Sub

答案2

工具->选项->语言设置->复杂文本布局
常规选项将其设置为印地语
这是屏幕截图

答案3

这可以通过两个步骤轻松完成。

步骤 1:更改区域设置

进入菜单并点击:工具 > 选项,然后选择语言在下面语言设定。

图片显示第一步

此处更改以下内容:

  1. 区域设置 - 将其更改为阿拉伯语(或您想要的任何语言)。
  2. CTL-也将其设置为阿拉伯语(仅当您使用的语言使用复杂文本布局时)
  3. 如果您希望此更改仅针对正在编辑的文档,请勾选“仅适用于当前文档”复选框
  4. 单击“确定”并保存设置。此时,请确保页码字段中使用的字体支持该语言。在我的例子中,Time New Roman 字体有阿拉伯数字字符 (۰۱۲۳)

步骤 2:选择字段类型

现在选择页码字段中的文本(确保字体正确),然后从菜单中选择:编辑>字段

图片显示第二步

在打开的“编辑字段”窗口中,更改格式本机编号(如上图)。点击‘确定’保存并关闭。

你完成了!

答案4

我找到了解决方案这篇超级用户帖子, 在答案之一以...开头

在 libreOffice 中,有许多页码格式样式可供选择,例如罗马、阿拉伯等,可以从“字段”对话框的“文档”选项卡中的“插入”>“字段”>“其他”访问。列表中有一个页面,并且有一个“格式”部分,您可以从中选择所需的...

请参阅所附截图

在此处输入图片描述

相关内容