KLatexFormula, beyond being a graphical application, provides a couple libraries which may be used in other programs.
klftools: Tools libraryDependencies: Qt5
The klftools Library is a collection of tools that were written for
KLatexFormula. However they could be in principle useful in other Qt5
applications, and hence they were collected in a separate library.
Features include:
A search bar (KLFSearchBar), with an abstract search interface so that you
can search pretty much anything
A full-featured color selection widget, respectively color selection dialog
A “please wait” popup widget, more splash-screen oriented than progress-dialog
oriented, inviting the user to be patient (KLFPleaseWaitPopup)
A grid flow layout (KLFGridFlowLayout): a widget layout that displays
widgets in a grid; unlike QGridLayout (where you have to specify explicit
coordinates) widgets are just inserted left to right, breaking into new lines
after a certain number of columns
A path chooser widget (KLFPathChooser): lets the user input a location with
a line edit and a “browse” button
A pixmap button (KLFPixmapButton): displays a pixmap instead of a label on a
QPushButton without having to hack with setIcon() and setIconSize() …
KLFProgressReporter and KLFProgressDialog: allows to send progress
information for whoever is interested, and display that progress information
in a QProgressDialog-subclass
KLFPropertizedObject: implements a properties engine for common
objects. This works like QObject properties, but with some fundamental
differences, see the documentation for this class in the APIs
KLFFactory{Base|Manager}: common functions for class instance factories
klfMatch(), klfDataToEscaped(), klfVariantToText(),
klf{Load|Save}Variant{Map|List}ToXML(), klfUrlCompare(),
klfVariantListToList(), …: all functions that you would wish to feature in
Qt itself but which you have not found in Qt ;) [Note: I wrote these a while
ago, so some of this functionality might have been introduced in Qt over the
years.]
klfMatch(): perform general string or value matching, supporting exact
match, contains, regexp, wildcard, etc. in the same idea as
QAbstractItemModel::match()
klfDataToEscaped(): just \-escapes binary data into ascii-compatible
data
klfVariantToText()/klfVariantFromText(): saves/loads QVariant’s as
human-read/writable (but also machine parsable) text. This does not save
type information, which is assumed to be known when reading back the variant
klfSaveVariantMapToXML()/klfSaveVariantListToXML(): read/write XML with
QVariantMap’s and QVariantList’s in XML, each variant item is written
with klfVariantToText()
klfUrlCompare(): compares URLs, especially query items
klfVariantListToList<Type>() converts a QVariantList into a
QList<Type>.
See the API documentation here.
klfbackend: Backend libraryDependencies: Qt5, klftools
The core of KLatexFormula’s functionality is provided by the library
klfbackend. This library provides a few very basic functions useful for the
whole of KLatexFormula package (common declarations), a few general utilities,
and one function called getLatexFormula() which takes care of running latex,
dvips, gs and epstopdf to get a QImage, PS, PNG, PDF, etc., data
from a given latex expression and various input settings. This library is also
capable of running backend engine user scripts.
This library is intended of course for use in KLatexFormula itself, but of course anyone wishing to add to his/her program the functionality of converting latex expressions to images can link the program to the KLFBackend library. A utility to detect where latex/dvips/gs are is provided, with a few hard-coded standard paths, with the option to look into more paths. At the end, this functionality amounts to very little code in your program.
The klfbackend library depends on some utilities which are defined in the
klftools library. If you don’t want to add the klftools dependency to your
program, link to klfbackend_auto instead (see below).
Main Features:
getLatexFormula(): compile a latex equation into several graphics formats,
including PNG, PS and PDF.
detectSettings(): auto-detect the location of latex, dvips and gs, and
see which formats are supported by ghostscript.
KLFBlockProcess, KLFFilterProcess: run a separate process designed to
transform some input into some output.
KLFUserScriptInfo: deal with klatexformula user scripts.
See the API documentation here.
klfbackend_auto: Autonomous klfbackend libraryDependencies: Qt5
This is the same as the klfbackend library, except it includes
the (relatively few) sources from klftools that are required.
Link to this library if you would like to compile latex equations in your
program with klfbackend but you don’t need klftools.
If you link to klfbackend_auto, then do not link to klfbackend or klftools
(you’ll get duplicate symbol definitions).
KLatexFormula does not require klfbackend_auto.
libklftoolsdesplugin: Qt5 designer plugin for klftoolsDependencies: Qt5 incl. Qt5 Designer libraries, klftools
This library is a plugin for Qt5 Designer, giving you full access to klftools
custom widgets in your UI forms. For example, there’s a search bar, a pixmap
button, etc.
Your libraries do not have to link to this library. KLatexFormula does not depend on this library either.
klatexformula: The Main ApplicationDependencies: Qt5, klftools, klfbackend
The actual KLatexFormula application provides all the graphical user interface, the library, the symbols palette, etc.