hi. I don't know this extension, i just think it deserves some atenction. a few days ago i was reading in a linux mailing list of somebody needing a latex output (to write for magazines an international reviews) but looking for features available in libreoffice (mainly word and carachters count). so i think the idea of latex deserves some attenction....
On Tuesday, November 26, 2013 12:09 AM, Patrick Dupre <pdu...@gmx.com> wrote: Hello, Could you please answer to my post? Thank. > > Hello, > > On a fedora 19 machine (Build ID: 4.1.3.2-5.fc19), when I try to use the > ooolatex equation > tool, I get an error message (it works fine with fedora 18) > > Is OOolatex not anymore maintained? > > Thank. > > ' > ' OOoLatexTools > ' > ' Copyright (C) 2005-2007 Geoffroy Piroux (gpir...@gmail.com) > ' > ' This program is free software; you can redistribute it and/or modify > ' it under the terms of the GNU General Public License as published by > ' the Free Software Foundation; either version 2 of the License, or > ' (at your option) any later version. > ' > ' This program is distributed in the hope that it will be useful, > ' but WITHOUT ANY WARRANTY; without even the implied warranty of > ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > ' GNU General Public License for more details. > ' > ' You should have received a copy of the GNU General Public License > ' along with this program; if not, write to the Free Software > ' Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 > USA > ' > ' > ' > ' Import graphic from URL into the clipboard. > ' Inspired from OOoForums Danny's code > Sub ImportGraphicIntoClipboard(cURL) > > oDispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" ) > > ' Import the graphic from URL into a new draw document. > Dim arg1(0) As New com.sun.star.beans.PropertyValue > arg1(0).Name = "Hidden" > arg1(0).Value = true > oDrawDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, arg1() ) > oDrawDocCtrl = oDrawDoc.getCurrentController() > > ' Get the shape... > oDrawPage = oDrawDoc.DrawPages(0) > oImportShape = oDrawPage(0) > > ' Get the dimension of the image... > oShapeSize = oImportShape.Size() > > ' Strange bug with the eps and emf format... correction of the size > if sFormat = "eps" then oShapeSize.Width = oShapeSize.Width * 0.99 > if sFormat = "eps" then oShapeSize.Height = oShapeSize.Height * 0.91 > if sFormat = "emf" then oShapeSize.Width = oShapeSize.Width * 1.13 > if sFormat = "emf" then oShapeSize.Height = oShapeSize.Height * 1.1 > > ' Copy the image to clipboard and close the draw document > oDrawDocCtrl.select(oImportShape) > Dim Array() > oDispatcher.executeDispatch( oDrawDocCtrl.Frame, ".uno:Copy", "", 0, Array() > ) > oDrawDoc.dispose() > End Sub > '########################################################### > Function ReadAttributes( oShape As Object ) As String > On Error Goto ErrorHandler > oAttributes = oShape.UserDefinedAttributes() > ReadAttributes = oAttributes.getByName("OOoLatexArgs").Value > exit function > ErrorHandler: > ReadAttributes = "" > End Function > '########################################################### > Sub SetAttributes( oShape, iEqSize, sEqType, sCode) > 'On Error Goto ErrorHandler > ' ' Remove the attribute is one existes... > ' oAttributes = oShape.UserDefinedAttributes() > ' oAttributes.removeByName("OOoLatexArgs") > ' oShape.UserDefinedAttributes() = oAttributes > 'ErrorHandler: > ' Add the Latex attribute to the image. > oAttributes = oShape.UserDefinedAttributes > oLatexAttribute = createUnoStruct( "com.sun.star.xml.AttributeData" ) > oLatexAttribute.Type = "CDATA" > oLatexAttribute.Value = iEqSize & "§" & sEqType & "§" & sCode > oAttributes.insertByName("OOoLatexArgs", oLatexAttribute ) > oShape.UserDefinedAttributes = oAttributes > End sub > > '########################################################### > ' Get the bounding box information for inline equation > ' The base line in not necessary at the bottom of the image. > Function bbox(BaseLine as Double) as Double > Dim sbbox() as String > Dim bby1,bby2 as Double > iNumber = Freefile > sLines = "" > Open sTmpPath & "tmpfile.bbx" For Input As iNumber > Line Input #iNumber, sLine > If sLine <> "" then sbbox() = Split(sLine," ") > Close #iNumber > bby1 = CDbl(sbbox(1)) > bby2 = CDbl(sbbox(3)) > bbox = (bby2-BaseLine)/(bby2-bby1) > End Function > > '########################################################### > ' Get the cropping information from bbox > Function getCropping() > Dim sbbox() as String > Dim bbx1,bbx2,hbbx1,hbbx2 as Double > iNumber = Freefile > Open sTmpPath & "tmpfile.bbx" For Input As iNumber > Line Input #iNumber, sLine > If sLine <> "" then sbbox() = Split(sLine," ") > Close #iNumber > bbx1 = CDbl(sbbox(0)) > bbx2 = CDbl(sbbox(2)) > hbbx1 = CDbl2(sbbox(4)) - 0.5 'remove 1/2 point to the left > hbbx2 = CDbl2(sbbox(6)) + 0.75 'add 3/4 point to the right > > oCrop = createUnoStruct( "com.sun.star.text.GraphicCrop" ) > oCrop.Left = (hbbx1-bbx1)/(bbx2-bbx1) * oShapeSize.Width > oCrop.Right = (bbx2-hbbx2)/(bbx2-bbx1) * oShapeSize.Width > getCropping = oCrop > > End Function > '########################################################### > 'to avoid problem with point or virgule : (x)xx.xx or (x)xx,xx > Function CDbl2( s as string) as double > if Mid(s,3,1) = "." then i=3 > if Mid(s,4,1) = "." then i=4 > CDbl2 = CDbl(Mid(s,1,i-1)+Mid(s,i+1,2))/100 > end function > > '########################################################### > ' Display file on screen from temp directory > Sub PrintFile(sFile as String) > if not FileExists(sTmpPath & sFile) then > Msgbox "Error : the file " & TmpPath & sFile & " doesn't exist..." > exit sub > end if > iNumber = Freefile > Open sTmpPath & sFile For Input As iNumber > While not eof(iNumber) > Line Input #iNumber, sLine > sMsg = sMsg & sLine & chr(10) > wend > Close #iNumber > Msgbox sMsg > End sub > > '########################################################### > ' Convert decimal into two digits hexadecimal number as String > Function Hex2( Value as Integer) as String > if Value = 0 then > Hex2="00" > Exit Function > end if > Hex2 = Hex( Value ) > if Len( Hex2 ) = 1 then Hex2 = "0"& Hex2 > End Function > > '########################################################### > ' This macro is used when buttons Apply or Save are pushed from > ' Config or from preamble dialog... > sub FinishApply() > if SettingEmbed = 1 then > SettingDoc( "Save" ) > SystemLog = "New settings applied and embedded into document ... " > else > SystemLog = "New settings applied ... " > end if > end sub > '########################################################### > ' Add a slash if necessary > Function CheckPath( sPath as String) as String > If Right(sPath,1) = "/" then > CheckPath = sPath > else > CheckPath = sPath & "/" > end if > end Function > > '########################################################### > ' Check the existance of the file... > Function CheckFile( sUrl as String, ErrorMsg as String) As Boolean > ' Test the existance of the OOoLatex script ... > if FileExists(sUrl) then > CheckFile = False > else > if ErrorMsg = "OOoLatex" then _ > ErrorMsg = "Cannot find " & sUrl & chr(10) & "Check your installation..." > Msgbox ErrorMsg > CheckFile = True > end if > End Function > '########################################################### > ' Return true if string "s" doesn't contains "c" > Function StringNotContains( s as String, c as String ) as Boolean > StringNotContains = true > If (Len(s) <> 0) then > For j = 1 to Len(s) > if Mid(s,j,1) = c then > StringNotContains = false > Exit For > End if > Next > end if > End Function > > '########################################################### > ' Function to manipulate information from "Doc Properties". > ' There is two actions : > ' "Get" : return the preamble or the configuration as string > ' "Delete" : return the "doc info" without preamble or configuration > Function DocInfo( sAction as String, sWhat as String) as String > DocInfo = "" > oDocInfo = StarDesktop.CurrentComponent.getDocumentInfo() > sDocDesc = oDocInfo.Description > > if sWhat = "DocInfo" then > DocInfo = sDocDesc > Exit Function > end if > > ' Exit If only one line exit ! > If StringNotContains(sDocDesc,chr(10)) then exit Function > > if sWhat = "Preamble" then sStart = "%%% OOoLatex Preamble %%%%%%%%%%%%%%" > if sWhat = "Preamble" then sEnd = "%%% End OOoLatex Preamble %%%%%%%%%%%%" > if sWhat = "Config" then sStart = "%%% OOoLatex Configuration > %%%%%%%%%%%%" > if sWhat = "Config" then sEnd = "%%% End OOoLatex Configuration > %%%%%%%%%%" > > SplitDocDesc() = Split(sDocDesc,chr(10)) > ii = 0 > startLine = -1 > endLine = -1 > For i = 0 to 1024 > If SplitDocDesc(i) = sStart then > startLine = i > elseif SplitDocDesc(i) = sEnd then > endLine = i > end if > ii = ii + 1 + Len(SplitDocDesc(i)) > If Len(sDocDesc) < ii then Exit For > Next > lastLine = i > 'Print sWhat & " " & sAction & ", startLine = " & startLine & ", endLine = " > & endLine & ", LastLine = " & lastLine > If (startLine <> -1) and (endLine <> -1) and (endLine > startLine) then > if sAction = "Get" then > For i = startLine +1 to endLine - 1 > DocInfo = DocInfo & chr(10) & SplitDocDesc(i) > Next > elseif sAction = "Delete" then > For i = 0 to startLine - 1 > DocInfo = DocInfo & chr(10) & SplitDocDesc(i) > Next > For i = endLine + 1 to LastLine > DocInfo = DocInfo & chr(10) & SplitDocDesc(i) > Next > end if > elseif (startLine = 0) and (endLine = 0) and sAction = "Delete" then > DocInfo = sDocDesc > end if > If sWhat = "Preamble" and Mid(DocInfo,1,1) = chr(10) then DocInfo = > Mid(DocInfo,2,Len(DocInfo)) > End Function > > '*** Get access to the repository ! > Function GetConfigAccess(ByVal cNodePath As String,_ > ByVal bWriteAccess As Boolean,_ > Optional bEnableSync,_ > Optional bLazyWrite ) As Object > > If IsMissing( bEnableSync ) Then bEnableSync = True > If IsMissing( bLazyWrite ) Then bLazyWrite = False > > oConfigProvider = GetProcessServiceManager().createInstanceWithArguments(_ > "com.sun.star.configuration.ConfigurationProvider",_ > Array( MakePropertyValue( "enableasync", bEnableSync ) ) ) > > If bWriteAccess Then > cServiceName = "com.sun.star.configuration.ConfigurationUpdateAccess" > Else > cServiceName = "com.sun.star.configuration.ConfigurationAccess" > EndIf > > oConfigAccess = oConfigProvider.createInstanceWithArguments(_ > cServiceName,_ > Array( MakePropertyValue( "nodepath", cNodePath ),_ > MakePropertyValue( "lazywrite", bLazyWrite ) ) ) > > GetConfigAccess = oConfigAccess > End Function > > > Function MakePropertyValue( Optional cName As String, Optional uValue ) As > com.sun.star.beans.PropertyValue > oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" ) > > If Not IsMissing( cName ) Then oPropertyValue.Name = cName > If Not IsMissing( uValue ) Then oPropertyValue.Value = uValue > MakePropertyValue() = oPropertyValue > End Function > > '*** Generate path for MinSYS as "/C/path_to_file/" > Function WinPath(sPath as String) as String > sPath = ConvertToURL(sPath) > WinPath = "/" & mid(sPath,9,1) & join(split(mid(sPath,11),"%20")," ") > End function > =========================================================================== > Patrick DUPRÉ | | email: pdu...@gmx.com > Laboratoire de Physico-Chimie de l'Atmosphère | | > Université du Littoral-Côte d'Opale | | > Tel. (33)-(0)3 28 23 76 12 | | Fax: 03 28 65 82 44 > 189A, avenue Maurice Schumann | | 59140 Dunkerque, France > =========================================================================== > > -- > To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org > Problems? > http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/ > Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette > List archive: http://listarchives.libreoffice.org/global/users/ > All messages sent to this list will be publicly archived and cannot be deleted =========================================================================== Patrick DUPRÉ | | email: pdu...@gmx.com Laboratoire de Physico-Chimie de l'Atmosphère | | Université du Littoral-Côte d'Opale | | Tel. (33)-(0)3 28 23 76 12 | | Fax: 03 28 65 82 44 189A, avenue Maurice Schumann | | 59140 Dunkerque, France =========================================================================== -- To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/ Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette List archive: http://listarchives.libreoffice.org/global/users/ All messages sent to this list will be publicly archived and cannot be deleted -- To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/ Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette List archive: http://listarchives.libreoffice.org/global/users/ All messages sent to this list will be publicly archived and cannot be deleted