Package writer2latex.latex

# Class FieldConverter

java.lang.Object
writer2latex.latex.FieldConverter

public class FieldConverter extends Object
This class handles text fields and links in the document. Packages: lastpage, hyperref, titleref (all optional) TODO: Need proper treatment of "caption" and "text" for sequence references not to figures and tables (should be fairly rare, though)

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`void`
`addTarget(String sName, String sSuffix, LaTeXDocumentPortion ldp)`
Add a `\\hypertarget`
`void`
`addTarget(Element node, String sSuffix, LaTeXDocumentPortion ldp)`
Add a `\\hypertarget`
`void`
`appendDeclarations(LaTeXDocumentPortion pack, LaTeXDocumentPortion decl)`
Append declarations needed by the `FieldConverter` to the preamble.
`void`
`flushReferenceMarks(LaTeXDocumentPortion ldp, Context oc)`
Process pending reference marks and bookmarks (which may have been postponed within sections, captions or verbatim text.
`void`
`handleAnchor(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a hyperlink (text:a tag)
`void`
`handleBookmark(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a bookmark (text:bookmark tag)
`void`
`handleBookmarkRef(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a bookmark reference (text:bookmark-ref tag).
`void`
`handlePageCount(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a page count field (text:page-count tag)
`void`
`handlePageNumber(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a page number field (text:page-number tag)
`void`
`handleReferenceMark(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a reference mark (text:reference-mark or text:reference-mark-start tag)
`void`
`handleReferenceMarkEnd(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a reference mark end (text:reference-mark-end tag)
`void`
`handleReferenceRef(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a reference (text:reference-ref tag)
`void`
`handleSequence(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a sequence field (text:sequence tag)
`void`
`handleSequenceDecls(Element node)`
Process sequence declarations
`void`
`handleSequenceLabel(Element node, LaTeXDocumentPortion ldp)`
Create label for a sequence field (text:sequence tag)
`void`
`handleSequenceRef(Element node, LaTeXDocumentPortion ldp, Context oc)`
Process a sequence reference (text:sequence-ref tag)
`boolean`
`hasPendingReferenceMarks(Context oc)`
Do we have any pending reference marks or bookmarks, that may be inserted in this context?

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

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

## Constructor Details

### FieldConverter

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

## Method Details

### appendDeclarations

public void appendDeclarations(LaTeXDocumentPortion pack, LaTeXDocumentPortion decl)

Append declarations needed by the `FieldConverter` 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.

### handleSequenceDecls

public void handleSequenceDecls(Element node)

Process sequence declarations

Parameters:
  `node` - the text:sequence-decls node

### handleSequence

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

Process a sequence field (text:sequence tag)

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

### handleSequenceLabel

public void handleSequenceLabel(Element node, LaTeXDocumentPortion ldp)

Create label for a sequence field (text:sequence tag)

Parameters:
  `node` - The element containing the sequence field
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added

### handleSequenceRef

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

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

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

### handleReferenceMarkEnd

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

Process a reference mark end (text:reference-mark-end tag)

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

### handleReferenceMark

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

Process a reference mark (text:reference-mark or text:reference-mark-start tag)

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

### handleReferenceRef

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

Process a reference (text:reference-ref tag)

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

### handleBookmark

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

Process a bookmark (text:bookmark tag)

A bookmark may be the target for either a hyperlink or a reference, so this will generate a `\\hyperref` and/or a `\\label`

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

### handleBookmarkRef

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

Process a bookmark reference (text:bookmark-ref tag).

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

### hasPendingReferenceMarks

public boolean hasPendingReferenceMarks(Context oc)
Do we have any pending reference marks or bookmarks, that may be inserted in this context?

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

### flushReferenceMarks

public void flushReferenceMarks(LaTeXDocumentPortion ldp, Context oc)

Process pending reference marks and bookmarks (which may have been postponed within sections, captions or verbatim text.

Parameters:
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added
  `oc` - the current context

### handleAnchor

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

Process a hyperlink (text:a tag)

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

### addTarget

public void addTarget(Element node, String sSuffix, LaTeXDocumentPortion ldp)

Add a `\\hypertarget`

Parameters:
  `node` - The element containing the name of the target
  `sSuffix` - A suffix to be added to the target, e.g. "|table" for a reference to a table.
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added

### addTarget

public void addTarget(String sName, String sSuffix, LaTeXDocumentPortion ldp)

Add a `\\hypertarget`

Parameters:
  `sName` - The name of the target
  `sSuffix` - A suffix to be added to the target, e.g. "|table" for a reference to a table.
  `ldp` - the `LaTeXDocumentPortion` to which LaTeX code should be added

### handlePageNumber

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

Process a page number field (text:page-number tag)

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

### handlePageCount

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

Process a page count field (text:page-count tag)

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