Browse Source

new math

master
alistair 3 years ago
parent
commit
78eb1d5899
  1. 17
      CMakeLists.txt
  2. 78
      SimpleSvg.hh
  3. 2
      main.cpp
  4. 2
      notes/math.md

17
CMakeLists.txt

@ -59,8 +59,9 @@ ADD_EXECUTABLE(stgen3 util.cpp darkhttpd.c duktape/src/duktape.c markdown.cpp @@ -59,8 +59,9 @@ ADD_EXECUTABLE(stgen3 util.cpp darkhttpd.c duktape/src/duktape.c markdown.cpp
target_include_directories(stgen3 PRIVATE include duktape/src lib/mtex2MML/src itexToMML/itex-src
lib/lasem/src lib/cpp-base64)
lib/lasem/src lib/cpp-base64 lib/gtkmathview-0.8.0/insdir/include )
target_include_directories(stgen3 PRIVATE /usr/include/libxml2)
# Horrible Horrible headers for lasem
target_include_directories(stgen3 PRIVATE ${GLIB_INCLUDE_DIRS} /usr/include/cairo /usr/include/gdk-pixbuf-2.0 /usr/include/pango-1.0 /usr/include/harfbuzz/)
@ -73,11 +74,23 @@ add_custom_command( @@ -73,11 +74,23 @@ add_custom_command(
add_definitions(${GLIB_CFLAGS_OTHER})
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathmlsvg.a)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathmlsvg.a)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathview_frontend_libxml2.a)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathview_backend_svg.a)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathview.a)
target_link_libraries(stgen3 PRIVATE tinyxml2)
target_link_libraries(stgen3 PRIVATE xml2)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/MultiMarkdown/build/libMultiMarkdown.a)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/itexToMML/itex-src/libitex2MML.a)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/mtex2MML/build/libmtex2MML.a)
target_link_libraries(stgen3 PRIVATE tinyxml2)
target_link_libraries(stgen3 PRIVATE lexbor )
target_link_libraries(stgen3 PRIVATE lexbor)
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/src-highlite/build/b/lib/libsource-highlight.a)
target_link_libraries(stgen3 PRIVATE boost_regex)
target_link_libraries(stgen3 PRIVATE

78
SimpleSvg.hh

@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
#include <string>
#include <vector>
#include <iostream>
#include <gtkmathview/MathView/SmartPtr.hh>
#include <gtkmathview/MathView/Length.hh>
#include <gtkmathview/MathView/AbstractLogger.hh>
#include <gtkmathview/MathView/defs.h>
#include <gtkmathview/MathView/libxml2_MathView.hh>
typedef libxml2_MathView MathView;
class SimpleSVG {
double width = 21;
double height = 29.7;
Length::Unit unitId = Length::CM_UNIT;
double xMargin = 2;
double yMargin = 2;
double fontSize = DEFAULT_FONT_SIZE;
char* configPath = 0;
SmartPtr<AbstractLogger> logger;
SmartPtr<MathView> view;
struct Pair {
const std::string key;
const std::string val;
};
std::vector<struct Pair> defaultConfiguration {
{"math-engine-configuration/version", "0.8.0"},
{"svg-backend/null-shaper/enabled", "true"},
{"svg-backend/null-shaper/priority", "0"},
{"svg-backend/space-shaper/enabled", "true"},
{"svg-backend/space-shaper/priority", "1"},
{"svg-backend/type1-computer-modern-shaper/enabled", "false"},
{"svg-backend/type1-computer-modern-shaper/priority", "1"},
{"svg-backend/ttf-computer-modern-shaper/enabled", "true"},
{"svg-backend/ttf-computer-modern-shaper/priority", "1"},
{"svg-backend/ttf-computer-modern-shaper/post-shaping", "always"},
{"fonts/computer-modern/font-name", "cmr10"},
{"fonts/computer-modern/font-name", "cmmi10"},
{"fonts/computer-modern/font-name", "cmex10"},
{"fonts/computer-modern/font-name", "cmex10"},
{"fonts/computer-modern/font-name", "cmr10"},
{"fonts/computer-modern/font-name", "cmb10"},
{"fonts/computer-modern/font-name", "cmbx10"},
{"fonts/computer-modern/font-name", "cmbxti10"},
{"fonts/computer-modern/font-name", "cmti10"},
{"fonts/computer-modern/font-name", "cmss10"},
{"fonts/computer-modern/font-name", "cmssi10"},
{"fonts/computer-modern/font-name", "cmssbx10"},
{"fonts/computer-modern/font-name", "cmtt10"},
{"fonts/computer-modern/font-name", "cmsy10"},
{"fonts/computer-modern/font-name", "cmbsy10"},
{"fonts/computer-modern/font-name", "cmmi10"},
{"fonts/computer-modern/font-name", "cmex10"},
{"fonts/computer-modern/font-name", "msam10"},
{"fonts/computer-modern/font-name", "msbm10"},
{"fonts/computer-modern/font-name", "cmmib10"}
};
public:
SimpleSVG();
std::string
process_mathml(const std::string &buffer) ;
std::vector<std::string>
process_mathml(const std::vector<std::string> &mathmlsrcbufs) ;
};

2
main.cpp

@ -67,6 +67,7 @@ They are provided by the lyx-fonts package in fedora, and the ttf-lyx package in @@ -67,6 +67,7 @@ They are provided by the lyx-fonts package in fedora, and the ttf-lyx package in
#include "itex2MML.h"
#include "mtex2MML.h"
#include "SimpleSvg.hh"
namespace lex {
extern "C" {
@ -508,6 +509,7 @@ class builder { @@ -508,6 +509,7 @@ class builder {
std::unordered_map<fs::path, time_t, pathHash> last_build;
gnu_highlighter shl {};
imtex::Imtex imtx {};
SimpleSVG mathRenderer{} ;
const std::set<std::string> apply_templates_exts {"md","html", "txt", "markdown", "xml", "atom", "rss"};

2
notes/math.md

@ -33,3 +33,5 @@ curl -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmex10.ttf \ @@ -33,3 +33,5 @@ curl -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmex10.ttf \
```
source: https://github.com/gjtorikian/mathematical
azip of all t3 fonts: https://mirror.aarnet.edu.au/pub/CTAN/fonts/cm/ps-type3.zip

Loading…
Cancel
Save