Package writer2latex.latex

# Class NoteConverter

java.lang.Object
writer2latex.latex.NoteConverter

public class NoteConverter extends Object

This class handles conversion of footnotes and endnotes, including references. It takes advantage of the packages `endnotes.sty` and `perpage.sty` if allowed in the configuration.

## Constructor Summary

Constructors
Constructor
Description
`NoteConverter(OfficeReader ofr, LaTeXConfig config, ConverterPalette palette)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addEndnoteName(String sName)`
Add an endnote name.
`void`
`addFootnoteName(String sName)`
Add a footnote name.
`void`
`appendDeclarations(LaTeXDocumentPortion pack, LaTeXDocumentPortion decl)`
Append declarations needed by the `NoteConverter` to the preamble.
`void`
`flushFootnotes(LaTeXDocumentPortion ldp, Context oc)`
Flush the queue of postponed footnotes
`void`
`handleEndnote(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process an endnote (text:endnote tag)
`void`
`handleEndnoteRef(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process an endnote reference (text:endnote-ref tag)
`void`
`handleFootnote(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a footnote (text:footnote tag)
`void`
`handleFootnoteRef(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a footnote reference (text:footnote-ref tag)
`void`
`handleNoteRef(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a note reference (text:note-ref tag, oasis)
`boolean`
`hasPendingFootnotes(Context oc)`
Do we have any pending footnotes, that may be inserted in this context?
`void`
`insertEndnotes(LaTeXDocumentPortion ldp)`
Insert the endnotes into the documents.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### NoteConverter

public NoteConverter(OfficeReader ofr, LaTeXConfig config, ConverterPalette palette)

## Method Details

### appendDeclarations

public void appendDeclarations(LaTeXDocumentPortion pack, LaTeXDocumentPortion decl)

Append declarations needed by the `NoteConverter` to the preamble.

Parameters:
  `pack` - the `LaTeXDocumentPortion` to which declarations of packages should be added (`\\usepackage`).
  `decl` - the `LaTeXDocumentPortion` to which other declarations should be added.

### handleFootnote

public void handleFootnote(Element node, LaTeXDocumentPortion ldp, Context oc)

Process a footnote (text:footnote tag)

Parameters:
  `node` - The element containing the footnote
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added
  `oc` - the current context

### hasPendingFootnotes

public boolean hasPendingFootnotes(Context oc)
Do we have any pending footnotes, that may be inserted in this context?

Parameters:
  `oc` - the context to verify against
Returns:
  true if there are pending footnotes

### flushFootnotes

public void flushFootnotes(LaTeXDocumentPortion ldp, Context oc)
Flush the queue of postponed footnotes

### handleEndnote

public void handleEndnote(Element node, LaTeXDocumentPortion ldp, Context oc)

Process an endnote (text:endnote tag)

Parameters:
  `node` - The element containing the endnote
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added
  `oc` - the current context

### insertEndnotes

public void insertEndnotes(LaTeXDocumentPortion ldp)

Insert the endnotes into the documents.

Parameters:
  `ldp` - the `LaTeXDocumentPortion` to which the endnotes should be added.

### handleNoteRef

public void handleNoteRef(Element node, LaTeXDocumentPortion ldp, Context oc)

Process a note reference (text:note-ref tag, oasis)

Parameters:
  `node` - The element containing the note reference
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added
  `oc` - the current context

### handleFootnoteRef

public void handleFootnoteRef(Element node, LaTeXDocumentPortion ldp, Context oc)

Process a footnote reference (text:footnote-ref tag)

Parameters:
  `node` - The element containing the footnote reference
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added
  `oc` - the current context

### handleEndnoteRef

public void handleEndnoteRef(Element node, LaTeXDocumentPortion ldp, Context oc)

Process an endnote reference (text:endnote-ref tag)

Parameters:
  `node` - The element containing the endnote reference
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added
  `oc` - the current context

### addFootnoteName

public void addFootnoteName(String sName)

Add a footnote name. The method `handleFootnote` includes a `\label` only if the footnote name is already known to the `NoteConverter`. Hence this method is invoked by the prepass for each footnote reference. The end result is, that only necessary labels will be included.

Parameters:
  `sName` - the name (id) of the footnote

### addEndnoteName

public void addEndnoteName(String sName)

Add an endnote name. The method `handleEndnote` includes a `\label` only if the endnote name is already known to the `NoteConverter`. Hence this method is invoked by the prepass for each endnote reference. The end result is, that only necessary labels will be included.

Parameters:
  `sName` - the name (id) of the endnote