Как настроить 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: Изменить язык
Перейдите в меню и нажмите " Инструменты"> "Параметры", затем выберите " Языки" в разделе " Настройки языка"
Изображение показывает первый шаг
Здесь измените следующее:
- Настройка локали - измените это на арабский (или любой другой язык).
- CTL - установите также арабский (только если вы используете язык, который использует сложный текстовый макет)
- Установите флажок "Только для текущего документа", если вы хотите, чтобы это изменение только для редактируемого документа
- Нажмите "ОК" и сохраните настройки. На этом этапе убедитесь, что шрифт, используемый в поле номера страницы, поддерживает язык. В моем случае шрифт Time New Roman имеет арабские цифры символов (۰۱۲۳)
ШАГ 2: Выберите тип поля
Теперь выделите текст в поле номера страницы (убедитесь, что шрифт правильный), а затем в меню выберите: "Правка"> "Поля".
Изображение показывает второй шаг
В открывшемся окне "Редактировать поля" измените Формат на Собственную нумерацию (как показано выше). Нажмите "ОК", чтобы сохранить и закрыть.
Вы сделали!
Вы можете сделать это просто в простых шагах. в строке меню найдите « Инструменты », в конце панели « Инструменты » мы можем найти параметры . На странице параметров у нас есть две стороны, слева мы видим « Настройки языка », нажав на треугольник, у нас есть три параметра, и мы выбираем первый, « Языки» . Теперь в правой части страницы у нас есть три разные части, во второй ( Языки по умолчанию для документа ) мы должны выбрать сложный текстовый макет, в его параметрах мы выбираем желаемый язык (персидский).
Я нашел решение в этом посте суперпользователя , в одном из ответов , начинающихся с
В libreOffice существует несколько стилей формата номеров страниц на выбор, например, латинский, арабский и т. д., доступ к которым можно получить, выбрав «Вставка»> «Поля»> «Другое» на вкладке «Документ» диалогового окна «Поля». В списке есть страница и есть раздел Формат, из которого можно выбрать нужный....
Смотрите прикрепленный скриншот