Convert arabic,greek and chinese fonts with punctuation and spaces
This commit is contained in:
parent
90740a0da2
commit
717eccdc4a
1 changed files with 13 additions and 10 deletions
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Clean" script:language="StarBasic">Sub mark78
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Clean" script:language="StarBasic">Sub mark79
|
||||
|
||||
End Sub
|
||||
|
||||
|
@ -295,7 +295,8 @@ Private Sub unicodeSymbolsConversion
|
|||
|
||||
convertWLLatin2IPHAstra
|
||||
convertSymbol
|
||||
|
||||
Dim sharedMarksRegExp As String
|
||||
sharedMarksRegExp = "([\u0020-\u002f\u003a\u003b\u00A0\u2010\u2013\u2014]+)?"
|
||||
Dim newFontName As String
|
||||
newFontName = "IPH Astra Serif"
|
||||
Dim RAtts(2) as new com.sun.star.beans.PropertyValue
|
||||
|
@ -324,7 +325,7 @@ Private Sub unicodeSymbolsConversion
|
|||
RAtts(0).Value = newFontName
|
||||
RAtts(1).Value = newFontName
|
||||
RAtts(2).Value = newFontName
|
||||
unicodeConversionEverywhere("[\u0600-\u06ff\ufb50-\ufdff\ufe70-\ufeff]+",RAtts)
|
||||
unicodeConversionEverywhere(sharedMarksRegExp & "[\u0600-\u06ff\ufb50-\ufdff\ufe70-\ufeff]+" & sharedMarksRegExp ,RAtts)
|
||||
|
||||
'Greek Tinos
|
||||
newFontName = "Tinos"
|
||||
|
@ -333,7 +334,7 @@ Private Sub unicodeSymbolsConversion
|
|||
RAtts(2).Value = newFontName
|
||||
'Greek and Coptic 0370—03FF
|
||||
'Greek extended 1F00—1FFF
|
||||
unicodeConversionEverywhere("[\u0370-\u03ff\u1f00-\u1fff]+",RAtts)
|
||||
unicodeConversionEverywhere(sharedMarksRegExp & "[\u0370-\u03ff\u1f00-\u1fff]+" & sharedMarksRegExp,RAtts)
|
||||
|
||||
|
||||
'DejaVu Sans Mathematical operators
|
||||
|
@ -354,7 +355,7 @@ Private Sub unicodeSymbolsConversion
|
|||
'\u21d2 двойная стрелка вправо
|
||||
'3000—303F Символы и пунктуация ККЯ
|
||||
|
||||
unicodeConversionEverywhere("[\u21d2\u302b\uff00-\uffef]+",RAtts)
|
||||
unicodeConversionEverywhere(sharedMarksRegExp & "[\u21d2\u302b\uff00-\uffef]+" & sharedMarksRegExp,RAtts)
|
||||
|
||||
newFontName = "Noto Serif CJK SC"
|
||||
RAtts(0).Value = newFontName
|
||||
|
@ -364,7 +365,7 @@ Private Sub unicodeSymbolsConversion
|
|||
'\u4e00—\u9fff Унифицированные идеограммы ККЯ
|
||||
'\u3400-\u4db7\u4e00—\u9ff1 Найдены в Noto Sans CJK SC
|
||||
'\u3000-\u302a\u302c-\u303f В Noto Sans CJK SC
|
||||
unicodeConversionEverywhere("[\u3000-\u302a\u302c-\u303f\u3400-\u4db7\u4e00-\u9ff1]+",RAtts)
|
||||
unicodeConversionEverywhere(sharedMarksRegExp & "[\u3000-\u302a\u302c-\u303f\u3400-\u4db7\u4e00-\u9ff1]+" & sharedMarksRegExp,RAtts)
|
||||
|
||||
End Sub
|
||||
|
||||
|
@ -448,6 +449,8 @@ Private Sub fixFrequentMistakes
|
|||
config = initRedactionConfiguration()
|
||||
Dim NBSP As String
|
||||
Dim space As String
|
||||
Dim latinPlusCyrillicLettersRegExp As String
|
||||
latinPlusCyrillicLettersRegExp = "[\u0041-\u005a\u0061-\u007a\u0410-\u044f]"
|
||||
NBSP = " "
|
||||
space = " "
|
||||
'Не должно быть символов табуляции
|
||||
|
@ -465,18 +468,18 @@ Private Sub fixFrequentMistakes
|
|||
'Не должно быть пробелов после скобок [({ и кавычек «„
|
||||
AskAndReplace("(?<=[\(\[\{«„])[:space:]","")
|
||||
'Между буквами среднее тире должно обрамляться пробелами
|
||||
AskAndReplace("(?<=[:alpha:])–(?=[:alpha:])",NBSP & "–" & NBSP)
|
||||
AskAndReplace("(?<=" & latinPlusCyrillicLettersRegExp & ")–(?=" & latinPlusCyrillicLettersRegExp & ")",NBSP & "–" & NBSP)
|
||||
'Между буквами дефис-минус, цифровое тире и длинное тире заменяется на среднее тире
|
||||
AskAndReplace("(?<=[:alpha:][:space:])[-‒—−](?=[:space:][:alpha:])","–")
|
||||
AskAndReplace("(?<=" & latinPlusCyrillicLettersRegExp & "[:space:])[-‒—−](?=[:space:]" & latinPlusCyrillicLettersRegExp & ")","–")
|
||||
'Между двумя цифрами и тире не долнжо быть пробелов. А также тире должно быть цифровым.
|
||||
'Также проверяем, что перед искомым тире нет DOI
|
||||
'''''AskAndReplace("(?<!DOI[0-9. /XVI:-‒–—−-]{1,50})(?<=[:digit:])(?:[:space:])?[-‒–—−](?:[:space:])?(?=[:digit:])","‒")
|
||||
'Между двумя римскими цифрами и тире между ними не долнжо быть пробелов. А также тире должно быть средним
|
||||
AskAndReplace("(?<=[MDCLXVI])(?:[:space:])?[-‒–—−](?:[:space:])?(?=[MDCLXVI])","–")
|
||||
'Между буквой и угловой открывающейся скобкой должен быть пробел
|
||||
AskAndReplace("(?<=[:alpha:])<(?=…>)",space & "<")
|
||||
AskAndReplace("(?<=" & latinPlusCyrillicLettersRegExp & ")<(?=…>)",space & "<")
|
||||
'Между угловой закрывающейся скобкой и буквой должен быть пробел
|
||||
AskAndReplace("(?<=<…)>(?=[:alpha:])",">" & space)
|
||||
AskAndReplace("(?<=<…)>(?=" & latinPlusCyrillicLettersRegExp & ")",">" & space)
|
||||
|
||||
If config.getPropertyValue("fixes_russian_iph") = "true" Then
|
||||
'между N. Y. не должно быть пробела
|
||||
|
|
Loading…
Add table
Reference in a new issue