Compare commits
47 commits
Author | SHA1 | Date | |
---|---|---|---|
ca46b20e41 | |||
e62d44cd89 | |||
a5ac4cbb43 | |||
6d138ae938 | |||
d06657e3ee | |||
7a389b1b17 | |||
fa35152083 | |||
05041fc38b | |||
82dc861e82 | |||
6843f73923 | |||
1f4f9d757d | |||
075bfc85aa | |||
b0b5460032 | |||
797ff48837 | |||
fe1fc573eb | |||
82c63c82ca | |||
941ac1c9cc | |||
5dcf629d0d | |||
1eaa629949 | |||
be702bc60f | |||
f39f25b053 | |||
5bb9600439 | |||
f58b4f58de | |||
48ebe71c8e | |||
ab552a70db | |||
8785038720 | |||
8611814942 | |||
2b37cfe542 | |||
d05aed70d6 | |||
79f8164650 | |||
c5dfb15133 | |||
13ba8d4f0c | |||
c44890068b | |||
c5da7ca352 | |||
8411b36a8f | |||
25372f07a2 | |||
b8d2fc8361 | |||
13d70679cc | |||
ff35128df4 | |||
383c0c832d | |||
f2cf656958 | |||
1ee8b5f951 | |||
f889f0edb7 | |||
f7bf8fd316 | |||
f912e831a0 | |||
71f52c5c01 | |||
58bab11323 |
84
Addons.xcu
|
@ -3,6 +3,10 @@
|
||||||
<node oor:name="AddonUI">
|
<node oor:name="AddonUI">
|
||||||
<node oor:name="OfficeToolBar">
|
<node oor:name="OfficeToolBar">
|
||||||
<node oor:name="pro.litvinovg.ePublishing.panel" oor:op="replace">
|
<node oor:name="pro.litvinovg.ePublishing.panel" oor:op="replace">
|
||||||
|
<prop oor:name="Docked" oor:op="fuse"><value>true</value></prop>
|
||||||
|
<prop oor:name="HideFromToolbarMenu" oor:op="fuse"><value>false</value></prop>
|
||||||
|
<prop oor:name="Locked" oor:op="fuse"><value>false</value></prop>
|
||||||
|
|
||||||
<node oor:name="buttonShrinkText" oor:op="replace">
|
<node oor:name="buttonShrinkText" oor:op="replace">
|
||||||
<prop oor:name="Context" oor:type="xs:string">
|
<prop oor:name="Context" oor:type="xs:string">
|
||||||
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
|
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
|
||||||
|
@ -60,10 +64,54 @@
|
||||||
<value>_self</value>
|
<value>_self</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
|
<node oor:name="buttonEndnotesConversion" oor:op="replace">
|
||||||
|
<prop oor:name="Context" oor:type="xs:string">
|
||||||
|
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="Title" oor:type="xs:string">
|
||||||
|
<value xml:lang="ru">Конвертация концевых сносок</value>
|
||||||
|
<value xml:lang="en">Endnotes conversion</value>
|
||||||
|
<value xml:lang="fr">Conversion de notes de fin</value>
|
||||||
|
<value xml:lang="sr">Конверзија крајњих белешки</value>
|
||||||
|
<value xml:lang="hr">konverzija završnih bilješki</value>
|
||||||
|
<value xml:lang="bs">konverzija završnih bilješki</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="URL" oor:type="xs:string">
|
||||||
|
<value>macro:///ePublishing.Endnotes.convertEndnotesExecution</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="Target" oor:type="xs:string">
|
||||||
|
<value>_self</value>
|
||||||
|
</prop>
|
||||||
|
</node>
|
||||||
|
<node oor:name="balanceTail" oor:op="replace">
|
||||||
|
<prop oor:name="Context" oor:type="xs:string">
|
||||||
|
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="Title" oor:type="xs:string">
|
||||||
|
<value xml:lang="ru">Балансировка хвоста</value>
|
||||||
|
<value xml:lang="fr">Équilibrer la dernière ligne</value>
|
||||||
|
<value xml:lang="en">Balance the last line </value>
|
||||||
|
<value xml:lang="sr">Уравнотежите последњу линију</value>
|
||||||
|
<value xml:lang="hr">Uravnotežite posljednji redak</value>
|
||||||
|
<value xml:lang="bs">Uravnotežite posljednji redak</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="URL" oor:type="xs:string">
|
||||||
|
<value>macro:///ePublishing.Archive.balanceCurParaLastLine</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="Target" oor:type="xs:string">
|
||||||
|
<value>_self</value>
|
||||||
|
</prop>
|
||||||
|
</node>
|
||||||
|
|
||||||
|
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node oor:name="OfficeToolBar">
|
<node oor:name="OfficeToolBar">
|
||||||
<node oor:name="pro.litvinovg.ePublishing.makeuppanel" oor:op="replace">
|
<node oor:name="pro.litvinovg.ePublishing.makeuppanel" oor:op="replace">
|
||||||
|
<prop oor:name="Docked" oor:op="fuse"><value>true</value></prop>
|
||||||
|
<prop oor:name="HideFromToolbarMenu" oor:op="fuse"><value>false</value></prop>
|
||||||
|
<prop oor:name="Locked" oor:op="fuse"><value>false</value></prop>
|
||||||
|
|
||||||
<node oor:name="percentPlus" oor:op="replace">
|
<node oor:name="percentPlus" oor:op="replace">
|
||||||
<prop oor:name="Context" oor:type="xs:string">
|
<prop oor:name="Context" oor:type="xs:string">
|
||||||
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
|
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
|
||||||
|
@ -151,7 +199,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/paragraph.png</value>
|
<value>%origin%/icons/paragraph.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -161,7 +209,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/links.png</value>
|
<value>%origin%/icons/links.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -171,7 +219,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/press_text.png</value>
|
<value>%origin%/icons/press_text.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -182,7 +230,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/incChar.png</value>
|
<value>%origin%/icons/incChar.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -192,7 +240,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/decChar.png</value>
|
<value>%origin%/icons/decChar.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -202,7 +250,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/incKern.png</value>
|
<value>%origin%/icons/incKern.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -212,10 +260,32 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/decKern.png</value>
|
<value>%origin%/icons/decKern.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
<node oor:name="convert-endnotes" oor:op="replace">
|
||||||
|
<prop oor:name="URL" oor:type="xs:string">
|
||||||
|
<value>macro:///ePublishing.Endnotes.convertEndnotesExecution</value>
|
||||||
|
</prop>
|
||||||
|
<node oor:name="UserDefinedImages">
|
||||||
|
<prop oor:name="ImageBigURL">
|
||||||
|
<value>%origin%/icons/endnotes.svg</value>
|
||||||
|
</prop>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node oor:name="balance-tail" oor:op="replace">
|
||||||
|
<prop oor:name="URL" oor:type="xs:string">
|
||||||
|
<value>macro:///ePublishing.Archive.balanceCurParaLastLine</value>
|
||||||
|
</prop>
|
||||||
|
<node oor:name="UserDefinedImages">
|
||||||
|
<prop oor:name="ImageBigURL">
|
||||||
|
<value>%origin%/icons/tail.svg</value>
|
||||||
|
</prop>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
xmlns:dep="http://openoffice.org/extensions/description/2006"
|
xmlns:dep="http://openoffice.org/extensions/description/2006"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<identifier value="pro.litvinovg.epublishing" />
|
<identifier value="pro.litvinovg.epublishing" />
|
||||||
<version value="0.6.19" />
|
<version value="0.7.16" />
|
||||||
<platform value="all" />
|
<platform value="all" />
|
||||||
<display-name>
|
<display-name>
|
||||||
<name lang="ru">Инструменты для создания электронных изданий</name>
|
<name lang="ru">Инструменты для создания электронных изданий</name>
|
||||||
|
@ -33,8 +33,8 @@
|
||||||
</extension-description>
|
</extension-description>
|
||||||
|
|
||||||
<icon>
|
<icon>
|
||||||
<default xlink:href="icons/addon_icon.png" />
|
<default xlink:href="icons/addon_icon.svg" />
|
||||||
<high-contrast xlink:href="icons/addon_icon.png" />
|
<high-contrast xlink:href="icons/addon_icon.svg" />
|
||||||
</icon>
|
</icon>
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Archive" script:language="StarBasic" script:moduleType="normal">Sub archMark20
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Archive" script:language="StarBasic" script:moduleType="normal">Sub archMark29
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Public Const MAX_CHAR_KERNING = 15
|
||||||
|
Public Const MIN_CHAR_KERNING = -10
|
||||||
|
Public Const MIN_SPACING_TO_SHRINK = 500
|
||||||
|
|
||||||
Sub resetNotesStyle
|
Sub resetNotesStyle
|
||||||
Dim oDescriptor As Object
|
Dim oDescriptor As Object
|
||||||
Dim dispatcher As Object
|
Dim dispatcher As Object
|
||||||
|
@ -168,13 +172,16 @@ sub convertIndesignPageBreaks
|
||||||
Exit Sub
|
Exit Sub
|
||||||
EndIf
|
EndIf
|
||||||
turnOffTracking()
|
turnOffTracking()
|
||||||
|
setZoomToSpeedUpTasks()
|
||||||
|
|
||||||
|
balanceFootNotes()
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
||||||
oViewCursor.jumpToFirstPage
|
oViewCursor.jumpToFirstPage
|
||||||
|
|
||||||
Dim oSearch As Object
|
Dim oSearch As Object
|
||||||
Dim oTextCursor As Object
|
Dim oTextCursor As Object
|
||||||
|
Dim testCurs As Object
|
||||||
Dim firstLowercase As Boolean
|
Dim firstLowercase As Boolean
|
||||||
Dim firstBreak As Boolean
|
Dim firstBreak As Boolean
|
||||||
firstBreak = true
|
firstBreak = true
|
||||||
|
@ -186,6 +193,7 @@ sub convertIndesignPageBreaks
|
||||||
Dim nextPara As Object
|
Dim nextPara As Object
|
||||||
Dim prevPara As Object
|
Dim prevPara As Object
|
||||||
Dim nextParaFirstCharacter As String
|
Dim nextParaFirstCharacter As String
|
||||||
|
Dim stringContents As String
|
||||||
firstLowercase = false
|
firstLowercase = false
|
||||||
|
|
||||||
oSearch = ThisComponent.createSearchDescriptor()
|
oSearch = ThisComponent.createSearchDescriptor()
|
||||||
|
@ -198,7 +206,15 @@ sub convertIndesignPageBreaks
|
||||||
oTextCursor.gotoRange(oFound,false)
|
oTextCursor.gotoRange(oFound,false)
|
||||||
oTextCursor.gotoStartOfParagraph(false)
|
oTextCursor.gotoStartOfParagraph(false)
|
||||||
oTextCursor.gotoEndOfParagraph(true)
|
oTextCursor.gotoEndOfParagraph(true)
|
||||||
|
testCurs = oTextCursor.Text.createTextCursorByRange(oTextCursor.End)
|
||||||
|
testCurs.goRight(1,false)
|
||||||
|
testCurs.gotoEndOfParagraph(true)
|
||||||
|
'In case two page breaks go together
|
||||||
|
stringContents = testCurs.String
|
||||||
|
If stringContents <> pageBreakMarker Then
|
||||||
oTextCursor.goRight(1,true)
|
oTextCursor.goRight(1,true)
|
||||||
|
EndIf
|
||||||
|
|
||||||
oTextCursor.String = ""
|
oTextCursor.String = ""
|
||||||
oTextCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
|
oTextCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
|
||||||
'Go to Start of new paragraph to shrink prev page if necessary
|
'Go to Start of new paragraph to shrink prev page if necessary
|
||||||
|
@ -216,6 +232,7 @@ sub convertIndesignPageBreaks
|
||||||
Wait 100
|
Wait 100
|
||||||
pageNumber = getPageNumber(oTextCursor.Text.createTextCursorByRange(oTextCursor.End))
|
pageNumber = getPageNumber(oTextCursor.Text.createTextCursorByRange(oTextCursor.End))
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
'check first character
|
'check first character
|
||||||
oTextCursor.goRight(1,true)
|
oTextCursor.goRight(1,true)
|
||||||
nextPara = oTextCursor.End
|
nextPara = oTextCursor.End
|
||||||
|
@ -246,9 +263,10 @@ sub convertIndesignPageBreaks
|
||||||
EndIf
|
EndIf
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If pageNumber - prevPageNumber < 2 Then
|
|
||||||
|
'If pageNumber - prevPageNumber < 2 Then
|
||||||
'stretchPrevPage(prevPara)
|
'stretchPrevPage(prevPara)
|
||||||
EndIf
|
'EndIf
|
||||||
|
|
||||||
prevPageNumber = pageNumber
|
prevPageNumber = pageNumber
|
||||||
oFound = ThisComponent.findNext(oFound.End, oSearch)
|
oFound = ThisComponent.findNext(oFound.End, oSearch)
|
||||||
|
@ -259,14 +277,16 @@ end Sub
|
||||||
|
|
||||||
Sub configureHeadings
|
Sub configureHeadings
|
||||||
configureArchiveHeading1
|
configureArchiveHeading1
|
||||||
configureOtherArchiveHeadings
|
configureArchiveHeadings()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Sub configureArchiveHeading1
|
Sub configureArchiveHeading1
|
||||||
Dim outline1() As Object
|
Dim outline1() As Object
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
Dim oSavePosition As Object
|
Dim oSavePosition As Object
|
||||||
|
Dim initPosition As Object
|
||||||
|
Dim initPageNum As Integer
|
||||||
|
fixViewCursor()
|
||||||
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
||||||
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
outline1 = getHeadingWithLevel(1)
|
outline1 = getHeadingWithLevel(1)
|
||||||
|
@ -274,33 +294,35 @@ Sub configureArchiveHeading1
|
||||||
Dim pageNumberCursor As Object
|
Dim pageNumberCursor As Object
|
||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
Dim j As Integer
|
Dim j As Integer
|
||||||
Dim initialPageCount As Integer
|
|
||||||
initialPageCount = ThisComponent.currentController.pageCount
|
|
||||||
For i = LBound(outline1) To UBound(outline1)
|
For i = LBound(outline1) To UBound(outline1)
|
||||||
oViewCursor.goToRange(outline1(i), false)
|
oViewCursor.goToRange(outline1(i), false)
|
||||||
oViewCursor.jumpToEndOfPage()
|
oViewCursor.jumpToEndOfPage()
|
||||||
pageNumberCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
initPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
pageNumberCursor.goToStartOfWord(false)
|
initPageNum = oViewcursor.getPage()
|
||||||
startViewPageNum = getPageNumber(pageNumberCursor)
|
|
||||||
|
|
||||||
Do While startViewPageNum = getPageNumber(pageNumberCursor) And initialPageCount = ThisComponent.currentController.pageCount
|
Do While Not isContentPageChanged(initPosition, initPageNum) AND outline1(i).ParaBottomMargin < 10000
|
||||||
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin + 100
|
outline1(i).ParaBottomMargin = outline1(i).ParaBottomMargin + 100
|
||||||
Loop
|
Loop
|
||||||
If outline1(i).ParaTopMargin >= 100 Then
|
Do While isContentPageChanged(initPosition, initPageNum)
|
||||||
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin - 100
|
If outline1(i).ParaBottomMargin < 0 Then
|
||||||
|
Exit Do
|
||||||
EndIf
|
EndIf
|
||||||
|
outline1(i).ParaBottomMargin = outline1(i).ParaBottomMargin - 100
|
||||||
|
Loop
|
||||||
Next i
|
Next i
|
||||||
oViewCursor.goToRange(oSavePosition,false)
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub configureOtherArchiveHeadings
|
Sub configureArchiveHeadings()
|
||||||
Dim outline1() As Object
|
Dim outline1() As Object
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
Dim oSavePosition As Object
|
Dim initPosition As Object
|
||||||
|
Dim initPageNum As Integer
|
||||||
|
Dim savePosition As Object
|
||||||
|
fixViewCursor()
|
||||||
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
||||||
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
savePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
|
||||||
Dim startViewPageNum As Integer
|
|
||||||
Dim pageNumberCursor As Object
|
Dim pageNumberCursor As Object
|
||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
Dim j As Integer
|
Dim j As Integer
|
||||||
|
@ -312,23 +334,25 @@ Sub configureOtherArchiveHeadings
|
||||||
If outline1(i).BreakType <> 4 Then
|
If outline1(i).BreakType <> 4 Then
|
||||||
oViewCursor.goToRange(outline1(i), false)
|
oViewCursor.goToRange(outline1(i), false)
|
||||||
oViewCursor.jumpToEndOfPage()
|
oViewCursor.jumpToEndOfPage()
|
||||||
pageNumberCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
initPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
pageNumberCursor.goToStartOfWord(false)
|
initPageNum = oViewcursor.getPage()
|
||||||
startViewPageNum = getPageNumber(pageNumberCursor)
|
|
||||||
|
|
||||||
Do While startViewPageNum = getPageNumber(pageNumberCursor) And initialPageCount = ThisComponent.currentController.pageCount
|
Do While Not isContentPageChanged(initPosition, initPageNum)
|
||||||
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin + 100
|
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin + 100
|
||||||
If (outline1(i).ParaTopMargin > outline1(i).ParaBottomMargin) Then
|
If (outline1(i).ParaTopMargin > outline1(i).ParaBottomMargin) Then
|
||||||
Exit Do
|
Exit Do
|
||||||
EndIf
|
EndIf
|
||||||
Loop
|
Loop
|
||||||
If outline1(i).ParaTopMargin >= 100 Then
|
Do While isContentPageChanged(initPosition, initPageNum)
|
||||||
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin - 100
|
If outline1(i).ParaBottomMargin < 0 Then
|
||||||
|
Exit Do
|
||||||
EndIf
|
EndIf
|
||||||
|
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin - 100
|
||||||
|
Loop
|
||||||
EndIf
|
EndIf
|
||||||
Next i
|
Next i
|
||||||
Next j
|
Next j
|
||||||
oViewCursor.goToRange(oSavePosition,false)
|
oViewCursor.goToRange(savePosition,false)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
@ -351,7 +375,7 @@ Sub stretchPrevPage()
|
||||||
Dim curPara As Object
|
Dim curPara As Object
|
||||||
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
oViewCursor = thisComponent.getCurrentController.getViewCursor
|
||||||
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
oViewCursor.goToRange(prevPara, false)
|
|
||||||
'oViewCursor.goToStartOfLine(false)
|
'oViewCursor.goToStartOfLine(false)
|
||||||
pageNumberCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
pageNumberCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
pageNumberCursor.goToStartOfWord(false)
|
pageNumberCursor.goToStartOfWord(false)
|
||||||
|
@ -434,18 +458,80 @@ Sub stretchPrevPage()
|
||||||
Next i
|
Next i
|
||||||
Exit Sub
|
Exit Sub
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
oViewCursor.goToRange(oSavePosition,false)
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub balanceCurParaLastLine()
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim paraEnd As Object
|
||||||
|
Dim success As Boolean
|
||||||
|
Dim adjustType As Integer
|
||||||
|
fixViewCursor()
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.ParaIsHyphenation = true
|
||||||
|
success = balanceParaTail(oViewCursor.Start, false)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub adjustLastLineCurPara()
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim paraEnd As Object
|
||||||
|
Dim success As Boolean
|
||||||
|
Dim adjustType As Integer
|
||||||
|
Dim hyph As Boolean
|
||||||
|
fixViewCursor()
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oTextCursor = oViewCursor.Text.CreateTextCursorByRange(oViewCursor)
|
||||||
|
paraEnd = getParaEnd(oTextCursor)
|
||||||
|
oTextCursor.goToRange(paraEnd,false)
|
||||||
|
oTextCursor.goLeft(1,true)
|
||||||
|
If (oTextCursor.String = " ") Then
|
||||||
|
oTextCursor.String = ""
|
||||||
|
EndIf
|
||||||
|
adjustType = oTextCursor.ParaAdjust
|
||||||
|
hyph = oTextCursor.ParaIsHyphenation
|
||||||
|
oTextCursor.ParaIsHyphenation = true
|
||||||
|
success = balanceParaTail(oTextCursor.Start, true)
|
||||||
|
If success And adjustType = 2 Then
|
||||||
|
oTextCursor.ParaLastLineAdjust = 2
|
||||||
|
Else
|
||||||
|
oTextCursor.ParaIsHyphenation = hyph
|
||||||
|
EndIf
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub balanceFootNotes()
|
||||||
|
Dim allNotes As Object
|
||||||
|
Dim aNote As Object
|
||||||
|
Dim x As Long
|
||||||
|
allNotes = ThisComponent.FootNotes
|
||||||
|
For x = 0 to allNotes.Count -1
|
||||||
|
aNote = allNotes.getByIndex(x)
|
||||||
|
balanceFootNote(aNote)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub balanceFootNote(textElement As Object)
|
||||||
|
Dim enum1Element As Object
|
||||||
|
Dim enum1 As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
enum1 = textElement.createEnumeration()
|
||||||
|
While enum1.hasMoreElements
|
||||||
|
enum1Element = enum1.nextElement
|
||||||
|
If enum1Element.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
|
oViewCursor.goToRange(enum1Element,false)
|
||||||
|
balanceCurParaLastLine()
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Sub adjustLastLine(anchor As Object)
|
Sub adjustLastLine(anchor As Object)
|
||||||
anchor.ParaAdjust = 2
|
Dim oViewCursor As Object
|
||||||
'anchor.ParaLastLineAdjust = 2
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
balancePara(anchor)
|
oViewCursor.goToRange(anchor,false)
|
||||||
|
adjustLastLineCurPara()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub adjustFirstLine(anchor As Object)
|
Sub adjustFirstLine(anchor As Object)
|
||||||
|
@ -460,96 +546,374 @@ Function isLowerCase(character As String) As Boolean
|
||||||
Else
|
Else
|
||||||
charNum = ASC(character)
|
charNum = ASC(character)
|
||||||
End If
|
End If
|
||||||
If ((charNum > 1071 AND charNum < 1104) Or (charNum > 60 AND charNum < 123)) Then
|
If ((charNum > 1071 AND charNum < 1120) Or (charNum > 96 AND charNum < 123)) Then
|
||||||
isLowerCase = true
|
isLowerCase = true
|
||||||
Exit Function
|
Exit Function
|
||||||
EndIf
|
EndIf
|
||||||
isLowerCase = false
|
isLowerCase = false
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Sub balancePara(targetPara As Object)
|
|
||||||
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
|
||||||
|
Function balanceParaTail(targetPara As Object, strictMode As Boolean) As Boolean
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
Dim oTextCursor As Object
|
Dim oTextCursor As Object
|
||||||
Dim oPara As Object
|
Dim oContent As Object
|
||||||
Dim oParaStart As Object
|
Dim oContentStart As Object
|
||||||
Dim oParaEnd As Object
|
Dim oContentEnd As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.goToRange(targetPara, false)
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
|
||||||
|
oContentStart = getParaStart(oTextCursor)
|
||||||
|
oContentEnd = getParaEnd(oTextCursor)
|
||||||
|
oContent = getParaSelected(oContentStart,oContentEnd)
|
||||||
|
balanceParaTail = balanceContentTail(oContent, strictMode)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function balanceContentTail(oContent As Object, strictMode As Boolean) As Boolean
|
||||||
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
balanceContentTail = false
|
||||||
|
Dim oViewCursor As Object
|
||||||
Dim paraLen As Integer
|
Dim paraLen As Integer
|
||||||
Dim lineCount As Integer
|
Dim lineCount As Integer
|
||||||
Dim initialLineCount As Integer
|
Dim initialLineCount As Integer
|
||||||
Dim lineLen As Integer
|
Dim lineLen As Integer
|
||||||
Dim mathExpect As Integer
|
Dim initialLineLen As Integer
|
||||||
Dim minLastLineLength As Integer
|
Dim minLastLineLength As Integer
|
||||||
paraLen = 0
|
Dim medianLen As Integer
|
||||||
lineLen = 0
|
Dim paraLines() As Object
|
||||||
minLastLineLength = 0
|
Dim fallBackSuccess As Boolean
|
||||||
initialLineCount = 0
|
fallBackSuccess = false
|
||||||
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
oViewCursor.goToRange(targetPara, false)
|
paraLen = Len(oContent.String)
|
||||||
|
paraLines = getContentLines(oContent)
|
||||||
|
initialLineCount = getParaLinesCount(paraLines)
|
||||||
|
lineLen = getParaLineLength(paraLines, 0)
|
||||||
|
initialLineLen = lineLen
|
||||||
|
medianLen = calculateMedianParaLen(oContent)
|
||||||
|
minLastLineLength = medianLen * 0.93
|
||||||
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
If Not IsEmpty(oContent.CharKerning) Then
|
||||||
oPara = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
initialCharKerning = oContent.CharKerning
|
||||||
'Go to start of para
|
|
||||||
oTextCursor.gotoStartOfParagraph(false)
|
|
||||||
'Get start position
|
|
||||||
oParaStart = oTextCursor.getStart()
|
|
||||||
'Go to end of para
|
|
||||||
oTextCursor.gotoEndOfParagraph(false)
|
|
||||||
'Get end position
|
|
||||||
oParaEnd = oTextCursor.getEnd()
|
|
||||||
'return Text cursor to start
|
|
||||||
oTextCursor.goToRange(oParaStart,false)
|
|
||||||
'oPara is full para cursor
|
|
||||||
oPara.goToRange(oParaStart,false)
|
|
||||||
oPara.goToRange(oParaEnd,true)
|
|
||||||
|
|
||||||
Do
|
|
||||||
'Not first iteration
|
|
||||||
If minLastLineLength <> 0 Then
|
|
||||||
If oPara.CharKerning < 50 Then
|
|
||||||
If(IsEmpty(oPara.CharKerning)) Then
|
|
||||||
oPara.CharKerning = 0
|
|
||||||
Else
|
Else
|
||||||
oPara.CharKerning = oPara.CharKerning + 2
|
initialCharKerning = 0
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If initialLineCount < 2 Then
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
Do While lastLineIsNotBalanced(lineLen, minLastLineLength)
|
||||||
|
decreaseCharKerning(oContent)
|
||||||
|
paraLines = getContentLines(oContent)
|
||||||
|
lineCount = getParaLinesCount(paraLines)
|
||||||
|
lineLen = getParaLineLength(paraLines,0)
|
||||||
|
If (lineCount < initialLineCount ) OR (oContent.CharKerning < MIN_CHAR_KERNING) Then
|
||||||
|
'Tightened last line but it is still smaller than we need
|
||||||
|
fallBackSuccess = tryExpandPrevLines(oContent, minLastLineLength)
|
||||||
|
If Not fallBackSuccess Then
|
||||||
|
If strictMode Then
|
||||||
|
oContent.CharKerning = initialCharKerning
|
||||||
|
balanceContentTail = false
|
||||||
Else
|
Else
|
||||||
'Failed to balance para
|
paraLines = getContentLines(oContent)
|
||||||
|
lineLen = getParaLineLength(paraLines,0)
|
||||||
|
If (lineLen < initialLineLen) Then
|
||||||
|
oContent.CharKerning = initialCharKerning
|
||||||
|
balanceContentTail = false
|
||||||
|
Else
|
||||||
|
balanceContentTail = true
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
oViewCursor.collapseToEnd()
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Exit Do
|
||||||
|
EndIf
|
||||||
|
Loop
|
||||||
|
oViewCursor.collapseToEnd()
|
||||||
|
balanceContentTail = true
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function shrinkContentWithKerning(oContent As Object) As Boolean
|
||||||
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
shrinkContentWithKerning = false
|
||||||
|
Dim paraLen As Integer
|
||||||
|
Dim lineCount As Integer
|
||||||
|
Dim saveLineCount As Integer
|
||||||
|
Dim initialLineCount As Integer
|
||||||
|
Dim contentLines() As Object
|
||||||
|
Dim kerningValue As Integer
|
||||||
|
contentLines = getContentLines(oContent)
|
||||||
|
initialLineCount = getParaLinesCount(contentLines)
|
||||||
|
saveLineCount = initialLineCount
|
||||||
|
If Not IsEmpty(oContent.CharKerning) Then
|
||||||
|
initialCharKerning = oContent.CharKerning
|
||||||
|
Else
|
||||||
|
initialCharKerning = 0
|
||||||
|
End If
|
||||||
|
kerningValue = initialCharKerning
|
||||||
|
'Reduce kerning is useless if content is less than 2 lines long
|
||||||
|
If initialLineCount < 2 Then
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
Do While oContent.CharKerning > MIN_CHAR_KERNING
|
||||||
|
decreaseCharKerning(oContent)
|
||||||
|
contentLines = getContentLines(oContent)
|
||||||
|
lineCount = getParaLinesCount(contentLines)
|
||||||
|
If lineCount < saveLineCount Then
|
||||||
|
kerningValue = oContent.CharKerning
|
||||||
|
saveLineCount = lineCount
|
||||||
|
EndIf
|
||||||
|
Loop
|
||||||
|
'If decrease kerning didn't reduce lines then retreat to latest value that changed lines count
|
||||||
|
If kerningValue <> oContent.CharKerning Then
|
||||||
|
oContent.CharKerning = kerningValue
|
||||||
|
EndIf
|
||||||
|
If initialCharKerning <> kerningValue Then
|
||||||
|
shrinkContentWithKerning = true
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Function tryExpandPrevLines(oPara As Object, minLastLineLength As Integer) As Boolean
|
||||||
|
Dim lineCount As Integer
|
||||||
|
Dim finishLineCount As Integer
|
||||||
|
Dim initialLineCount As Integer
|
||||||
|
Dim paraLine As Object
|
||||||
|
Dim finishLastline As Object
|
||||||
|
Dim lineNum As Integer
|
||||||
|
Dim failedLines() As Integer
|
||||||
|
Dim lastLineCharKerning As Integer
|
||||||
|
Dim paraLines() As Object
|
||||||
|
Dim lineCharKerning As Integer
|
||||||
|
paraLines = getContentLines(oPara)
|
||||||
|
lineLen = getParaLineLength(paraLines,0)
|
||||||
|
initialLineCount = getParaLinesCount(paraLines)
|
||||||
|
lineCount = initialLineCount
|
||||||
|
lineNum = 0
|
||||||
|
Do While lineCount = initialLineCount And lastLineIsNotBalanced(lineLen, minLastLineLength)
|
||||||
|
If (lineNum + 1 < lineCount And Not IsInArray(failedLines, lineNum + 1)) Then
|
||||||
|
lineNum = lineNum + 1
|
||||||
|
EndIf
|
||||||
|
paraLine = paraLines(UBound(paraLines) - lineNum)
|
||||||
|
increaseCharKerning(paraLine)
|
||||||
|
paraLines = getContentLines(oPara)
|
||||||
|
lineCount = getParaLinesCount(paraLines)
|
||||||
|
lineLen = getParaLineLength(paraLines,0)
|
||||||
|
If lineNum > 1 And (lineCount <> initialLineCount Or paraLine.CharKerning > MAX_CHAR_KERNING) Then
|
||||||
|
AddToArray(failedLines, lineNum)
|
||||||
|
lineCharKerning = decreaseCharKerning(paraLine)
|
||||||
|
paraLines = getContentLines(oPara)
|
||||||
|
lineCount = getParaLinesCount(paraLines)
|
||||||
|
If lineCount > initialLineCount Then
|
||||||
|
Do While lineCount > initialLineCount And lineCharKerning > MIN_CHAR_KERNING
|
||||||
|
lineCharKerning = decreaseCharKerning(paraLine)
|
||||||
|
paraLines = getContentLines(oPara)
|
||||||
|
lineCount = getParaLinesCount(paraLines)
|
||||||
|
Loop
|
||||||
|
EndIf
|
||||||
|
lineLen = getParaLineLength(paraLines,0)
|
||||||
|
lineNum = 0
|
||||||
|
ElseIf lineNum = 1 And paraLine.CharKerning > MAX_CHAR_KERNING Then
|
||||||
|
tryExpandPrevLines = false
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Loop
|
||||||
|
If Not lastLineIsNotBalanced(lineLen, minLastLineLength) And lineCount = initialLineCount Then
|
||||||
|
tryExpandPrevLines = true
|
||||||
|
Else
|
||||||
|
tryExpandPrevLines = false
|
||||||
|
EndIf
|
||||||
|
normalizeLastLine(oPara)
|
||||||
|
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub normalizeLastLine(oPara As Object)
|
||||||
|
Dim lineCount As Integer
|
||||||
|
Dim finishLineCount As Integer
|
||||||
|
Dim initialLineCount As Integer
|
||||||
|
Dim paraLine As Object
|
||||||
|
Dim finishLastline As Object
|
||||||
|
Dim lineNum As Integer
|
||||||
|
Dim failedLines() As Integer
|
||||||
|
Dim lastLineCharKerning As Integer
|
||||||
|
Dim paraLines() As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
oTextCursor = oPara.Text.createTextCursorByRange(oPara)
|
||||||
|
oTextCursor.collapseToEnd()
|
||||||
|
If ( oTextCursor.CharKerning > 0 ) Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
|
||||||
|
|
||||||
oViewCursor.goToRange(oParaStart,false)
|
'increase last line kerning to 0
|
||||||
oTextCursor.goToRange(oParaStart,false)
|
paraLines = getContentLines(oPara)
|
||||||
lineCount = 0
|
lineCount = getParaLinesCount(paraLines)
|
||||||
While NOT oTextCursor.isEndOfParagraph()
|
finishLineCount = lineCount
|
||||||
oViewCursor.gotoEndOfLine(true)
|
finishLastline = paraLines(UBound(paraLines))
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
'try just set 0 char kerning to last line, reduce kerning if failed
|
||||||
lineLen = Len(oTextCursor.getString())
|
lastLineCharKerning = 0
|
||||||
paraLen = paraLen + lineLen
|
finishLastline.CharKerning = lastLineCharKerning
|
||||||
lineCount = lineCount + 1
|
paraLines = getContentLines(oPara)
|
||||||
oViewCursor.collapseToEnd()
|
lineCount = getParaLinesCount(paraLines)
|
||||||
Wend
|
If lineCount > finishLineCount Then
|
||||||
'set initial line count
|
Do While lineCount > finishLineCount AND lastLineCharKerning > MIN_CHAR_KERNING
|
||||||
If initialLineCount = 0 Then
|
lastLineCharKerning = lastLineCharKerning - 2
|
||||||
initialLineCount = lineCount
|
finishLastline.CharKerning = lastLineCharKerning
|
||||||
ElseIf lineCount > initialLineCount Then
|
paraLines = getContentLines(oPara)
|
||||||
'Undo last iteration as line overflow happened.
|
lineCount = getParaLinesCount(paraLines)
|
||||||
'And exit
|
Loop
|
||||||
If(IsEmpty(oPara.CharKerning)) Then
|
|
||||||
oPara.CharKerning = 0
|
|
||||||
Else
|
|
||||||
oPara.CharKerning = oPara.CharKerning - 2
|
|
||||||
EndIf
|
EndIf
|
||||||
Exit sub
|
|
||||||
EndIf
|
|
||||||
mathExpect = paraLen / lineCount
|
|
||||||
minLastLineLength = mathExpect * 0.9
|
|
||||||
Loop Until minLastLineLength < lineLen
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Function getParaLinesCount(paraLines() As Object) As Integer
|
||||||
|
getParaLinesCount = UBound(paraLines) + 1
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getParaLineLength(paraLines() As Object, lineNumber As Integer) As Integer
|
||||||
|
Dim arrIndex As Integer
|
||||||
|
arrIndex = UBound(paraLines) - lineNumber
|
||||||
|
If (arrIndex >= 0) Then
|
||||||
|
getParaLineLength = Len(paraLines(arrIndex).String)
|
||||||
|
Else
|
||||||
|
'Throw an error?
|
||||||
|
getParaLineLength = 0
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getContentLines(oContent As Object) As Variant
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim paraLine As Object
|
||||||
|
Dim paraLines() As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
'initial value is 1 As paragraph can't be 0 lines long
|
||||||
|
oTextCursor = oContent.Text.createTextCursorByRange(oContent)
|
||||||
|
oTextCursor.collapseToStart()
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
While NOT oTextCursor.isEndOfParagraph()
|
||||||
|
oViewCursor.gotoEndOfLine(true)
|
||||||
|
If (Len(oViewCursor.String) = 0) Then
|
||||||
|
oTextCursor.goToRange(oViewCursor,false)
|
||||||
|
oTextCursor.goRight(1,false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
oViewCursor.gotoEndOfLine(true)
|
||||||
|
EndIf
|
||||||
|
If (Len(oViewCursor.String) > 0) Then
|
||||||
|
paraLine = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
AddToArray(paraLines, paraLine)
|
||||||
|
EndIf
|
||||||
|
oViewCursor.collapseToEnd()
|
||||||
|
oTextCursor.goToRange(oViewCursor,false)
|
||||||
|
Wend
|
||||||
|
getContentLines = paraLines
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function decreaseCharKerning(oPara As Object) As Integer
|
||||||
|
Dim initialCharKerning As Integer
|
||||||
|
Dim textExcerpts As Object
|
||||||
|
Dim textExcerpt As Object
|
||||||
|
initialCharKerning = MIN_CHAR_KERNING + 2
|
||||||
|
If Not (IsEmpty(oPara.CharKerning)) Then
|
||||||
|
initialCharKerning = oPara.CharKerning
|
||||||
|
EndIf
|
||||||
|
If (initialCharKerning >= MIN_CHAR_KERNING) Then
|
||||||
|
oPara.CharKerning = initialCharKerning - 2
|
||||||
|
EndIf
|
||||||
|
decreaseCharKerning = initialCharKerning - 2
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function increaseCharKerning(oPara As Object) As Integer
|
||||||
|
Dim initialCharKerning As Integer
|
||||||
|
Dim textExcerpts As Object
|
||||||
|
Dim textExcerpt As Object
|
||||||
|
initialCharKerning = MAX_CHAR_KERNING - 2
|
||||||
|
If Not (IsEmpty(oPara.CharKerning)) Then
|
||||||
|
initialCharKerning = oPara.CharKerning
|
||||||
|
EndIf
|
||||||
|
oPara.CharKerning = initialCharKerning + 2
|
||||||
|
increaseCharKerning = initialCharKerning + 2
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function lastLineIsNotBalanced(lineLen As Integer,minLastLineLength As Integer) As Boolean
|
||||||
|
lastLineIsNotBalanced = true
|
||||||
|
If lineLen = 0 Then
|
||||||
|
lastLineIsNotBalanced = false
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
If lineLen >= minLastLineLength Then
|
||||||
|
lastLineIsNotBalanced = false
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getParaStart(oTextCursor As Object) As Object
|
||||||
|
If NOT oTextCursor.isStartOfParagraph() Then
|
||||||
|
oTextCursor.gotoStartOfParagraph(false)
|
||||||
|
EndIf
|
||||||
|
getParaStart = oTextCursor.getStart()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getParaEnd(oTextCursor As Object) As Object
|
||||||
|
If NOT oTextCursor.isEndOfParagraph() Then
|
||||||
|
oTextCursor.gotoEndOfParagraph(false)
|
||||||
|
EndIf
|
||||||
|
getParaEnd = oTextCursor.getEnd()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getParaSelected(oParaStart As Object,oParaEnd As Object) As Object
|
||||||
|
Dim oPara As Object
|
||||||
|
oPara = oParaStart.Text.createTextCursorByRange(oParaStart)
|
||||||
|
oPara.goToRange(oParaEnd,true)
|
||||||
|
getParaSelected = oPara
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Function calculateMedianParaLen(oPara As Object) As Integer
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim lineCount As Integer
|
||||||
|
Dim lineLen As Integer
|
||||||
|
Dim linesLen As Integer
|
||||||
|
linesLen = 0
|
||||||
|
calculateMedianParaLen = 0
|
||||||
|
lineCount = 0
|
||||||
|
lineLen = 0
|
||||||
|
If (Len (oPara.String) = 0) Then
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.goToRange(oPara, false)
|
||||||
|
oViewCursor.collapseToStart()
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
oParaStart = getParaStart(oTextCursor)
|
||||||
|
oViewCursor.goToRange(oParaStart,false)
|
||||||
|
While NOT oTextCursor.isEndOfParagraph()
|
||||||
|
oViewCursor.gotoEndOfLine(true)
|
||||||
|
lineLen = Len(oViewCursor.getString())
|
||||||
|
If lineLen > 0 Then
|
||||||
|
linesLen = linesLen + lineLen
|
||||||
|
lineCount = lineCount + 1
|
||||||
|
oViewCursor.collapseToEnd()
|
||||||
|
oTextCursor.goToRange(oViewCursor,false)
|
||||||
|
Else
|
||||||
|
oTextCursor.goToRange(oViewCursor,false)
|
||||||
|
oTextCursor.goRight(1,false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
If lineCount > 0 Then
|
||||||
|
calculateMedianParaLen = linesLen / lineCount
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
Sub convertBookmarksToFootnotes()
|
Sub convertBookmarksToFootnotes()
|
||||||
Dim description As String
|
Dim description As String
|
||||||
description = getTranslation("convertIndesignFoonotesConfirmation")
|
description = getTranslation("convertIndesignFoonotesConfirmation")
|
||||||
|
@ -588,9 +952,7 @@ Sub convertBookmarksToFootnotes()
|
||||||
EndIf
|
EndIf
|
||||||
convertLinkToFootnote(forwardLink,backwardLink)
|
convertLinkToFootnote(forwardLink,backwardLink)
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
resetNotesStyle
|
resetNotesStyle
|
||||||
MsgBox getTranslation("convertIndesignFootnotesFinish")
|
MsgBox getTranslation("convertIndesignFootnotesFinish")
|
||||||
End Sub
|
End Sub
|
||||||
|
@ -670,13 +1032,6 @@ Sub removeFootnoteSignInText
|
||||||
character = oViewCursor.String
|
character = oViewCursor.String
|
||||||
Loop
|
Loop
|
||||||
oViewCursor.goRight(1,true)
|
oViewCursor.goRight(1,true)
|
||||||
character = oViewCursor.String
|
|
||||||
Do While isLinkCharacter(character)
|
|
||||||
oViewCursor.String = ""
|
|
||||||
oViewCursor.goRight(1,true)
|
|
||||||
character = oViewCursor.String
|
|
||||||
Loop
|
|
||||||
oViewCursor.goRight(1,false)
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Function isLinkCharacter(character As String) As Boolean
|
Function isLinkCharacter(character As String) As Boolean
|
||||||
|
@ -763,8 +1118,10 @@ End Sub
|
||||||
Sub replaceParaStyle
|
Sub replaceParaStyle
|
||||||
|
|
||||||
dim oldStyleName As String
|
dim oldStyleName As String
|
||||||
|
dim oldStyleNameLocalized As String
|
||||||
dim oldStyle As Object
|
dim oldStyle As Object
|
||||||
dim newStyleName As String
|
dim newStyleName As String
|
||||||
|
dim newStyleNameLocalized As String
|
||||||
dim paragraphStyles As Object
|
dim paragraphStyles As Object
|
||||||
dim userInput As Integer
|
dim userInput As Integer
|
||||||
Dim listBox As Object
|
Dim listBox As Object
|
||||||
|
@ -796,11 +1153,11 @@ Sub replaceParaStyle
|
||||||
listBox.addItems(sortedDPSN , 0)
|
listBox.addItems(sortedDPSN , 0)
|
||||||
oDialog.Title = getTranslation("replaceParaStyleDialogTitle")
|
oDialog.Title = getTranslation("replaceParaStyleDialogTitle")
|
||||||
oDialog.Execute()
|
oDialog.Execute()
|
||||||
newStyleName = oDialog.model.Tag
|
newStyleNameLocalized = oDialog.model.Tag
|
||||||
If newStyleName="0" or newStyleName="" Then
|
If newStyleNameLocalized="0" or newStyleNameLocalized="" Then
|
||||||
Exit sub
|
Exit sub
|
||||||
EndIf
|
EndIf
|
||||||
foundIndex = getIndex(displayParaStyleNames, newStyleName)
|
foundIndex = getIndex(displayParaStyleNames, newStyleNameLocalized)
|
||||||
'set style system name instead of display name
|
'set style system name instead of display name
|
||||||
newStyleName = paraStyleNames(foundIndex)
|
newStyleName = paraStyleNames(foundIndex)
|
||||||
|
|
||||||
|
@ -808,11 +1165,10 @@ Sub replaceParaStyle
|
||||||
MsgBox getTranslation("replaceParaStyleStylesEqualsNotification")
|
MsgBox getTranslation("replaceParaStyleStylesEqualsNotification")
|
||||||
Exit sub
|
Exit sub
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
If oldStyleName <> "" Then
|
If oldStyleName <> "" Then
|
||||||
oldStyle = paraStyles.getByName(oldStyleName)
|
oldStyle = paraStyles.getByName(oldStyleName)
|
||||||
If NOT oldStyle.isUserDefined Then
|
If NOT oldStyle.isUserDefined Then
|
||||||
MsgBox getTranslation("replaceParaStyleCurrentStyleIsStandard")
|
replaceDefaultParaStyle(getLocalizedParaStyleName(oldStyleName), newStyleNameLocalized)
|
||||||
Exit sub
|
Exit sub
|
||||||
EndIf
|
EndIf
|
||||||
oldStyle.ParentStyle = newStyleName
|
oldStyle.ParentStyle = newStyleName
|
||||||
|
@ -830,10 +1186,70 @@ Sub replaceParaStyle
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
EndIf
|
||||||
Wend
|
Wend
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Function getLocalizedParaStyleName(styleName as String) As String
|
||||||
|
Dim style As Object
|
||||||
|
Dim styles As Object
|
||||||
|
styles = ThisComponent.StyleFamilies
|
||||||
|
style = styles.getByName(styles.elementNames(1)).getByName(styleName)
|
||||||
|
getLocalizedParaStyleName = style.DisplayName
|
||||||
|
End Function
|
||||||
|
|
||||||
|
sub replaceDefaultParaStyle(fromStyle As String, toStyle As String)
|
||||||
|
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
dim args1(21) as new com.sun.star.beans.PropertyValue
|
||||||
|
args1(0).Name = "SearchItem.StyleFamily"
|
||||||
|
args1(0).Value = 2
|
||||||
|
args1(1).Name = "SearchItem.CellType"
|
||||||
|
args1(1).Value = 0
|
||||||
|
args1(2).Name = "SearchItem.RowDirection"
|
||||||
|
args1(2).Value = true
|
||||||
|
args1(3).Name = "SearchItem.AllTables"
|
||||||
|
args1(3).Value = false
|
||||||
|
args1(4).Name = "SearchItem.SearchFiltered"
|
||||||
|
args1(4).Value = false
|
||||||
|
args1(5).Name = "SearchItem.Backward"
|
||||||
|
args1(5).Value = false
|
||||||
|
args1(6).Name = "SearchItem.Pattern"
|
||||||
|
args1(6).Value = true
|
||||||
|
args1(7).Name = "SearchItem.Content"
|
||||||
|
args1(7).Value = false
|
||||||
|
args1(8).Name = "SearchItem.AsianOptions"
|
||||||
|
args1(8).Value = false
|
||||||
|
args1(9).Name = "SearchItem.AlgorithmType"
|
||||||
|
args1(9).Value = 0
|
||||||
|
args1(10).Name = "SearchItem.SearchFlags"
|
||||||
|
args1(10).Value = 65536
|
||||||
|
args1(11).Name = "SearchItem.SearchString"
|
||||||
|
args1(11).Value = fromStyle
|
||||||
|
args1(12).Name = "SearchItem.ReplaceString"
|
||||||
|
args1(12).Value = toStyle
|
||||||
|
args1(13).Name = "SearchItem.Locale"
|
||||||
|
args1(13).Value = 255
|
||||||
|
args1(14).Name = "SearchItem.ChangedChars"
|
||||||
|
args1(14).Value = 2
|
||||||
|
args1(15).Name = "SearchItem.DeletedChars"
|
||||||
|
args1(15).Value = 2
|
||||||
|
args1(16).Name = "SearchItem.InsertedChars"
|
||||||
|
args1(16).Value = 2
|
||||||
|
args1(17).Name = "SearchItem.TransliterateFlags"
|
||||||
|
args1(17).Value = 1280
|
||||||
|
args1(18).Name = "SearchItem.Command"
|
||||||
|
args1(18).Value = 3
|
||||||
|
args1(19).Name = "SearchItem.SearchFormatted"
|
||||||
|
args1(19).Value = false
|
||||||
|
args1(20).Name = "SearchItem.AlgorithmType2"
|
||||||
|
args1(20).Value = 1
|
||||||
|
args1(21).Name = "Quiet"
|
||||||
|
args1(21).Value = true
|
||||||
|
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
|
||||||
|
end sub
|
||||||
|
|
||||||
Function getIndex(array As variant, value As variant) As Integer
|
Function getIndex(array As variant, value As variant) As Integer
|
||||||
Dim id As Integer
|
Dim id As Integer
|
||||||
Dim nRight As Integer
|
Dim nRight As Integer
|
||||||
|
@ -888,4 +1304,26 @@ Sub subShellSort(mArray)
|
||||||
h = h \ 3
|
h = h \ 3
|
||||||
Loop
|
Loop
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
sub setZoomToSpeedUpTasks
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
dim args1(2) as new com.sun.star.beans.PropertyValue
|
||||||
|
dim args2(1) as new com.sun.star.beans.PropertyValue
|
||||||
|
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
args1(0).Name = "Zoom.Value"
|
||||||
|
args1(0).Value = 60
|
||||||
|
args1(1).Name = "Zoom.ValueSet"
|
||||||
|
args1(1).Value = 28703
|
||||||
|
args1(2).Name = "Zoom.Type"
|
||||||
|
args1(2).Value = 0
|
||||||
|
dispatcher.executeDispatch(document, ".uno:Zoom", "", 0, args1())
|
||||||
|
args2(0).Name = "ViewLayout.Columns"
|
||||||
|
args2(0).Value = 1
|
||||||
|
args2(1).Name = "ViewLayout.BookMode"
|
||||||
|
args2(1).Value = false
|
||||||
|
dispatcher.executeDispatch(document, ".uno:ViewLayout", "", 0, args2())
|
||||||
|
end sub
|
||||||
</script:module>
|
</script:module>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Books" script:language="StarBasic" script:moduleType="normal">Sub markBooks6
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Books" script:language="StarBasic" script:moduleType="normal">Sub markBooks7
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub setUniqPageStyles
|
Sub setUniqPageStyles
|
||||||
|
@ -362,7 +362,7 @@ Sub setUniqPageStylesDEPRECATED
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Function hasPageStyleWith(pageStyleName)
|
Function hasPageStyleWith(pageStyleName As String) As Boolean
|
||||||
Dim enum1 As Object
|
Dim enum1 As Object
|
||||||
Dim enum1Element As Object
|
Dim enum1Element As Object
|
||||||
Dim curPage As String
|
Dim curPage As String
|
||||||
|
@ -387,7 +387,7 @@ Function hasPageStyleWith(pageStyleName)
|
||||||
hasPageStyleWith = false
|
hasPageStyleWith = false
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function findFirstPageNumberWithStyle(pageStyleName)
|
Function findFirstPageNumberWithStyle(pageStyleName As String) As Integer
|
||||||
Dim enum1 As Object
|
Dim enum1 As Object
|
||||||
Dim enum1Element As Object
|
Dim enum1Element As Object
|
||||||
Dim curPage As String
|
Dim curPage As String
|
||||||
|
@ -396,6 +396,7 @@ Function findFirstPageNumberWithStyle(pageStyleName)
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
Dim anchor As Object
|
Dim anchor As Object
|
||||||
Dim oSavePosition As Object
|
Dim oSavePosition As Object
|
||||||
|
Dim curPageStyleName As String
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
enum1 = ThisComponent.Text.createEnumeration()
|
enum1 = ThisComponent.Text.createEnumeration()
|
||||||
|
|
466
ePublishing/Endnotes.xba
Normal file
|
@ -0,0 +1,466 @@
|
||||||
|
<?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="Endnotes" script:language="StarBasic" script:moduleType="normal">Global Const endnoteFieldPrefix = "custom_endnote_"
|
||||||
|
Global Const endnoteInTextAnchorSuffix = "-text_anchor"
|
||||||
|
Global Const endnoteInBodyAnchorSuffix = "-body_anchor"
|
||||||
|
|
||||||
|
Sub convertEndnotesExecution
|
||||||
|
Dim oSelections As Object
|
||||||
|
Dim oAnchor1 As Object
|
||||||
|
Dim oAnchor2 As Object
|
||||||
|
Dim oAnchor1Name As String
|
||||||
|
Dim oAnchor2Name As String
|
||||||
|
Dim foundEndNotes() As Object
|
||||||
|
Dim textSelection As Object
|
||||||
|
Dim nativeEndnotesCounter As Integer
|
||||||
|
Dim customEndnotesCounter As Integer
|
||||||
|
If IsNull(ThisComponent) Then
|
||||||
|
MsgBox getTranslation("something weird happened error text")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
oSelections = ThisComponent.getCurrentSelection()
|
||||||
|
|
||||||
|
If NOT oSelections.supportsService("com.sun.star.text.TextRanges") Then
|
||||||
|
MsgBox getTranslation("EndnotesNotFound")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
objectsCount = oSelections.getCount()
|
||||||
|
If objectsCount > 1 Then
|
||||||
|
MsgBox getTranslation("too much selections")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
textSelection = oSelections.getByIndex(0)
|
||||||
|
foundEndNotes() = findEndNotesInSelection(textSelection)
|
||||||
|
nativeEndnotesCounter = UBound(foundEndNotes(0))
|
||||||
|
customEndnotesCounter = UBound(foundEndNotes(1))
|
||||||
|
If (nativeEndnotesCounter = -1 And customEndnotesCounter = -1 ) Then
|
||||||
|
MsgBox getTranslation("EndnotesNotFound")
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
If ( customEndnotesCounter = -1 ) Then
|
||||||
|
'only native found window convert to custom?
|
||||||
|
'Window Select paragraph for endnotes output or cancel
|
||||||
|
runEndnotesConversionDialog(foundEndNotes(0))
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
If (nativeEndnotesCounter = -1 ) Then
|
||||||
|
'only custom endnotes found. Window convert to native?
|
||||||
|
runEndnotesCustomToNativeDialog(foundEndNotes(1))
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
'both custom and native endnotes found
|
||||||
|
'convert to custom all or
|
||||||
|
'convert to native
|
||||||
|
runDualEndnotesDialog(foundEndNotes(0),foundEndNotes(1))
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Sub runDualEndnotesDialog(nativeEndNotes() As Object,customEndnotes() As Object)
|
||||||
|
Dim dialog As Object
|
||||||
|
waitingForDialog = true
|
||||||
|
dialog = notModalDialog("EndnotesConversion")
|
||||||
|
dialog.getControl("found").SetText(getTranslation("EndnotesNativeDialogFound") & CStr(UBound(nativeEndNotes)+1))
|
||||||
|
dialog.getControl("found2").SetText(getTranslation("EndnotesCustomDialogFound") & CStr(UBound(customEndnotes)+1))
|
||||||
|
dialog.getControl("found2").Model.EnableVisible = TRUE
|
||||||
|
dialog.getControl("description").SetText(getTranslation("EndnotesConversionTwoOptions"))
|
||||||
|
dialog.getControl("cancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("start").Label = getTranslation("toNativeEndnotes")
|
||||||
|
dialog.getControl("option2").Label = getTranslation("toCustomEndnotes")
|
||||||
|
dialog.getControl("option2").Model.EnableVisible = TRUE
|
||||||
|
|
||||||
|
|
||||||
|
dialog.setvisible(true)
|
||||||
|
Do While waitingForDialog
|
||||||
|
If dialog.getControl("cancel").model.state = 1 then
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("start").model.state = 1 then
|
||||||
|
convertCustomEndnotesToNative(customEndnotes)
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("option2").model.state = 1 then
|
||||||
|
convertEndnotesToCustom(nativeEndNotes)
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
wait (100)
|
||||||
|
Loop
|
||||||
|
dialog.dispose
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub runEndnotesCustomToNativeDialog(customEndnotes() As Object)
|
||||||
|
Dim dialog As Object
|
||||||
|
waitingForDialog = true
|
||||||
|
dialog = notModalDialog("EndnotesConversion")
|
||||||
|
dialog.getControl("found").SetText(getTranslation("EndnotesCustomDialogFound") & CStr(UBound(customEndnotes)+1))
|
||||||
|
dialog.getControl("description").SetText(getTranslation("EndnotesCustomConversionOption"))
|
||||||
|
dialog.getControl("cancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("start").Label = getTranslation("buttonOk")
|
||||||
|
dialog.setvisible(true)
|
||||||
|
Do While waitingForDialog
|
||||||
|
If dialog.getControl("cancel").model.state = 1 then
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("start").model.state = 1 then
|
||||||
|
convertCustomEndnotesToNative(customEndnotes)
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
wait (100)
|
||||||
|
Loop
|
||||||
|
dialog.dispose
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub convertCustomEndnotesToNative(foundEndnotes() As Object)
|
||||||
|
Dim i As Long
|
||||||
|
Dim bodyAnchorName As String
|
||||||
|
Dim textAnchorName As String
|
||||||
|
Dim bookmarksName As String
|
||||||
|
Dim bookmarks As Object
|
||||||
|
bookmarksName = ThisComponent.Links.ElementNames(6)
|
||||||
|
bookmarks = ThisComponent.Links.getByName(bookmarksName)
|
||||||
|
For i = LBound(foundEndnotes) To UBound(foundEndnotes)
|
||||||
|
bodyAnchorName = getBodyAnchorName(foundEndnotes(i))
|
||||||
|
textAnchorName = getTextAnchorName(bodyAnchorName)
|
||||||
|
If bookmarks.hasByName(bodyAnchorName) And bookmarks.hasByName(textAnchorName) Then
|
||||||
|
convertLinksToEndnote(bodyAnchorName,textAnchorName)
|
||||||
|
EndIf
|
||||||
|
Next i
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function getBodyAnchorName(textRange As Object) As String
|
||||||
|
getBodyAnchorName = ""
|
||||||
|
If (Len(textRange.HyperLinkURL) > 0) Then
|
||||||
|
getBodyAnchorName = Right(textRange.HyperLinkURL,Len(textRange.HyperLinkURL)-1)
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getTextAnchorName(bodyAnchorName As String) As String
|
||||||
|
getTextAnchorName = ""
|
||||||
|
If Len(bodyAnchorName) > Len(endnoteInBodyAnchorSuffix) Then
|
||||||
|
getTextAnchorName = Left(bodyAnchorName,Len(bodyAnchorName)-Len(endnoteInBodyAnchorSuffix)) & endnoteInTextAnchorSuffix
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub convertLinksToEndnote(forwardLink As String,backwardLink As String)
|
||||||
|
Dim bookMarkName As String
|
||||||
|
bookmarkName = ThisComponent.Links.ElementNames(6)
|
||||||
|
Dim bookmarks As Object
|
||||||
|
bookmarks = ThisComponent.Links.getByName(bookmarkName)
|
||||||
|
Dim forward As Object
|
||||||
|
Dim backward As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim footNoteSign As String
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
If NOT bookmarks.hasByName(forwardLink) OR NOT bookmarks.hasByName(backwardLink) Then
|
||||||
|
exit sub
|
||||||
|
EndIf
|
||||||
|
forward = bookmarks.getByName(forwardLink)
|
||||||
|
backward = bookmarks.getByName(backwardLink)
|
||||||
|
footNoteSign = forward.Anchor.String
|
||||||
|
oViewCursor.goToRange(forward.Anchor,false)
|
||||||
|
SendRM
|
||||||
|
SendRM
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
goToEndOfEndnoteBody(oTextCursor)
|
||||||
|
oTextCursor.goToRange(oViewCursor,true)
|
||||||
|
oViewCursor.goToRange(oTextCursor,true)
|
||||||
|
unoCut()
|
||||||
|
SendRM
|
||||||
|
oViewCursor.goToRange(backward.Anchor,false)
|
||||||
|
removeEndnoteSignInText()
|
||||||
|
createEndnote
|
||||||
|
unoPaste()
|
||||||
|
oViewCursor.getText.setLabel(footNoteSign)
|
||||||
|
forward.dispose()
|
||||||
|
backward.dispose()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub goToEndOfEndnoteBody(oTextCursor As Object)
|
||||||
|
Dim position As Object
|
||||||
|
position = oTextCursor.End
|
||||||
|
oTextCursor.goToEndOfParagraph(false)
|
||||||
|
oTextCursor.goRight(1,false)
|
||||||
|
If oTextCursor.ParaStyleName <> "Endnote" OR oTextCursor.CharStyleName = "Endnote Symbol" Then
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
'Got to the end of the document
|
||||||
|
If oTextCursor.Text.compareRegionEnds(position,oTextCursor.End) = 0 Then
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
goToEndOfEndnoteBody(oTextCursor)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Sub removeEndnoteSignInText()
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim character As String
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.String = ""
|
||||||
|
oViewCursor.HyperLinkURL=""
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
sub createEndnote
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
rem ----------------------------------------------------------------------
|
||||||
|
rem get access to the document
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, Array())
|
||||||
|
end Sub
|
||||||
|
|
||||||
|
Sub runEndnotesConversionDialog(foundEndNotes As Variant)
|
||||||
|
Dim dialog As Object
|
||||||
|
waitingForDialog = true
|
||||||
|
dialog = notModalDialog("EndnotesConversion")
|
||||||
|
dialog.getControl("found").SetText(getTranslation("EndnotesNativeDialogFound") & CStr(UBound(foundEndNotes)+1))
|
||||||
|
dialog.getControl("description").SetText(getTranslation("EndnotesNativeDialogDescriptionSelect"))
|
||||||
|
dialog.getControl("cancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("start").Label = getTranslation("buttonOk")
|
||||||
|
dialog.setvisible(true)
|
||||||
|
Do While waitingForDialog
|
||||||
|
If dialog.getControl("cancel").model.state = 1 then
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("start").model.state = 1 then
|
||||||
|
convertEndnotesToCustom(foundEndNotes)
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
wait (100)
|
||||||
|
Loop
|
||||||
|
dialog.dispose
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub convertEndnotesToCustom(foundEndNotes As Variant)
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim outputPosition As Object
|
||||||
|
Dim endnoteSigns() As String
|
||||||
|
Dim fieldPrefix As String
|
||||||
|
Dim i As Integer
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.goToStartOfLine(false)
|
||||||
|
outputPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
endnoteSigns = getEndnoteSigns(foundEndNotes)
|
||||||
|
fieldPrefix = createEndnoteFieldPrefix()
|
||||||
|
For i = LBound(foundEndNotes) To Ubound(foundEndNotes)
|
||||||
|
convertNativeEndnoteToCustom(endnoteSigns(i), foundEndNotes(i),outputPosition,fieldPrefix, i)
|
||||||
|
Next i
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function createEndnoteFieldPrefix As String
|
||||||
|
Dim names() As String
|
||||||
|
Dim prefix As String
|
||||||
|
names = ThisComponent.getTextFieldMasters().getElementNames()
|
||||||
|
prefix = endnoteFieldPrefix & RND_String() & "_"
|
||||||
|
If NOT startsWithInArray(prefix, names) Then
|
||||||
|
createEndnoteFieldPrefix = prefix
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
createEndnoteFieldPrefix = prefix
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function startsWithInArray(prefix As String, names As Variant) As Boolean
|
||||||
|
Dim i As Long
|
||||||
|
For i = LBound(names) To Ubound(names)
|
||||||
|
If InStr(names(i), "com.sun.star.text.fieldmaster.User." & prefix) = 1 Then
|
||||||
|
startsWithInArray = true
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Next i
|
||||||
|
startsWithInArray = false
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Sub convertNativeEndnoteToCustom(sign As String, nativeEndNoteTextRange As Object,outputPosition As Object, fieldPrefix As String, num As Integer)
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim endNote As Object
|
||||||
|
Dim anchorInBody As Object
|
||||||
|
Dim anchorInText As Object
|
||||||
|
Dim bodyAnchorName As String
|
||||||
|
Dim textAnchorName As String
|
||||||
|
endNote = nativeEndNoteTextRange.Footnote
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.goToRange(nativeEndNoteTextRange.Footnote.Text.Start,false)
|
||||||
|
oViewCursor.goToRange(nativeEndNoteTextRange.Footnote.Text.End,true)
|
||||||
|
If oViewCursor.String = "" Then
|
||||||
|
oViewCursor.String = " "
|
||||||
|
EndIf
|
||||||
|
unoCut()
|
||||||
|
oViewCursor.goToRange(outputPosition,false)
|
||||||
|
getEndnotePara()
|
||||||
|
oViewCursor.ParaStyleName = "Endnote"
|
||||||
|
anchorInBody = createEndnoteSign(outputPosition, sign, fieldPrefix & num, true)
|
||||||
|
addEndnoteSpacer(fieldPrefix)
|
||||||
|
unoPaste()
|
||||||
|
outputPosition = oViewCursor.End
|
||||||
|
oViewCursor.goToRange(nativeEndNoteTextRange,false)
|
||||||
|
endNote.dispose()
|
||||||
|
anchorInText = createEndnoteSign(oViewCursor, sign, fieldPrefix & num, false)
|
||||||
|
bodyAnchorName = fieldPrefix & num & endnoteInBodyAnchorSuffix
|
||||||
|
textAnchorName = fieldPrefix & num & endnoteInTextAnchorSuffix
|
||||||
|
anchorInBody.goRight(1,true)
|
||||||
|
anchorInText.goRight(1,true)
|
||||||
|
createAnchor(anchorInBody, bodyAnchorName )
|
||||||
|
createAnchor(anchorInText,textAnchorName )
|
||||||
|
createLink(anchorInBody,anchorInBody.String, textAnchorName)
|
||||||
|
createLink(anchorInText,anchorInText.String, bodyAnchorName)
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub getEndnotePara()
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor.Start)
|
||||||
|
oTextCursor.gotoStartOfParagraph(false)
|
||||||
|
oTextCursor.gotoEndOfParagraph(true)
|
||||||
|
If Len(oTextCursor.String) > 0 Then
|
||||||
|
oViewCursor.Text.insertControlCharacter(oViewCursor.End,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
|
||||||
|
EndIf
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function createEndnoteSign(cursor As Object,sign As String,fieldName As String, inBody As Boolean) As Object
|
||||||
|
Dim oField As Object 'Field to insert
|
||||||
|
Dim oFieldMaster As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim oMasters As Object
|
||||||
|
oTextCursor = cursor.Text.createTextCursorByRange(cursor.Start)
|
||||||
|
If inBody Then
|
||||||
|
oTextCursor.CharStyleName = "Endnote Symbol"
|
||||||
|
Else
|
||||||
|
oTextCursor.CharStyleName = "Endnote anchor"
|
||||||
|
EndIf
|
||||||
|
oField = ThisComponent.createInstance("com.sun.star.text.textfield.User")
|
||||||
|
oMasters = ThisComponent.getTextFieldMasters()
|
||||||
|
If oMasters.hasByName("com.sun.star.text.FieldMaster.User" & "." & fieldName) Then
|
||||||
|
oFieldMaster = oMasters.getByName("com.sun.star.text.FieldMaster.User" & "." & fieldName)
|
||||||
|
oFieldMaster.Name = fieldName
|
||||||
|
oFieldMaster.Content = sign
|
||||||
|
Else
|
||||||
|
oFieldMaster = ThisComponent.createInstance("com.sun.star.text.FieldMaster.User")
|
||||||
|
oFieldMaster.Name = fieldName
|
||||||
|
oFieldMaster.Content = sign
|
||||||
|
EndIf
|
||||||
|
oField.attachTextFieldMaster(oFieldMaster)
|
||||||
|
oTextCursor.Text.insertTextContent(oTextCursor, oField, False)
|
||||||
|
oTextCursor.CharStyleName = "Standard"
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
createEndnoteSign = oTextCursor
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub addEndnoteSpacer(fieldPrefix As String)
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
insertUserField(oViewCursor,fieldPrefix & "spacer"," ")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Function getEndnoteSigns(foundEndNotes As Variant) As Variant
|
||||||
|
Dim i As Integer
|
||||||
|
Dim signs() As String
|
||||||
|
For i = LBound(foundEndNotes) To Ubound(foundEndNotes)
|
||||||
|
AddToArray(signs, foundEndNotes(i).String)
|
||||||
|
Next i
|
||||||
|
getEndnoteSigns = signs
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Function notModalDialog(dialogName As String) As Variant
|
||||||
|
Dim windowProvider As Object
|
||||||
|
Dim containerWindow As Object
|
||||||
|
Dim handler As Object
|
||||||
|
Dim dialogUrl As String
|
||||||
|
Dim dialog As Object
|
||||||
|
containerWindow = ThisComponent.getCurrentController().getFrame().getContainerWindow()
|
||||||
|
dialogUrl = "vnd.sun.star.script:ePublishing." & dialogName & "?location=application"
|
||||||
|
windowProvider = CreateUnoService("com.sun.star.awt.ContainerWindowProvider")
|
||||||
|
dialog = windowProvider.createContainerWindow(dialogUrl, "", containerWindow, handler)
|
||||||
|
notModalDialog = dialog
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Function findEndNotesInSelection(textSelection) As Variant
|
||||||
|
Dim nativeEndNotes() As Object
|
||||||
|
Dim customEndNotes() As Object
|
||||||
|
Dim outerArray() As Object
|
||||||
|
findEndNotesInSelection = Array()
|
||||||
|
|
||||||
|
Dim enum1Element As Object
|
||||||
|
Dim cellEnumElement As Object
|
||||||
|
Dim enum1 As Object
|
||||||
|
Dim enum2 As Object
|
||||||
|
Dim curNum As Integer
|
||||||
|
Dim i As Integer
|
||||||
|
Dim cell As Object
|
||||||
|
Dim cellEnum As Object
|
||||||
|
|
||||||
|
enum1 = textSelection.createEnumeration
|
||||||
|
While enum1.hasMoreElements
|
||||||
|
enum1Element = enum1.nextElement
|
||||||
|
If enum1Element.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
|
findEndNotesInParagraph(enum1Element, nativeEndNotes, customEndNotes)
|
||||||
|
ElseIf enum1Element.supportsService("com.sun.star.text.TextTable") Then
|
||||||
|
cellNames = enum1Element.cellNames
|
||||||
|
For i = LBound(cellNames) To Ubound(cellNames)
|
||||||
|
cell = enum1Element.getCellByName(cellNames(i))
|
||||||
|
cellEnum = cell.getText().createEnumeration()
|
||||||
|
While cellEnum.hasMoreElements
|
||||||
|
cellEnumElement = cellEnum.nextElement
|
||||||
|
If cellEnumElement.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
|
findEndNotesInParagraph(cellEnumElement, nativeEndNotes, customEndNotes)
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
Next i
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
|
||||||
|
addToArray(outerArray, nativeEndNotes)
|
||||||
|
addToArray(outerArray, customEndNotes)
|
||||||
|
findEndNotesInSelection = outerArray
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub findEndNotesInParagraph(enum1Element As Object,nativeEndNotes As Variant, customEndNotes As Variant)
|
||||||
|
Dim textPortions As Object
|
||||||
|
Dim thisPortion As Object
|
||||||
|
Dim footnoteText As Object
|
||||||
|
Dim label As String
|
||||||
|
Dim labelNum As Long
|
||||||
|
Dim bookmarkName As String
|
||||||
|
If enum1Element.OutlineLevel = level Then
|
||||||
|
curNum = 1
|
||||||
|
EndIf
|
||||||
|
textPortions = enum1Element.createEnumeration
|
||||||
|
While textPortions.hasMoreElements
|
||||||
|
thisPortion = textPortions.nextElement
|
||||||
|
If isTargetNote(thisPortion,1) Then
|
||||||
|
AddToArray(nativeEndNotes, thisPortion)
|
||||||
|
ElseIf isCustomEndnote(thisPortion) Then
|
||||||
|
AddToArray(customEndNotes, thisPortion)
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function isCustomEndnote(portion As Object) As Boolean
|
||||||
|
If InStr(portion.HyperLinkURL, "#" & endnoteFieldPrefix) = 1 And portion.String <> "" Then
|
||||||
|
If InStr(portion.HyperLinkURL, endnoteInBodyAnchorSuffix) > 0 Then
|
||||||
|
isCustomEndnote = true
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
isCustomEndnote = false
|
||||||
|
End Function
|
||||||
|
|
||||||
|
</script:module>
|
12
ePublishing/EndnotesConversion.xdl
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
|
||||||
|
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="EndnotesConversion" dlg:left="199" dlg:top="0" dlg:width="160" dlg:height="84" dlg:closeable="true" dlg:moveable="true">
|
||||||
|
<dlg:bulletinboard>
|
||||||
|
<dlg:text dlg:id="description" dlg:tab-index="0" dlg:left="8" dlg:top="28" dlg:width="147" dlg:height="36" dlg:value="Для вывода концевых сносок установите курсор в целевом параграфе и нажмите Конвертация" dlg:align="center" dlg:multiline="true"/>
|
||||||
|
<dlg:text dlg:id="found" dlg:tab-index="1" dlg:left="8" dlg:top="3" dlg:width="145" dlg:height="8" dlg:value="Найдено концевых сносок" dlg:align="center"/>
|
||||||
|
<dlg:button dlg:id="cancel" dlg:tab-index="2" dlg:left="2" dlg:top="69" dlg:width="50" dlg:height="13" dlg:value="Отмена" dlg:toggled="1"/>
|
||||||
|
<dlg:button dlg:id="start" dlg:tab-index="3" dlg:left="107" dlg:top="69" dlg:width="50" dlg:height="13" dlg:value="Конвертация" dlg:toggled="1"/>
|
||||||
|
<dlg:button dlg:id="option2" dlg:tab-index="4" dlg:visible="false" dlg:left="55" dlg:top="69" dlg:width="50" dlg:height="13" dlg:value="Вариант2" dlg:toggled="1"/>
|
||||||
|
<dlg:text dlg:id="found2" dlg:tab-index="5" dlg:visible="false" dlg:left="8" dlg:top="14" dlg:width="145" dlg:height="8" dlg:value="Найдено концевых сносок" dlg:align="center"/>
|
||||||
|
</dlg:bulletinboard>
|
||||||
|
</dlg:window>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark7
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark8
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub openFootNotesDialog
|
Sub openFootNotesDialog
|
||||||
|
@ -284,4 +284,27 @@ Private Sub doNotTrack
|
||||||
args1(0).Value = true
|
args1(0).Value = true
|
||||||
dispatcher.executeDispatch(document, ".uno:ShowTrackedChanges", "", 0, args1())
|
dispatcher.executeDispatch(document, ".uno:ShowTrackedChanges", "", 0, args1())
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub FixFootnotes()
|
||||||
|
Dim description As String
|
||||||
|
Dim allNotes As Object
|
||||||
|
Dim aNote As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
turnOffTracking
|
||||||
|
AcceptAllTrackedChanges
|
||||||
|
oViewCursor = ThisComponent.currentController.getViewCursor()
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
allNotes = ThisComponent.FootNotes
|
||||||
|
For x = 0 to allNotes.Count -1
|
||||||
|
aNote = allNotes.getByIndex(x)
|
||||||
|
anchor = aNote.anchor
|
||||||
|
oViewCursor.goToRange(anchor,false)
|
||||||
|
oViewCursor.collapseToStart()
|
||||||
|
oViewCursor.goToRange(anchor,true)
|
||||||
|
unoCut()
|
||||||
|
oViewCursor.goLeft(1,false)
|
||||||
|
unoPaste()
|
||||||
|
Next
|
||||||
|
|
||||||
|
End Sub
|
||||||
</script:module>
|
</script:module>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Hyphenations" script:language="StarBasic">Private Sub markHyph4
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Hyphenations" script:language="StarBasic">Private Sub markHyph
|
||||||
End sub
|
End sub
|
||||||
|
|
||||||
Private Sub convertHyphInDoc()
|
Private Sub convertHyphInDoc()
|
||||||
|
@ -15,6 +15,7 @@ Private Sub convertHyphInDoc()
|
||||||
statusIndicator = ThisComponent.getCurrentController.StatusIndicator
|
statusIndicator = ThisComponent.getCurrentController.StatusIndicator
|
||||||
statusIndicator.Start(getTranslation("hyphenationsInProgress"),10)
|
statusIndicator.Start(getTranslation("hyphenationsInProgress"),10)
|
||||||
turnOffTracking
|
turnOffTracking
|
||||||
|
setZoomToSpeedUpTasks()
|
||||||
AcceptAllTrackedChanges
|
AcceptAllTrackedChanges
|
||||||
convertHyphInText(ThisComponent.Text)
|
convertHyphInText(ThisComponent.Text)
|
||||||
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
@ -380,6 +381,10 @@ Private Function needHyphen(before As String, after As String,lineLength As Inte
|
||||||
needHyphen = false
|
needHyphen = false
|
||||||
Case "/"
|
Case "/"
|
||||||
needHyphen = false
|
needHyphen = false
|
||||||
|
Case "?"
|
||||||
|
needHyphen = false
|
||||||
|
Case "!"
|
||||||
|
needHyphen = false
|
||||||
End Select
|
End Select
|
||||||
Select Case after
|
Select Case after
|
||||||
Case " "
|
Case " "
|
||||||
|
@ -430,7 +435,5 @@ Private Function confirm(description)
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Sub Macro1
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
</script:module>
|
</script:module>
|
|
@ -263,7 +263,7 @@ Sub getFNAreaStart
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Function changeCharWidth(delta) As Boolean
|
Function changeCharWidth(delta As Integer) As Boolean
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
Dim oTextCursor As Object
|
Dim oTextCursor As Object
|
||||||
Dim charScale As Integer
|
Dim charScale As Integer
|
||||||
|
@ -277,7 +277,7 @@ Function changeCharWidth(delta) As Boolean
|
||||||
oViewCursor.charScaleWidth = charScale + delta
|
oViewCursor.charScaleWidth = charScale + delta
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function changeKern(delta) As Boolean
|
Function changeKern(delta As Integer) As Boolean
|
||||||
Dim oViewCursor As Object
|
Dim oViewCursor As Object
|
||||||
Dim oTextCursor As Object
|
Dim oTextCursor As Object
|
||||||
Dim kerning As Integer
|
Dim kerning As Integer
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="PageStyles" script:language="StarBasic" script:moduleType="normal"> Dim pDialog As Object
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="PageStyles" script:language="StarBasic" script:moduleType="normal">
|
||||||
|
Dim pDialog As Object
|
||||||
Sub pageStylesDialog
|
Sub pageStylesDialog
|
||||||
|
|
||||||
Dim listBox As Object
|
Dim listBox As Object
|
||||||
|
@ -356,7 +357,7 @@ Function covertMMtoLong(dimension As String) As Long
|
||||||
convertMMtoLong = -1
|
convertMMtoLong = -1
|
||||||
Exit Function
|
Exit Function
|
||||||
EndIf
|
EndIf
|
||||||
dimension = customReplace(dimension, ",", ".")
|
dimension = customReplace(dimension, ".", ",")
|
||||||
If Not IsNumeric( dimension ) Then
|
If Not IsNumeric( dimension ) Then
|
||||||
convertMMtoLong = -1
|
convertMMtoLong = -1
|
||||||
Exit Function
|
Exit Function
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="TOCLinks" script:language="StarBasic" script:moduleType="normal">Sub makeOutlineLinks
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="TOCLinks" script:language="StarBasic" script:moduleType="normal">Sub makeOutlineLinks
|
||||||
|
Dim oViewCursor As Object
|
||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.jumpToFirstPage()
|
||||||
For i = 1 To 10
|
For i = 1 To 10
|
||||||
makeLinksWithLevel(i)
|
makeLinksWithLevel(i)
|
||||||
Next i
|
Next i
|
||||||
|
@ -15,6 +18,7 @@ Sub makeLinksWithLevel(level)
|
||||||
Dim outline() As Object
|
Dim outline() As Object
|
||||||
Dim oAnchor1Name As String
|
Dim oAnchor1Name As String
|
||||||
Dim oAnchor2Name As String
|
Dim oAnchor2Name As String
|
||||||
|
Dim message As String
|
||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
heading = getHeadingWithLevel(level)
|
heading = getHeadingWithLevel(level)
|
||||||
outline = getOutlineWithLevel(level)
|
outline = getOutlineWithLevel(level)
|
||||||
|
@ -28,7 +32,10 @@ Sub makeLinksWithLevel(level)
|
||||||
createLink(outline(i),"",oAnchor2Name)
|
createLink(outline(i),"",oAnchor2Name)
|
||||||
Next i
|
Next i
|
||||||
Else
|
Else
|
||||||
MsgBox getTranslation("TOCErrorContentsNotMatchHeadings1") & " " & level & " (" & (Ubound(outline)+1) & getTranslation("TOCErrorContentsNotMatchHeadings2") & " " & level & " " & getTranslation("TOCErrorContentsNotMatchHeadings3") & (Ubound(heading)+1) & ")"
|
message = getTranslation("TOCErrorContentsNotMatchHeadings1") & " " & level & " (" & (Ubound(outline)+1) &") " & _
|
||||||
|
getTranslation("TOCErrorContentsNotMatchHeadings2") & " " & level & " " & _
|
||||||
|
getTranslation("TOCErrorContentsNotMatchHeadings3") & " (" & (Ubound(heading)+1) & ")"
|
||||||
|
showTOCLinksDialog(message, heading(), outline() )
|
||||||
EndIf
|
EndIf
|
||||||
ElseIf Ubound(outline) = -1 Then
|
ElseIf Ubound(outline) = -1 Then
|
||||||
' MsgBox (getTranslation("TOCErrorNoContents1") & " " & level & " " & getTranslation("TOCErrorNoContents2"))
|
' MsgBox (getTranslation("TOCErrorNoContents1") & " " & level & " " & getTranslation("TOCErrorNoContents2"))
|
||||||
|
@ -128,6 +135,95 @@ Function getOutlineWithLevel(curNum)
|
||||||
getOutlineWithLevel = par()
|
getOutlineWithLevel = par()
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Sub showTOCLinksDialog(message As String, heading() As Object, outline() As Object)
|
||||||
|
Dim pDialog As Object
|
||||||
|
Dim grid As Object
|
||||||
|
Dim headingsColumn As Object
|
||||||
|
Dim tocColumn As Object
|
||||||
|
Dim oGridControl As Object
|
||||||
|
Dim oColumnModel As Object
|
||||||
|
Dim oDataModel As Object
|
||||||
|
Dim rect As Object
|
||||||
|
Dim i As Integer
|
||||||
|
Dim j As Integer
|
||||||
|
Dim outlineCell As String
|
||||||
|
Dim headingCell As String
|
||||||
|
DialogLibraries.LoadLibrary("ePublishing")
|
||||||
|
pDialog = CreateUnoDialog( DialogLibraries.ePublishing.toc_links )
|
||||||
|
|
||||||
|
'grid = pDialog.getControl("grid")
|
||||||
|
grid = pDialog.Model.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
|
||||||
|
grid.Name = "tocGrid"
|
||||||
|
grid.ShowColumnHeader = True
|
||||||
|
grid.ShowRowHeader = True
|
||||||
|
grid.VScroll = true
|
||||||
|
grid.Sizeable = true
|
||||||
|
grid.Step = 0
|
||||||
|
|
||||||
|
oColumnModel = createUnoService( "com.sun.star.awt.grid.DefaultGridColumnModel")
|
||||||
|
|
||||||
|
tocColumn = createUnoService( "com.sun.star.awt.grid.GridColumn")
|
||||||
|
tocColumn.Title = getTranslation("tocItemText")
|
||||||
|
tocColumn.ColumnWidth = 100
|
||||||
|
tocColumn.Resizeable = true
|
||||||
|
'tocColumn.Flexibility = true
|
||||||
|
|
||||||
|
oColumnModel.addColumn( tocColumn )
|
||||||
|
|
||||||
|
headingsColumn = createUnoService( "com.sun.star.awt.grid.GridColumn")
|
||||||
|
headingsColumn.Title = getTranslation("headingItemText")
|
||||||
|
headingsColumn.ColumnWidth = 100
|
||||||
|
headingsColumn.Resizeable = true
|
||||||
|
'headingsColumn.Flexibility = true
|
||||||
|
|
||||||
|
oColumnModel.addColumn( headingsColumn )
|
||||||
|
|
||||||
|
grid.ColumnModel = oColumnModel
|
||||||
|
'grid.Sizeable = False
|
||||||
|
'gridStep = 0
|
||||||
|
|
||||||
|
oDataModel = createUnoService( "com.sun.star.awt.grid.DefaultGridDataModel")
|
||||||
|
If Ubound(outline) > Ubound(heading) Then
|
||||||
|
For i = 0 To (Ubound(outline))
|
||||||
|
outlineCell = outline(i).getString()
|
||||||
|
j = i MOD (Ubound(heading) + 1)
|
||||||
|
headingCell = heading(j).getString()
|
||||||
|
oDataModel.addRow ( i+1 , Array(outlineCell, headingCell) )
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
For i = 0 To (Ubound(heading))
|
||||||
|
headingCell = heading(i).getString()
|
||||||
|
If i > Ubound(outline) Then
|
||||||
|
outlineCell = ""
|
||||||
|
Else
|
||||||
|
outlineCell = outline(i).getString()
|
||||||
|
EndIf
|
||||||
|
oDataModel.addRow ( i+1 , Array(outlineCell, headingCell) )
|
||||||
|
Next i
|
||||||
|
EndIf
|
||||||
|
grid.GridDataModel = oDataModel
|
||||||
|
|
||||||
|
oGridControl = createUnoService("com.sun.star.awt.grid.UnoControlGrid")
|
||||||
|
oGridControl.setModel(grid)
|
||||||
|
pDialog.addControl("gridtab", oGridControl)
|
||||||
|
rect = pDialog.getPosSize()
|
||||||
|
oGridControl.setPosSize(10,60,rect.Width - 20,rect.Height - 120, com.sun.star.awt.PosSize.POSSIZE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pDialog.getControl("Ok").Label = getTranslation("buttonOk")
|
||||||
|
pDialog.getControl("message").SetText(message)
|
||||||
|
pDialog.Title = getTranslation("tocDialogLabel")
|
||||||
|
pDialog.Execute()
|
||||||
|
pDialog.dispose()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Sub addToArray(xArray(),vNextElement)
|
Sub addToArray(xArray(),vNextElement)
|
||||||
Dim iUB As Integer
|
Dim iUB As Integer
|
||||||
Dim iLB As Integer
|
Dim iLB As Integer
|
||||||
|
|
|
@ -29,7 +29,7 @@ End Function
|
||||||
Function getRussian(identifier As String) As String
|
Function getRussian(identifier As String) As String
|
||||||
Select Case identifier
|
Select Case identifier
|
||||||
Case "buttonOk"
|
Case "buttonOk"
|
||||||
getRussian = "Применить"
|
getRussian = "OK"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "buttonCancel"
|
Case "buttonCancel"
|
||||||
getRussian = "Отмена"
|
getRussian = "Отмена"
|
||||||
|
@ -140,10 +140,10 @@ Function getRussian(identifier As String) As String
|
||||||
getRussian = "Число параграфов со стилем Оглавление "
|
getRussian = "Число параграфов со стилем Оглавление "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings2"
|
Case "TOCErrorContentsNotMatchHeadings2"
|
||||||
getRussian = ") не кратно числу Заголовоков"
|
getRussian = " не кратно числу Заголовоков"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings3"
|
Case "TOCErrorContentsNotMatchHeadings3"
|
||||||
getRussian = "уровня ("
|
getRussian = "уровня "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "complileJournalIssueConfirmation"
|
Case "complileJournalIssueConfirmation"
|
||||||
getRussian = "Вы уверены, что хотите запустить сборку выпуска ?"
|
getRussian = "Вы уверены, что хотите запустить сборку выпуска ?"
|
||||||
|
@ -271,6 +271,39 @@ Function getRussian(identifier As String) As String
|
||||||
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
||||||
getRussian = "Введите диапазон страниц"
|
getRussian = "Введите диапазон страниц"
|
||||||
Exit Function
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogFound"
|
||||||
|
getRussian = "Найдено концевых сносок: "
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogDescriptionSelect"
|
||||||
|
getRussian = "Для вывода концевых сносок установите курсор в нужном параграфе и нажмите кнопку Применить"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNotFound"
|
||||||
|
getRussian = "В текущем выделении концевых сносок не найдено. Выделите текст с концевыми сносками."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomDialogFound"
|
||||||
|
getRussian = "Найдено ручных концевых сносок: "
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomConversionOption"
|
||||||
|
getRussian = "Для конвертации ручных концевых сносок в стандартные нажмите кнопку Применить"
|
||||||
|
Exit Function
|
||||||
|
Case "toNativeEndnotes"
|
||||||
|
getRussian = "В стандартные"
|
||||||
|
Exit Function
|
||||||
|
Case "toCustomEndnotes"
|
||||||
|
getRussian = "В ручные"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesConversionTwoOptions"
|
||||||
|
getRussian = "Найдены и стандартные и ручные концевые сноски. Можно сконвертировать стандартные в ручные (установите курсор в нужном параграфе) или ручные в стандартные"
|
||||||
|
Exit Function
|
||||||
|
Case "tocDialogLabel"
|
||||||
|
getRussian = "Ошибка"
|
||||||
|
Exit Function
|
||||||
|
Case "tocItemText"
|
||||||
|
getRussian = "Текст оглавления"
|
||||||
|
Exit Function
|
||||||
|
Case "headingItemText"
|
||||||
|
getRussian = "Текст заголовка"
|
||||||
|
Exit Function
|
||||||
Case Else
|
Case Else
|
||||||
getRussian = "Перевод не найден"
|
getRussian = "Перевод не найден"
|
||||||
End Select
|
End Select
|
||||||
|
@ -391,10 +424,10 @@ Function getEnglish(identifier As String) As String
|
||||||
getEnglish = "Number of paras with style Contents "
|
getEnglish = "Number of paras with style Contents "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings2"
|
Case "TOCErrorContentsNotMatchHeadings2"
|
||||||
getEnglish = ") dosn't match number of headings with "
|
getEnglish = " dosn't match number of headings with "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings3"
|
Case "TOCErrorContentsNotMatchHeadings3"
|
||||||
getEnglish = "level ("
|
getEnglish = "level "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "complileJournalIssueConfirmation"
|
Case "complileJournalIssueConfirmation"
|
||||||
getEnglish = "Compile journal issue from articles?"
|
getEnglish = "Compile journal issue from articles?"
|
||||||
|
@ -522,6 +555,39 @@ Function getEnglish(identifier As String) As String
|
||||||
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
||||||
getEnglish = "Enter the page range "
|
getEnglish = "Enter the page range "
|
||||||
Exit Function
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogFound"
|
||||||
|
getEnglish = "Endnotes found:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogDescriptionSelect"
|
||||||
|
getEnglish = "To list endnote bodies, position the cursor in the desired paragraph and click the Apply button."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNotFound"
|
||||||
|
getEnglish = "No endnotes found in the current selection. Select text with endnotes."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomDialogFound"
|
||||||
|
getEnglish = "Found custom endnotes: "
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomConversionOption"
|
||||||
|
getEnglish = "To convert manual endnotes to standard, click the Apply button"
|
||||||
|
Exit Function
|
||||||
|
Case "toNativeEndnotes"
|
||||||
|
getEnglish = "To standard"
|
||||||
|
Exit Function
|
||||||
|
Case "toCustomEndnotes"
|
||||||
|
getEnglish = "To custom"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesConversionTwoOptions"
|
||||||
|
getEnglish = "Both standard and manual endnotes are found. You can convert standard to manual (place the cursor in the desired paragraph) or manual to standard"
|
||||||
|
Exit Function
|
||||||
|
Case "tocDialogLabel"
|
||||||
|
getEnglish = "Error"
|
||||||
|
Exit Function
|
||||||
|
Case "tocItemText"
|
||||||
|
getEnglish = "Contents item text"
|
||||||
|
Exit Function
|
||||||
|
Case "headingItemText"
|
||||||
|
getEnglish = "Heading text"
|
||||||
|
Exit Function
|
||||||
Case Else
|
Case Else
|
||||||
getEnglish = "No translation"
|
getEnglish = "No translation"
|
||||||
End Select
|
End Select
|
||||||
|
@ -641,10 +707,10 @@ Function getFrench(identifier As String) As String
|
||||||
getFrench = "Nombre de paragraphes avec style Table des matières."
|
getFrench = "Nombre de paragraphes avec style Table des matières."
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings2"
|
Case "TOCErrorContentsNotMatchHeadings2"
|
||||||
getFrench = ") n'est pas un multiple du nombre de titres"
|
getFrench = " n'est pas un multiple du nombre de titres"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings3"
|
Case "TOCErrorContentsNotMatchHeadings3"
|
||||||
getFrench = "au niveau ("
|
getFrench = "au niveau "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "complileJournalIssueConfirmation"
|
Case "complileJournalIssueConfirmation"
|
||||||
getFrench = "Êtes-vous sûr de vouloir compiler un journal à partir d'articles ?"
|
getFrench = "Êtes-vous sûr de vouloir compiler un journal à partir d'articles ?"
|
||||||
|
@ -772,6 +838,39 @@ Function getFrench(identifier As String) As String
|
||||||
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
||||||
getFrench = "Entrez la plage de pages "
|
getFrench = "Entrez la plage de pages "
|
||||||
Exit Function
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogFound"
|
||||||
|
getFrench = "Notes trouvées :"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogDescriptionSelect"
|
||||||
|
getFrench = "Pour afficher les notes de fin, positionnez le curseur dans le paragraphe souhaité et cliquez sur le bouton Appliquer."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNotFound"
|
||||||
|
getFrench = "Aucune note de fin trouvée dans la sélection actuelle. Sélectionnez du texte avec des notes de fin."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomDialogFound"
|
||||||
|
getFrench = "Notes de fin de main trouvées :"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomConversionOption"
|
||||||
|
getFrench = "Pour convertir les notes de fin manuelles en notes standard, cliquez sur le bouton Appliquer"
|
||||||
|
Exit Function
|
||||||
|
Case "toNativeEndnotes"
|
||||||
|
getFrench = "À la norme"
|
||||||
|
Exit Function
|
||||||
|
Case "toCustomEndnotes"
|
||||||
|
getFrench = "Sur mesure"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesConversionTwoOptions"
|
||||||
|
getFrench = "Des notes de fin standard et manuelles sont trouvées. Vous pouvez convertir standard en manuel (placez le curseur dans le paragraphe souhaité) ou manuel en standard"
|
||||||
|
Exit Function
|
||||||
|
Case "tocDialogLabel"
|
||||||
|
getFrench = "Erreur"
|
||||||
|
Exit Function
|
||||||
|
Case "tocItemText"
|
||||||
|
getFrench = "Texte de l'élément de contenu"
|
||||||
|
Exit Function
|
||||||
|
Case "headingItemText"
|
||||||
|
getFrench = "Texte d'en-tête"
|
||||||
|
Exit Function
|
||||||
Case Else
|
Case Else
|
||||||
getFrench = "No translation"
|
getFrench = "No translation"
|
||||||
End Select
|
End Select
|
||||||
|
@ -891,10 +990,10 @@ Function getCroatian(identifier As String) As String
|
||||||
getCroatian = "Broj paragrafa sa stilom Sadržaj"
|
getCroatian = "Broj paragrafa sa stilom Sadržaj"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings2"
|
Case "TOCErrorContentsNotMatchHeadings2"
|
||||||
getCroatian = ") nije višestruko od broja Zaglavlja"
|
getCroatian = " nije višestruko od broja Zaglavlja"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings3"
|
Case "TOCErrorContentsNotMatchHeadings3"
|
||||||
getCroatian = "Nivoa ("
|
getCroatian = "Nivoa "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "complileJournalIssueConfirmation"
|
Case "complileJournalIssueConfirmation"
|
||||||
getCroatian = "Da li ste sigurni da želite da pokrenete gradnju izdanja ?"
|
getCroatian = "Da li ste sigurni da želite da pokrenete gradnju izdanja ?"
|
||||||
|
@ -1022,6 +1121,39 @@ Function getCroatian(identifier As String) As String
|
||||||
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
||||||
getCroatian = "Unesite raspon stranica "
|
getCroatian = "Unesite raspon stranica "
|
||||||
Exit Function
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogFound"
|
||||||
|
getCroatian = "Pronađene krajnje bilješke:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogDescriptionSelect"
|
||||||
|
getCroatian = "Za prikaz krajnjih bilješki postavite kursor u željeni odlomak i kliknite gumb Primijeni."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNotFound"
|
||||||
|
getCroatian = "U trenutnom odabiru nisu pronađene nikakve bilješke. Odaberite tekst s krajnjim bilješkama."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomDialogFound"
|
||||||
|
getCroatian = "Pronađene ručne bilješke:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomConversionOption"
|
||||||
|
getCroatian = "Da biste ručne bilješke pretvorili u standardne, kliknite gumb Primijeni"
|
||||||
|
Exit Function
|
||||||
|
Case "toNativeEndnotes"
|
||||||
|
getCroatian = "Standardno"
|
||||||
|
Exit Function
|
||||||
|
Case "toCustomEndnotes"
|
||||||
|
getCroatian = "Na običaj"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesConversionTwoOptions"
|
||||||
|
getCroatian = "Pronađene su i standardne i ručne bilješke. Možete pretvoriti standardni u ručni (postavite kursor u željeni odlomak) ili ručni u standardni"
|
||||||
|
Exit Function
|
||||||
|
Case "tocDialogLabel"
|
||||||
|
getCroatian = "Pogreška"
|
||||||
|
Exit Function
|
||||||
|
Case "tocItemText"
|
||||||
|
getCroatian = "Sadržaj teksta stavke"
|
||||||
|
Exit Function
|
||||||
|
Case "headingItemText"
|
||||||
|
getCroatian = "Tekst zaglavlja"
|
||||||
|
Exit Function
|
||||||
Case Else
|
Case Else
|
||||||
getCroatian = "No translation"
|
getCroatian = "No translation"
|
||||||
End Select
|
End Select
|
||||||
|
@ -1141,10 +1273,10 @@ Function getSerbian(identifier As String) As String
|
||||||
getSerbian = "Број параграфа са стилом Садржај"
|
getSerbian = "Број параграфа са стилом Садржај"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings2"
|
Case "TOCErrorContentsNotMatchHeadings2"
|
||||||
getSerbian = ") није вишеструко од броја Заглавља"
|
getSerbian = " није вишеструко од броја Заглавља"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings3"
|
Case "TOCErrorContentsNotMatchHeadings3"
|
||||||
getSerbian = "Нивоа ("
|
getSerbian = "Нивоа "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "complileJournalIssueConfirmation"
|
Case "complileJournalIssueConfirmation"
|
||||||
getSerbian = "Да ли сте сигурни да желите да покренете градњу издања ?"
|
getSerbian = "Да ли сте сигурни да желите да покренете градњу издања ?"
|
||||||
|
@ -1272,6 +1404,39 @@ Function getSerbian(identifier As String) As String
|
||||||
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
||||||
getSerbian = "Унесите опсег страница "
|
getSerbian = "Унесите опсег страница "
|
||||||
Exit Function
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogFound"
|
||||||
|
getSerbian = "Пронађене крајње белешке:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogDescriptionSelect"
|
||||||
|
getSerbian = "Да бисте приказали крајње белешке, поставите курсор у жељени пасус и кликните на дугме Примени."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNotFound"
|
||||||
|
getSerbian = "У тренутном избору нису пронађене белешке. Изаберите текст са крајњим белешкама."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomDialogFound"
|
||||||
|
getSerbian = "Пронађене ручне белешке:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomConversionOption"
|
||||||
|
getSerbian = "Да бисте ручне белешке претворили у стандардне, кликните на дугме Примени"
|
||||||
|
Exit Function
|
||||||
|
Case "toNativeEndnotes"
|
||||||
|
getSerbian = "Стандардно"
|
||||||
|
Exit Function
|
||||||
|
Case "toCustomEndnotes"
|
||||||
|
getSerbian = "По мери"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesConversionTwoOptions"
|
||||||
|
getSerbian = "Пронађене су и стандардне и ручне белешке. Можете претворити стандардни у ручни (поставите курсор у жељени одломак) или ручни у стандардни"
|
||||||
|
Exit Function
|
||||||
|
Case "tocDialogLabel"
|
||||||
|
getSerbian = "Грешка"
|
||||||
|
Exit Function
|
||||||
|
Case "tocItemText"
|
||||||
|
getSerbian = "Садржај текста ставке"
|
||||||
|
Exit Function
|
||||||
|
Case "headingItemText"
|
||||||
|
getSerbian = "Текст заглавља"
|
||||||
|
Exit Function
|
||||||
Case Else
|
Case Else
|
||||||
getSerbian = "No translation"
|
getSerbian = "No translation"
|
||||||
End Select
|
End Select
|
||||||
|
@ -1391,10 +1556,10 @@ Function getBosnian(identifier As String) As String
|
||||||
getBosnian = "Broj paragrafa sa stilom Sadržaj"
|
getBosnian = "Broj paragrafa sa stilom Sadržaj"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings2"
|
Case "TOCErrorContentsNotMatchHeadings2"
|
||||||
getBosnian = ") nije višestruko od broja Zaglavlja"
|
getBosnian = " nije višestruko od broja Zaglavlja"
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "TOCErrorContentsNotMatchHeadings3"
|
Case "TOCErrorContentsNotMatchHeadings3"
|
||||||
getBosnian = "Nivoa ("
|
getBosnian = "Nivoa "
|
||||||
Exit Function
|
Exit Function
|
||||||
Case "complileJournalIssueConfirmation"
|
Case "complileJournalIssueConfirmation"
|
||||||
getBosnian = "Da li ste sigurni da želite da pokrenete gradnju izdanja ?"
|
getBosnian = "Da li ste sigurni da želite da pokrenete gradnju izdanja ?"
|
||||||
|
@ -1522,6 +1687,39 @@ Function getBosnian(identifier As String) As String
|
||||||
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
Case "FootnotesConfigDialogNotesPerPageRangeLabel"
|
||||||
getBosnian = "Unesite raspon stranica "
|
getBosnian = "Unesite raspon stranica "
|
||||||
Exit Function
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogFound"
|
||||||
|
getBosnian = "Pronađene krajnje bilješke:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNativeDialogDescriptionSelect"
|
||||||
|
getBosnian = "Za prikaz krajnjih bilješki postavite kursor u željeni odlomak i kliknite gumb Primijeni."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesNotFound"
|
||||||
|
getBosnian = "U trenutnom odabiru nisu pronađene nikakve bilješke. Odaberite tekst s krajnjim bilješkama."
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomDialogFound"
|
||||||
|
getBosnian = "Pronađene ručne bilješke:"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesCustomConversionOption"
|
||||||
|
getBosnian = "Da biste ručne bilješke pretvorili u standardne, kliknite gumb Primijeni"
|
||||||
|
Exit Function
|
||||||
|
Case "toNativeEndnotes"
|
||||||
|
getBosnian = "Standardno"
|
||||||
|
Exit Function
|
||||||
|
Case "toCustomEndnotes"
|
||||||
|
getBosnian = "Na običaj"
|
||||||
|
Exit Function
|
||||||
|
Case "EndnotesConversionTwoOptions"
|
||||||
|
getBosnian = "Pronađene su i standardne i ručne bilješke. Možete pretvoriti standardni u ručni (postavite kursor u željeni odlomak) ili ručni u standardni"
|
||||||
|
Exit Function
|
||||||
|
Case "tocDialogLabel"
|
||||||
|
getBosnian = "Greška"
|
||||||
|
Exit Function
|
||||||
|
Case "tocItemText"
|
||||||
|
getBosnian = "Sadržaj teksta stavke"
|
||||||
|
Exit Function
|
||||||
|
Case "headingItemText"
|
||||||
|
getBosnian = "Tekst zaglavlja"
|
||||||
|
Exit Function
|
||||||
Case Else
|
Case Else
|
||||||
getBosnian = "No translation"
|
getBosnian = "No translation"
|
||||||
End Select
|
End Select
|
||||||
|
|
|
@ -4,4 +4,6 @@
|
||||||
<library:element library:name="FootnotesConfig"/>
|
<library:element library:name="FootnotesConfig"/>
|
||||||
<library:element library:name="replaceParaStyle"/>
|
<library:element library:name="replaceParaStyle"/>
|
||||||
<library:element library:name="PageConfig"/>
|
<library:element library:name="PageConfig"/>
|
||||||
|
<library:element library:name="EndnotesConversion"/>
|
||||||
|
<library:element library:name="toc_links"/>
|
||||||
</library:library>
|
</library:library>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="journals" script:language="StarBasic">Private sub journalsMark28
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="journals" script:language="StarBasic">Private sub journalsMark36
|
||||||
End sub
|
End sub
|
||||||
|
|
||||||
Dim templateName As String
|
Dim templateName As String
|
||||||
|
@ -29,6 +29,7 @@ Private Sub makeUpIssue
|
||||||
If NOT confirm(description) Then
|
If NOT confirm(description) Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
EndIf
|
EndIf
|
||||||
|
setZoomToSpeedUpTasks()
|
||||||
|
|
||||||
EIFN = "ЭиФН"
|
EIFN = "ЭиФН"
|
||||||
PHA = "ФА"
|
PHA = "ФА"
|
||||||
|
@ -228,7 +229,7 @@ Private Function getUDK()
|
||||||
backspace
|
backspace
|
||||||
sendRM
|
sendRM
|
||||||
End If
|
End If
|
||||||
oViewCursor.goToRange(oSavePosition, false)
|
Thiscomponent.CurrentController.select(oSavePosition)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function getCopyright()
|
Private Function getCopyright()
|
||||||
|
@ -662,7 +663,11 @@ Private Sub setArticleUniqPageStyles(i)
|
||||||
'Iterate article page number
|
'Iterate article page number
|
||||||
articlePageNum = articlePageNum + 1
|
articlePageNum = articlePageNum + 1
|
||||||
'GO TO NEXT PAGE
|
'GO TO NEXT PAGE
|
||||||
oViewCursor.jumpToNextPage()
|
If Not oViewCursor.jumpToNextPage() Then
|
||||||
|
MsgBox "setArticleUniqPageStyles failed"
|
||||||
|
End
|
||||||
|
|
||||||
|
EndIf
|
||||||
curPageStyleName = getNextPageStyleName()
|
curPageStyleName = getNextPageStyleName()
|
||||||
Loop
|
Loop
|
||||||
|
|
||||||
|
@ -1131,248 +1136,278 @@ sub backspace
|
||||||
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
|
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
|
||||||
end Sub
|
end Sub
|
||||||
Sub shrinkPageContent
|
|
||||||
Dim oViewCursor As Object 'View cursor
|
Sub configureCursorPositionForContentShrink()
|
||||||
Dim oTextCursor As Object 'Text cursor
|
' Globalscope.BasicLibraries.LoadLibrary("MRILib")
|
||||||
Dim oViewCurInitPosition As Object
|
Dim oViewCursor As Object
|
||||||
Dim oSaveEndSelection 'Text cursor
|
Dim oTextCursor As Object
|
||||||
Dim oEnum 'Cursor enumeration
|
Dim curSelection As Object
|
||||||
Dim oPar 'Current paragraph
|
Dim selectionTextRange As Object
|
||||||
Dim sTextContent$ 'Service name for text content.
|
Dim nextChar As String
|
||||||
Dim scaleWidthShrinkValue As Integer
|
Dim prefChar As String
|
||||||
Dim scaleCharHeight As Integer
|
|
||||||
Dim scaleIntervalHeight As Integer
|
|
||||||
Dim kernShrinkValue As Integer
|
|
||||||
Dim startOfPara As Boolean
|
|
||||||
'saveCurrentVersion
|
|
||||||
kernShrinkValue = 8
|
|
||||||
scaleWidthShrinkValue = 7
|
|
||||||
scaleCharHeight = 2
|
|
||||||
scaleIntervalHeight = 3
|
|
||||||
sTextContent = "com.sun.star.text.TextContent"
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
oViewCurInitPosition = oViewcursor.Text.createTextCursorByRange(oViewCursor)
|
fixViewCursor()
|
||||||
'Check if we are at start of paragraph go to the end of previous paragraph
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isStartOfParagraph() Then
|
'At start of Para
|
||||||
oViewCursor.goLeft(1,false)
|
oTextCursor.collapseToEnd()
|
||||||
If Len(oViewCursor.String) <> 1 Then
|
If oTextCursor.isStartOfParagraph() AND NOT oTextCursor.isEndOfParagraph() Then
|
||||||
oViewCursor.goRight(1,false)
|
oTextCursor.goLeft(1,false)
|
||||||
EndIf
|
EndIf
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub fixViewCursor()
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim curSelection As Object
|
||||||
|
Dim selectionTextRange As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
curSelection = ThisComponent.getCurrentSelection()
|
||||||
|
If Not curSelection.supportsService("com.sun.star.text.TextRanges") Then
|
||||||
|
selectionTextRange = curSelection.Anchor
|
||||||
|
oViewCursor.JumpToFirstPage(false)
|
||||||
|
oViewCursor.goToRange(selectionTextRange,false)
|
||||||
EndIf
|
EndIf
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
'Move right to select left and right characters and save position to the right
|
Function isContentPageChanged(initPosition As Object,initPageNum As String) As Boolean
|
||||||
oViewCursor.goRight(1,false)
|
Dim oViewCursor As Object
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
Dim oTextCursor As Object
|
||||||
'Select last 2 characters
|
isShrinkPageSucceded = false
|
||||||
oViewCursor.goLeft(2,true)
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
If Len(oViewCursor.String) = 2 Then
|
oViewCursor.goToRange(initPosition,false)
|
||||||
oLastChars = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
If (oViewCursor.getPage <> initPageNum) Then
|
||||||
'Insert hyphen if needed
|
isContentPageChanged = true
|
||||||
insertHyphen(oLastChars,oViewCursor)
|
|
||||||
EndIf
|
EndIf
|
||||||
'Return to initial position
|
End Function
|
||||||
oViewCursor.gotoRange(oSaveEndSelection,false) 'Go to end of text to check page changes
|
|
||||||
oViewCursor.goLeft(1,false)
|
|
||||||
'Set saved position to initial state
|
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
|
|
||||||
|
Function breakParaAtCursor() As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim leftMargin As Long
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oTextCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
If NOT oTextCursor.isEndOfParagraph() Then
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
oTextCursor.goRight(2,true)
|
||||||
|
insertHyphen(oTextCursor)
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
leftMargin = oViewCursor.ParaLeftMargin
|
||||||
|
insertPara
|
||||||
|
oViewCursor.ParaFirstLineIndent = leftMargin
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
breakParaAtCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
Else
|
||||||
|
'oTextCursor.goRight(1,false)
|
||||||
|
'oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
'oViewCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
|
||||||
|
'oTextCursor.goLeft(1,false)
|
||||||
|
'oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
breakParaAtCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
oViewCursor.jumpToPreviousPage()
|
sub insertPara
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
|
||||||
|
end sub
|
||||||
|
|
||||||
|
Function canShrinkContent() As Boolean
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim oSavePosition As Object
|
||||||
|
Dim oStartPosition As Object
|
||||||
|
Dim initPageNum As Long
|
||||||
|
Dim startPageNum As Long
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
canShrinkContent = true
|
||||||
|
'In endntote footnote or table shrink is not possible
|
||||||
|
If oViewCursor.Text.supportsService("com.sun.star.text.Endnote") OR _
|
||||||
|
oViewCursor.Text.supportsService("com.sun.star.text.Footnote") OR _
|
||||||
|
oViewCursor.Text.supportsService("com.sun.star.text.CellProperties") Then
|
||||||
|
canShrinkContent = false
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
initPageNum = oViewcursor.getPage()
|
||||||
|
oViewCursor.JumpToPreviousPage(false)
|
||||||
oViewCursor.jumpToStartOfPage()
|
oViewCursor.jumpToStartOfPage()
|
||||||
|
startPageNum = oViewcursor.getPage()
|
||||||
|
'No previous page exists
|
||||||
|
If startPageNum = initPageNum Then
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
canShrinkContent = false
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
'If current paragraph has page break before
|
||||||
|
If oSavePosition.BreakType <> 0 Then
|
||||||
|
oTextCursor = oSavePosition.Text.createTextCursorByRange(oSavePosition)
|
||||||
|
oTextCursor.gotoStartOfParagraph(false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
If oViewCursor.getPage() = initPageNum Then
|
||||||
|
canShrinkContent = false
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
'If one of textRanges is Footnote or Endnote we can't select them so it is better to exit now
|
Do While oViewcursor.getPage() = initPageNum
|
||||||
If oTextCursor.Text.supportsService("com.sun.star.text.Endnote") OR oTextCursor.Text.supportsService("com.sun.star.text.Footnote") Or oTextCursor.Text.supportsService("com.sun.star.text.CellProperties") Then
|
oTextCursor.gotoPreviousParagraph(false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
If oTextCursor.BreakType <> 0 AND oViewcursor.getPage() = initPageNum Then
|
||||||
|
canShrinkContent = false
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Loop
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Function shrinkPageContent() As Boolean
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim initPosition As Object
|
||||||
|
Dim initPageNum As String
|
||||||
|
Dim oSaveEndSelection As Object
|
||||||
|
Dim oEnum As Variant
|
||||||
|
Dim oPar As Object
|
||||||
|
Dim startOfPara As Boolean
|
||||||
|
Dim targetContent() As Object
|
||||||
|
Dim delta As Double
|
||||||
|
Dim rounds As Integer
|
||||||
|
delta = 0.1
|
||||||
|
rounds = 3
|
||||||
|
Dim roundsLineHeight As Integer
|
||||||
|
roundsLineHeight = 3
|
||||||
|
Dim i As Integer
|
||||||
|
Dim j As Integer
|
||||||
shrinkPageContent = false
|
shrinkPageContent = false
|
||||||
oViewCursor.gotoRange(oViewCurInitPosition,false)
|
|
||||||
Exit Sub
|
|
||||||
EndIf
|
|
||||||
If oSaveEndSelection.Text.supportsService("com.sun.star.text.Endnote") OR oSaveEndSelection.Text.supportsService("com.sun.star.text.Footnote") Or oTextCursor.Text.supportsService("com.sun.star.text.CellProperties") Then
|
|
||||||
shrinkPageContent = false
|
|
||||||
oViewCursor.gotoRange(oViewCurInitPosition,false)
|
|
||||||
Exit Sub
|
|
||||||
EndIf
|
|
||||||
oTextCursor.gotoRange(oSaveEndSelection,true)
|
|
||||||
oViewCursor.gotoRange(oSaveEndSelection,false) 'Go to end of text to check page changes
|
|
||||||
|
|
||||||
If shrinkIntervalHeight(oTextCursor,oViewCursor,scaleIntervalHeight) Then
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
If oTextCursor.isEndOfParagraph() Then
|
|
||||||
pos1 = oViewCursor.getPage()
|
|
||||||
oViewCursor.goRight(1,false)
|
|
||||||
pos2 = oViewCursor.getPage()
|
|
||||||
'If we moved right to the next para and page haven't changed insert pageBreak
|
|
||||||
If pos1 = pos2 Then
|
|
||||||
insertPageBreak
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
insertPageBreak
|
|
||||||
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
|
|
||||||
oTextCursor.ParaFirstLineIndent = 0
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
If shrinkCharHeight(oTextCursor,oViewCursor,scaleCharHeight) Then
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
If oTextCursor.isEndOfParagraph() Then
|
|
||||||
pos1 = oViewCursor.getPage()
|
|
||||||
oViewCursor.goRight(1,false)
|
|
||||||
pos2 = oViewCursor.getPage()
|
|
||||||
'If we moved right to the next para and page haven't changed insert pageBreak
|
|
||||||
If pos1 = pos2 Then
|
|
||||||
insertPageBreak
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
insertPageBreak
|
|
||||||
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
|
|
||||||
oTextCursor.ParaFirstLineIndent = 0
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
If shrinkKern(oTextCursor,oViewCursor,kernShrinkValue) Then
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
If oTextCursor.isEndOfParagraph() Then
|
|
||||||
pos1 = oViewCursor.getPage()
|
|
||||||
oViewCursor.goRight(1,false)
|
|
||||||
pos2 = oViewCursor.getPage()
|
|
||||||
'If we moved right to the next para and page haven't changed insert pageBreak
|
|
||||||
If pos1 = pos2 Then
|
|
||||||
insertPageBreak
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
insertPageBreak
|
|
||||||
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
|
|
||||||
oTextCursor.ParaFirstLineIndent = 0
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub splitPages
|
|
||||||
Dim oViewCursor As Object 'View cursor
|
|
||||||
Dim oText 'Text object in current document
|
|
||||||
Dim oSaveEndSelection 'Text cursor
|
|
||||||
'saveCurrentVersion
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
Dim saveFirstLineIndent As Boolean
|
|
||||||
|
|
||||||
'Check if we are at start of paragraph go to the end of previous paragraph
|
configureCursorPositionForContentShrink()
|
||||||
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isEndOfParagraph() Then
|
If Not canShrinkContent() Then
|
||||||
oViewCursor.goRight(1,false)
|
Exit Function
|
||||||
EndIf
|
EndIf
|
||||||
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isStartOfParagraph() Then
|
initPageNum = oViewcursor.getPage()
|
||||||
saveFirstLineIndent = true
|
initPosition = breakParaAtCursor()
|
||||||
Else
|
oViewcursor.goToRange(initPosition,false)
|
||||||
saveFirstLineIndent = false
|
oViewCursor.JumpToPreviousPage(false)
|
||||||
|
oViewCursor.jumpToStartOfPage()
|
||||||
|
startPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
targetContent = selectContentToShrink(initPosition,startPosition)
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
shrinkContentSpacing(targetContent(i))
|
||||||
|
If isContentPageChanged(initPosition, initPageNum) Then
|
||||||
|
Exit Function
|
||||||
EndIf
|
EndIf
|
||||||
|
Next i
|
||||||
|
'TODO: Уменьшая отступы каждого параграфа от и до следующего
|
||||||
|
' а также уменьшая кернинг, межстрочное расстояние и кегль
|
||||||
|
For j = 0 To rounds
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
If (j > 0) Then
|
||||||
|
decreaseContentCharHeight(targetContent(i), delta)
|
||||||
|
EndIf
|
||||||
|
If shrinkContentWithKerning(targetContent(i)) Then
|
||||||
|
balanceContentTail(targetContent(i),false)
|
||||||
|
EndIf
|
||||||
|
If isContentPageChanged(initPosition, initPageNum) Then
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Next i
|
||||||
|
Next j
|
||||||
|
For j = 1 To roundsLineHeight
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
decreaseIntervalHeight(targetContent(i))
|
||||||
|
If isContentPageChanged(initPosition, initPageNum) Then
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Next i
|
||||||
|
Next j
|
||||||
|
For j = 1 To roundsLineHeight
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
increaseIntervalHeight(targetContent(i))
|
||||||
|
Next i
|
||||||
|
Next j
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
increaseContentCharHeight(targetContent(i), delta * rounds )
|
||||||
|
Next i
|
||||||
|
|
||||||
oViewCursor.goRight(1,false)
|
End Function
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
'Select last 2 characters
|
|
||||||
oViewCursor.goLeft(2,true)
|
|
||||||
|
|
||||||
If Len(oViewCursor.String) = 2 Then
|
Function increaseIntervalHeight(oContent As Object) As Boolean
|
||||||
'Insert hyphen if needed
|
increaseIntervalHeight = false
|
||||||
oLastChars = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
Dim oParEnum As Object
|
||||||
insertHyphen(oLastChars,oViewCursor)
|
Dim oPar As Object
|
||||||
End If
|
Dim oSecEnum As Object
|
||||||
'Return to initial position
|
Dim oParSection As Object
|
||||||
oViewCursor.gotoRange(oSaveEndSelection,false) 'Go to end of text to check page changes
|
Dim pageNum As Integer
|
||||||
oViewCursor.goLeft(1,false)
|
Dim lineSpacing As Object
|
||||||
insertPageBreak
|
If Not IsMissing(oContent.ParaLineSpacing) Then
|
||||||
If Not saveFirstLineIndent Then
|
lineSpacing = oContent.ParaLineSpacing
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
If lineSpacing.Mode = 3 Then
|
||||||
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
|
lineSpacing.Height = lineSpacing.Height / 0.98
|
||||||
oTextCursor.ParaFirstLineIndent = 0
|
oContent.ParaLineSpacing = lineSpacing
|
||||||
|
increaseIntervalHeight = true
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function decreaseIntervalHeight(oContent As Object) As Boolean
|
||||||
|
decreaseIntervalHeight = false
|
||||||
|
Dim oParEnum As Object
|
||||||
|
Dim oPar As Object
|
||||||
|
Dim oSecEnum As Object
|
||||||
|
Dim oParSection As Object
|
||||||
|
Dim pageNum As Integer
|
||||||
|
Dim lineSpacing As Object
|
||||||
|
If Not IsMissing(oContent.ParaLineSpacing) Then
|
||||||
|
lineSpacing = oContent.ParaLineSpacing
|
||||||
|
If lineSpacing.Mode = 3 Then
|
||||||
|
lineSpacing.Height = lineSpacing.Height * 0.98
|
||||||
|
oContent.ParaLineSpacing = lineSpacing
|
||||||
|
decreaseIntervalHeight = true
|
||||||
|
End If
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub decreaseContentCharHeight(oContent As Object, delta As double)
|
||||||
|
Dim contentEnum As Object'paragraph enumeration
|
||||||
|
Dim textContentElement As Object'current paragraph
|
||||||
|
Dim curHeight As Double
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
contentEnum = oContent.createEnumeration()
|
||||||
|
Do While contentEnum.hasMoreElements()
|
||||||
|
textContentElement = contentEnum.nextElement()
|
||||||
|
oTextCursor = textContentElement.Text.createTextCursorByRange(textContentElement)
|
||||||
|
curHeight = oTextCursor.charHeight
|
||||||
|
oTextCursor.charHeight = roundHeight(curHeight) - delta
|
||||||
|
Loop
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub increaseContentCharHeight(oContent As Object, delta As double)
|
||||||
|
Dim contentEnum As Object'paragraph enumeration
|
||||||
|
Dim textContentElement As Object'current paragraph
|
||||||
|
Dim curHeight As Double
|
||||||
Function shrinkScaleWidth(oTextCursor,oViewCursor,iterations) As Boolean
|
Dim oTextCursor As Object
|
||||||
Dim oParEnum 'paragraph enumeration
|
contentEnum = oContent.createEnumeration()
|
||||||
Dim oPar 'current paragraph
|
Do While contentEnum.hasMoreElements()
|
||||||
Dim oSecEnum 'sections enumeration
|
textContentElement = contentEnum.nextElement()
|
||||||
Dim oParSection 'paragraph text section
|
oTextCursor = textContentElement.Text.createTextCursorByRange(textContentElement)
|
||||||
Dim pageNum As Integer
|
curHeight = oTextCursor.charHeight
|
||||||
pageNum = oViewCursor.getPage()
|
oTextCursor.charHeight = roundHeight(curHeight) + delta
|
||||||
For i = 1 To iterations Step 1
|
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
|
||||||
Do While oParEnum.hasMoreElements()
|
|
||||||
oPar = oParEnum.nextElement()
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
oPar.charScaleWidth = 100 - i
|
|
||||||
If pageNum <> oViewCursor.getPage() Then
|
|
||||||
shrinkScaleWidth = true
|
|
||||||
Exit Function
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Loop
|
Loop
|
||||||
Next i
|
End Sub
|
||||||
shrinkScaleWidth = false
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Function shrinkKern(oTextCursor,oViewCursor,iterations) As Boolean
|
Function roundHeight(nHeight) As Double
|
||||||
Dim oParEnum 'paragraph enumeration
|
|
||||||
Dim oPar 'current paragraph
|
|
||||||
Dim oSecEnum 'sections enumeration
|
|
||||||
Dim oParSection 'paragraph text section
|
|
||||||
Dim pageNum As Integer
|
|
||||||
pageNum = oViewCursor.getPage()
|
|
||||||
For i = 2 To iterations Step 2
|
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
|
||||||
Do While oParEnum.hasMoreElements()
|
|
||||||
oPar = oParEnum.nextElement()
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
oPar.CharKerning = 0 - i
|
|
||||||
If pageNum <> oViewCursor.getPage() Then
|
|
||||||
shrinkKern = true
|
|
||||||
Exit Function
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Loop
|
|
||||||
Next i
|
|
||||||
shrinkKern = false
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Function shrinkCharHeight(oTextCursor,oViewCursor,iterations) As Boolean
|
|
||||||
Dim oParEnum 'paragraph enumeration
|
|
||||||
Dim oPar 'current paragraph
|
|
||||||
Dim oSecEnum 'sections enumeration
|
|
||||||
Dim oParSection 'paragraph text section
|
|
||||||
Dim pageNum As Integer
|
|
||||||
pageNum = oViewCursor.getPage()
|
|
||||||
For i = 1 To iterations Step 1
|
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
|
||||||
Do While oParEnum.hasMoreElements()
|
|
||||||
oPar = oParEnum.nextElement()
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
oPar.charHeight = roundHeight(oPar.charHeight) - 0.1
|
|
||||||
If pageNum <> oViewCursor.getPage() Then
|
|
||||||
shrinkCharHeight = true
|
|
||||||
Exit Function
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Loop
|
|
||||||
Next i
|
|
||||||
shrinkCharHeight = false
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Function roundHeight(nHeight)
|
|
||||||
Dim lHeight As Double
|
Dim lHeight As Double
|
||||||
Dim hHeight As Double
|
Dim hHeight As Double
|
||||||
lHeight = Int(nHeight)
|
lHeight = Int(nHeight)
|
||||||
|
@ -1388,127 +1423,74 @@ Function roundHeight(nHeight)
|
||||||
roundHeight=lHeight
|
roundHeight=lHeight
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Function shrinkContentSpacing(oContent As Object) As Boolean
|
||||||
Function shrinkIntervalHeight(oTextCursor,oViewCursor,iterations) As Boolean
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
Dim oParEnum 'paragraph enumeration
|
shrinkContentSpacing = false
|
||||||
Dim oPar 'current paragraph
|
If oContent.ParaTopMargin > MIN_SPACING_TO_SHRINK Then
|
||||||
Dim oSecEnum 'sections enumeration
|
oContent.ParaTopMargin = 0
|
||||||
Dim oParSection 'paragraph text section
|
|
||||||
Dim pageNum As Integer
|
|
||||||
Dim lineSpacing
|
|
||||||
pageNum = oViewCursor.getPage()
|
|
||||||
For i = 1 To iterations Step 1
|
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
|
||||||
Do While oParEnum.hasMoreElements()
|
|
||||||
oPar = oParEnum.nextElement()
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
lineSpacing = oPar.ParaLineSpacing
|
|
||||||
If lineSpacing.Mode = 3 Then
|
|
||||||
lineSpacing.Height = lineSpacing.Height * 0.98
|
|
||||||
oPar.ParaLineSpacing = lineSpacing
|
|
||||||
EndIf
|
EndIf
|
||||||
If pageNum <> oViewCursor.getPage() Then
|
If oContent.ParaBottomMargin > MIN_SPACING_TO_SHRINK Then
|
||||||
shrinkIntervalHeight = true
|
oContent.ParaTopMargin = 0
|
||||||
Exit Function
|
|
||||||
EndIf
|
EndIf
|
||||||
End If
|
|
||||||
Loop
|
|
||||||
Next i
|
|
||||||
shrinkIntervalHeight = false
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Sub savecursor
|
Function selectContentToShrink(initPosition As Object, startPosition As Object)
|
||||||
Dim oViewCursor As Object 'View cursor
|
Dim oViewCursor As Object
|
||||||
Dim oTextCursor 'Text cursor
|
Dim oTextCursor As Object
|
||||||
Dim oSaveEndSelection 'Text cursor
|
Dim startPageNum As Long
|
||||||
Dim oEnum 'Cursor enumeration
|
Dim prevPageNum As Long
|
||||||
Dim oText 'Text object in current document
|
Dim savePosition As Object
|
||||||
Dim oPar 'Current paragraph
|
Dim foundPrevPara As Boolean
|
||||||
Dim sTextContent$ 'Service name for text content.
|
Dim targetContent() As Variant
|
||||||
sTextContent = "com.sun.star.text.TextContent"
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oViewcursor.goToRange(startPosition,false)
|
||||||
REM oViewCursor.getText.insertString(oViewCursor.getStart(), CHR$(257), False)
|
prevPageNum = oViewcursor.getPage()
|
||||||
'If Not oViewCursor.jumpToPreviousPage() Then Exit Sub
|
oViewcursor.goToRange(initPosition,false)
|
||||||
oViewCursor.jumpToPreviousPage()
|
startPageNum = oViewcursor.getPage()
|
||||||
oViewCursor.jumpToStartOfPage()
|
|
||||||
|
|
||||||
'oViewCursor.goUp(10,true)
|
|
||||||
'oViewCursor.getPage()
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
'oTextCursor.gotoStart(false)
|
Do While startPageNum = oViewcursor.getPage() OR prevPageNum = oViewcursor.getPage()
|
||||||
oTextCursor.gotoRange(oSaveEndSelection,true)
|
savePosition = oTextCursor.getStart()
|
||||||
|
oTextCursor.gotoStartOfParagraph(true)
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
oViewCursor.collapseToStart()
|
||||||
Do While oParEnum.hasMoreElements()
|
If Len(oTextCursor.String) > 0 Then
|
||||||
Dim oSubSection
|
If (startPageNum = oViewcursor.getPage() OR prevPageNum = oViewcursor.getPage()) Then
|
||||||
Dim oSecEnum
|
AddToArray(targetContent,oTextCursor.Text.createTextCursorByRange(oTextCursor))
|
||||||
|
Else
|
||||||
Do While oParEnum.hasMoreElements()
|
oTextCursor.goToRange(savePosition,false)
|
||||||
oPar = oParEnum.nextElement()
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
oPar.charScaleWidth = oPar.charScaleWidth - 1
|
oViewCursor.JumpToStartOfPage(false)
|
||||||
Dim charHeight
|
oTextCursor.goToRange(oViewCursor,true)
|
||||||
charHeight= oPar.charHeight
|
AddToArray(targetContent,oTextCursor.Text.createTextCursorByRange(oTextCursor))
|
||||||
Dim lineSpacing
|
|
||||||
lineSpacing = oPar.ParaLineSpacing
|
|
||||||
MsgBox lineSpacing.Mode & lineSpacing.Height
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
nPars = nPars + 1
|
|
||||||
oSecEnum = oPar.createEnumeration()
|
|
||||||
s = s & nPars & ":"
|
|
||||||
Do While oSecEnum.hasMoreElements()
|
|
||||||
oParSection = oSecEnum.nextElement()
|
|
||||||
oParSection.charScaleWidth = oParSection.charScaleWidth - 1
|
|
||||||
oParSection.CharHeight = oParSection.CharHeight * 0.99
|
|
||||||
s = s & oParSection.TextPortionType & " Scale " & oParSection.CharScaleWidth & " Scale " & oParSection.CharHeight & ":"
|
|
||||||
Loop
|
|
||||||
s = s & CHR$(10)
|
|
||||||
If nPars MOD 10 = 0 Then
|
|
||||||
MsgBox s, 0, "Paragraph Text Sections"
|
|
||||||
s = ""
|
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
EndIf
|
||||||
|
foundPrevPara = oTextCursor.gotoPreviousParagraph(false)
|
||||||
|
If (foundPrevPara = false) Then
|
||||||
|
Exit Do
|
||||||
|
EndIf
|
||||||
|
oTextCursor.gotoEndOfParagraph(false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
Loop
|
Loop
|
||||||
Loop
|
selectContentToShrink = targetContent
|
||||||
End Sub
|
End Function
|
||||||
|
|
||||||
|
Sub insertPageBreak
|
||||||
|
|
||||||
sub insertPageBreak
|
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
rem define variables
|
|
||||||
dim document as object
|
dim document as object
|
||||||
dim dispatcher as object
|
dim dispatcher as object
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
rem get access to the document
|
|
||||||
document = ThisComponent.CurrentController.Frame
|
document = ThisComponent.CurrentController.Frame
|
||||||
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
|
dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
|
||||||
|
|
||||||
|
|
||||||
end sub
|
|
||||||
|
|
||||||
Sub insertHyphen(oTextCursor,oViewCursor)
|
|
||||||
Dim lastChars
|
|
||||||
'lastChars = oTextCursor.getString()
|
|
||||||
replacementhyp
|
|
||||||
'MsgBox lastChars
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
sub replacementhyp
|
Sub insertHyphen(twoCharactersToHyphen As Object)
|
||||||
rem ----------------------------------------------------------------------
|
Dim oViewCursor As Object
|
||||||
rem define variables
|
Dim document as Object
|
||||||
dim document as object
|
Dim dispatcher as Object
|
||||||
dim dispatcher as object
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
rem ----------------------------------------------------------------------
|
oViewCursor.goToRange(twoCharactersToHyphen,false)
|
||||||
rem get access to the document
|
|
||||||
document = ThisComponent.CurrentController.Frame
|
document = ThisComponent.CurrentController.Frame
|
||||||
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
dim args1(21) as new com.sun.star.beans.PropertyValue
|
dim args1(21) as new com.sun.star.beans.PropertyValue
|
||||||
args1(0).Name = "SearchItem.StyleFamily"
|
args1(0).Name = "SearchItem.StyleFamily"
|
||||||
args1(0).Value = 2
|
args1(0).Value = 2
|
||||||
|
@ -1535,6 +1517,7 @@ sub replacementhyp
|
||||||
args1(11).Name = "SearchItem.SearchString"
|
args1(11).Name = "SearchItem.SearchString"
|
||||||
args1(11).Value = "([a-zA-Zа-яА-Я])([a-zA-Zа-яА-Я])"
|
args1(11).Value = "([a-zA-Zа-яА-Я])([a-zA-Zа-яА-Я])"
|
||||||
args1(12).Name = "SearchItem.ReplaceString"
|
args1(12).Name = "SearchItem.ReplaceString"
|
||||||
|
' "$1 U+00AD $2"
|
||||||
args1(12).Value = "$1$2"
|
args1(12).Value = "$1$2"
|
||||||
args1(13).Name = "SearchItem.Locale"
|
args1(13).Name = "SearchItem.Locale"
|
||||||
args1(13).Value = 255
|
args1(13).Value = 255
|
||||||
|
|
|
@ -11,4 +11,5 @@
|
||||||
<library:element library:name="MakeUp"/>
|
<library:element library:name="MakeUp"/>
|
||||||
<library:element library:name="PageStyles"/>
|
<library:element library:name="PageStyles"/>
|
||||||
<library:element library:name="Translations"/>
|
<library:element library:name="Translations"/>
|
||||||
|
<library:element library:name="Endnotes"/>
|
||||||
</library:library>
|
</library:library>
|
8
ePublishing/toc_links.xdl
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
|
||||||
|
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="toc_links" dlg:left="74" dlg:top="15" dlg:width="346" dlg:height="284" dlg:closeable="true" dlg:moveable="true">
|
||||||
|
<dlg:bulletinboard>
|
||||||
|
<dlg:button dlg:id="Ok" dlg:tab-index="0" dlg:left="125" dlg:top="265" dlg:width="96" dlg:height="17" dlg:value="CommandButton1" dlg:button-type="ok"/>
|
||||||
|
<dlg:text dlg:id="message" dlg:tab-index="1" dlg:left="5" dlg:top="4" dlg:width="334" dlg:height="24" dlg:value="message" dlg:align="center" dlg:multiline="true"/>
|
||||||
|
</dlg:bulletinboard>
|
||||||
|
</dlg:window>
|
|
@ -2,9 +2,9 @@
|
||||||
<description xmlns="http://openoffice.org/extensions/update/2006"
|
<description xmlns="http://openoffice.org/extensions/update/2006"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<identifier value="pro.litvinovg.epublishing"/>
|
<identifier value="pro.litvinovg.epublishing"/>
|
||||||
<version value="0.6.19" />
|
<version value="0.7.16" />
|
||||||
<update-download>
|
<update-download>
|
||||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/uploads/d5cabfae4d13f86a6a93781fdca9bfb7/epublishing.oxt" />
|
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/uploads/9e6d9eaeb144d7a67e94c8460492a040/epublishing.oxt" />
|
||||||
</update-download>
|
</update-download>
|
||||||
<release-notes>
|
<release-notes>
|
||||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/-/raw/master/releasenotes.txt" lang="en" />
|
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/-/raw/master/releasenotes.txt" lang="en" />
|
||||||
|
|
Before Width: | Height: | Size: 18 KiB |
263
icons/addon_icon.svg
Normal file
|
@ -0,0 +1,263 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73333mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73333 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8655"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="addon_icon.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview8657"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="2.0308884"
|
||||||
|
inkscape:cx="112.01994"
|
||||||
|
inkscape:cy="108.32697"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:snap-global="false" />
|
||||||
|
<defs
|
||||||
|
id="defs8652" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-104.6842,-132.32068)">
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 132.37039,148.26988 h -2.07136 v -0.57304 h 2.07136 v -1.68816 h -1.38092 v -0.57303 h 1.38092 v -2.03656 h -4.83319 v 15.16484 h 4.83319 v -5.70978 h -2.07136 v -0.57304 h 2.07136 v -1.7191 h -1.38092 v -0.57303 h 1.38092 z"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="polygon2848-0-7"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 123.12724,144.21435 h 1.30516 l -0.65258,-2.26642 z"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="polygon2850-4-7"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 122.94511,145.10139 -1.08709,2.86162 h 3.88288 l -1.0871,-2.86162 z"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.714155;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="polygon2854-3-4"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000"
|
||||||
|
id="rect9098"
|
||||||
|
width="4.2093248"
|
||||||
|
height="8.8333616"
|
||||||
|
x="121.6905"
|
||||||
|
y="148.86641"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
id="path2860-2-0"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 117.70046,140.80732 -2.45727,5.17649 1.15636,3.65475 h 2.89147 l 1.15637,-3.65475 -2.45784,-5.17649 v 3.8386 a 0.57822907,0.91357072 0 1 1 -0.28909,0 z m -1.30091,9.28765 v 8.34889 h 2.89147 v -8.34889 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
id="path1875-1-2"
|
||||||
|
style="clip-rule:evenodd;fill:#b6b6b6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-linejoin:round;stroke-linecap:round"
|
||||||
|
d="m 111.57969,157.82045 v 32.51431 h 2.7094 v -28.51764 c 0,-0.34404 0.26584,-0.6222 0.59428,-0.6222 h 23.37945 23.3748 c 0.32864,0 0.59428,0.27816 0.59428,0.6222 v 28.51764 h 2.70991 v -32.51431 z m 26.68313,33.75867 v 0 h -23.37945 -0.0145 -3.87884 -0.0196 -4.02818 v 2.9347 c 0,0.80971 0.31401,1.54308 0.82114,2.07428 0.51184,0.53145 1.21262,0.86506 1.98541,0.86506 h 57.02856 c 0.77299,0 1.47311,-0.33361 1.98024,-0.8599 0.50695,-0.53636 0.82114,-1.27024 0.82114,-2.07997 v -2.9347 h -4.02818 -0.015 -3.87884 -0.0191 z m -0.0944,0.86744 c 0.55085,0 1.04846,0.2331 1.41077,0.61238 0.35756,0.3797 0.58446,0.90046 0.58446,1.47743 0,0.57677 -0.2269,1.10308 -0.58446,1.47744 -0.36231,0.3797 -0.85992,0.61235 -1.41077,0.61235 -0.5506,0 -1.05288,-0.23265 -1.41025,-0.61235 l -0.0434,-0.0455 c -0.33828,-0.37436 -0.54105,-0.88053 -0.54105,-1.43195 0,-0.57697 0.22217,-1.09773 0.58446,-1.47743 0.35758,-0.37931 0.85965,-0.61238 1.41025,-0.61238 z m 0,1.24489 c -0.22217,0 -0.4249,0.0959 -0.57464,0.24755 -0.14505,0.15171 -0.23668,0.36443 -0.23668,0.59737 0,0.22262 0.0819,0.42498 0.21239,0.57153 l 0.0243,0.0254 c 0.14983,0.15661 0.35265,0.24805 0.57464,0.24805 0.22217,0 0.42495,-0.0914 0.56999,-0.24805 0.14484,-0.15214 0.23668,-0.36412 0.23668,-0.59685 0,-0.23273 -0.23668,-0.59687 -0.23668,-0.59687 v 0 c 0,0 -0.34759,-0.24755 -0.56999,-0.24755 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png"
|
||||||
|
sodipodi:nodetypes="cccsscsscccccccccccscsscsccccccccscsccscccccscsscssscc" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-5-5-6"
|
||||||
|
width="20.554724"
|
||||||
|
height="1.2916876"
|
||||||
|
x="123.94579"
|
||||||
|
y="168.00031"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-5-4"
|
||||||
|
width="25.511669"
|
||||||
|
height="1.2916876"
|
||||||
|
x="119.06848"
|
||||||
|
y="187.27496"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-5-8-5-1-9"
|
||||||
|
width="25.511669"
|
||||||
|
height="1.2916876"
|
||||||
|
x="118.98883"
|
||||||
|
y="172.7865"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-0-4-8-3-6-8"
|
||||||
|
width="25.511669"
|
||||||
|
height="1.2916876"
|
||||||
|
x="119.06848"
|
||||||
|
y="182.48865"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.97035;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-0-0-6-3-0-4"
|
||||||
|
width="22.040318"
|
||||||
|
height="1.2916876"
|
||||||
|
x="119.06848"
|
||||||
|
y="177.70239"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<ellipse
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.639035;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="path3451-4-2"
|
||||||
|
cx="144.54961"
|
||||||
|
cy="158.14117"
|
||||||
|
rx="4.860126"
|
||||||
|
ry="4.6989589"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
id="path2846-4-4"
|
||||||
|
style="fill:#cecece;fill-opacity:1;stroke:#000000;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 156.56806,135.84201 -0.40979,1.97146 a 11.102961,10.641572 0 0 0 -1.77767,0.4594 l -1.33894,-1.43245 a 13.045401,12.503294 0 0 0 -2.74298,1.53683 l 0.61908,1.80713 a 11.269889,10.801564 0 0 0 -1.3038,1.25005 l -1.88567,-0.59375 a 13.044093,12.50204 0 0 0 -1.60352,2.62929 l 1.49397,1.28313 a 11.097151,10.636004 0 0 0 -0.47904,1.70378 l -2.05673,0.39325 v 3.05356 l 2.05673,0.39325 a 11.095506,10.634428 0 0 0 0.39222,1.46399 l -0.73846,0.41032 a 6.8815349,6.5955698 0 0 0 -1.0976,-0.32917 l -0.64699,-1.45471 h -1.81591 l -0.64699,1.45471 a 6.8863609,6.6001955 0 0 0 -1.09761,0.32866 l -1.39319,-0.77411 a 8.1941513,7.8536402 0 0 0 -1.46968,1.00819 l 0.35553,1.48622 -0.67283,0.87177 -1.62109,0.14211 a 7.831057,7.5056343 0 0 0 -0.5674,1.61748 l 1.33687,1.01285 v 1.07953 l -1.33687,1.01338 a 7.8336105,7.5080817 0 0 0 0.5674,1.61695 l 1.62109,0.1421 0.67231,0.87181 -0.35501,1.48672 a 8.1953078,7.8547488 0 0 0 1.46916,1.00769 l 1.39371,-0.77412 a 6.8815349,6.5955698 0 0 0 1.09761,0.32867 l 0.64699,1.40509 h 1.81591 l 0.64699,-1.40509 a 6.8835862,6.5975361 0 0 0 1.0976,-0.32867 l 1.3932,0.77412 a 8.1941513,7.8536402 0 0 0 1.46968,-1.00769 l -0.35553,-1.48672 0.67282,-0.87128 1.62109,-0.14211 a 7.8318192,7.5063648 0 0 0 0.56741,-1.61747 l -0.50488,-0.38293 a 13.044718,12.502639 0 0 0 1.38441,0.66817 l 1.33842,-1.43245 a 11.105361,10.643874 0 0 0 1.77819,0.4594 l 0.40979,1.97146 h 3.18637 l 0.40979,-1.97146 a 11.10309,10.641698 0 0 0 1.77767,-0.4589 l 1.33894,1.43195 a 13.046811,12.504646 0 0 0 2.74298,-1.53685 l -0.61908,-1.80661 a 11.274289,10.805781 0 0 0 1.30431,-1.25058 l 1.88516,0.59378 a 13.044718,12.502639 0 0 0 1.60404,-2.62879 l -1.49449,-1.28363 a 11.105231,10.643748 0 0 0 0.47905,-1.70378 l 2.05723,-0.39325 v -3.05356 l -2.05723,-0.39275 a 11.097067,10.635923 0 0 0 -0.47905,-1.70428 l 1.49449,-1.28313 a 13.046811,12.504646 0 0 0 -1.60352,-2.62879 l -1.88568,0.59325 a 11.269889,10.801564 0 0 0 -1.30431,-1.25005 l 0.6196,-1.80713 a 13.044718,12.502639 0 0 0 -2.74298,-1.53683 l -1.33894,1.43245 a 11.105231,10.643748 0 0 0 -1.77819,-0.4594 l -0.40979,-1.97146 z m 1.53272,5.37229 a 7.4734009,7.1628407 0 0 1 7.53391,7.16287 7.4734009,7.1628407 0 0 1 -7.47344,7.16286 7.4734899,7.1629247 0 0 1 -0.0605,-14.32573 z m -0.16433,4.38269 a 2.7811034,2.6888794 0 0 0 -2.77606,2.68872 2.7811034,2.6888794 0 0 0 2.78071,2.68872 2.7811034,2.6888794 0 0 0 2.78123,-2.68872 2.7811034,2.6888794 0 0 0 -2.78123,-2.68872 2.7811034,2.6888794 0 0 0 -0.005,0 z m -13.79554,8.63409 a 4.0105414,3.8438817 0 1 1 -4.01061,3.84421 4.0105414,3.8438817 0 0 1 4.01061,-3.84421 z m 0.046,1.58647 a 2.2417849,2.1674453 0 0 0 -2.24172,2.16731 2.2417849,2.1674453 0 0 0 2.24172,2.16781 2.2417849,2.1674453 0 0 0 2.24173,-2.16781 2.2417849,2.1674453 0 0 0 -2.24173,-2.16731 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 149.99326,167.37867 v -2.09802"
|
||||||
|
id="path1537-6-4"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 149.99327,188.56219 -1e-5,-17.80174"
|
||||||
|
id="path1506-9-0"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<ellipse
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
cx="149.99326"
|
||||||
|
cy="169.06958"
|
||||||
|
id="path1512-6-3"
|
||||||
|
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
rx="1.6157811"
|
||||||
|
ry="1.6908911"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 154.3994,172.16728 v -6.88663"
|
||||||
|
id="path1530-8-2"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 154.39941,188.61138 -10e-6,-13.06231"
|
||||||
|
id="path1510-0-0"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<ellipse
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
cx="154.39941"
|
||||||
|
cy="173.85822"
|
||||||
|
id="circle1514-8-8"
|
||||||
|
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
rx="1.6157811"
|
||||||
|
ry="1.6908911"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 158.80553,168.86349 v -3.58284"
|
||||||
|
id="path1523-6-6"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="M 158.80554,188.60154 V 172.24526"
|
||||||
|
id="path1508-7-9"
|
||||||
|
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<ellipse
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
cx="158.80553"
|
||||||
|
cy="170.55444"
|
||||||
|
id="circle1516-5-9"
|
||||||
|
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
rx="1.6157811"
|
||||||
|
ry="1.6908911"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<ellipse
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
ry="1.1019053"
|
||||||
|
rx="1.1396987"
|
||||||
|
cy="148.22153"
|
||||||
|
cx="157.88336"
|
||||||
|
id="path3451-5-6-3-46-3"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.25995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect4991-5-0-5-8"
|
||||||
|
width="67.73333"
|
||||||
|
height="67.73333"
|
||||||
|
x="104.6842"
|
||||||
|
y="132.32068"
|
||||||
|
ry="0.089716367"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 9.9 KiB |
97
icons/decChar.svg
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73336mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73336 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8011"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="decchar.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview8013"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.436055"
|
||||||
|
inkscape:cx="145.88578"
|
||||||
|
inkscape:cy="80.080498"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true">
|
||||||
|
<sodipodi:guide
|
||||||
|
position="49.561416,111.39896"
|
||||||
|
orientation="0,-1"
|
||||||
|
id="guide827" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs8008" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-105.05268,-164.01051)">
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect982-9-2-94-5-6-5"
|
||||||
|
width="67.73333"
|
||||||
|
height="67.73333"
|
||||||
|
x="104.9709"
|
||||||
|
y="163.94754" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="font-size:19.7556px;line-height:125%;font-family:Sans;letter-spacing:-1.83084px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="flowRoot2434-2-1"
|
||||||
|
transform="matrix(5.3096471,0,0,5.1940957,-519.98047,-757.85626)"
|
||||||
|
aria-label="T">
|
||||||
|
<path
|
||||||
|
id="path2701-7"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:1.26894px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 129.52705,177.74929 -10.8888,0.0147 -0.004,3.38911 c 0,0.11729 0.0461,0.21508 0.13831,0.29325 0.10537,0.0652 0.21736,0.0978 0.3359,0.0978 0.15806,0 0.30957,-0.0326 0.45445,-0.0978 0.14489,-0.0651 0.22381,-0.14992 0.23701,-0.25417 0.0922,-0.63852 0.1976,-1.12713 0.31615,-1.46593 0.13172,-0.35185 0.31615,-0.6125 0.55324,-0.78189 0.25026,-0.1824 0.5993,-0.28009 1.04713,-0.29315 h 1.36326 v 9.32363 c -0.0132,0.32578 -0.0461,0.59298 -0.0988,0.80148 -0.0395,0.19546 -0.1515,0.3648 -0.3359,0.50814 -0.18441,0.13036 -0.46756,0.1955 -0.84954,0.1955 -0.18438,0 -0.30951,0.0196 -0.37541,0.0587 -0.0658,0.0391 -0.10536,0.15635 -0.11856,0.35182 0,0.11728 0.0263,0.22151 0.079,0.31274 0.0658,0.0782 0.15808,0.11734 0.27662,0.11734 v -1e-4 c 0.85615,-0.0391 1.67937,-0.0587 2.46967,-0.0587 0.71126,0 1.48837,0.0196 2.33135,0.0587 0.11856,0 0.20416,-0.0391 0.25687,-0.11724 0.0659,-0.0912 0.0988,-0.19546 0.0988,-0.31274 -0.0132,-0.18242 -0.0526,-0.29324 -0.11855,-0.33232 -0.0527,-0.0521 -0.13833,-0.0782 -0.25687,-0.0782 h -0.11855 c -0.38197,0 -0.66513,-0.0652 -0.84953,-0.1955 -0.18442,-0.14334 -0.30296,-0.31268 -0.35566,-0.50814 -0.0395,-0.2085 -0.0658,-0.4757 -0.079,-0.80148 v -9.32363 h 1.34351 c 0.44783,0.013 0.79696,0.11071 1.04722,0.29315 0.25026,0.16939 0.43461,0.42349 0.55315,0.7623 0.11854,0.3388 0.23053,0.83397 0.3359,1.48552 0.0132,0.10424 0.0856,0.18897 0.21735,0.25417 0.14489,0.0652 0.2963,0.0978 0.45436,0.0978 0.11854,0 0.23052,-0.0326 0.3359,-0.0978 0.10535,-0.0782 0.15807,-0.17596 0.15807,-0.29325 z"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
d="m 117.74779,192.69455 13.39438,13.53973 -13.39438,13.53997 -0.0596,-6.49361 h -12.05501 v -14.09253 h 12.05498 z"
|
||||||
|
id="path966-9-6-0-26"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#0200ff;fill-opacity:1;stroke-width:5.49326"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
d="m 160.06694,192.69455 -13.39438,13.53973 13.39438,13.53997 0.0596,-6.49361 h 12.05501 v -14.09253 h -12.05498 z"
|
||||||
|
id="path966-9-6-0-26-3"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#0200ff;fill-opacity:1;stroke-width:5.49326"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect982-9-2-9-7-3-5"
|
||||||
|
width="67.73333"
|
||||||
|
height="67.73333"
|
||||||
|
x="104.97087"
|
||||||
|
y="163.94754" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 11 KiB |
90
icons/decKern.svg
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73333mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.733329 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2477"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="decKern.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview2479"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.436055"
|
||||||
|
inkscape:cx="84.606788"
|
||||||
|
inkscape:cy="174.78439"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:snap-global="false" />
|
||||||
|
<defs
|
||||||
|
id="defs2474" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-53.01717,-69.4972)">
|
||||||
|
<rect
|
||||||
|
y="69.4972"
|
||||||
|
x="53.01717"
|
||||||
|
height="67.73333"
|
||||||
|
width="67.73333"
|
||||||
|
id="rect982-9-2-94-5-3-3-2"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path7281-5-8"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 54.72981,114.22729 q -0.47856,0 -0.69129,-0.39538 -0.26594,-0.46127 -0.26594,-1.05436 0.0534,-0.98848 0.31904,-1.18615 0.26595,-0.1978 0.63811,-0.1978 0.37223,0 0.47856,0 1.59525,0 2.33969,-0.98846 0.74444,-1.05436 1.16986,-2.30641 0.47858,-1.31796 0.63808,-1.77924 l 9.30559,-27.281567 q 0.31906,-0.988455 0.31906,-1.581525 0,-1.186153 -0.74445,-1.71335 -0.74446,-0.527164 -2.07384,-0.856665 -0.90394,-0.197785 -1.11666,-0.395394 -0.21264,-0.197808 -0.21264,-1.120235 0,-0.79079 0.31905,-1.054359 0.3722,-0.263527 1.11667,-0.263527 2.65874,0 4.20081,0.527141 1.59524,0.461325 2.76511,1.976953 1.16984,1.449745 2.18017,4.481039 l 8.93336,27.281549 q 0.79761,2.5041 1.54206,3.75617 0.74446,1.25202 2.23334,1.31795 h 0.31907 q 0.53171,0 0.74444,0.2635 0.21263,0.19782 0.26593,1.12028 0,0.59308 -0.26593,1.05436 -0.21265,0.39538 -0.6913,0.39538 -3.40321,-0.1978 -5.84921,-0.1978 -3.1905,0 -6.59368,0.1978 -0.47859,0 -0.74446,-0.39538 -0.21263,-0.46128 -0.21263,-1.05436 0.0533,-0.92256 0.26592,-1.12028 0.21265,-0.2635 0.74445,-0.2635 1.80793,0 2.5524,-0.39538 0.74445,-0.46128 0.74445,-1.58156 0,-0.85664 -0.63811,-3.09718 l -1.80795,-5.4695 h -13.1342 q -1.32936,4.08567 -1.54206,4.74465 -0.15959,0.65895 -0.15959,0.72485 -0.63811,2.5041 -0.63811,3.22897 0,1.12027 0.79761,1.51565 0.79764,0.32957 3.03097,0.32957 h 0.31905 q 0.53173,0 0.74442,0.26349 0.21264,0.19782 0.26595,1.12029 0,0.59309 -0.26595,1.05437 -0.21264,0.39536 -0.69124,0.39536 -3.4032,-0.19781 -5.79605,-0.19781 -1.7016,0 -5.15796,0.19781 z M 64.833,98.0165 H 75.99973 L 70.62906,81.08085 h -0.15961 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path7283-2-4"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.626217px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 94.09436,116.08178 q -0.41432,0.13465 -0.8041,-0.0973 -0.38979,-0.23215 -0.58234,-0.73936 L 79.18886,71.864135 q -0.10865,-0.513438 0.16248,-1.002634 0.27115,-0.489207 0.72739,-0.626989 0.41431,-0.134653 0.80409,0.09753 0.43173,0.229052 0.62676,0.78825 l 13.43523,43.386948 q 0.10865,0.51346 -0.16498,0.9507 -0.22921,0.48613 -0.68545,0.62393 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path7285-1-6"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 100.76564,114.62338 q -1.59528,-5.40359 -5.05163,-17.19925 -3.45634,-11.79562 -5.0516,-17.067432 -0.90394,-2.833595 -1.75475,-3.953885 -0.8508,-1.120234 -2.4992,-1.515642 -0.21264,-0.06602 -0.63811,-0.131701 -0.42539,-0.13168 -0.58491,-0.395373 -0.10629,-0.329556 -0.10629,-0.988477 0,-0.790746 0.31904,-1.054316 0.37224,-0.263537 1.1167,-0.263537 3.98811,0 6.06192,1.51565 2.0738,1.515653 3.29681,5.403609 l 7.71036,25.700004 h 0.15962 l 7.33809,-26.424888 q 0.31907,-1.120257 0.31907,-1.713338 0,-0.922537 -0.63811,-1.186152 -0.58489,-0.329568 -2.02061,-0.329568 h -0.31909 q -0.53171,0 -0.74439,-0.197797 -0.21266,-0.263515 -0.26597,-1.186152 0,-0.59308 0.21265,-0.988476 0.26594,-0.461279 0.69129,-0.461279 3.45636,0.197787 5.79601,0.197787 1.01034,0 3.88178,-0.13168 l 1.11666,-0.06602 q 0.47858,0 0.69128,0.46128 0.26593,0.395395 0.26593,0.988486 -0.0533,0.922559 -0.26593,1.186142 -0.21264,0.197808 -0.74445,0.197808 -2.28651,0 -3.50952,0.922571 -1.16986,0.922558 -2.02065,3.558478 -1.59525,5.403587 -5.15794,17.528728 -3.50955,12.05923 -5.10481,17.59463 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
d="m 101.68467,117.40379 -13.026836,9.55858 13.026836,9.55873 0.0275,-4.76566 h 18.65975 v -9.58604 h -18.65975 z"
|
||||||
|
id="path966-9-6-0-2-0-0-9-4-7-4-9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#001bff;fill-opacity:1;stroke-width:3.13936"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
d="m 72.381126,117.25351 13.02687,9.55858 -13.02687,9.55873 -0.0275,-4.76566 H 53.693883 v -9.58604 h 18.659743 z"
|
||||||
|
id="path966-9-6-0-2-0-0-9-4-7-4-9-4"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#001bff;fill-opacity:1;stroke-width:3.13936"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.2 KiB |
153
icons/endnotes.svg
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73333mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73333 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2486"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="endnotes.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview2488"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.6903844"
|
||||||
|
inkscape:cx="83.708771"
|
||||||
|
inkscape:cy="81.638236"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs2483" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-92.892647,-111.68544)">
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
y="111.68544"
|
||||||
|
x="92.892647"
|
||||||
|
height="67.73333"
|
||||||
|
width="67.73333"
|
||||||
|
id="rect3292"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||||
|
<rect
|
||||||
|
y="135.49535"
|
||||||
|
x="95.049019"
|
||||||
|
height="5.0871596"
|
||||||
|
width="40.605831"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.10395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
inkscape:export-ydpi="96.000046" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.948985;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-1"
|
||||||
|
width="8.2611904"
|
||||||
|
height="5.0871596"
|
||||||
|
x="150.44847"
|
||||||
|
y="135.49535" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
sodipodi:nodetypes="cccccc"
|
||||||
|
style="fill:#ff6600;fill-opacity:1;stroke-width:3.89118"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path966-9-6-0-2-0-37-2"
|
||||||
|
d="m 157.55297,151.61926 -13.85782,13.28552 -13.85804,-13.28552 9.21069,-0.0292 9.29454,-2e-5 z" />
|
||||||
|
<rect
|
||||||
|
y="127.10445"
|
||||||
|
x="150.46057"
|
||||||
|
height="5.0871596"
|
||||||
|
width="8.2611904"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-1-4"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.948984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
inkscape:export-ydpi="96.000046" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.10395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-2"
|
||||||
|
width="40.605831"
|
||||||
|
height="5.0871596"
|
||||||
|
x="95.057297"
|
||||||
|
y="127.22473" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.948984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-1-4-1"
|
||||||
|
width="8.2611904"
|
||||||
|
height="5.0871596"
|
||||||
|
x="150.49835"
|
||||||
|
y="143.73186" />
|
||||||
|
<rect
|
||||||
|
y="143.93459"
|
||||||
|
x="95.058357"
|
||||||
|
height="5.0871596"
|
||||||
|
width="40.605831"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-2-7"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.10395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
inkscape:export-ydpi="96.000046" />
|
||||||
|
<rect
|
||||||
|
y="167.01994"
|
||||||
|
x="101.8401"
|
||||||
|
height="3.5655646"
|
||||||
|
width="56.980888"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-24-5"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.08656;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
inkscape:export-ydpi="96.000046" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.08656;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-24-5-7"
|
||||||
|
width="56.980892"
|
||||||
|
height="3.5655646"
|
||||||
|
x="101.83765"
|
||||||
|
y="174.05339" />
|
||||||
|
<circle
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
r="2.3487535"
|
||||||
|
cy="168.64861"
|
||||||
|
cx="98.229622"
|
||||||
|
id="path3707"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:9.56849;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<circle
|
||||||
|
inkscape:export-ydpi="96.000046"
|
||||||
|
inkscape:export-xdpi="96.000046"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:9.5685;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path3707-1"
|
||||||
|
cx="98.270699"
|
||||||
|
cy="175.60979"
|
||||||
|
r="2.3487535" />
|
||||||
|
<path
|
||||||
|
style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 94.786563,114.60607 h 40.431997 c 9.72673,0 12.52136,5.48131 12.52136,12.52137 v 25.97065 h -8.81151 v -24.64861 c 0,-3.02882 -0.65494,-5.90145 -6.22771,-6.06022 H 94.761584 Z"
|
||||||
|
id="path5209"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 10 KiB |
90
icons/incChar.svg
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73336mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73336 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg7825"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="symbol_plus.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7827"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.0154442"
|
||||||
|
inkscape:cx="9.3555114"
|
||||||
|
inkscape:cy="35.452464"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs7822" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-131.95218,-153.69289)">
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect982-9-2-94-5-6-5"
|
||||||
|
width="67.73333"
|
||||||
|
height="67.73333"
|
||||||
|
x="131.95221"
|
||||||
|
y="153.69289" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="font-size:19.7556px;line-height:125%;font-family:Sans;letter-spacing:-1.83084px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="flowRoot2434-2-1"
|
||||||
|
transform="matrix(5.3096471,0,0,5.1940957,-492.99916,-768.11092)"
|
||||||
|
aria-label="T">
|
||||||
|
<path
|
||||||
|
id="path2701-7"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:1.26894px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 129.52705,177.74929 -10.8888,0.0147 -0.004,3.38911 c 0,0.11729 0.0461,0.21508 0.13831,0.29325 0.10537,0.0652 0.21736,0.0978 0.3359,0.0978 0.15806,0 0.30957,-0.0326 0.45445,-0.0978 0.14489,-0.0651 0.22381,-0.14992 0.23701,-0.25417 0.0922,-0.63852 0.1976,-1.12713 0.31615,-1.46593 0.13172,-0.35185 0.31615,-0.6125 0.55324,-0.78189 0.25026,-0.1824 0.5993,-0.28009 1.04713,-0.29315 h 1.36326 v 9.32363 c -0.0132,0.32578 -0.0461,0.59298 -0.0988,0.80148 -0.0395,0.19546 -0.1515,0.3648 -0.3359,0.50814 -0.18441,0.13036 -0.46756,0.1955 -0.84954,0.1955 -0.18438,0 -0.30951,0.0196 -0.37541,0.0587 -0.0658,0.0391 -0.10536,0.15635 -0.11856,0.35182 0,0.11728 0.0263,0.22151 0.079,0.31274 0.0658,0.0782 0.15808,0.11734 0.27662,0.11734 v -1e-4 c 0.85615,-0.0391 1.67937,-0.0587 2.46967,-0.0587 0.71126,0 1.48837,0.0196 2.33135,0.0587 0.11856,0 0.20416,-0.0391 0.25687,-0.11724 0.0659,-0.0912 0.0988,-0.19546 0.0988,-0.31274 -0.0132,-0.18242 -0.0526,-0.29324 -0.11855,-0.33232 -0.0527,-0.0521 -0.13833,-0.0782 -0.25687,-0.0782 h -0.11855 c -0.38197,0 -0.66513,-0.0652 -0.84953,-0.1955 -0.18442,-0.14334 -0.30296,-0.31268 -0.35566,-0.50814 -0.0395,-0.2085 -0.0658,-0.4757 -0.079,-0.80148 v -9.32363 h 1.34351 c 0.44783,0.013 0.79696,0.11071 1.04722,0.29315 0.25026,0.16939 0.43461,0.42349 0.55315,0.7623 0.11854,0.3388 0.23053,0.83397 0.3359,1.48552 0.0132,0.10424 0.0856,0.18897 0.21735,0.25417 0.14489,0.0652 0.2963,0.0978 0.45436,0.0978 0.11854,0 0.23052,-0.0326 0.3359,-0.0978 0.10535,-0.0782 0.15807,-0.17596 0.15807,-0.29325 z"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
d="m 145.66063,182.43989 -13.39438,13.53973 13.39438,13.53997 0.0596,-6.49361 h 12.05501 v -14.09253 h -12.05498 z"
|
||||||
|
id="path966-9-6-0-26"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ff0002;fill-opacity:1;stroke-width:5.49326"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
d="m 185.76848,182.43989 13.39438,13.53973 -13.39438,13.53997 -0.0596,-6.49361 h -12.05501 v -14.09253 h 12.05498 z"
|
||||||
|
id="path966-9-6-0-26-3"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ff0002;fill-opacity:1;stroke-width:5.49326"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect982-9-2-9-7-3-5"
|
||||||
|
width="67.73333"
|
||||||
|
height="67.73333"
|
||||||
|
x="131.95218"
|
||||||
|
y="153.69289" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 11 KiB |
90
icons/incKern.svg
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73336mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73336 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2700"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="incKern.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview2702"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="2.0308884"
|
||||||
|
inkscape:cx="128.76138"
|
||||||
|
inkscape:cy="144.76423"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:snap-global="false" />
|
||||||
|
<defs
|
||||||
|
id="defs2697" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-114.87222,-84.436211)">
|
||||||
|
<rect
|
||||||
|
y="84.436211"
|
||||||
|
x="114.87222"
|
||||||
|
height="67.73333"
|
||||||
|
width="67.73333"
|
||||||
|
id="rect982-9-2-94-5-3-3-2"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path7281-5"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 116.58485,129.16631 q -0.47856,0 -0.69129,-0.39538 -0.26594,-0.46127 -0.26594,-1.05436 0.0534,-0.98848 0.31904,-1.18615 0.26595,-0.1978 0.63811,-0.1978 0.37223,0 0.47856,0 1.59525,0 2.33969,-0.98846 0.74444,-1.05436 1.16986,-2.30641 0.47858,-1.31796 0.63808,-1.77924 l 9.30559,-27.281577 q 0.31906,-0.988455 0.31906,-1.581525 0,-1.186153 -0.74445,-1.71335 -0.74446,-0.527164 -2.07384,-0.856665 -0.90394,-0.197785 -1.11666,-0.395394 -0.21264,-0.197808 -0.21264,-1.120235 0,-0.79079 0.31905,-1.054359 0.3722,-0.263527 1.11667,-0.263527 2.65874,0 4.20081,0.527141 1.59524,0.461325 2.76511,1.976953 1.16984,1.449745 2.18017,4.481039 l 8.93336,27.281559 q 0.79761,2.5041 1.54206,3.75617 0.74446,1.25202 2.23334,1.31795 h 0.31907 q 0.53171,0 0.74444,0.2635 0.21263,0.19782 0.26593,1.12028 0,0.59308 -0.26593,1.05436 -0.21265,0.39538 -0.6913,0.39538 -3.40321,-0.1978 -5.84921,-0.1978 -3.1905,0 -6.59368,0.1978 -0.47859,0 -0.74446,-0.39538 -0.21263,-0.46128 -0.21263,-1.05436 0.0533,-0.92256 0.26592,-1.12028 0.21265,-0.2635 0.74445,-0.2635 1.80793,0 2.5524,-0.39538 0.74445,-0.46128 0.74445,-1.58156 0,-0.85664 -0.63811,-3.09718 l -1.80795,-5.4695 h -13.1342 q -1.32936,4.08567 -1.54206,4.74465 -0.15959,0.65895 -0.15959,0.72485 -0.63811,2.5041 -0.63811,3.22897 0,1.12027 0.79761,1.51565 0.79764,0.32957 3.03097,0.32957 h 0.31905 q 0.53173,0 0.74442,0.26349 0.21264,0.19782 0.26595,1.12029 0,0.59309 -0.26595,1.05437 -0.21264,0.39536 -0.69124,0.39536 -3.4032,-0.19781 -5.79605,-0.19781 -1.7016,0 -5.15796,0.19781 z m 10.10319,-16.2108 h 11.16673 L 132.4841,96.01986 h -0.15961 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path7283-2"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.626217px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 155.9494,131.0208 q -0.41432,0.13465 -0.8041,-0.0973 -0.38979,-0.23215 -0.58234,-0.73936 L 141.0439,86.803145 q -0.10865,-0.513438 0.16248,-1.002634 0.27115,-0.489207 0.72739,-0.626989 0.41431,-0.134653 0.80409,0.09753 0.43173,0.229052 0.62676,0.78825 l 13.43523,43.386958 q 0.10865,0.51346 -0.16498,0.9507 -0.22921,0.48613 -0.68545,0.62393 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path7285-1-6"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 162.62067,129.5624 q -1.59527,-5.40359 -5.05162,-17.19926 -3.45634,-11.79562 -5.0516,-17.067432 -0.90394,-2.833595 -1.75475,-3.953885 -0.8508,-1.120234 -2.4992,-1.515642 -0.21264,-0.06602 -0.63811,-0.131701 -0.42539,-0.13168 -0.58491,-0.395373 -0.10629,-0.329556 -0.10629,-0.988477 0,-0.790746 0.31904,-1.054316 0.37224,-0.263537 1.1167,-0.263537 3.98811,0 6.06192,1.51565 2.0738,1.515653 3.29681,5.403609 l 7.71035,25.700014 h 0.15962 l 7.33809,-26.424898 q 0.31907,-1.120257 0.31907,-1.713338 0,-0.922537 -0.63811,-1.186152 -0.58489,-0.329568 -2.02061,-0.329568 h -0.31909 q -0.53171,0 -0.74439,-0.197797 -0.21266,-0.263515 -0.26597,-1.186152 0,-0.59308 0.21265,-0.988476 0.26594,-0.461279 0.69129,-0.461279 3.45636,0.197787 5.79601,0.197787 1.01034,0 3.88178,-0.13168 l 1.11667,-0.06602 q 0.47858,0 0.69128,0.46128 0.26593,0.395395 0.26593,0.988486 -0.0533,0.922559 -0.26593,1.186142 -0.21264,0.197808 -0.74445,0.197808 -2.28652,0 -3.50953,0.922571 -1.16986,0.922558 -2.02065,3.558478 -1.59525,5.403587 -5.15794,17.528728 -3.50955,12.05924 -5.10481,17.59464 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
d="m 169.20012,132.34281 13.02687,9.55857 -13.02687,9.55873 -0.0275,-4.76566 h -17.07224 v -9.58603 h 17.07224 z"
|
||||||
|
id="path966-9-6-0-2-0-0-9-4-7-4-9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#e60002;fill-opacity:1;stroke-width:3.13936"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
d="m 128.57579,132.19253 -13.02687,9.55857 13.02687,9.55873 0.0275,-4.76566 h 17.07224 v -9.58603 h -17.07224 z"
|
||||||
|
id="path966-9-6-0-2-0-0-9-4-7-4-9-4"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#e60002;fill-opacity:1;stroke-width:3.13936"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.2 KiB |
BIN
icons/links.png
Before Width: | Height: | Size: 8.8 KiB |
97
icons/links.svg
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73333mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73333 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2924"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="links.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview2926"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="2.0308885"
|
||||||
|
inkscape:cx="80.506637"
|
||||||
|
inkscape:cy="128.02279"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:snap-global="false" />
|
||||||
|
<defs
|
||||||
|
id="defs2921" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-62.071301,-83.900757)">
|
||||||
|
<path
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-1-7-8-6-8"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50924;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
d="m 63.288246,128.42133 v 4.5 h 12.83916 c 0.0967,-1.57265 2.4477,-3.09012 2.94527,-4.5 z m 41.145354,0 -3.50074,4.5 h 27.64836 v -4.5 z"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 128.52123,106.7402 v -4.5 h -12.83916 c -0.0967,1.57263 -2.44771,3.09012 -2.94527,4.5 z m -41.145358,0 5.085514,-4.5 H 63.228252 v 4.5 z"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50924;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-1-7-8-6" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
d="m 128.58843,97.727829 v -4.5 h -10.35091 c 0.6888,1.376399 0.15148,2.896634 0.41261,4.5 z m -31.934402,0 3.500762,-4.5 H 63.295448 v 4.5 z"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50923;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-9-8-7-2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
d="m 128.58362,89.074333 v -4.5 H 63.290647 v 4.5 h 40.157263 c 1.80892,-1.743618 3.99687,-2.687929 6.29866,-2.687929 h 10e-4 c 2.30145,8.18e-4 4.49043,0.944896 6.29965,2.687929 z"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50922;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-7-6-2-6-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-9-8-7-2-9"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50923;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
d="m 63.288246,137.46204 v 4.5 h 10.35091 c -0.6888,-1.37639 -0.15149,-2.89663 -0.41261,-4.5 z m 31.93439,0 -3.50076,4.5 h 36.859344 v -4.5 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-7-6-2-6-6-8"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50923;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
d="m 63.288246,146.17315 v 4.5 h 65.292974 v -4.5 H 88.423956 c -1.80893,1.74361 -3.99687,2.68793 -6.29866,2.68793 h -0.001 c -2.30146,-7.8e-4 -4.49044,-0.9449 -6.29965,-2.68793 z"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 90.271426,114.39038 -16.2298,16.23069 c -2.05842,2.05665 -3.19117,4.79255 -3.19117,7.70296 0,2.91177 1.13409,5.64724 3.19161,7.70388 2.05707,2.05661 4.79344,3.19025 7.70296,3.19115 h 8.7e-4 c 2.90997,0 5.64499,-1.13364 7.70206,-3.19115 l 16.230714,-16.23117 c 3.34022,-3.34021 4.13332,-8.41483 2.041,-12.58073 l -3.56339,3.56381 c 0.44275,2.08296 -0.19771,4.27035 -1.70983,5.78291 l -16.638644,16.63731 -0.0116,-0.0109 c -1.18364,1.03365 -2.67833,1.59735 -4.25204,1.59735 -1.68172,0 -3.25587,-0.64851 -4.43504,-1.82634 -1.19657,-1.1961 -1.84328,-2.79347 -1.82676,-4.49795 0.0161,-1.5514 0.58065,-3.0229 1.59959,-4.19091 l -0.0104,-0.009 0.22806,-0.22985 c 0.0299,-0.0316 0.0611,-0.0642 0.0919,-0.0942 0.0104,-0.01 0.0192,-0.0197 0.0286,-0.0277 l 0.055,-0.0557 16.2298,-16.23071 c 1.19435,-1.193 2.78056,-1.84954 4.46673,-1.84954 0.43606,0 0.86899,0.0452 1.29388,0.13302 l 3.567384,-3.56831 c -1.49961,-0.74802 -3.167494,-1.13988 -4.859924,-1.13988 -2.90908,5.3e-4 -5.645,1.13364 -7.70252,3.19027 M 121.77679,97.012846 c 0,-2.90999 -1.13407,-5.645891 -3.19115,-7.702521 -2.0575,-2.05886 -4.79343,-3.19159 -7.70385,-3.19159 -2.90952,0 -5.64499,1.13318 -7.70207,3.19159 L 86.948586,105.53961 c -3.338,3.33755 -4.13288,8.40857 -2.04638,12.57271 l 3.41253,-3.41254 c -0.39141,-1.9495 0.15979,-4.00077 1.47954,-5.51467 l -0.0104,-0.01 0.22406,-0.22627 c 0.0286,-0.0299 0.0598,-0.0616 0.0897,-0.0921 0.0104,-0.009 0.0179,-0.0178 0.0276,-0.0267 l 0.0562,-0.0567 16.229374,-16.229834 c 1.19389,-1.19389 2.78099,-1.85087 4.4694,-1.85087 1.68885,0 3.27551,0.65698 4.4694,1.85087 2.46455,2.46412 2.46455,6.47604 0,8.938374 l -16.635504,16.63774 -0.0117,-0.0116 c -1.18541,1.0341 -2.67744,1.59825 -4.25161,1.59825 -0.42443,0 -0.84398,-0.0419 -1.25594,-0.12408 l -3.41207,3.41209 c 1.50364,0.75025 3.17198,1.1439 4.86795,1.1439 2.91134,0 5.646794,-1.1332 7.703874,-3.19028 l 16.23026,-16.23024 c 2.05751,-2.05887 3.19071,-4.794315 3.19071,-7.705205"
|
||||||
|
id="path1214-3-8-8"
|
||||||
|
style="fill:#0003ff;fill-opacity:1;stroke:#1c26ff;stroke-width:0.446;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 5.2 KiB |
158
icons/paragraph.svg
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73333mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73333 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg9916"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="paragraph.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview9918"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:snap-global="false"
|
||||||
|
inkscape:zoom="2.0308884"
|
||||||
|
inkscape:cx="115.46671"
|
||||||
|
inkscape:cy="156.08932"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs9913" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-92.524155,-109.47453)">
|
||||||
|
<rect
|
||||||
|
y="109.47453"
|
||||||
|
x="92.524155"
|
||||||
|
height="67.73333"
|
||||||
|
width="67.73333"
|
||||||
|
id="rect982-9-2-9-7-0"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<path
|
||||||
|
id="rect847-2-0-2"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.99356;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
d="m 124.78694,132.07734 v -20.799 h 32.55138 v 43.20213 l -28.57395,0"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.47294;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-4"
|
||||||
|
width="21.80117"
|
||||||
|
height="4.6439242"
|
||||||
|
x="132.51495"
|
||||||
|
y="114.49986" />
|
||||||
|
<rect
|
||||||
|
y="124.22032"
|
||||||
|
x="128.09102"
|
||||||
|
height="4.6439242"
|
||||||
|
width="26.394829"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-0"
|
||||||
|
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.62072;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.62072;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9-80"
|
||||||
|
width="26.394829"
|
||||||
|
height="4.6439242"
|
||||||
|
x="128.12129"
|
||||||
|
y="133.61826" />
|
||||||
|
<path
|
||||||
|
id="path1659-3-4-3-2"
|
||||||
|
fill="#241F20"
|
||||||
|
d="m 147.82818,157.32917 8.99869,8.75745 h -3.83501 c -0.65909,7.11404 -5.34633,13.64931 -19.22877,8.60297 7.33777,0.27447 8.63092,-3.725 8.96976,-8.60294 h -4.36677 z"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ff0e00;fill-opacity:1;stroke-width:0.593436"
|
||||||
|
inkscape:export-xdpi="96.000008"
|
||||||
|
inkscape:export-ydpi="96.000008"
|
||||||
|
sodipodi:nodetypes="ccccccc" />
|
||||||
|
<path
|
||||||
|
id="path1659-3-4-3-2-0"
|
||||||
|
fill="#241F20"
|
||||||
|
d="m 106.39267,129.95823 -8.998683,-9.02248 h 3.835003 c 0.65909,-7.32934 5.34633,-14.06239 19.22877,-8.86332 -7.33777,-0.28279 -8.63092,3.83772 -8.96976,8.86329 h 4.36677 z"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ff0e00;fill-opacity:1;stroke-width:0.602349"
|
||||||
|
inkscape:export-xdpi="96.000008"
|
||||||
|
inkscape:export-ydpi="96.000008"
|
||||||
|
sodipodi:nodetypes="ccccccc" />
|
||||||
|
<rect
|
||||||
|
y="144.05806"
|
||||||
|
x="129.3343"
|
||||||
|
height="4.6439242"
|
||||||
|
width="25.151567"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9-8-5"
|
||||||
|
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.5821;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.99141;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect847-2-0-1-0"
|
||||||
|
width="33.820812"
|
||||||
|
height="42.416"
|
||||||
|
x="95.032234"
|
||||||
|
y="132.36934"
|
||||||
|
ry="0" />
|
||||||
|
<rect
|
||||||
|
y="138.01369"
|
||||||
|
x="101.99397"
|
||||||
|
height="4.9674153"
|
||||||
|
width="24.004038"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5985;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.72633;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3"
|
||||||
|
width="27.996544"
|
||||||
|
height="4.9674153"
|
||||||
|
x="98.001465"
|
||||||
|
y="147.7115" />
|
||||||
|
<rect
|
||||||
|
y="157.37741"
|
||||||
|
x="98.001472"
|
||||||
|
height="4.9674153"
|
||||||
|
width="27.996544"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.72633;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.72633;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9-8"
|
||||||
|
width="27.996544"
|
||||||
|
height="4.9674153"
|
||||||
|
x="98.00148"
|
||||||
|
y="166.80212" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 2.3 KiB |
96
icons/press_text.svg
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="67.73333mm"
|
||||||
|
height="67.73333mm"
|
||||||
|
viewBox="0 0 67.73333 67.73333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2477"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
sodipodi:docname="press_text.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview2479"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="2.0308884"
|
||||||
|
inkscape:cx="59.826033"
|
||||||
|
inkscape:cy="109.80416"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:lockguides="true" />
|
||||||
|
<defs
|
||||||
|
id="defs2474" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-44.252445,-77.047729)">
|
||||||
|
<rect
|
||||||
|
y="77.047729"
|
||||||
|
x="44.252445"
|
||||||
|
height="67.73333"
|
||||||
|
width="67.73333"
|
||||||
|
id="rect982-9-2-94-9-12"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
y="108.00449"
|
||||||
|
x="45.867519"
|
||||||
|
height="6.5124974"
|
||||||
|
width="64.078773"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-2"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99041;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99041;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-0-46"
|
||||||
|
width="64.078773"
|
||||||
|
height="6.5124974"
|
||||||
|
x="45.6674"
|
||||||
|
y="95.987839" />
|
||||||
|
<rect
|
||||||
|
y="120.45139"
|
||||||
|
x="45.867519"
|
||||||
|
height="6.5124974"
|
||||||
|
width="64.078773"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-0-4-0"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99041;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<path
|
||||||
|
d="m 62.836441,77.914258 14.82678,14.252148 14.82704,-14.252148 z"
|
||||||
|
id="path966-9-6-0-2-7-3-4-34-6-9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#e60002;fill-opacity:1;stroke-width:5.20472"
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
style="fill:#e60002;fill-opacity:1;stroke-width:5.20826"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path966-9-6-0-2-7-3-4-34-6-9-9"
|
||||||
|
d="m 63.55667,144.36014 14.82678,-14.27159 14.82704,14.27159 z" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
108
icons/tail.svg
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
sodipodi:docname="hvost.svg"
|
||||||
|
inkscape:version="1.0 (4035a4f, 2020-05-01)"
|
||||||
|
id="svg2650"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 67.73333 67.73333"
|
||||||
|
height="67.73333mm"
|
||||||
|
width="67.73333mm">
|
||||||
|
<defs
|
||||||
|
id="defs2644" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-height="992"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:cy="161.53655"
|
||||||
|
inkscape:cx="48.279563"
|
||||||
|
inkscape:zoom="0.98994949"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
borderopacity="1.0"
|
||||||
|
bordercolor="#666666"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
id="base" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2647">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-94.593422,-56.778362)"
|
||||||
|
id="layer1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="Layer 1">
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:2.02445;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6"
|
||||||
|
width="18.675617"
|
||||||
|
height="10.240829"
|
||||||
|
x="96.890099"
|
||||||
|
y="108.6032" />
|
||||||
|
<path
|
||||||
|
d="m 148.55629,103.93948 11.61928,9.55377 -11.61928,9.55393 -0.0327,-6.34998 h -7.8785 v -6.4078 h 7.87849 z"
|
||||||
|
id="path966-9-6-0-2-0-0-9-4-7-4-8-3"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="opacity:1;fill:#e60002;fill-opacity:1;stroke-width:3.42818;stop-opacity:1"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
style="opacity:1;fill:#e60002;fill-opacity:1;stroke-width:3.42818;stop-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path966-9-6-0-2-0-0-9-4-7-4-8-3-8"
|
||||||
|
d="m 128.61418,123.04712 -11.61928,-9.55377 11.61928,-9.55392 0.0327,6.34997 h 7.8785 v 6.4078 h -7.87849 z" />
|
||||||
|
<rect
|
||||||
|
y="91.483078"
|
||||||
|
x="96.890099"
|
||||||
|
height="10.240829"
|
||||||
|
width="62.825058"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6-2"
|
||||||
|
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:3.71308;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
<rect
|
||||||
|
inkscape:export-ydpi="96.000023"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:3.71308;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6-2-8"
|
||||||
|
width="62.825058"
|
||||||
|
height="10.240829"
|
||||||
|
x="96.890099"
|
||||||
|
y="74.892128" />
|
||||||
|
<rect
|
||||||
|
y="59.359539"
|
||||||
|
x="96.890099"
|
||||||
|
height="10.240829"
|
||||||
|
width="62.825058"
|
||||||
|
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6-2-8-3"
|
||||||
|
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:3.71308;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
|
||||||
|
inkscape:export-xdpi="96.000023"
|
||||||
|
inkscape:export-ydpi="96.000023" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -1,3 +1,4 @@
|
||||||
|
0.7.2 Added conversion for endnotes to manual endontes and back
|
||||||
0.6.15 Increased limit of articles in issue to 50
|
0.6.15 Increased limit of articles in issue to 50
|
||||||
0.6.14 Bugfix: Remove bookmark before creating another one with the same name
|
0.6.14 Bugfix: Remove bookmark before creating another one with the same name
|
||||||
0.6.13 Forbid creating bidirectional links with empty text
|
0.6.13 Forbid creating bidirectional links with empty text
|
||||||
|
|