CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-pylatex

A comprehensive Python library for programmatically creating and compiling LaTeX documents and snippets.

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

configuration.mddocs/

Configuration

PyLaTeX provides a configuration system that allows you to customize the behavior of document generation. The configuration affects global settings like indentation, table styling, typography enhancements, and default values.

Core Imports

import pylatex.config
from pylatex.config import Version1, Version2, Default, NextMajor

Basic Usage

import pylatex.config
from pylatex import Document, Table

# Use the default configuration
doc = Document()

# Change global configuration
pylatex.config.active = pylatex.config.Version2()

# Use configuration temporarily
with Version1(indent=False).use():
    # Code here uses Version1 config with no indentation
    doc = Document()

# Override specific attributes temporarily  
with pylatex.config.active.change(booktabs=True, indent=False):
    # Code here uses current config but with booktabs enabled and no indent
    table = Table()

Capabilities

Configuration Classes

Configuration classes define sets of default behaviors for PyLaTeX document generation.

class Version1:
    """Configuration for v1.x.y library behavior.
    
    Default attributes:
    - indent = True
    - booktabs = False  
    - microtype = False
    - row_height = None
    """
    def __init__(self, **kwargs): ...
    def use(self): ...
    def change(self, **kwargs): ...

class Version2(Version1):
    """Configuration for v2.x.y library behavior.
    
    Default attributes:
    - indent = False
    - booktabs = True
    - microtype = True  
    - row_height = 1.3
    """

# Configuration aliases
Default = Version1  # Current default configuration
NextMajor = Version2  # Next major release configuration

Configuration Attributes

Core configuration attributes that control PyLaTeX behavior:

  • indent: bool - Whether to indent LaTeX code for readability
  • booktabs: bool - Use booktabs package for professional table styling
  • microtype: bool - Enable microtype package for improved typography
  • row_height: float | None - Default row height multiplier for tables

Context Managers

Temporarily override configuration settings using context managers.

def use(self):
    """Use the configuration temporarily in a specific context.
    
    Returns:
        Context manager for temporary configuration switching
    """

def change(self, **kwargs):
    """Override specific attributes temporarily.
    
    Args:
        **kwargs: Configuration attributes to override
        
    Returns:
        Context manager that yields the modified configuration
    """

Global Configuration Access

# Global active configuration instance
active: Version1  # Current active configuration

Configuration Examples

Basic Configuration Switching

import pylatex.config
from pylatex import Document

# Use Version1 (default) behavior
doc1 = Document()  # Uses indentation, no booktabs

# Switch to Version2 globally  
pylatex.config.active = pylatex.config.Version2()
doc2 = Document()  # No indentation, uses booktabs

# Switch back to Version1
pylatex.config.active = pylatex.config.Version1()

Temporary Configuration Changes

import pylatex.config
from pylatex import Document, Table

# Temporarily use Version2 behavior
with pylatex.config.Version2().use():
    doc = Document()  # Uses Version2 settings
    table = Table()   # Uses booktabs=True, row_height=1.3

# Back to original configuration after context
doc2 = Document()  # Uses original settings

Custom Configuration Override

import pylatex.config
from pylatex import Document

# Create custom configuration
custom_config = pylatex.config.Version1(
    indent=False,
    booktabs=True,
    microtype=True
)

# Use custom configuration temporarily
with custom_config.use():
    doc = Document()  # Uses custom settings

Attribute-Specific Override

import pylatex.config
from pylatex import Table

# Override only specific attributes
with pylatex.config.active.change(booktabs=True, row_height=1.5):
    table = Table()  # Uses booktabs with custom row height
    # Other settings remain unchanged

Configuration Impact

Different configuration settings affect various aspects of document generation:

Indentation Control

  • indent=True: Generated LaTeX code is indented for readability
  • indent=False: Compact LaTeX output without indentation

Table Styling

  • booktabs=True: Uses booktabs package for professional table appearance
  • booktabs=False: Uses standard LaTeX table styling

Typography Enhancement

  • microtype=True: Enables microtype package for improved character spacing
  • microtype=False: Standard LaTeX typography

Row Height

  • row_height=1.3: Tables use 1.3x line spacing for better readability
  • row_height=None: Uses LaTeX default row spacing

Install with Tessl CLI

npx tessl i tessl/pypi-pylatex

docs

base-classes.md

configuration.md

document.md

figures.md

index.md

layout.md

lists.md

math.md

quantities.md

references.md

sectioning.md

tables.md

text-formatting.md

tikz.md

utilities.md

tile.json