Class KnuthGlue


  • public class KnuthGlue
    extends KnuthElement
    An instance of this class represents a piece of content with adjustable width: for example a space between words of justified text. A KnuthGlue is a feasible breaking point only if it immediately follows a KnuthBox. The represented piece of content is suppressed if either the KnuthGlue is a chosen breaking point or there isn't any KnuthBox between the previous breaking point and the KnuthGlue itself. So, an unsuppressible piece of content with adjustable width, for example a leader or a word with adjustable letter space, cannot be represented by a single KnuthGlue; it can be represented using the sequence: KnuthBox(width = 0) KnuthPenalty(width = 0, penalty = infinity) KnuthGlue(...) KnuthBox(width = 0) where the infinity penalty avoids choosing the KnuthGlue as a breaking point and the 0-width KnuthBoxes prevent suppression. Besides the inherited methods and attributes, this class has two attributes used to store the stretchability (difference between max and opt width) and the shrinkability (difference between opt and min width), and the methods to get these values.
    • Field Detail

      • stretch

        private final int stretch
      • shrink

        private final int shrink
      • adjustmentClass

        private final Adjustment adjustmentClass
    • Constructor Detail

      • KnuthGlue

        public KnuthGlue​(MinOptMax minOptMax,
                         Position pos,
                         boolean auxiliary)
        Creates a new KnuthGlue.
        Parameters:
        minOptMax - a MinOptMax where the opt-value is mapped to the width, the stretchability is mapped to the stretchability and the the shrinkability is mapped to the shrinkability
        pos - the Position stored in this glue
        auxiliary - is this glue auxiliary?
      • KnuthGlue

        public KnuthGlue​(int width,
                         int stretch,
                         int shrink,
                         Position pos,
                         boolean auxiliary)
        Creates a new KnuthGlue.
        Parameters:
        width - the width of this glue
        stretch - the stretchability of this glue
        shrink - the shrinkability of this glue
        pos - the Position stored in this glue
        auxiliary - is this glue auxiliary?
      • KnuthGlue

        public KnuthGlue​(int width,
                         int stretch,
                         int shrink,
                         Adjustment adjustmentClass,
                         Position pos,
                         boolean auxiliary)
        Creates a new KnuthGlue.
        Parameters:
        width - the width of this glue
        stretch - the stretchability of this glue
        shrink - the shrinkability of this glue
        adjustmentClass - the adjsutment class
        pos - the Position stored in this glue
        auxiliary - is this glue auxiliary?
    • Method Detail

      • isGlue

        public boolean isGlue()
        Overrides:
        isGlue in class ListElement
        Returns:
        true if this element is a KnuthGlue.
      • getStretch

        public int getStretch()
        Overrides:
        getStretch in class KnuthElement
        Returns:
        the stretchability of this glue.
      • getShrink

        public int getShrink()
        Overrides:
        getShrink in class KnuthElement
        Returns:
        the shrinkability of this glue.
      • getAdjustmentClass

        public Adjustment getAdjustmentClass()
        Returns:
        the adjustment class (or role) of this glue.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object