{"id":13714232,"url":"https://github.com/csekri/tkzgeom","last_synced_at":"2025-05-07T01:32:53.778Z","repository":{"id":172205165,"uuid":"417687231","full_name":"csekri/tkzgeom","owner":"csekri","description":"GUI tool for TikZ figure production","archived":false,"fork":false,"pushed_at":"2023-02-18T13:56:38.000Z","size":11110,"stargazers_count":77,"open_issues_count":2,"forks_count":13,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-23T04:41:07.514Z","etag":null,"topics":["latex","tikz"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csekri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-16T01:56:10.000Z","updated_at":"2024-08-03T00:06:08.998Z","dependencies_parsed_at":null,"dependency_job_id":"0eef446d-4a81-4f15-ac0a-be478036b21a","html_url":"https://github.com/csekri/tkzgeom","commit_stats":null,"previous_names":["csekri/tkzgeom"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csekri%2Ftkzgeom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csekri%2Ftkzgeom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csekri%2Ftkzgeom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csekri%2Ftkzgeom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csekri","download_url":"https://codeload.github.com/csekri/tkzgeom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252795998,"owners_count":21805480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["latex","tikz"],"created_at":"2024-08-02T23:01:55.250Z","updated_at":"2025-05-07T01:32:52.827Z","avatar_url":"https://github.com/csekri.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\n![icon](icon/ico_big.png)\n# TkzGeom\n\nTkzGeom is a perfect GUI tool for the creation of publication quality figures\nincluding but not limited to the following domains:\n\n1. commutative diagrams\n2. graphs and networks\n3. Euclidean geometry in 2d\n4. circuit diagrams (non natively)\n5. other simple diagrams/figures\n\n\n# Contents\n\u003c!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 --\u003e\n\n- [TkzGeom](#tkzgeom)\n- [Contents](#contents)\n- [Demos](#demos)\n\t- [Example of editing a project](#example-of-editing-a-project)\n- [Requirements](#requirements)\n- [Usage](#usage)\n\t- [Move points on the canvas](#move-points-on-the-canvas)\n\t- [Move the canvas](#move-the-canvas)\n- [Features](#features)\n- [Shortcuts](#shortcuts)\n- [Limitations](#limitations)\n- [Binaries](#binaries)\n\n\u003c!-- /TOC --\u003e\n\n# Demos\n\n## Example of editing a project\n\n![anim](demos/prezi_2.gif)\n\n\u003e Note that this animation is reduced in size and frame rate.\n\n# Requirements\n\n- **TeXLive 2019 or newer** or MiKTeX 2019 or newer\n  (have not tested MiKTeX but should work in principle), more information\n  TeXLive installation here: \u003ca href=\"https://www.tug.org/texlive/acquire-netinstall.html\"\u003e\n  download texlive\u003c/a\u003e (also make sure that the system environment variables\n  are set up)\n\n- A **pdf to png converter**, the default converter is `pdftocairo`,\n  which is part of TeXLive. This can be configured in the settings menu.\n\n- Libraries for Python can be installed using `pip install -r requirements.txt`.\n  Note that here `Pygments` is not needed, only if the user wants to try other\n  syntax highlighting than the built in.\n\n# Usage\n\n1. Run the software (run the makefile or the executable)\n2. At the top of the window, select a tool.\n3. Click on the canvas or select existing objects on the canvas.\n4. Modify the appearance of object in the right-hand side of the window.\n5. Copy the tikz code and paste it into your document.\n6. Save the project so that it can be opened and modified later.\n\n## Move points on the canvas\n\nHover the mouse pointer over a free point. Press and hold **Alt** on Windows,\n**AltGr** on Linux. Move the mouse the its new location while keeping the key pressed.\nRelease the key.\n\n## Move the canvas\n\nMove the mouse pointer to the canvas. Press and hold **Ctrl**. Move the mouse to\na new place. Release the key.\n\n# Features\n\n1. instantly generated TikZ code,\n2. move points on the canvas,\n3. auto compilation into PDF for visual feedback,\n4. additional packages and libraries can be added,\n5. additional tikz code can be added after the generated code, so unimplemented\n   features can be used on the user defined points, e.g. this can be used to\n   define electric circuits with ease,\n6. additional code can be added before the image, this is useful\ne.g. for `\\newcommand`s,\n8. projects can be saved, and loaded in the popular JSON extension.\n\n\u003e Basic knowledge of tikz helps make the most out of this software.\n\n# Shortcuts\n\n|Key             |Shortcut of                         |\n|----------------|------------------------------------|\n|CTRL+Z          |undo                                |\n|CTRL+SHIFT+Z    |redo                                |\n|Delete          |delete object in the properties menu|\n|F5              |compile the current version of edit |\n|CTRL+O          |open existing project               |\n|CTRL+S          |save current project                |\n|CTRL+SHIFT+S    |save as                             |\n|CTRL+N          |create new project                  |\n\n\u003c!--\n/# Object explanation\n/## Point\n**point**: click \u003cins\u003eanywhere\u003c/ins\u003e on the canvas;\ndefines a point at any coordinate,\n\n**point on line**: click \u003cins\u003esegment\u003c/ins\u003e or \u003cins\u003etwo points\u003c/ins\u003e then enter ratio in a popup window;\ndefines a point on a segment dividing it with a given ratio (can be any real number)\n\n**point on circle**: click \u003cins\u003ecircle, then enter angle\u003c/ins\u003e (in degrees) in a popup window;\ndefines a point on a circle at specified angle to the abscissa\n\n**intersection**: click \u003cins\u003efour points\u003c/ins\u003e (endpoints of segment 1 then endpoints of segment 2), or click \u003cins\u003etwo segments\u003c/ins\u003e, or click \u003cins\u003ea circle and a segment\u003c/ins\u003e, or click \u003cins\u003ea segment and a circle\u003c/ins\u003e, or \u003cins\u003etwo points and a circle\u003c/ins\u003e;\ndefines the intersection of two lines, or a line and a circle, (in the latter case, two intersection points are possible), (circle-circle intersection is not yet implemented)\n\n**midpoint of segment**: click \u003cins\u003etwo points\u003c/ins\u003e or a \u003cins\u003esegment\u003c/ins\u003e;\ndefines the middle points of a segment\n\n**midpoint of circle**: click \u003cins\u003ecircle\u003c/ins\u003e;\ndefines the middle of a circle\n\n**orthogonal projection**: click \u003cins\u003ethree points\u003c/ins\u003e, or \u003cins\u003ea segment and a point\u003c/ins\u003e, or \u003cins\u003ea point and a segment\u003c/ins\u003e (the first two points define the segment, the last point to point to be projected);\ndefines the orthogonal projection of a point onto a line\n\n**bisector**: click \u003cins\u003ethree points\u003c/ins\u003e (at the second point is the angle, the direction of angle matters);\ndefines a point on the bisector of an angle\n\n**translate with vector**: click \u003cins\u003ethree points\u003c/ins\u003e:\ndefines a new point from old after translation by vector\n\n**perpendicular**: click \u003cins\u003etwo points\u003c/ins\u003e;\ndefines a point on the perpendicular to the segment at the first point\n\n**rotation**: click \u003cins\u003etwo points and angle in degrees\u003c/ins\u003e in a popup window;\ndefines a point on rotated by a given angle around another point\n\n**make grid**: click \u003cins\u003ethree points and rows and columns\u003c/ins\u003e in a popup window (these points will span the grid);\ndefines the lattice of points generated by the three selected points (movement of the three points results in the entire lattice move)\n\n/## Segment\n\n**segment**: click \u003cins\u003etwo points\u003c/ins\u003e;\ndefines a segment connecting the two points\n\n**polygon**: click \u003cins\u003ethe vertices of the polygon and click the first vertex again\u003c/ins\u003e to conclude selection;\ndefines a polygon object\n\n**linestring**: click \u003cins\u003ethe vertices of the linestring and the last vertex again\u003c/ins\u003e to conclude;\ndefines a linestring object\n\n/## Circle\n\n**circumscribed circle**: click \u003cins\u003ethree points\u003c/ins\u003e;\ndefines the circumscribed circle around three points\n\n**circle by its radius**: click \u003cins\u003etwo points\u003c/ins\u003e;\ndefines a circle with first point as centre, the second point as a point on the perimeter\n\n**arc**: click \u003cins\u003ethree points\u003c/ins\u003e;\ndefines an arc with first point as center, the other two defining the radius and range\n\n**sector**: click \u003cins\u003ethree points\u003c/ins\u003e;\ndefines a sector with first point as center, the other two defining the radius and range\n\n**inscribed circle**: click \u003cins\u003ethree points\u003c/ins\u003e;\ndefines the inscribed circle around three points\n/## Interactions\n**move point**: drag free points the change their positions\n\n**move canvas**: drag canvas to a new position\n/## Decorators\n**mark angle**: click \u003cins\u003ethree points\u003c/ins\u003e;\ndefines an arc to show the presence of an angle\n\n**mark right angle**: click \u003cins\u003ethree points\u003c/ins\u003e;\ndefines an arc to show the presence of a right angle\n--\u003e\n\n# Limitations\n\nSelect features are included as part of the GUI, enough to cover most everyday\nsituations, but does not aim to be comprehensive. To mitigate this issue,\nthere is an option to add any code after the automatically generated code,\nand also to add other LaTeX packages/libraries. The draw order of objects is\npredetermined, there is no built in way to change this.\n(e.g. segments are always drawn above polygons.)\n\n# Binaries\n\n- old version for Windows 10:\\\n\u003ca href=\"https://mega.nz/file/58cHAQJJ#ViVTsIa1EE4nqlMXZhILufJB4re2-jTaOdPdLnbHbJU\"\u003etkzgeom_old_version.zip\u003c/a\u003e\n\n- new version for Window 10:\\\n\u003ca href=\"https://mega.nz/file/Ylc1HBqR#nisxHYzKBYSzFMT43rhQ_qpsB8McJEoWmhfrjgHS9jU\"\u003etkzgeom_2022_06_28_snapshot.zip\u003c/a\u003e\n\\\n\u003ca href=\"https://mega.nz/file/Q1VlzDIS#_snfzzVSq1SYR1niMtmYTxf75FjQu9mkCoD36ECoqpA\"\u003etkzgeom_2022_06_18_snapshot.zip\u003c/a\u003e\n\\\n\u003ca href=\"https://mega.nz/file/d9Ul0bqY#zx42pDJsE8gSEDkS-bgq-U3gxz53ZMJNxBXv9cxGBw4\"\u003etkzgeom_2022_06_08_snapshot.zip\u003c/a\u003e\n\\\n\u003ca href=\"https://mega.nz/file/ppVWWCzA#qMstD6LoLtXnBwpunYJXhlaVA-sRJkv-WSb0amFOzcs\"\u003etkzgeom_2022_03_14_snapshot.zip\u003c/a\u003e\n\\\n\u003ca href=\"https://mega.nz/file/FocGTDLS#YyH114B-yFUwfValRW7DgLzkKvGXvWgq8CiH8v_aFi8\"\u003etkzgeom_2022_03_09_snapshot.zip\u003c/a\u003e\n\\\n\u003ca href=\"https://mega.nz/file/Ys9V1aSZ#B21VUB__qZu1P33JiwOEu75nR9twWnf3cXWaqcaOPmA\"\u003etkzgeom_2022_03_04_snapshot.zip\u003c/a\u003e\n\\\n\u003ca href=\"https://mega.nz/file/AgdDzSAK#jkwmAbc_CtISYdXjymspLg0GcvkljpCuoTwbWrEcpnE\"\u003etkzgeom_2022_03_01_snapshot.zip\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsekri%2Ftkzgeom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsekri%2Ftkzgeom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsekri%2Ftkzgeom/lists"}