Как настроить LibreOffice для использования номеров страниц на персидском, арабском и индийском языках?

Я хочу, чтобы номера моих страниц в LibreOffice Impress были на персидском языке. Что означает ۰۱۲۳۴۵۶۷۸۹ вместо 0123456789.

5 ответов

Решение

Эти параметры работают во всех приложениях и документах LibreOffice, поэтому вы можете вносить изменения из любого набора приложений.

Смена локали

Вы можете установить персидский язык по умолчанию для всех ваших документов или только для текущего документа.

В строке меню Сервис >> Параметры, затем разверните Настройки языка и нажмите Языки

введите описание здесь

Измените локаль на фарси. (Обратите внимание, что это не зависит от настройки для пользовательского интерфейса выше.)

Измените CTL по умолчанию - фарси. Это также автоматически проверит Включено для сложной текстовой разметки (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

Инструменты-> Параметры -> Языковые настройки -> Сложный текстовый макет
общие параметры установить его на хинди
и вот скриншот этого

Это можно легко сделать в два этапа.

ШАГ 1: Изменить язык

Перейдите в меню и нажмите " Инструменты"> "Параметры", затем выберите " Языки" в разделе " Настройки языка"

Изображение показывает первый шаг

Здесь измените следующее:

  1. Настройка локали - измените это на арабский (или любой другой язык).
  2. CTL - установите также арабский (только если вы используете язык, который использует сложный текстовый макет)
  3. Установите флажок "Только для текущего документа", если вы хотите, чтобы это изменение только для редактируемого документа
  4. Нажмите "ОК" и сохраните настройки. На этом этапе убедитесь, что шрифт, используемый в поле номера страницы, поддерживает язык. В моем случае шрифт Time New Roman имеет арабские цифры символов (۰۱۲۳)

ШАГ 2: Выберите тип поля

Теперь выделите текст в поле номера страницы (убедитесь, что шрифт правильный), а затем в меню выберите: "Правка"> "Поля".

Изображение показывает второй шаг

В открывшемся окне "Редактировать поля" измените Формат на Собственную нумерацию (как показано выше). Нажмите "ОК", чтобы сохранить и закрыть.

Вы сделали!

Вы можете сделать это просто в простых шагах. в строке меню найдите « Инструменты », в конце панели « Инструменты » мы можем найти параметры . На странице параметров у нас есть две стороны, слева мы видим « Настройки языка », нажав на треугольник, у нас есть три параметра, и мы выбираем первый, « Языки» . Теперь в правой части страницы у нас есть три разные части, во второй ( Языки по умолчанию для документа ) мы должны выбрать сложный текстовый макет, в его параметрах мы выбираем желаемый язык (персидский).

Я нашел решение в этом посте суперпользователя , в одном из ответов , начинающихся с

В libreOffice существует несколько стилей формата номеров страниц на выбор, например, латинский, арабский и т. д., доступ к которым можно получить, выбрав «Вставка»> «Поля»> «Другое» на вкладке «Документ» диалогового окна «Поля». В списке есть страница и есть раздел Формат, из которого можно выбрать нужный....

Смотрите прикрепленный скриншот

Другие вопросы по тегам