package de.unisiegen.tpml.core.latex ; import de.unisiegen.tpml.core.prettyprinter.PrettyPrintable ; /** * Base interface for classes whose instances can be printed in latex. * * @author Christian Fehler */ public interface LatexPrintable extends PrettyPrintable , LatexCommandNames { /** * Returns a set of needed latex commands for this latex printable object. * * @return A set of needed latex commands for this latex printable object. */ public LatexCommandList getLatexCommands ( ) ; /** * Returns a list of needed latex instructions for this latex printable * object. * * @return A lsit of needed latex instructions for this latex printable * object. */ public LatexInstructionList getLatexInstructions ( ) ; /** * Returns a set of needed latex packages for this latex printable object. * * @return A set of needed latex packages for this latex printable object. */ public LatexPackageList getLatexPackages ( ) ; /** * Returns a {@link LatexString} that can be used to export this latex * printable object. * * @return A {@link LatexString} that can be used to export this latex * printable object. */ public LatexString toLatexString ( ) ; /** * Returns the latex string builder used to latex print this latex printable * object. The latex string builder must be allocated from the specified * <code>pLatexStringBuilderFactory</code>, which is currently always the * default factory, but may also be another factory in the future. * * @param pLatexStringBuilderFactory the {@link LatexStringBuilderFactory} * used to allocate the required latex string builders to latex print * this latex printable object. * @param pIndent The indent of this object. * @return The latex string builder used to latex print this latex printable * object. * @see #toLatexString() * @see LatexStringBuilder * @see LatexStringBuilderFactory */ public LatexStringBuilder toLatexStringBuilder ( LatexStringBuilderFactory pLatexStringBuilderFactory , int pIndent ) ; }