Finishing work on MathML, TexMaths and MathJax
git-svn-id: svn://svn.code.sf.net/p/writer2latex/code/trunk@162 f0f2a975-2e09-46c8-9428-3b39399b9f3c
This commit is contained in:
parent
fbd7e66412
commit
799d832339
13 changed files with 164 additions and 44 deletions
|
@ -14,5 +14,5 @@ Bugs and feature requests should be reported to
|
|||
henrikjust (at) openoffice.org
|
||||
|
||||
|
||||
March 2012
|
||||
August 2014
|
||||
Henrik Just
|
||||
|
|
|
@ -2,6 +2,9 @@ Changelog for Writer2LaTeX version 1.2 -> 1.4
|
|||
|
||||
---------- version 1.3.1 alpha ----------
|
||||
|
||||
[w2x] Starting with version 4.2, LibreOffice exports display="math" on display equations. This attribute is now
|
||||
removed if a display equation is used inline in the source document.
|
||||
|
||||
[w2x] Support for the obsolete output format XHTML+MahtML+XSL has been removed (replaced by MathJax). As a consequence
|
||||
the option xslt_path has been removed. Also the vacant spot in the export dialog is now used for the option use_mathjax
|
||||
(only active for XHTML+MathML and HTML5)
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2014-08-13)
|
||||
* Version 1.4 (2014-08-18)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -78,6 +78,12 @@ public class W2XRegistration {
|
|||
multiFactory,
|
||||
regKey);
|
||||
}
|
||||
else if (implName.equals(XhtmlOptionsDialogMath.__implementationName)) {
|
||||
xSingleServiceFactory = FactoryHelper.getServiceFactory(XhtmlOptionsDialogMath.class,
|
||||
XhtmlOptionsDialogMath.__serviceName,
|
||||
multiFactory,
|
||||
regKey);
|
||||
}
|
||||
else if (implName.equals(XhtmlOptionsDialogCalc.__implementationName)) {
|
||||
xSingleServiceFactory = FactoryHelper.getServiceFactory(XhtmlOptionsDialogCalc.class,
|
||||
XhtmlOptionsDialogCalc.__serviceName,
|
||||
|
@ -122,6 +128,8 @@ public class W2XRegistration {
|
|||
W2XExportFilter.__serviceName, regKey) &
|
||||
FactoryHelper.writeRegistryServiceInfo(XhtmlOptionsDialog.__implementationName,
|
||||
XhtmlOptionsDialog.__serviceName, regKey) &
|
||||
FactoryHelper.writeRegistryServiceInfo(XhtmlOptionsDialogMath.__implementationName,
|
||||
XhtmlOptionsDialogMath.__serviceName, regKey) &
|
||||
FactoryHelper.writeRegistryServiceInfo(XhtmlOptionsDialogCalc.__implementationName,
|
||||
XhtmlOptionsDialogCalc.__serviceName, regKey) &
|
||||
FactoryHelper.writeRegistryServiceInfo(EpubOptionsDialog.__implementationName,
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2014-08-14)
|
||||
* Version 1.4 (2014-08-18)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -196,7 +196,7 @@ public class XhtmlOptionsDialog extends OptionsDialogBase {
|
|||
setControlEnabled("RepeatLevelsLabel",!isLocked("repeat_levels") && !isLocked("split_level") && bSplit);
|
||||
setControlEnabled("RepeatLevels",!isLocked("repeat_levels") && !isLocked("split_level") && bSplit);
|
||||
setControlEnabled("SaveImagesInSubdir",!isLocked("save_images_in_subdir"));
|
||||
setControlEnabled("UseMathjax",!isLocked("use_mathjax"));
|
||||
setControlEnabled("UseMathjax",(this instanceof XhtmlOptionsDialogMath) && !isLocked("use_mathjax"));
|
||||
}
|
||||
|
||||
private void enableSplitLevel() {
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
/************************************************************************
|
||||
*
|
||||
* XhtmlOptionsDialogXsl.java
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License version 2.1, as published by the Free Software Foundation.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
* Copyright: 2002-2004 by Henrik Just
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2014-08-18)
|
||||
*
|
||||
*/
|
||||
|
||||
package org.openoffice.da.comp.writer2xhtml;
|
||||
|
||||
import com.sun.star.uno.XComponentContext;
|
||||
|
||||
/** This class provides a uno component which implements a filter ui for the
|
||||
* Xhtml export for the XHTML+MathML and HTML export.
|
||||
* This variant of the dialog has the MahtJax setting enabled
|
||||
*/
|
||||
public class XhtmlOptionsDialogMath extends XhtmlOptionsDialog {
|
||||
/** The component will be registered under this name.
|
||||
*/
|
||||
public static String __serviceName = "org.openoffice.da.writer2xhtml.XhtmlOptionsDialogMath";
|
||||
|
||||
/** The component should also have an implementation name.
|
||||
*/
|
||||
public static String __implementationName = "org.openoffice.da.comp.writer2xhtml.XhtmlOptionsDialogMath";
|
||||
|
||||
/** Create a new XhtmlOptionsDialogMath */
|
||||
public XhtmlOptionsDialogMath(XComponentContext xContext) {
|
||||
super(xContext);
|
||||
}
|
||||
|
||||
}
|
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2012-08-13)
|
||||
* Version 1.4 (2012-08-20)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -33,7 +33,7 @@ public class ConverterFactory {
|
|||
|
||||
// Version information
|
||||
private static final String VERSION = "1.3.1";
|
||||
private static final String DATE = "2014-08-13";
|
||||
private static final String DATE = "2014-08-20";
|
||||
|
||||
/** Return the Writer2LaTeX version in the form
|
||||
* (major version).(minor version).(patch level)<br/>
|
||||
|
|
|
@ -20,13 +20,15 @@
|
|||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2014-08-13)
|
||||
* Version 1.4 (2014-08-18)
|
||||
*
|
||||
*/
|
||||
|
||||
package writer2latex.latex;
|
||||
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
|
@ -57,6 +59,7 @@ public final class MathConverter extends ConverterHelper {
|
|||
private boolean bContainsFormulas = false;
|
||||
private boolean bAddParAfterDisplay = false;
|
||||
|
||||
private boolean bNeedTexMathsPreamble = false;
|
||||
private boolean bNeedOOoLaTeXPreamble = false;
|
||||
|
||||
private Element theEquation = null;
|
||||
|
@ -77,6 +80,14 @@ public final class MathConverter extends ConverterHelper {
|
|||
smc.appendDeclarations(pack,decl);
|
||||
}
|
||||
}
|
||||
if (bNeedTexMathsPreamble) {
|
||||
// The preamble may be stored as a user defined property (newline is represented as paragraph sign)
|
||||
Map<String,String> props = palette.getMetaData().getUserDefinedMetaData();
|
||||
if (props.containsKey("TexMathsPreamble")) {
|
||||
decl.append("% TexMaths preamble\n")
|
||||
.append(props.get("TexMathsPreamble").replace('\u00a7', '\n'));
|
||||
}
|
||||
}
|
||||
if (bNeedOOoLaTeXPreamble) {
|
||||
// The preamble may be stored in the description
|
||||
String sDescription = palette.getMetaData().getDescription();
|
||||
|
@ -145,12 +156,14 @@ public final class MathConverter extends ConverterHelper {
|
|||
Element equation = palette.getTexMathsEquation(node);
|
||||
if (equation!=null) {
|
||||
sLaTeX = Misc.getPCDATA(equation);
|
||||
if (sLaTeX!=null) { bNeedTexMathsPreamble = true; }
|
||||
}
|
||||
else { // Try OOoLaTeX
|
||||
// The LaTeX code is embedded in a custom style attribute:
|
||||
StyleWithProperties style = ofr.getFrameStyle(Misc.getAttribute(node, XMLString.DRAW_STYLE_NAME));
|
||||
if (style!=null) {
|
||||
sLaTeX = style.getProperty("OOoLatexArgs");
|
||||
sLaTeX = style.getProperty("OOoLatexArgs");
|
||||
if (sLaTeX!=null) { bNeedOOoLaTeXPreamble = true; }
|
||||
}
|
||||
}
|
||||
if (sLaTeX!=null) {
|
||||
|
@ -225,13 +238,15 @@ public final class MathConverter extends ConverterHelper {
|
|||
// TeXMaths equation
|
||||
sLaTeX = palette.getTexMathsEquation(Misc.getPCDATA(equation));
|
||||
style = palette.getTexMathsStyle(Misc.getPCDATA(equation));
|
||||
if (sLaTeX!=null) { bNeedTexMathsPreamble = true; }
|
||||
}
|
||||
else {
|
||||
// MathML equation
|
||||
sLaTeX = convert(null,equation);
|
||||
}
|
||||
if (!" ".equals(sLaTeX)) { // ignore empty formulas
|
||||
if (sLaTeX!=null && !" ".equals(sLaTeX)) { // ignore empty formulas
|
||||
if (!bTexMaths || style!=TexMathsStyle.latex) {
|
||||
// Unfortunately we can't do numbered equations for TexMaths equations with latex style
|
||||
if (sequence!=null) {
|
||||
// Numbered equation
|
||||
ldp.append("\\begin{equation}");
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
* Copyright: 2002-2012 by Henrik Just
|
||||
* Copyright: 2002-2014 by Henrik Just
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.2 (2012-03-05)
|
||||
* Version 1.4 (2014-08-20)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -85,7 +85,21 @@ public class OfficeReader {
|
|||
node.getNodeName().equals(XMLString.TEXT_FOOTNOTE) ||
|
||||
node.getNodeName().equals(XMLString.TEXT_ENDNOTE) );
|
||||
}
|
||||
|
||||
|
||||
/** Get the paragraph or heading containing a node
|
||||
*
|
||||
* @param node the node in question
|
||||
* @return the paragraph or heading
|
||||
*/
|
||||
public static Element getParagraph(Element node) {
|
||||
Element parent = (Element) node.getParentNode();
|
||||
if (parent.getTagName().equals(XMLString.TEXT_P) || parent.getTagName().equals(XMLString.TEXT_H)) {
|
||||
return parent;
|
||||
}
|
||||
return getParagraph(parent);
|
||||
}
|
||||
|
||||
|
||||
/** Checks, if this node contains at most one element, and that this is a
|
||||
* paragraph.
|
||||
* @param node the node to check
|
||||
|
@ -109,6 +123,28 @@ public class OfficeReader {
|
|||
return bFoundPar;
|
||||
}
|
||||
|
||||
/** Checks, if the only text content of this node is whitespace.
|
||||
* Other (draw) content is allowed.
|
||||
* @param node the node to check (should be a paragraph node or a child
|
||||
* of a paragraph node)
|
||||
* @return true if the node contains whitespace only
|
||||
*/
|
||||
public static boolean isNoTextPar(Node node) {
|
||||
Node child = node.getFirstChild();
|
||||
while (child!=null) {
|
||||
if (child.getNodeType()==Node.ELEMENT_NODE) {
|
||||
if (isTextElement(child)) {
|
||||
if (!isWhitespaceContent(child)) { return false; }
|
||||
}
|
||||
}
|
||||
else if (child.getNodeType()==Node.TEXT_NODE) {
|
||||
if (!isWhitespace(child.getNodeValue())) { return false; }
|
||||
}
|
||||
child = child.getNextSibling();
|
||||
}
|
||||
return true; // found nothing!
|
||||
}
|
||||
|
||||
/** <p>Checks, if the only text content of this node is whitespace</p>
|
||||
* @param node the node to check (should be a paragraph node or a child
|
||||
* of a paragraph node)
|
||||
|
@ -1073,14 +1109,6 @@ public class OfficeReader {
|
|||
}*/
|
||||
}
|
||||
|
||||
private Element getParagraph(Element node) {
|
||||
Element parent = (Element) node.getParentNode();
|
||||
if (parent.getTagName().equals(XMLString.TEXT_P) || parent.getTagName().equals(XMLString.TEXT_H)) {
|
||||
return parent;
|
||||
}
|
||||
return getParagraph(parent);
|
||||
}
|
||||
|
||||
private void traverseContent(Element node, String sListStyleName, int nListLevel, int nParLevel) {
|
||||
// Handle this node first
|
||||
String sName = node.getTagName();
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2014-08-12)
|
||||
* Version 1.4 (2014-08-20)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -360,6 +360,8 @@ public class DrawConverter extends ConverterHelper {
|
|||
hnodeBlock.appendChild(div);
|
||||
hnode = div;
|
||||
}
|
||||
|
||||
boolean bNoTextPar = OfficeReader.isNoTextPar(OfficeReader.getParagraph(onode));
|
||||
|
||||
String sHref = Misc.getAttribute(onode, XMLString.XLINK_HREF);
|
||||
if (sHref!=null) { // Embedded object in package or linked object
|
||||
|
@ -376,7 +378,7 @@ public class DrawConverter extends ConverterHelper {
|
|||
}
|
||||
try {
|
||||
hnode.appendChild(converter.createTextNode(" "));
|
||||
getMathCv().convert(replacementImage,xmlObject.getContentDOM().getDocumentElement(),hnode);
|
||||
getMathCv().convert(replacementImage,xmlObject.getContentDOM().getDocumentElement(),hnode,bNoTextPar);
|
||||
hnode.appendChild(converter.createTextNode(" "));
|
||||
}
|
||||
catch (SAXException e) {
|
||||
|
@ -415,7 +417,7 @@ public class DrawConverter extends ConverterHelper {
|
|||
replacementImage = Misc.getChildByTagName(getFrame(onode),XMLString.DRAW_IMAGE);
|
||||
}
|
||||
hnode.appendChild(converter.createTextNode(" "));
|
||||
getMathCv().convert(replacementImage,formula,hnode);
|
||||
getMathCv().convert(replacementImage,formula,hnode,bNoTextPar);
|
||||
hnode.appendChild(converter.createTextNode(" "));
|
||||
}
|
||||
else { // unsupported object
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Version 1.4 (2014-08-13)
|
||||
* Version 1.4 (2014-08-20)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -70,9 +70,9 @@ public class MathConverter extends ConverterHelper {
|
|||
* @param onode the math node
|
||||
* @param hnode the xhtml node to which content should be added
|
||||
*/
|
||||
public void convert(Node image, Element onode, Node hnode) {
|
||||
public void convert(Node image, Element onode, Node hnode, boolean bAllowDisplayStyle) {
|
||||
if (bSupportMathML) {
|
||||
convertAsMathML(onode,hnode);
|
||||
convertAsMathML(onode,hnode,bAllowDisplayStyle);
|
||||
}
|
||||
else {
|
||||
convertAsImageOrText(image,onode,hnode);
|
||||
|
@ -182,15 +182,33 @@ public class MathConverter extends ConverterHelper {
|
|||
}
|
||||
|
||||
// For xhtml+mathml: Insert the mathml, removing the namespace (if any) and the annotation
|
||||
public void convertAsMathML(Node onode, Node hnode) {
|
||||
private void convertAsMathML(Element onode, Node hnode, boolean bAllowDisplay) {
|
||||
Element math = converter.createElement("math");
|
||||
if (onode.hasAttribute("xmlns:math")) {
|
||||
math.setAttribute("xmlns", onode.getAttribute("xmlns:math"));
|
||||
}
|
||||
else if (onode.hasAttribute("xmlns")) {
|
||||
math.setAttribute("xmlns", onode.getAttribute("xmlns"));
|
||||
}
|
||||
if (bAllowDisplay && onode.hasAttribute("display")) {
|
||||
// Starting with version 4.2, LO exports display="block" for display equations
|
||||
// This is a good thing, but in XHTML we can unfortunately only allow this for
|
||||
// paragraphs with no other text content
|
||||
math.setAttribute("display", onode.getAttribute("display"));
|
||||
}
|
||||
hnode.appendChild(math);
|
||||
convertMathMLNodeList(onode.getChildNodes(), math);
|
||||
}
|
||||
|
||||
private void convertElementAsMathML(Node onode, Node hnode) {
|
||||
if (onode.getNodeType()==Node.ELEMENT_NODE) {
|
||||
if (onode.getNodeName().equals(XMLString.SEMANTICS)) { // Since OOo 3.2
|
||||
// ignore this construction
|
||||
convertNodeList(onode.getChildNodes(),hnode);
|
||||
convertMathMLNodeList(onode.getChildNodes(),hnode);
|
||||
}
|
||||
else if (onode.getNodeName().equals(XMLString.MATH_SEMANTICS)) {
|
||||
// ignore this construction
|
||||
convertNodeList(onode.getChildNodes(),hnode);
|
||||
convertMathMLNodeList(onode.getChildNodes(),hnode);
|
||||
}
|
||||
else if (onode.getNodeName().equals(XMLString.ANNOTATION)) { // Since OOo 3.2
|
||||
// ignore the annotation (StarMath) completely
|
||||
|
@ -202,20 +220,18 @@ public class MathConverter extends ConverterHelper {
|
|||
}
|
||||
else {
|
||||
String sElementName = stripNamespace(onode.getNodeName());
|
||||
Element newNode = hnode.getOwnerDocument().createElement(sElementName);
|
||||
Element newNode = converter.createElement(sElementName);
|
||||
hnode.appendChild(newNode);
|
||||
if (onode.hasAttributes()) {
|
||||
NamedNodeMap attr = onode.getAttributes();
|
||||
int nLen = attr.getLength();
|
||||
for (int i=0; i<nLen; i++) {
|
||||
String sName = attr.item(i).getNodeName();
|
||||
if (sName.equals("xmlns:math")) { sName="xmlns"; }
|
||||
else { sName = stripNamespace(sName); }
|
||||
String sName = stripNamespace(attr.item(i).getNodeName());
|
||||
String sValue = attr.item(i).getNodeValue();
|
||||
newNode.setAttribute(sName,replacePrivateChars(sValue));
|
||||
}
|
||||
}
|
||||
convertNodeList(onode.getChildNodes(),newNode);
|
||||
convertMathMLNodeList(onode.getChildNodes(),newNode);
|
||||
}
|
||||
}
|
||||
else if (onode.getNodeType()==Node.TEXT_NODE) {
|
||||
|
@ -224,11 +240,11 @@ public class MathConverter extends ConverterHelper {
|
|||
}
|
||||
}
|
||||
|
||||
private void convertNodeList(NodeList list, Node hnode) {
|
||||
private void convertMathMLNodeList(NodeList list, Node hnode) {
|
||||
if (list==null) { return; }
|
||||
int nLen = list.getLength();
|
||||
for (int i=0; i<nLen; i++) {
|
||||
convertAsMathML(list.item(i),hnode);
|
||||
convertElementAsMathML(list.item(i),hnode);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,8 +37,7 @@
|
|||
<listitem>
|
||||
<paragraph role="paragraph" xml-lang="en-US"><emph>Chocolate, Midnight, Modern, Oldstyle, Steely, Swiss, Traditional
|
||||
and Ultramarine</emph> formats the document with one of the
|
||||
<link href="http://www.w3.org/StyleSheets/Core/" name="Link to the W3C's page on core style sheets">8 core styles</link></paragraph>
|
||||
provided by the World Wide Web Consortium.
|
||||
<link href="http://www.w3.org/StyleSheets/Core/" name="Link to the W3C's page on core style sheets">8 core styles</link> provided by the World Wide Web Consortium.</paragraph>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<paragraph role="paragraph" xml-lang="en-US"><emph>Custom</emph> is a user defined format. You can define your own
|
||||
|
@ -198,9 +197,9 @@
|
|||
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2xhtml.oxt:OptionsUseMathjax" visibility="hidden">Check this to load the JavaScript library MathJax for viewing mathematical content</ahelp></paragraph>
|
||||
<section id="usemathjax">
|
||||
<paragraph role="heading" level="3" xml-lang="en-US">Use MathJax</paragraph>
|
||||
<paragraph role="paragraph" xml-lang="en-US">MathJax is a JavaScript library for displaying mathematical content in web pages.
|
||||
<paragraph role="paragraph" xml-lang="en-US"><link href="http://www.mathjax.org/" name="MathJax web site">MathJax</link> is a JavaScript library for displaying mathematical content in web pages.
|
||||
Using MathJax ensures that your mathematical content will display correctly in most browsers.
|
||||
This includes formulas created with the extension TexMaths.
|
||||
This includes formulas created with the extension <link href="http://roland65.free.fr/texmaths/" name="TexMaths web site">TexMaths</link>.
|
||||
This option is only available if you export to XHTML 1.1+MathML 2.0 or HTML5.</paragraph>
|
||||
</section>
|
||||
</body>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<prop oor:name="FileFormatVersion"><value>0</value></prop>
|
||||
<prop oor:name="Type"><value>writer_xhtml5_File</value></prop>
|
||||
<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
|
||||
<prop oor:name="UIComponent"><value>org.openoffice.da.comp.writer2xhtml.XhtmlOptionsDialog</value></prop>
|
||||
<prop oor:name="UIComponent"><value>org.openoffice.da.comp.writer2xhtml.XhtmlOptionsDialogMath</value></prop>
|
||||
<prop oor:name="UserData"><value>org.openoffice.da.comp.writer2xhtml.W2XExportFilter unused com.sun.star.comp.Writer.XMLOasisImporter com.sun.star.comp.Writer.XMLOasisExporter staroffice/sxw text/html5</value></prop>
|
||||
<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
|
||||
<prop oor:name="TemplateName"/>
|
||||
|
@ -91,7 +91,7 @@
|
|||
<prop oor:name="FileFormatVersion"><value>0</value></prop>
|
||||
<prop oor:name="Type"><value>writer_xhtml_mathml_File</value></prop>
|
||||
<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
|
||||
<prop oor:name="UIComponent"><value>org.openoffice.da.comp.writer2xhtml.XhtmlOptionsDialog</value></prop>
|
||||
<prop oor:name="UIComponent"><value>org.openoffice.da.comp.writer2xhtml.XhtmlOptionsDialogMath</value></prop>
|
||||
<prop oor:name="UserData"><value>org.openoffice.da.comp.writer2xhtml.W2XExportFilter unused com.sun.star.comp.Writer.XMLOasisImporter com.sun.star.comp.Writer.XMLOasisExporter staroffice/sxw application/xhtml+xml</value></prop>
|
||||
<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
|
||||
<prop oor:name="TemplateName"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Writer2LaTeX source version 1.3.1 alpha
|
||||
=======================================
|
||||
|
||||
Writer2LaTeX is (c) 2002-2012 by Henrik Just.
|
||||
Writer2LaTeX is (c) 2002-2014 by Henrik Just.
|
||||
The source is available under the terms and conditions of the
|
||||
GNU LESSER GENERAL PUBLIC LICENSE, version 2.1.
|
||||
Please see the file COPYING.TXT for details.
|
||||
|
@ -95,7 +95,7 @@ In addition to oxt, the build file supports the following targets:
|
|||
clean
|
||||
|
||||
|
||||
Henrik Just, March 2012
|
||||
Henrik Just, August 2014
|
||||
|
||||
|
||||
Thanks to Michael Niedermair for writing the original ant build file
|
||||
|
|
Loading…
Add table
Reference in a new issue