Commit Graph

206 Commits

Author SHA1 Message Date
jkriege2
2ef181301b NEW: JKQTMathText: added functions to set the font-size in pixels (as alternative to the existing functions that set them in points), implements request #76 2022-07-04 21:02:43 +02:00
jkriege2
9a13e5127a JKQTMathText: improve documentation (fixes issue #74), add new draw()-variant, which accepts a QPointF 2022-07-03 21:30:12 +02:00
jkriege2
0f958cc2d6 - JKQTMathText: IMPROVED/breaking: refactored symbol node JKQTMathTextSymbolNode and changed font-lookup!
- JKQTMathText: IMPROVED/NEW/breaking: refactored whitespace-processing node JKQTMathTextWhitespaceNode, now all major LaTeX whitespace commands are supported properly
2022-07-03 20:30:12 +02:00
jkriege2
8814523e63 BUGFIX: JKQTMathText: corrected size-calculation and drawing of decorations 2022-06-28 23:14:31 +02:00
jkriege2
9a7e44889f IMPROVED: JKQTMathText: optional parameter of \sqrt is properly parsed now 2022-06-28 21:59:50 +02:00
jkriege2
6c26e250da IMPROVED: JKQTMathText: rendering of sqrt 2022-06-28 12:00:20 +02:00
jkriege2
b83e0a3292 NEW: JKQTMathText: added \underbracket and \overbracket 2022-06-28 10:15:54 +02:00
jkriege2
fc557c9aff IMPROVEMENT: JKQTMathText: added x-correction for sub/superscript above/below/besides integrals 2022-06-27 22:57:49 +02:00
jkriege2
56418f9504 IMPROVEMENTS: JKQTMathText: underbrace/overbrace and angle-braket improvements 2022-06-27 21:09:22 +02:00
jkriege2
ebdc183b2b IMPROVED: JKQTMathText: improved drawing of parantheses, square brackets ... 2022-06-26 23:46:11 +02:00
jkriege2
2d2acc3b19 NEW: JKQTMathText: added top-corner (\ulcorner/\urcorner) and bottom-corner brackets (\llcorner/\lrcorner) 2022-06-26 21:17:42 +02:00
jkriege2
45d6ef373b bugfix: JKQTMathText: \sum and \prod used the wrong symbol in XITS-mode
NEW: JKQTMathText: \limits and \nolimits work as in LaTeX now (before it was simply removed and the functionality implemented for a fixed list of symbols)
remove/breaking: JKQTMathText: \v[a-zA-Z] and shorthand for \vec{a-zA-Z} was removed
improvement: improved typesetting of sub-/supercripts, especially for large math operators and braces
2022-06-26 00:28:49 +02:00
jkriege2
f49714ecb6 JKQTMathText: improved quotation mark symbols 2022-06-20 12:21:38 +02:00
jkriege2
48a9a45af9 JKQTMathText code/documentation cleanup 2022-06-20 12:18:19 +02:00
jkriege2
d8a3539844 bugfix: didn't compile with Qt < 6.0 2022-06-20 09:53:28 +02:00
jkriege2
f9c060af68 FIXED: JKQTMathText: symbol spacing in math mode (and text mode) 2022-06-19 23:34:25 +02:00
jkriege2
03c59d3507 NEW: LaTeX-Parser simplifies parse-tree to increase speed of execution 2022-06-19 22:36:38 +02:00
jkriege2
d885f7f00a NEW: JKQTMathText: LaTeX-Parser understands optional instruction parameters in [...] now 2022-06-19 15:11:06 +02:00
jkriege2
5c255712ce JKQTMathTextBraceNode uses an enum to reference brace types, not a QStrig 2022-06-09 21:37:06 +02:00
jkriege2
c8ef57bb66 JKQTMathText: moved some node-specific enums into the node classes 2022-06-09 20:32:16 +02:00
jkriege2
7b83640a19 moved JKQTMathText images to their own subdirectory 2022-06-09 14:42:25 +02:00
jkriege2
992cad7ff3 MODIFIED: brace node now calculates the extension of the child height above or below the strikeoutPos, in order to center braces around the strikeoutPos
fixed: strikeoutPos was not correctly calculated in sub-/superscript node
NEW: JKQTMathText shows strikeoutPos when drawing Debug-Boxes
2022-06-09 14:31:27 +02:00
jkriege2
143ae54ae8 JKQTMathText: modified text-positions of \sfrac and \stfrac 2022-06-09 11:32:57 +02:00
jkriege2
1a8de1bb2f - NEW: reworked node class tree: inserted base-class nodes for single-child, dual-child!
- NEW: improved frac-rendering: font-scaling takes nesting-level into account, overall-rendering, sizes, if a brace surrounds a frac, the heights are equal above and below to center the brace ...
2022-06-08 23:52:22 +02:00
jkriege2
94ca27aed0 NEW/BREAKING: restructured JKQTMathText: broke up single, large CPP-file into several smaller files
added more examples to jkqtmathtext_test
2022-06-08 15:38:26 +02:00
jkriege2
b0f8a2d0b9 - NEW: JKQTMathText supports new decoration instructions: \cancel, \xcancel, \bcancel, \sout, \ocirc, \widetilde, \widehat, \breve</li>
- NEW: JKQTMathText: reworked drawing of decorations: improved appearance and positioning!
2022-06-06 23:24:05 +02:00
jkriege2
0f0c03772e NEW: JKQTMathText supports new instructions: \cancel, \xcancel, \bcancel, \sout 2022-06-06 14:16:50 +02:00
jkriege2
d6b6a71395 fixes/improvements: JKQTMathText renders several LaTeX strings better (simple braces in math mode, +-*... as symbols with proper sizes in math mode, added some missing instruction aliases, improved size of \vec and \hat, corrrected fonts usage for mathrm, 2022-06-03 13:33:18 +02:00
jkriege2
285814f2e6 fixed: JKQTMathText added a little whitespace before and after the LaTeX-string. This was removed as it disturbed the layout of text in plots 2022-06-02 23:24:41 +02:00
jkriege2
d3b74875db improved Qt6-compatibility by getting rid of deprecated warnings 2022-06-02 22:31:39 +02:00
jkriege2
bf21d53149 improved high-dpr-support in JKQTMathText 2022-06-02 22:17:38 +02:00
jkriege2
cf27b77b6b added JKQTMathTextFontSpecifier struct that describes a font and a math companion 2022-06-02 21:19:16 +02:00
jkriege2
b8088ccc69 improved/bugfixed doxygen documentation 2022-04-24 13:23:59 +02:00
jkriege2
0a5fa42470 more required changes for Qt6 compatibility 2022-04-22 13:27:31 +02:00
jkriege2
4ded1a2028 first round of Qt6 compatibility changes 2022-04-21 10:57:24 +02:00
jkriege2
8835febb96 modified CMakeLists.txt to match Qt6 2022-04-18 23:10:05 +02:00
jkriege2
725d19d616 using Qt's dllexport/import-macros 2022-04-18 22:00:41 +02:00
jkriege2
d51d47b2f4 requiring higher cmake-version, due to CMP0076
using CMAKE_CURRENT_LIST_DIR instead of CMAKE_CURRENT_SOURCE_DIR
2022-04-18 22:00:31 +02:00
jkriege2
2697e66e31 CMakeLists.txt: using target_sources() and making CPP-files private! 2022-04-18 14:19:35 +02:00
Patrick Stewart
29e970ed6f Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
This means that the project can be used with CMake fetchcontent / add_subdriectory
2020-10-02 14:40:47 +01:00
jkriege2
0faa51c9f5 comment formatting fix 2020-09-21 13:52:13 +02:00
jkriege2
87755ce515 diverse code improvements, increased copyright year to 2020 2020-08-26 12:58:23 +02:00
jkriege2
696ce11514 improved code style 2020-08-26 11:00:25 +02:00
jkriege2
7e9bad29b4 fix for issue #45:
- for Qt 5.15: added missing #include statements that became necessary since Qt 5.15
- for Qt 5.15: fixed use of several deprecated functions
- for Qt 5.15/6: removed usage of QMatrix
2020-08-14 14:12:59 +02:00
jkriege2
eb7fd1d524 some bugfixes for VStudio NOMINMAX-problem ... 2020-06-29 08:01:40 +02:00
jkriege2
52d3349199 improvements in CMake setup:
- removed more global settings (these are now target-specific)
- exporting now Config.cmake, which contains find_package(Qt) and loads a separate Targets.cmake
2020-06-28 15:53:26 +02:00
jkriege2
04219ec6d9 fixed issue #37: installing README/LICENSE files now to $PREFIX/doc/JKQtPlotter, instead of $PREFIX/doc/ 2020-06-28 09:53:33 +02:00
jkriege2
f6505e35fc fixed issue #41: "Build error when JKQtPlotter_BUILD_INCLUDE_XITS_FONTS set to OFF", code tried to use XITS-ressources, which were not there oif option is switched off. --> solved by adding optional private preprocessor definition 2020-06-28 09:49:20 +02:00
jkriege2
6c058f73ed improved linewidth calculation in JKQTMathText for SQRT, arrows, ... 2019-11-24 12:53:58 +01:00
jkriege2
97a1780b3d - performance issue fixed in JKQTMathText (the constructor iterated over all available fonts, which can be very slow when many fonts are installed (1-2ms/font, i.e. several seconds for thousands of fonts!), fixes https://github.com/jkriege2/JKQtPlotter/issues/31
- fixed some compiler warnings for obsolete functions in newer Qt (QFontMetrics::width())
2019-11-24 12:48:20 +01:00
jkriege2
4c9db88a2e some more fixes do MSVC build 2019-11-21 21:42:10 +01:00
jkriege2
f3fa587541 reworked CMake build system ... now JKQT...Config.cmake-files are written into the correct directory 2019-11-18 15:59:06 +01:00
jkriege2
61d3108fb8 removed some unneeded debug-messages 2019-11-18 08:15:07 +01:00
jkriege2
5575d1fa4e some bugfixes in math rendering (e.g. problems with greek letters)
fixed some compiler warnings
2019-11-16 15:02:48 +01:00
jkriege2
4e890b9cb3 updated XITS to current master 2019-11-16 14:16:45 +01:00
jkriege2
bbfcec74ab JKQTMathText: improved startup-speed by doing font searches only once per program start (via static variables) 2019-06-30 17:59:04 +02:00
jkriege2
01b6d7cee6 JKQTMathText: improved font-handling system + new fraktur and caligraphic, as well as special math sans/serif fonts-classes 2019-06-30 17:34:41 +02:00
jkriege2
a44d570bfa added export of XITS license files 2019-06-22 16:55:18 +02:00
jkriege2
933d374533 + added license/readme output to INSTALL-target in CMake
+ added example demonstrating how to link against a CMake-build of JKQTPlotter
+ improved documentation
2019-06-22 16:42:42 +02:00
jkriege2
34b31812ba + bugfixed DLL-export when building shared libraries
+ CMAKE now properly adds the Build-type when building libraries
+ removed some more compiler warning
2019-06-22 14:21:32 +02:00
jkriege2
fb5b497356 - several bugfixes (doc etz.)
- decoration of library names in CMake-builds
- renamed advancedlineandfillstyling to advplotstyling to solve problems with too long filenames
2019-06-21 13:44:49 +02:00
jkriege2
f5a49d6d3b bugfixed compile errors 2019-06-21 10:46:13 +02:00
jkriege2
7311948d53 using CMake now to build examples
restructuring/massive renaming to make this possible
2019-06-20 22:24:47 +02:00
jkriege2
fae6b28a58 further reorganizations of code 2019-06-20 16:25:29 +02:00
jkriege2
60999478f8 added CMake build scripts for libraries + some necessary reorganizations 2019-06-20 15:18:58 +02:00
jkriege2
a390030db4 Merge branch 'master' into cmake_build 2019-06-20 10:28:53 +02:00
jkriege2
6fe42748ed improvements to iterator interface (full random access iterators, erase-remove-idion)
added specific example for the iterator interface
2019-05-31 14:51:01 +02:00
jkriege2
356cc34349 new: Statistics library with functions to calculate histograms, regression, kernel density estimates, ... including a new example
new: iterator interface and improved documentation for JKQTPDatastore
reorganization of library (better separation of common code in jkqtpcommon and other code e.g. in jkqtplotter or jkqtmathtext)
2019-05-29 22:40:02 +02:00
jkriege2
5a4a778faf improved contour plots + added example for contour plots
split contour plot into two variant, one for C-array-data and one for image column data
improved doxygen annotation
2019-05-19 15:22:56 +02:00
jkriege2
04aaa01333 first test CMakeLists.txt 2019-05-18 13:23:38 +02:00
jkriege2
5f62722d38 code reorganization 2019-05-18 13:22:46 +02:00
jkriege2
2b1649c7b7 added slanted fractions to JKQTMathText + improved documentation 2019-05-18 11:42:35 +02:00
jkriege2
ad48bf1873 improvements to documentation 2019-05-18 10:49:49 +02:00
jkriege2
67d23150f2 new: user-interaction tool that shows coordinates of data points near the current mouse position (when mouse is dragged, while mouse button is pressed)
new: user-interaction tool that measures distances and angles when mouse is dragged, while mouse button is pressed)
update: reworked error indicator base classes and styling settings
update: improved boxplot styling with a separate full-featured pen for the whiskers
2019-05-05 19:31:20 +02:00
jkriege2
171f1e6274 removed compiler warning 2019-05-01 14:58:19 +02:00
jkriege2
14d4857670 improvements to JKQtMathText when rendering non-XITS unicode fonts 2019-03-06 23:19:05 +01:00
Jan W. Krieger
2400245e94 - reworked how MTsubscriptNode/MTsuperscriptNode operate, also when the previous node was a brace (i.e. special shifts of sub/superscript)
- improved documentation
- fixed a bug in \overbrace
2019-02-12 09:32:20 +01:00
jkriege2
8ce6987315 minor fixes 2019-02-09 18:46:12 +01:00
jkriege2
69ad2a0182 - added styling system for JKQTPlotter (+example app)
- improved documentation
- changed: using static const variables instead of \c #define for fixed default values (e.g. JKQTPImageTools::LUTSIZE, JKQTPImageTools::PALETTE_ICON_WIDTH, JKQTPlotterDrawinTools::ABS_MIN_LINEWIDTH, JKQTMathText::ABS_MIN_LINEWIDTH ...)
- new: added debugging option, which surrounds different regions with visible rectangles (JKQTBasePlotter::enableDebugShowRegionBoxes() )
- fixed: colorbars at top were positioned over the plot label
- new: frames (plot viewport, key/legend ...) may be rounded off at the corners
- new: diverse new styling options (default font name/size ...)
- speed improvements to JKQTMathText::useSTIX()
2019-02-09 12:43:12 +01:00
jkriege2
4a63afc709 - fixed zoomin/synchronized graphs, which was broken by former update to user-interaction
- improved documentation & HTML-sytle
- removed datarange-facilities (not really useful!)
2019-02-03 14:08:16 +01:00
Jan W. Krieger
75d8fc8314 reworked the functions that allow to specify how JKQTPlotter reacts to mouse single-click actions 2019-01-27 23:24:12 +01:00
jkriege2
0e2237e92f - more refactorings to modernize C++
- fixed JKQTPColumnMathImage with modifiers
- improved documentation
- make use of link_prl/create_prl in QMake projects (see http://doc.qt.io/qt-5/qmake-advanced-usage.html)
2019-01-26 18:00:42 +01:00
jkriege2
847fcb7a35 improved code (cont...&-parameters, diverse refactoring for C++1//modernC++, diverse corrections ...) 2019-01-26 12:28:44 +01:00
jkriege2
df257a6b1a major renaming to get rid of the get_.../set_... function names
improved documentation
2019-01-25 20:17:07 +01:00
jkriege2
d35aa31584 improved documentation
started to add example for user-interactions in JKQTPlotter
2019-01-24 22:49:10 +01:00
jkriege2
2d08250db6 - added new graph: JKQTPSingleColumnSymbolsGraph
- fixed additional renames JKQTPLotter->JKQTPlotter
- improved documentation (boxplots, JKQTMathText)
- added several examples
2019-01-20 16:15:10 +01:00
jkriege2
86c2f3fa76 extensive renaming of classes --> using a unified CamelCase-Scheme now for class/function names 2019-01-20 10:49:29 +01:00
jkriege2
306436f770 corrected documentation 2019-01-19 18:06:30 +01:00
jkriege2
aee52480c7 improved documentation 2019-01-19 16:24:19 +01:00
jkriege2
7adc6c8b82 cleaned/improved doc further 2019-01-19 16:13:08 +01:00
jkriege2
488df45829 improved code and files for doxygen documentation 2019-01-12 23:11:08 +01:00
jkriege2
aebd4ec06d improved code-comments for doxygen, added several doc-images 2019-01-12 16:01:55 +01:00
jkriege2
1e0b37853c some code refactoring (removed all remaining macro-defined getter/setter-functions and properties ...) 2019-01-09 21:23:24 +01:00
jkriege2
8ae0e20892 some code refactoring (removed some macro-defined getter-functions and properties ...) 2019-01-08 21:00:25 +01:00
jkriege2
c935df7923 fixed compile error with MINGW 2018-12-13 22:42:58 +01:00
Jan W. Krieger
21489d55f2
added copyright addendum 2018-12-13 22:33:42 +01:00
Razi Alavizadeh
4578b66de8 Add unknown symbols and instructions to error_list 2018-12-13 01:15:38 +03:30
Razi Alavizadeh
ed8c136185 MTinstruction1Node: Move repeated code to a function 2018-12-13 01:15:38 +03:30
jkriege2
367c1455a0 bugfixes/improvements to Latex renderer 2018-12-07 22:42:54 +01:00
jkriege2
a02d7ea3d2 fixed a rendering issue with some named symbols inside a math environment (reported in https://github.com/jkriege2/JKQtPlotter/issues/3) 2018-12-06 18:41:06 +01:00
jkriege2
9e172915a6 fixed one compiler warning 2018-12-05 23:17:38 +01:00
jkriege2
1cec52a373 improved compileability with MSVC (it had errors with deeply nested if-else-if-else-i-...) 2018-12-05 22:59:24 +01:00
jkriege2
dc36c6c90a improved log-axis-example 2018-12-03 23:09:12 +01:00
jkriege2
4680106734 some bug-fixes (ressources from library were not loaded, compile order in projects was wrong) 2018-12-02 18:30:12 +01:00
jkriege2
ffb70ace09 some renames and new example for line styles and symbols 2018-11-29 21:57:35 +01:00
jkriege2
d708424f8a reorganized library files into lib-subdirectory and modified tests, doc, ... accordingly 2018-11-25 20:25:44 +01:00