Skip to content

LaTeX Engine

In simple terms, the LaTeX engine is responsible for generating the resume from the LaTeX file generated by the python pre-processor. The LaTeX engine uses the XeLaTeX compiler to generate the PDF file.

We have a LaTeX Class file that defines the structure of the resume. The class file is used to generate the resume from the LaTeX file generated by the python pre-processor.

Find the class file for the LaTeX template here.

Components in the LaTeX Engine

classDiagram
    class ResumeClass {
        +\NeedsTeXFormat()
        +\ProvidesClass()
        +\DeclareOption()
        +\ProcessOptions()
        +\LoadClass()
    }

    class RequiredPackages {
        +geometry
        +xcolor
        +hyperref
        +titlesec
        +textpos
        +babel
        +isodate
        +setspace
        +enumitem
        +paracol
        +ulem
        +fontspec
        +xltxtra
        +xunicode
        +xfp
        +multicol
    }

    class Commands {
        +\applysettings()
        +\loadpresent()
        +\overridesetting()
    }

    class Modifiers {
        +scaling-factor
        +default
        +colors
        +fonts
        +sections
        +sub-sections
        +tightemize
        +tightnopoints
    }

    class CustomCommands {
        +last-updated
        +name-section
        +alt-sub-section
        +section-seperator
        +info
        +additional-info
        +json-processor
        +trim-spaces
    }

    ResumeClass --> RequiredPackages
    ResumeClass --> Commands
    Commands --> Modifiers
    Commands --> CustomCommands

How does it work?

sequenceDiagram
    participant User
    participant ResumeClass
    participant Settings
    participant Modifiers
    participant Commands

    User->>ResumeClass: Load Class
    activate ResumeClass
    ResumeClass->>ResumeClass: Process Options
    ResumeClass->>ResumeClass: Load Required Packages
    ResumeClass->>Settings: Load Default Settings
    activate Settings
    Settings->>Modifiers: Apply Default Modifiers
    activate Modifiers
    Modifiers->>Modifiers: Load Colors
    Modifiers->>Modifiers: Load Fonts
    Modifiers->>Modifiers: Load Sections
    Modifiers->>Modifiers: Load Sub-sections
    deactivate Modifiers
    Settings->>Commands: Load Custom Commands
    activate Commands
    Commands->>Commands: Register Commands
    deactivate Commands
    deactivate Settings
    ResumeClass->>User: Ready for Content
    deactivate ResumeClass