npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@unified-latex/unified-latex-util-glue

v1.8.1

Published

Parse TeX glue

Downloads

125

Readme

unified-latex-util-glue

What is this?

Functions to parse TeX glue (e.g. 1in plus 3cm minus .2pt).

When should I use this?

If you need access to the values of glue to analyze \setlength commands or write linters.

Install

npm install @unified-latex/unified-latex-util-glue

This package contains both esm and commonjs exports. To explicitly access the esm export, import the .js file. To explicitly access the commonjs export, import the .cjs file.

Functions

extractFormattedGlue(nodes, startIndex)

Extract glue from a list of nodes returning a node array with properly formatted glue as well as start/end indices where the glue was "sliced out" of nodes.

Sometimes glue may end in the middle of a string node. If this happens, the string node is split and the second half is returned in the trailingStrings array.

function extractFormattedGlue(
  nodes: (Ast.Node | Ast.Argument)[],
  startIndex: Number
): {
  glue: Ast.Node[];
  span: { start: number; end: number };
  trailingStrings: Ast.String[];
};

Parameters

| Param | Type | | :--------- | :----------------------------- | | nodes | (Ast.Node \| Ast.Argument)[] | | startIndex | Number |

findGlue(nodes, startIndex)

Finds patterns matching TeX glue in nodes. A pretty-formatted version of the glue is returned along with information about how many nodes were consumed.

The return object consists of

  • printedGlue - the pretty-printed version of the glue
  • endIndex - the index in nodes where the glue string terminates
  • partialSliceLen - how far into the Ast.String node the glue string finished. For example 1ptXX would parse as 1pt, and the parsing would terminate partway through the string node.
function findGlue(
  nodes: (Ast.Node | Ast.Argument)[],
  startIndex: Number
): { printedGlue: Ast.Node[]; endIndex: number; partialSliceLen: number };

Parameters

| Param | Type | | :--------- | :----------------------------- | | nodes | (Ast.Node \| Ast.Argument)[] | | startIndex | Number |

parseTexGlue(source)

Parse a string that starts with TeX glue (e.g. 1pt or 1pt plus 2em). It is assumed that all whitespace and comments have been stripped from the glue

function parseTexGlue(source: String): Glue;

Parameters

| Param | Type | | :----- | :------- | | source | String |

printGlue(glue)

Prints a Glue object to an AST. After printing, glue is turned into a sequence of string and whitespace nodes. All structural information about the glue is lost.

function printGlue(glue: Glue): Ast.Node[];

Parameters

| Param | Type | | :---- | :----- | | glue | Glue |

where

type Glue = {
  type: "glue";
  fixed: Dim;
  stretchable: Dim | null;
  shrinkable: Dim | null;
  position: { start: Position; end: Position };
};

Types

Glue

export type Glue = {
    type: "glue";
    fixed: Dim;
    stretchable: Dim | null;
    shrinkable: Dim | null;
    position: { start: Position; end: Position };
};