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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@latex2js/settings

v3.1.3

Published

latex2js settings

Readme

@latex2js/settings

Configuration management for PSTricks graphics settings in LaTeX2JS. This package handles parsing and processing of graphics settings like colors, styles, and units.

Installation

npm install @latex2js/settings

Features

  • Color Processing: Parse and convert color specifications (RGB, named colors, etc.)
  • Style Management: Handle line styles, fill patterns, and graphic properties
  • Unit Conversion: Automatic conversion between measurement units
  • Settings Recognition: Regular expressions for identifying LaTeX settings
  • Option Parsing: Extract and process option strings from LaTeX commands

API Reference

Expressions

Regular expressions for recognizing various settings:

import { Expressions } from '@latex2js/settings';

// Available expression patterns
Expressions.fillcolor     // Matches fillcolor settings
Expressions.linecolor     // Matches linecolor settings  
Expressions.unit          // Matches unit specifications
Expressions.xunit         // Matches x-axis unit settings
Expressions.yunit         // Matches y-axis unit settings

Functions

Processing functions for graphics settings:

import { Functions } from '@latex2js/settings';

// Process color settings
Functions.fillcolor(value);    // Process fill color value
Functions.linecolor(value);    // Process line color value

// Handle unit conversions
Functions.unit(value);         // Process general unit settings
Functions.xunit(value);        // Process x-axis specific units
Functions.yunit(value);        // Process y-axis specific units

Usage Examples

Basic Settings Processing

import { Expressions, Functions } from '@latex2js/settings';

// Check if a string contains color settings
if (Expressions.fillcolor.test(settingString)) {
  const colorValue = Functions.fillcolor(extractedValue);
}

// Process unit settings
if (Expressions.unit.test(settingString)) {
  const unitValue = Functions.unit(extractedValue);
}

Integration with LaTeX Commands

// Typical usage in LaTeX command processing
const psframeOptions = '[fillcolor=blue, linecolor=red, unit=1cm]';

// Extract and process each setting
const settings = {};
if (Expressions.fillcolor.test(psframeOptions)) {
  settings.fillcolor = Functions.fillcolor('blue');
}
if (Expressions.linecolor.test(psframeOptions)) {
  settings.linecolor = Functions.linecolor('red');
}
if (Expressions.unit.test(psframeOptions)) {
  settings.unit = Functions.unit('1cm');
}

Supported Settings

Color Settings

  • fillcolor: Fill color for shapes and regions
  • linecolor: Line/stroke color for borders and lines

Unit Settings

  • unit: General unit specification (affects both axes)
  • xunit: X-axis specific unit scaling
  • yunit: Y-axis specific unit scaling

Automatic Conversions

The package automatically handles:

  • Named colors → RGB/hex values
  • Unit strings → pixel equivalents
  • Relative units → absolute measurements

Dependencies

  • @latex2js/utils: Uses utility functions for unit conversion and option parsing

Integration

This package is used by:

  • @latex2js/pstricks: For processing PSTricks command options
  • latex2js: For handling LaTeX document settings
  • latex2html5: For applying settings during rendering

TypeScript Support

Full TypeScript support with proper type definitions for all functions and expression patterns.

Example: Complete Settings Processing

import { Expressions, Functions } from '@latex2js/settings';

function processLatexOptions(optionString: string) {
  const settings: any = {};
  
  // Process all supported settings
  Object.keys(Expressions).forEach(key => {
    if (Expressions[key].test(optionString)) {
      const match = optionString.match(Expressions[key]);
      if (match && Functions[key]) {
        settings[key] = Functions[key](match[1]);
      }
    }
  });
  
  return settings;
}

const options = '[fillcolor=red, unit=2cm, linecolor=blue]';
const processed = processLatexOptions(options);
// Result: { fillcolor: 'red', unit: '2cm', linecolor: 'blue' }