Computer algebra system for field theory problems
Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
cadabra::TeXEngine Class Reference


TeXEngine is used to convert LaTeX strings into PNG images. This is a two-stage process: you first 'check in' a string into the system, in exchange for a pointer to a TeXRequest object. When you are ready to retrieve the image, call 'get_pixbuf'.

If you need to generate images for more than one string, simply check them all in and then call 'convert_all' before retrieving the pixbufs. This requires only one round-trip through latex/dvipng.

#include <TeXEngine.hh>


class  TeXException
class  TeXRequest

Public Member Functions

 TeXEngine ()
 ~TeXEngine ()
void set_geometry (int horizontal_pixels)
void set_scale (double total_scale, double device_scale)
double get_scale () const
void set_font_size (int font_size)
std::shared_ptr< TeXRequestcheckin (const std::string &, const std::string &startwrap, const std::string &endwrap)
std::shared_ptr< TeXRequestmodify (std::shared_ptr< TeXRequest >, const std::string &)
void convert_all ()
 Generate images for all TeXRequests which are labelled as needing conversion. More...
void invalidate_all ()
 Mark all TeXRequests as needing re-generating. More...
void checkout (std::shared_ptr< TeXRequest >)
 Mark a TeXRequest as no longer being needed. More...
void checkout_all ()

Public Attributes

std::vector< std::string > latex_packages

Private Member Functions

std::string convert_unicode_to_tex (const std::string &) const
void erase_file (const std::string &) const
void convert_one (std::shared_ptr< TeXRequest >)
void convert_set (std::set< std::shared_ptr< TeXRequest > > &)
std::string handle_latex_errors (const std::string &, int exit_code) const

Private Attributes

std::set< std::shared_ptr< TeXRequest > > requests
std::string preamble_string
int horizontal_pixels_
int font_size_
double total_scale_
double device_scale_

Static Private Attributes

static double millimeter_per_inch = 25.4

Constructor & Destructor Documentation

◆ TeXEngine()

TeXEngine::TeXEngine ( )

◆ ~TeXEngine()

TeXEngine::~TeXEngine ( )

Member Function Documentation

◆ checkin()

std::shared_ptr< TeXEngine::TeXRequest > TeXEngine::checkin ( const std::string &  txt,
const std::string &  startwrap,
const std::string &  endwrap 

◆ checkout()

void TeXEngine::checkout ( std::shared_ptr< TeXRequest req)

Mark a TeXRequest as no longer being needed.

◆ checkout_all()

void TeXEngine::checkout_all ( )

◆ convert_all()

void TeXEngine::convert_all ( )

Generate images for all TeXRequests which are labelled as needing conversion.

◆ convert_one()

void TeXEngine::convert_one ( std::shared_ptr< TeXRequest req)

◆ convert_set()

void TeXEngine::convert_set ( std::set< std::shared_ptr< TeXRequest > > &  reqs)

◆ convert_unicode_to_tex()

std::string TeXEngine::convert_unicode_to_tex ( const std::string &  orig) const

◆ erase_file()

void TeXEngine::erase_file ( const std::string &  nm) const

◆ get_scale()

double TeXEngine::get_scale ( ) const

◆ handle_latex_errors()

std::string TeXEngine::handle_latex_errors ( const std::string &  result,
int  exit_code 
) const

◆ invalidate_all()

void TeXEngine::invalidate_all ( )

Mark all TeXRequests as needing re-generating.

Use this e.g. when changing font size for the entire notebook: first invalidate_all, then convert_all.

◆ modify()

std::shared_ptr< TeXEngine::TeXRequest > TeXEngine::modify ( std::shared_ptr< TeXRequest req,
const std::string &  txt 

◆ set_font_size()

void TeXEngine::set_font_size ( int  font_size)

◆ set_geometry()

void TeXEngine::set_geometry ( int  horizontal_pixels)

◆ set_scale()

void TeXEngine::set_scale ( double  total_scale,
double  device_scale 

Member Data Documentation

◆ device_scale_

double cadabra::TeXEngine::device_scale_

◆ font_size_

int cadabra::TeXEngine::font_size_

◆ horizontal_pixels_

int cadabra::TeXEngine::horizontal_pixels_

◆ latex_packages

std::vector<std::string> cadabra::TeXEngine::latex_packages

◆ millimeter_per_inch

double TeXEngine::millimeter_per_inch = 25.4

◆ preamble_string

std::string cadabra::TeXEngine::preamble_string

◆ requests

std::set<std::shared_ptr<TeXRequest> > cadabra::TeXEngine::requests

◆ total_scale_

double cadabra::TeXEngine::total_scale_

The documentation for this class was generated from the following files: