Warning, /graphics/tikzkit/README.md is written in an unsupported language. File is not indexed.
0001 # TikZKit 0002 0003 Next to being a palindrome, TikZKit is a graphical what-you-see-is-what-you-get 0004 (WYSIWYG) editor for PGF/TikZ. [PGF/TikZ](http://www.texample.net/tikz/examples/all/) 0005 in turn is a markup package that allows to create most beautiful pictures in LaTeX. 0006 The core features of TikZKit are: 0007 1. Exact rendering as if you had generated the picture through LaTeX. 0008 2. TikZ export, obtaining TikZ code that can easily be manipulated. 0009 0010 Please join tikzkit development to quickly get to a usable state. 0011 0012 ## Architecture 0013 0014 TikZKit is written in modern C++ and Qt5. 0015 It is organized in two libraries following the model/view concept, and the application: 0016 1. tikzcore: This library provides the data model. The model entirely defines a 0017 TikZ picture. The model itself is represented by the class tikz::core::Document. 0018 2. tikzui: This library provides the view. It renders the scene by using the 0019 QGraphicsView based on a tikz::core::Document. 0020 3. TikZKit: The application is a thin wrapper around the libraries tikzcore and 0021 tikzui. 0022 0023 ## TODO List for a first tikzkit 1.0 release (incomplete) 0024 0025 ### tikzcore 0026 - tikz::core::Document (priority: high) 0027 - makro support: implement Entity::toJsonObject() in all Entity classes. This 0028 way, Entities can by serialized to JSON, and by replaying the JSON makro, 0029 items can be e.g. copy & pasted, or template can be created. 0030 - add tikz::core::Layer: These layers match pgf layers when exported to PGF/TikZ, e.g. 0031 background, nodes, edges, foreground 0032 - add tikz::core::Scope: These scopes match \begin{scope} ... \end{scope} in 0033 PGF/TikZ. These scopes can be used to group items that share a style. 0034 0035 - Add tikz::core::AbstractProperty 0036 - implement set of required property types (ColorProperty, ValueProperty, 0037 TextProperty, BoolProperty, StringListProperty, DoubleProperty, PosisionProperty) 0038 - allow adding / removing properties at runtime, so that the property system 0039 is extensible e.g. through plugins 0040 0041 - MetaPos: x und y so trennen, dass es von unterschiedlichen Positions/Anchors kommt. 0042 - TexGenerator verbessern (mehrere jobs parallel, saubere kapselung, QTemporaryDir) 0043 - logo 0044 - class Package? -> tikz package + tikz options 0045 - introduce tikz::Editor: add EntityFactoryInterface similar to 0046 KTE::CommandInterface, add class EntityFactory that returns a list of 0047 QStrings ("node-rectangle", ... ? 0048 - implement pseudo-plugin that uses the EntityFactory 0049 0050 - tikz::core::Path (priority: high) 0051 - add support for rectangle primitive 0052 - add support for grid primitive 0053 - add support for simple edges (straight, bending, bezier) 0054 - add support for polygonal lines and shapes 0055 0056 - tikz::core::Node (priority: medium) 0057 - support anchors above, left, below, right and combinations 0058 - support anchoring on other anchors 0059 0060 - visitors (priority: high) 0061 - fix TikZ export Visitor 0062 - (load visitor, currently unused) 0063 - (save visitor, currently unused) 0064 0065 ### tikzui 0066 0067 - property editor: 0068 - show properties of the selected item 0069 - use Transaction to group properties 0070 - add default/reset button 0071 - add support for categories and coloring of categories 0072 0073 - LaTeX to SVG generator 0074 - proper design of the class with cleanup of the metadata (use QTemporaryDir) 0075 - proper diagnostics, if the dvisvg 0076 0077 - shapes 0078 - add more shapes 0079 - add more arrows 0080 0081 - zoom control: Add widget to display current zoom level 0082 0083 ### app 0084 - TikZKit 0085 - add icons to actions 0086 0087 integration test (priority: medium) 0088 - implement testing suite: 0089 - tests are listed in a list view on the left 0090 - ability to add a new test 0091 - test 0092 - user graphically creates scene: add/manipulate nodes/edges 0093 - baseline 0094 - save the scene as TeX/TikZ code and convert to pdf 0095 - use libpoppler-qt4 to render the pdf from the TeX/TikZ code 0096 - save pdf as png 0097 - render TikzScene to png 0098 - use pdiff to check the graphical diff 0099 - fail test only on user specified threshold 0100 0101 <!--- kate: space-indent on; indent-width 2; -->