diff --git a/source/distro/changelog.txt b/source/distro/changelog.txt
index c144bc3..da3b553 100644
--- a/source/distro/changelog.txt
+++ b/source/distro/changelog.txt
@@ -2,11 +2,19 @@ Changelog for Writer2LaTeX version 1.0 -> 1.2
---------- version 1.1.5 ----------
+[all] Added Norwegian Nynorsk translation from Kevin Brubeck Unhammer
+
+[w2x] Only create reference targets for reference marks, bookmarks and sequence numbers if reference exists
+
+[all] Bugfix: Fixed problem with empty exported names (e.g. bookmarks in xhtml export)
+
+[w2x] Fixed typo in Russian translation
+
[w2l] Bugfix: Fixed problem with lost images in some documents
[w2l] New option: natbib_options is used to set options for natbib.sty (used by Zotero export)
-[w2l] Added support for Zotero reference marks (with contributions from Kevin Brubeck Unhammer).
+[w2l] Added support for Zotero reference marks (with contributions from Kevin Brubeck Unhammer)
A new option zotero_bibtex_files has been added to give the names of the BibTeX files from Zotero
---------- version 1.1.4 ----------
diff --git a/source/java/writer2latex/api/ConverterFactory.java b/source/java/writer2latex/api/ConverterFactory.java
index 3339bbd..e32c50d 100644
--- a/source/java/writer2latex/api/ConverterFactory.java
+++ b/source/java/writer2latex/api/ConverterFactory.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2010-10-13)
+ * Version 1.2 (2010-10-27)
*
*/
@@ -33,7 +33,7 @@ public class ConverterFactory {
// Version information
private static final String VERSION = "1.1.5";
- private static final String DATE = "2010-10-13";
+ private static final String DATE = "2010-10-27";
/** Return the Writer2LaTeX version in the form
* (major version).(minor version).(patch level)
diff --git a/source/java/writer2latex/office/OfficeReader.java b/source/java/writer2latex/office/OfficeReader.java
index b6aafd0..6757603 100644
--- a/source/java/writer2latex/office/OfficeReader.java
+++ b/source/java/writer2latex/office/OfficeReader.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2010-05-09)
+ * Version 1.2 (2010-10-27)
*
*/
@@ -590,6 +590,14 @@ public class OfficeReader {
}
+ /**
Is there a reference to this note id? + * @param sId the id of the note + * @return true if there is a reference + */ + public boolean hasNoteRefTo(String sId) { + return footnoteRef.contains(sId) || endnoteRef.contains(sId); + } + /**
Is there a reference to this footnote id?
* @param sId the id of the footnote
* @return true if there is a reference
diff --git a/source/java/writer2latex/util/ExportNameCollection.java b/source/java/writer2latex/util/ExportNameCollection.java
index 137d61a..223edf7 100644
--- a/source/java/writer2latex/util/ExportNameCollection.java
+++ b/source/java/writer2latex/util/ExportNameCollection.java
@@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
- * Copyright: 2002-2009 by Henrik Just
+ * Copyright: 2002-2010 by Henrik Just
*
* All Rights Reserved.
*
- * Version 1.2 (2009-06-05)
+ * Version 1.2 (2010-10-27)
*
*/
@@ -89,11 +89,25 @@ public class ExportNameCollection{
}
}
String sExportName=outbuf.toString();
- // the result may exist in the collecion; add a's at the end
- while (exportNames.containsValue(sExportName)){
- sExportName+="a";
+ if (sExportName.length()==0) {
+ // Do not accept empty export names
+ sExportName = "qwerty";
+ }
+ if (!exportNames.containsValue(sExportName)) {
+ // Everything's fine, we can use the stripped name directly
+ exportNames.put(sName,sExportName);
+ }
+ else {
+ // Otherwise add letters at the end until a unique export name is found
+ int i=1;
+ while (true) {
+ String sSuffix = Misc.int2alph(i++, false);
+ if (!exportNames.containsValue(sExportName+sSuffix)) {
+ exportNames.put(sName,sExportName+sSuffix);
+ break;
+ }
+ }
}
- exportNames.put(sName,sExportName);
}
public String getExportName(String sName) {
diff --git a/source/java/writer2latex/util/Misc.java b/source/java/writer2latex/util/Misc.java
index 76b9f3f..d5386e7 100644
--- a/source/java/writer2latex/util/Misc.java
+++ b/source/java/writer2latex/util/Misc.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2010-05-17)
+ * Version 1.2 (2010-10-27)
*
*/
@@ -34,6 +34,7 @@ import java.io.UnsupportedEncodingException;
import java.lang.Math;
import java.net.URLEncoder;
import java.net.URLDecoder;
+import java.util.Arrays;
//import java.util.Hashtable;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -53,6 +54,7 @@ public class Misc{
}
public static final String int2roman(int number) {
+ assert number>0; // Only works for positive numbers!
StringBuffer roman=new StringBuffer();
while (number>=1000) { roman.append('m'); number-=1000; }
if (number>=900) { roman.append("cm"); number-=900; }
@@ -79,8 +81,26 @@ public class Misc{
}
public static final String int2alph(int number, boolean bLetterSync) {
- // TODO: Handle overflow/lettersync
- return new Character((char) (number+96)).toString();
+ assert number>0; // Only works for positive numbers!
+ if (bLetterSync) {
+ char[] chars = new char[(number-1)/26+1]; // Repeat the character this number of times
+ Arrays.fill(chars, (char) ((number-1) % 26+97)); // Use this character
+ return String.valueOf(chars);
+ }
+ else {
+ int n=number-1;
+ // Least significant digit is special because a is treated as zero here!
+ int m = n % 26;
+ String sNumber = Character.toString((char) (m+97));
+ n = (n-m)/26;
+ // For the more significant digits, a is treated as one!
+ while (n>0) {
+ m = n % 26; // Calculate new least significant digit
+ sNumber = ((char) (m+96))+sNumber;
+ n = (n-m)/26;
+ }
+ return sNumber;
+ }
}
public static final String int2Alph(int number, boolean bLetterSync) {
diff --git a/source/java/writer2latex/xhtml/L10n.java b/source/java/writer2latex/xhtml/L10n.java
index 36ff67b..d3f6670 100644
--- a/source/java/writer2latex/xhtml/L10n.java
+++ b/source/java/writer2latex/xhtml/L10n.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2010-06-03)
+ * Version 1.2 (2010-10-27)
*
*/
@@ -165,6 +165,20 @@ public class L10n {
case DOCUMENT: return "Dokument";
}
}
+ if (sLocale.startsWith("nn")) { // nynorsk
+ switch (nString) {
+ case UP: return "Opp";
+ case FIRST : return "F\u00f8rste";
+ case PREVIOUS : return "Forrige";
+ case NEXT : return "Neste";
+ case LAST : return "Siste";
+ case CONTENTS : return "Innhald";
+ case INDEX : return "Register";
+ case HOME : return "Heim";
+ case DIRECTORY: return "Mappe";
+ case DOCUMENT: return "Dokument";
+ }
+ }
if (sLocale.startsWith("pl")) { // polish
switch (nString) {
case UP: return "W g\u00f3r\u0119";
diff --git a/source/java/writer2latex/xhtml/TextConverter.java b/source/java/writer2latex/xhtml/TextConverter.java
index 0e2f11f..28536b2 100644
--- a/source/java/writer2latex/xhtml/TextConverter.java
+++ b/source/java/writer2latex/xhtml/TextConverter.java
@@ -1717,7 +1717,7 @@ public class TextConverter extends ConverterHelper {
private void handleSequence(Node onode, Node hnode) {
// Use current value, but turn references into hyperlinks
String sName = Misc.getAttribute(onode,XMLString.TEXT_REF_NAME);
- if (sName!=null && !bInToc) {
+ if (sName!=null && !bInToc && ofr.hasSequenceRefTo(sName)) {
Element anchor = converter.createTarget("seq"+sName);
hnode.appendChild(anchor);
traversePCDATA(onode,anchor);
@@ -1742,7 +1742,7 @@ public class TextConverter extends ConverterHelper {
}
private void handleSequenceRef(Node onode, Node hnode) {
- createReference(onode,hnode,"seq");
+ createReference(onode,hnode,"seq");
}
private void handleNoteRef(Node onode, Node hnode) {
@@ -1751,13 +1751,13 @@ public class TextConverter extends ConverterHelper {
private void handleReferenceMark(Node onode, Node hnode) {
String sName = Misc.getAttribute(onode,XMLString.TEXT_NAME);
- if (sName!=null && !bInToc) {
+ if (sName!=null && !bInToc && ofr.hasReferenceRefTo(sName)) {
hnode.appendChild(converter.createTarget("ref"+sName));
}
}
private void handleReferenceRef(Node onode, Node hnode) {
- createReference(onode,hnode,"ref");
+ createReference(onode,hnode,"ref");
}
private void handleBookmark(Node onode, Node hnode) {
@@ -1765,7 +1765,9 @@ public class TextConverter extends ConverterHelper {
String sName = Misc.getAttribute(onode,XMLString.TEXT_NAME);
if (sName!=null && !bInToc) {
hnode.appendChild(converter.createTarget(sName));
- hnode.appendChild(converter.createTarget("bkm"+sName));
+ if (ofr.hasBookmarkRefTo(sName)) {
+ hnode.appendChild(converter.createTarget("bkm"+sName));
+ }
}
}
diff --git a/source/oxt/writer2latex/W2LDialogs/DialogStrings_nn_NO.properties b/source/oxt/writer2latex/W2LDialogs/DialogStrings_nn_NO.properties
new file mode 100644
index 0000000..7e6d150
--- /dev/null
+++ b/source/oxt/writer2latex/W2LDialogs/DialogStrings_nn_NO.properties
@@ -0,0 +1,111 @@
+# LaTeXOptions strings=Your language
+0.LaTeXOptions.HelpText=
+1.LaTeXOptions.Title=LaTeX-val (Writer2Latex)
+2.LaTeXOptions.FixedLine1.HelpText=
+3.LaTeXOptions.FixedLine1.Label=
+4.LaTeXOptions.GeneralLabel.HelpText=
+5.LaTeXOptions.GeneralLabel.Label=Generelt
+6.LaTeXOptions.ConfigLabel.HelpText=
+7.LaTeXOptions.ConfigLabel.Label=LaTeX-format
+8.LaTeXOptions.Config.HelpText=
+137.Config.StringItemList=Ultra-rein artikkel
+138.Config.StringItemList=Rein artikkel
+139.Config.StringItemList=Standard
+140.Config.StringItemList=Optimalisert for utskrift
+141.Config.StringItemList=Optimalisert for skjerm (pdf)
+142.Config.StringItemList=Eigendefinert
+15.LaTeXOptions.BackendLabel.HelpText=
+16.LaTeXOptions.BackendLabel.Label=Motor
+17.LaTeXOptions.Backend.HelpText=
+116.Backend.StringItemList=Generisk
+117.Backend.StringItemList=Pdf (pdfTeX)
+118.Backend.StringItemList=Postscript (dvips)
+119.Backend.StringItemList=Ikkje spesifisert
+22.LaTeXOptions.InputencodingLabel.HelpText=
+23.LaTeXOptions.InputencodingLabel.Label=Koding
+24.LaTeXOptions.Inputencoding.HelpText=
+120.Inputencoding.StringItemList=US ASCII
+121.Inputencoding.StringItemList=Vesteuropeisk (ISO 8859-1)
+122.Inputencoding.StringItemList=Austeuropeisk (ISO 8859-2)
+123.Inputencoding.StringItemList=Latin/gresk (ISO 8859-7)
+124.Inputencoding.StringItemList=Microsoft austeuropeisk (Cp1250)
+125.Inputencoding.StringItemList=Microsoft kyrillisk (Cp1251)
+126.Inputencoding.StringItemList=Russisk (koi8-r)
+127.Inputencoding.StringItemList=Unicode (UTF8)
+33.LaTeXOptions.Multilingual.HelpText=
+34.LaTeXOptions.Multilingual.Label=Skru p\u00e5 st\u00f8tte for fleire spr\u00e5k
+35.LaTeXOptions.GreekMath.HelpText=
+36.LaTeXOptions.GreekMath.Label=Nytt greske teikn som symbol
+37.LaTeXOptions.AdditionalSymbols.HelpText=
+38.LaTeXOptions.AdditionalSymbols.Label=St\u00f8tt fleire symbol
+39.LaTeXOptions.BibliographyLabel.HelpText=
+40.LaTeXOptions.BibliographyLabel.Label=Bibliografi
+41.LaTeXOptions.UseBibtex.HelpText=
+42.LaTeXOptions.UseBibtex.Label=Nytt BibTeX for bibliografi
+43.LaTeXOptions.BibtexStyleLabel.HelpText=
+44.LaTeXOptions.BibtexStyleLabel.Label=BibTeX-stil
+45.LaTeXOptions.BibtexStyle.HelpText=
+46.BibtexStyle.StringItemList=plain
+47.BibtexStyle.StringItemList=unsrt
+48.BibtexStyle.StringItemList=alpha
+49.BibtexStyle.StringItemList=abbrv
+50.LaTeXOptions.BibtexStyle.Text=
+51.LaTeXOptions.FilesLabel.HelpText=
+52.LaTeXOptions.FilesLabel.Label=Filer
+53.LaTeXOptions.WrapLines.HelpText=
+54.LaTeXOptions.WrapLines.Label=Brekk om lange linjer
+55.LaTeXOptions.WrapLinesAfterLabel.HelpText=
+56.LaTeXOptions.WrapLinesAfterLabel.Label=Etter teikn
+57.LaTeXOptions.WrapLinesAfter.HelpText=
+58.LaTeXOptions.SplitLinkedSections.HelpText=
+59.LaTeXOptions.SplitLinkedSections.Label=Del opp dokument ved lenkja bolkar
+60.LaTeXOptions.SplitToplevelSections.HelpText=
+61.LaTeXOptions.SplitToplevelSections.Label=Del opp dokument ved toppniv\u00e5bolkar
+62.LaTeXOptions.SaveImagesInSubdir.HelpText=
+63.LaTeXOptions.SaveImagesInSubdir.Label=Lagre bilete i undermappe
+64.LaTeXOptions.SpecialContentLabel.HelpText=
+65.LaTeXOptions.SpecialContentLabel.Label=Spesielt innhald
+66.LaTeXOptions.NotesLabel.HelpText=
+67.LaTeXOptions.NotesLabel.Label=Merknader
+68.LaTeXOptions.Notes.HelpText=
+128.Notes.StringItemList=Ikkje eksporter
+129.Notes.StringItemList=Eksporter som kommentarar
+130.Notes.StringItemList=Eksporter som margnoter
+131.Notes.StringItemList=Eksporter som pdf-annotasjonar
+73.LaTeXOptions.Metadata.HelpText=
+74.LaTeXOptions.Metadata.Label=Eksporter dokumenteigenskapar (metadata)
+75.LaTeXOptions.FiguresAndTablesLabel.HelpText=
+76.LaTeXOptions.FiguresAndTablesLabel.Label=Figurar og tabellar
+77.LaTeXOptions.OriginalImageSize.HelpText=
+78.LaTeXOptions.OriginalImageSize.Label=Nytt opphavleg biletstorleik
+79.LaTeXOptions.OptimizeSimpleTables.HelpText=
+80.LaTeXOptions.OptimizeSimpleTables.Label=Optimaliser enkle tabellar
+81.LaTeXOptions.SimpleTableLimitLabel.HelpText=
+82.LaTeXOptions.SimpleTableLimitLabel.Label=Maksbreidd i teikn
+83.LaTeXOptions.SimpleTableLimit.HelpText=
+84.LaTeXOptions.FloatTables.HelpText=
+85.LaTeXOptions.FloatTables.Label=Flyt tabellar
+86.LaTeXOptions.FloatFigures.HelpText=
+87.LaTeXOptions.FloatFigures.Label=Flyt figurar
+88.LaTeXOptions.FloatOptionsLabel.HelpText=
+89.LaTeXOptions.FloatOptionsLabel.Label=Flyt plassering
+90.LaTeXOptions.FloatOptions.HelpText=
+132.FloatOptions.StringItemList=\u00d8vst eller nedst p\u00e5 sida
+133.FloatOptions.StringItemList=\u00d8vst p\u00e5 sida
+134.FloatOptions.StringItemList=Nedst p\u00e5 sida
+135.FloatOptions.StringItemList=Her eller \u00f8vst p\u00e5 sida
+136.FloatOptions.StringItemList=Her eller nedst p\u00e5 sida
+96.LaTeXOptions.AutoCorrectLabel.HelpText=
+97.LaTeXOptions.AutoCorrectLabel.Label=Autokorriger
+98.LaTeXOptions.IgnoreHardPageBreaks.HelpText=
+99.LaTeXOptions.IgnoreHardPageBreaks.Label=Ignorer harde sideskift
+100.LaTeXOptions.IgnoreHardLineBreaks.HelpText=
+101.LaTeXOptions.IgnoreHardLineBreaks.Label=Ignorer harde linjeskift
+102.LaTeXOptions.IgnoreEmptyParagraphs.HelpText=
+103.LaTeXOptions.IgnoreEmptyParagraphs.Label=Ignorer tomme avsnitt
+104.LaTeXOptions.IgnoreDoubleSpaces.HelpText=
+105.LaTeXOptions.IgnoreDoubleSpaces.Label=Ignorer doble mellomrom
+106.LaTeXOptions.ExportButton.HelpText=
+107.LaTeXOptions.ExportButton.Label=Eksporter
+108.LaTeXOptions.CancelButton.HelpText=
+109.LaTeXOptions.CancelButton.Label=Avbryt
diff --git a/source/oxt/writer2latex/desc_nn.txt b/source/oxt/writer2latex/desc_nn.txt
new file mode 100644
index 0000000..e6a86d2
--- /dev/null
+++ b/source/oxt/writer2latex/desc_nn.txt
@@ -0,0 +1 @@
+Writer2Latex gir Writer eksportfilter for LaTeX og BibTeX
\ No newline at end of file
diff --git a/source/oxt/writer2latex/description.xml b/source/oxt/writer2latex/description.xml
index a005dbf..7c5c8e6 100644
--- a/source/oxt/writer2latex/description.xml
+++ b/source/oxt/writer2latex/description.xml
@@ -21,6 +21,7 @@