├── .github └── workflows │ ├── doc-gen.yml │ └── docker-publish.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── deploy ├── .dockerignore ├── Dockerfile ├── config.py ├── docker-compose.yml └── gunicorn-deploy.py ├── docs ├── .gitignore ├── README.md ├── README_chs.md ├── build.lua ├── figs │ ├── avg.png │ ├── avg.tex │ ├── avg_chs.png │ ├── code.png │ ├── code.tex │ ├── code_chs.png │ ├── compile.png │ ├── compile.tex │ ├── compile_chs.png │ ├── function.png │ ├── function.tex │ ├── function_chs.png │ ├── home.jpg │ ├── home_chs.jpg │ ├── interface.png │ ├── interface.tex │ ├── interface_chs.png │ ├── llm.jpg │ ├── llm_chs.jpg │ ├── ppedt-docfig.cls │ └── translation.lua └── pgfplotsedt.tex ├── favicon.ico ├── index.html ├── js ├── completion.js ├── lang.js ├── spliter.js ├── style.js ├── tpl.js └── url.js ├── lang ├── chs.js ├── dict_chs.js ├── dict_en.js └── en.js ├── lib ├── README.md ├── ace.min.js ├── ext-language_tools.min.js ├── highlight.min.js ├── latex.min.js ├── mode-latex.min.js ├── mode-snippets.js ├── normalize.min.css ├── snippets-latex.min.js ├── split.min.js ├── theme-textmate.min.js ├── theme-tomorrow_night.min.js ├── vs.min.css ├── vs2015.min.css ├── vue-clipboard.js ├── vue-i18n.min.js └── vue.min.js ├── main.css ├── main.js ├── ppedt_server.py ├── ppedt_server_llm.py ├── ppedt_server_llm.yml └── res ├── color ├── CMConverter.py ├── colorbrewer.csv ├── colorbrewer.py ├── viridis.csv └── viridis.py ├── cyclelist ├── cyclelist.ps1 ├── svg │ ├── black white.svg │ ├── color list.svg │ ├── color.svg │ ├── exotic.svg │ ├── linestyles.svg │ ├── linestylesm.svg │ ├── mark list.svg │ └── mark listm.svg └── tex │ ├── black white.tex │ ├── color list.tex │ ├── color.tex │ ├── exotic.tex │ ├── line styles.tex │ ├── line stylesm.tex │ ├── linestyles.tex │ ├── linestylesm.tex │ ├── mark list.tex │ └── mark listm.tex ├── function └── func2tex.html ├── logo ├── anim │ ├── animatedlogo-frame00.svg │ ├── animatedlogo-frame01.svg │ ├── animatedlogo-frame02.svg │ ├── animatedlogo-frame03.svg │ ├── animatedlogo-frame04.svg │ ├── animatedlogo-frame05.svg │ ├── animatedlogo-frame06.svg │ ├── animatedlogo-frame07.svg │ ├── animatedlogo-frame08.svg │ ├── animatedlogo-frame09.svg │ ├── animatedlogo-frame10.svg │ ├── animatedlogo-frame11.svg │ ├── animatedlogo-frame12.svg │ ├── animatedlogo-frame13.svg │ ├── animatedlogo-frame14.svg │ ├── animatedlogo-frame15.svg │ ├── animatedlogo-frame16.svg │ ├── animatedlogo-frame17.svg │ ├── animatedlogo-frame18.svg │ ├── animatedlogo-frame19.svg │ ├── animatedlogo-frame20.svg │ ├── animatedlogo-frame21.svg │ ├── animatedlogo-frame22.svg │ ├── animatedlogo-frame23.svg │ ├── animatedlogo-frame24.svg │ ├── animatedlogo-frame25.svg │ ├── animatedlogo-frame26.svg │ ├── animatedlogo-frame27.svg │ ├── animatedlogo-frame28.svg │ ├── animatedlogo-frame29.svg │ ├── animatedlogo-frame30.svg │ ├── animatedlogo-frame31.svg │ ├── animatedlogo-frame32.svg │ ├── animatedlogo-frame33.svg │ ├── animatedlogo-frame34.svg │ ├── animatedlogo-frame35.svg │ ├── animatedlogo-frame36.svg │ ├── animatedlogo-frame37.svg │ ├── animatedlogo-frame38.svg │ ├── animatedlogo-frame39.svg │ ├── animatedlogo-frame40.svg │ ├── animatedlogo-frame41.svg │ ├── animatedlogo-frame42.svg │ ├── animatedlogo-frame43.svg │ ├── animatedlogo-frame44.svg │ ├── animatedlogo-frame45.svg │ ├── animatedlogo-frame46.svg │ ├── animatedlogo.gif │ ├── animatedlogo_back.gif │ ├── animatedlogolegacy.tex │ └── animrender.ps1 ├── banner.png ├── banner.pptx ├── logo.svg ├── logo.tex ├── logoicon (0-00-00-01).png ├── logoicon.aep ├── logoicon.pdf ├── logoicon.png ├── logoicon.tex └── render.ps1 ├── mark ├── icon │ ├── 10-pointed star.svg │ ├── Mercedes star flipped.svg │ ├── Mercedes star.svg │ ├── asterisk.svg │ ├── ball.svg │ ├── cross.svg │ ├── cube.svg │ ├── cubem.svg │ ├── diamond.svg │ ├── diamondm.svg │ ├── halfcircle.svg │ ├── halfcirclem.svg │ ├── halfdiamond.svg │ ├── halfdiamondm.svg │ ├── halfsquare leftm.svg │ ├── halfsquare rightm.svg │ ├── halfsquarem.svg │ ├── minus.svg │ ├── multi.svg │ ├── o.svg │ ├── oplus.svg │ ├── oplusm.svg │ ├── otimes.svg │ ├── otimesm.svg │ ├── pentagon.svg │ ├── pentagonm.svg │ ├── plus.svg │ ├── square.svg │ ├── squarem.svg │ ├── star.svg │ ├── triangle.svg │ ├── trianglem.svg │ └── vert.svg ├── mark.ps1 ├── svg │ ├── 10-pointed star.svg │ ├── Mercedes star flipped.svg │ ├── Mercedes star.svg │ ├── asterisk.svg │ ├── ball.svg │ ├── cross.svg │ ├── cube.svg │ ├── cubem.svg │ ├── diamond.svg │ ├── diamondm.svg │ ├── half circle.svg │ ├── half circlem.svg │ ├── halfcircle.svg │ ├── halfcirclem.svg │ ├── halfdiamond.svg │ ├── halfdiamondm.svg │ ├── halfsquare leftm.svg │ ├── halfsquare rightm.svg │ ├── halfsquarem.svg │ ├── minus.svg │ ├── multi.svg │ ├── o.svg │ ├── oplus.svg │ ├── oplusm.svg │ ├── otimes.svg │ ├── otimesm.svg │ ├── pentagon.svg │ ├── pentagonm.svg │ ├── plus.svg │ ├── square.svg │ ├── squarem.svg │ ├── star.svg │ ├── triangle.svg │ ├── trianglem.svg │ └── vert.svg └── tex │ ├── 10-pointed star.tex │ ├── Mercedes star flipped.tex │ ├── Mercedes star.tex │ ├── asterisk.tex │ ├── ball.tex │ ├── cross.tex │ ├── cube.tex │ ├── cubem.tex │ ├── diamond.tex │ ├── diamondm.tex │ ├── half circle.tex │ ├── half circlem.tex │ ├── halfcircle.tex │ ├── halfcirclem.tex │ ├── halfdiamond.tex │ ├── halfdiamondm.tex │ ├── halfsquare leftm.tex │ ├── halfsquare rightm.tex │ ├── halfsquarem.tex │ ├── minus.tex │ ├── multi.tex │ ├── o.tex │ ├── oplus.tex │ ├── oplusm.tex │ ├── otimes.tex │ ├── otimesm.tex │ ├── pentagon.tex │ ├── pentagonm.tex │ ├── plus.tex │ ├── square.tex │ ├── squarem.tex │ ├── star.tex │ ├── triangle.tex │ ├── trianglem.tex │ └── vert.tex ├── poweredby ├── book.ico ├── github.png ├── github_white.png ├── latexonline.png ├── latexonline_white.png ├── mathjax.ico ├── meta.svg ├── mlc.png └── vue.png ├── tpl ├── icon │ ├── 10i.svg │ ├── 10id.svg │ ├── 1i.svg │ ├── 1id.svg │ ├── 2i.svg │ ├── 2id.svg │ ├── 3i.svg │ ├── 3id.svg │ ├── 4i.svg │ ├── 4id.svg │ ├── 5i.svg │ ├── 5id.svg │ ├── 6i.svg │ ├── 6id.svg │ ├── 7i.svg │ ├── 7id.svg │ ├── 8i.svg │ ├── 8id.svg │ ├── 9i.svg │ └── 9id.svg ├── svg │ ├── 1.svg │ ├── 10.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ ├── 6.svg │ ├── 7.svg │ ├── 8.svg │ └── 9.svg ├── tex │ ├── 1.tex │ ├── 10.tex │ ├── 2.tex │ ├── 3.tex │ ├── 4.tex │ ├── 5.tex │ ├── 6.tex │ ├── 7.tex │ ├── 8.tex │ └── 9.tex └── tplrender.ps1 ├── version_updater.py └── view ├── idle.html └── view.html /.github/workflows/doc-gen.yml: -------------------------------------------------------------------------------- 1 | name: Generate PDF Documentation 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | name: checkout code 14 | with: 15 | fetch-depth: 0 16 | - uses: xu-cheng/texlive-action@v2 17 | name: generate doc 18 | with: 19 | scheme: full 20 | run: | 21 | apk add ghostscript imagemagick gnupg 22 | sed -i "s|||g" /etc/ImageMagick-*/policy.xml 23 | cd res 24 | git config --global --add safe.directory /home/runner/work/PGFPlotsEdt/PGFPlotsEdt 25 | python3 version_updater.py 26 | cd .. 27 | cd docs 28 | mkdir pdf 29 | PPEDT_LANG=chs l3build doc 30 | mv pgfplotsedt.pdf pdf/pgfplotsedt_chs.pdf 31 | l3build doc 32 | mv pgfplotsedt.pdf pdf/pgfplotsedt.pdf 33 | - name: Deploy 34 | uses: peaceiris/actions-gh-pages@v4 35 | with: 36 | deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} 37 | publish_dir: ./docs/pdf 38 | external_repository: LogCreative/PGFPlotsEdt-doc 39 | publish_branch: main 40 | keep_files: true 41 | -------------------------------------------------------------------------------- /.github/workflows/docker-publish.yml: -------------------------------------------------------------------------------- 1 | name: Docker 2 | 3 | # This workflow uses actions that are not certified by GitHub. 4 | # They are provided by a third-party and are governed by 5 | # separate terms of service, privacy policy, and support 6 | # documentation. 7 | 8 | on: 9 | push: 10 | branches: [ "master" ] 11 | # Publish semver tags as releases. 12 | tags: [ '*.*' ] 13 | 14 | jobs: 15 | build: 16 | 17 | runs-on: ubuntu-latest 18 | permissions: 19 | contents: read 20 | packages: write 21 | id-token: write 22 | attestations: write 23 | 24 | steps: 25 | - name: Checkout repository 26 | uses: actions/checkout@v4 27 | 28 | # Set up BuildKit Docker container builder to be able to build 29 | # multi-platform images and export cache 30 | # https://github.com/docker/setup-buildx-action 31 | - name: Set up Docker Buildx 32 | uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 33 | 34 | # Login against a Docker registry except on PR 35 | # https://github.com/docker/login-action 36 | - name: Log into Docker Hub 37 | uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 38 | with: 39 | username: ${{ secrets.DOCKERHUB_USERNAME }} 40 | password: ${{ secrets.DOCKERHUB_TOKEN }} 41 | 42 | - name: Log in to the Container registry 43 | uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 44 | with: 45 | registry: ghcr.io 46 | username: ${{ github.actor }} 47 | password: ${{ secrets.GITHUB_TOKEN }} 48 | 49 | # Extract metadata (tags, labels) for Docker 50 | # https://github.com/docker/metadata-action 51 | - name: Extract Docker metadata 52 | id: meta 53 | uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 54 | with: 55 | images: | 56 | ${{ secrets.DOCKERHUB_USERNAME }}/pgfplotsedt 57 | ghcr.io/${{ github.repository }} 58 | 59 | # Build and push Docker image with Buildx (don't push on PR) 60 | # https://github.com/docker/build-push-action 61 | - name: Build and push Docker image 62 | id: build-and-push 63 | uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0 64 | with: 65 | context: . 66 | file: ./deploy/Dockerfile 67 | push: true 68 | tags: ${{ steps.meta.outputs.tags }} 69 | labels: ${{ steps.meta.outputs.labels }} 70 | cache-from: type=gha 71 | cache-to: type=gha,mode=max 72 | 73 | - name: Generate artifact attestation 74 | uses: actions/attest-build-provenance@v1 75 | with: 76 | subject-name: ghcr.io/logcreative/pgfplotsedt 77 | subject-digest: ${{ steps.build-and-push.outputs.digest }} 78 | push-to-registry: true 79 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.vscode 2 | /.idea 3 | tmp/ 4 | __pycache__/ 5 | res/version.js 6 | res/VERSION 7 | deploy/error.log 8 | .pkl_memoize_py3/ 9 | .DS_Store -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to PGFPlotsEdt 2 | 3 | Welcome to contribute to PGFPlotsEdt! Feel free to file issues for suggestions and create pull requests for improvements. 4 | 5 | ## Translation 6 | 7 | PGFPlotsEdt supports multiple languages. To contribute your translation, there are mainly three parts to finish: 8 | 9 | - **Interface**: [lang/en.js](lang/en.js) is the JSON-like translation table for the interface. Create your own file `lang/[lang].js` and add it to the [HTML](https://github.com/LogCreative/PGFPlotsEdt/blob/44a8ef1d27f2969be4dca734b1e53eb1d8f9ae19/index.html#L488-L489). 10 | - **Data**: [lang/dict_en.js](lang/dict_en.js) contains JavaScript variables for parameter translation tables. Create your own file `lang/dict_[lang].js` and now you can add it to the [options](https://github.com/LogCreative/PGFPlotsEdt/blob/44a8ef1d27f2969be4dca734b1e53eb1d8f9ae19/index.html#L18-L19). 11 | - **Docs**: [docs/README.md](docs/README.md) is the documentation in Markdown format. Create your own file `docs/README_[lang].md`, run `cd docs && PPEDT_LANG=[lang] l3build doc` locally, and add it to the [workflow](https://github.com/LogCreative/PGFPlotsEdt/blob/44a8ef1d27f2969be4dca734b1e53eb1d8f9ae19/.github/workflows/doc-gen.yml#L29-L30). 12 | 13 | Your translation will make PGFPlotsEdt accessible to more people! 14 | -------------------------------------------------------------------------------- /deploy/.dockerignore: -------------------------------------------------------------------------------- 1 | .idea 2 | __pycache__ -------------------------------------------------------------------------------- /deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # Use the official base image 2 | FROM texlive/texlive:latest 3 | 4 | # Set the working directory inside the container 5 | WORKDIR /PGFPlotsEdt 6 | 7 | # Labels 8 | LABEL org.opencontainers.image.title="PGFPlotsEdt" 9 | LABEL org.opencontainers.image.authors="LogCreative" 10 | LABEL org.opencontainers.image.licenses="AGPL-3.0" 11 | LABEL org.opencontainers.image.source="https://github.com/LogCreative/PGFPlotsEdt" 12 | 13 | # Replace debian update to a local mirror if necessary 14 | # RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ 15 | # sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources 16 | 17 | # Update apt-get 18 | RUN apt-get update 19 | 20 | # Install Flask and Gunicorn 21 | RUN apt-get install python3-flask -y 22 | RUN apt-get install python3-gunicorn -y 23 | 24 | # Copy the previous directory into the container 25 | COPY . /PGFPlotsEdt 26 | 27 | # Set the working directory to the deploy folder 28 | WORKDIR /PGFPlotsEdt/deploy 29 | 30 | # Expose the port 5678 31 | EXPOSE 5678 32 | 33 | # Set the entrypoint command to start the Flask app using Gunicorn 34 | CMD ["python", "gunicorn-deploy.py"] 35 | -------------------------------------------------------------------------------- /deploy/config.py: -------------------------------------------------------------------------------- 1 | """PGFPlotsEdt Deployment Server Configuration 2 | """ 3 | 4 | # Host name: default is '0.0.0.0' for public access 5 | HOST = '0.0.0.0' 6 | 7 | # Port number: default is '5678'. 8 | # Change docker-compose.yml as well if you change the port number. 9 | PORT = '5678' 10 | 11 | # Number of workers: default is 'auto' which will use the number of CPU cores + 1 (redundency). 12 | # You can also set it to a fixed number. 13 | WORKERS = 'auto' 14 | 15 | # Cache LRU size: 16 | # The deployment server will remove the least recent used (LRU) files 17 | # for both the header fmt cache and the pdf cache. 18 | CACHE_SIZE = 50 19 | 20 | # Timeout for each compilation (in seconds): 21 | # If the compilation takes longer than this time, 22 | # the server will return a timeout error. 23 | TIMEOUT = 30 24 | 25 | # Limit for the length of the input: 26 | # If the input length is longer than this limit, 27 | # the server will return an error. 28 | LENGTH_LIMIT = 8196 29 | 30 | -------------------------------------------------------------------------------- /deploy/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | pgfplotsedt: 5 | image: pgfplotsedt 6 | build: 7 | context: ../ 8 | dockerfile: ./deploy/Dockerfile 9 | ports: 10 | - '5678:5678' -------------------------------------------------------------------------------- /docs/build.lua: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env texlua 2 | -- typeset the documentation for a certain language: 3 | -- `PPEDT_LANG=chs l3build doc` 4 | -- You need to rename the file manually. 5 | -- Please typeset the English documentation in the last run. 6 | 7 | module = "pgfplotsedt-docs" 8 | 9 | typesetexe = "lualatex" 10 | typesetopts = "-interaction=nonstopmode --shell-escape" 11 | 12 | supportdir = "." 13 | typesetsuppfiles = {"*.md"} 14 | 15 | typesetfiles = {"pgfplotsedt.tex"} 16 | 17 | figdir = "figs/" 18 | 19 | local ppedt_lang = os.getenv("PPEDT_LANG") 20 | lang_suffix = "" 21 | if ppedt_lang ~= nil then 22 | lang_suffix = "_" .. ppedt_lang 23 | end 24 | 25 | function typeset_demo_tasks() 26 | for _, p in ipairs(filelist(figdir, "*.tex")) do 27 | local name = string.match(p, "(%w+).tex") 28 | local cmd = "lualatex -interaction=nonstopmode --shell-escape " .. name .. ".tex" 29 | if (run(figdir, cmd) ~= 0) then 30 | return -1 31 | end 32 | ren(figdir, name .. ".pdf", name .. lang_suffix .. ".pdf") 33 | ren(figdir, name .. ".png", name .. lang_suffix .. ".png") 34 | end 35 | return 0 36 | end -------------------------------------------------------------------------------- /docs/figs/avg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/avg.png -------------------------------------------------------------------------------- /docs/figs/avg.tex: -------------------------------------------------------------------------------- 1 | \documentclass{ppedt-docfig} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=newest} 4 | \usetikzlibrary{backgrounds} 5 | \begin{document} 6 | \begin{tikzpicture}[background rectangle/.style={fill=white},show background rectangle] 7 | \begin{axis}[xmin={0}, 8 | xlabel={\directlua{tex.write(trans["doc"]["CompTime"])} (s)}, 9 | height={5cm}, 10 | width={10cm}, 11 | grid={major}, 12 | symbolic y coords={PGFPlotsEdt-deploy,PGFPlotsEdt,Overleaf,LaTeXOnline}, ytick=data, 13 | xbar,nodes near coords,enlarge y limits=0.3,extra x ticks={1},extra x tick style={grid style={blue},xticklabel=\empty},] 14 | \addplot+ [] table[row sep=crcr,y=method,x=avg,] {method avg\\PGFPlotsEdt-deploy 0.6981601432847828\\PGFPlotsEdt 0.7784030871970631\\Overleaf 1.5030321224456265\\LaTeXOnline 1.97887559323296\\\\}; 15 | \end{axis} 16 | \end{tikzpicture} 17 | \end{document} -------------------------------------------------------------------------------- /docs/figs/avg_chs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/avg_chs.png -------------------------------------------------------------------------------- /docs/figs/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/code.png -------------------------------------------------------------------------------- /docs/figs/code.tex: -------------------------------------------------------------------------------- 1 | \documentclass{ppedt-docfig} 2 | \usepackage{listings} 3 | \lstset{language=[LaTeX]TeX,flexiblecolumns,basicstyle=\ttfamily,keywordstyle=\color{blue},texcsstyle=*\color{blue}} 4 | \usepackage{fontawesome5} 5 | \usepackage{tcolorbox} 6 | \begin{document} 7 | 8 | \begin{tcolorbox} 9 | $\blacktriangledown$ \directlua{tex.write(trans["Code"])} \colorbox{green!50!black}{\strut\makebox[2em]{\textcolor{white}{\faFile*[regular] $\filledsquare$}}} \framebox[2em]{\strut $\filledmedsquare$} \framebox[2em]{\strut \faExclamationTriangle} \colorbox{green!50!black}{\textcolor{white}{\directlua{tex.write(trans["cpytip"])}}} 10 | 11 | \begin{lstlisting} 12 | \documentclass[tikz]{standalone} 13 | \usepackage{pgfplots} 14 | \pgfplotsset{compat=newest} 15 | \begin{document} 16 | \end{lstlisting} 17 | \begin{tcolorbox}[boxsep=0pt,grow to left by=4pt,left*=0pt,right*=0pt,top=1pt,bottom=1pt,colframe=green!50!black,sharp corners] 18 | \begin{lstlisting} 19 | \begin{tikzpicture} 20 | \begin{axis}[] 21 | \addplot [] {x/2}; 22 | \end{axis} 23 | \end{tikzpicture} 24 | \end{lstlisting} 25 | \end{tcolorbox} 26 | \begin{lstlisting} 27 | \end{document} 28 | \end{lstlisting} 29 | \end{tcolorbox} 30 | 31 | \end{document} -------------------------------------------------------------------------------- /docs/figs/code_chs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/code_chs.png -------------------------------------------------------------------------------- /docs/figs/compile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/compile.png -------------------------------------------------------------------------------- /docs/figs/compile.tex: -------------------------------------------------------------------------------- 1 | \PassOptionsToClass{varwidth=8.5cm}{standalone} 2 | \documentclass{ppedt-docfig} 3 | \usepackage{pgfplots} 4 | \pgfplotsset{compat=newest} 5 | \begin{document} 6 | \begin{tcolorbox}[title={\directlua{tex.write(trans["Compile"])}}, colbacktitle=green!50!black,colback=white,colframe=green!50!black,center title] 7 | \centering 8 | \begin{tikzpicture} 9 | \begin{axis} 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{tcolorbox} 13 | \end{document} -------------------------------------------------------------------------------- /docs/figs/compile_chs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/compile_chs.png -------------------------------------------------------------------------------- /docs/figs/function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/function.png -------------------------------------------------------------------------------- /docs/figs/function.tex: -------------------------------------------------------------------------------- 1 | \documentclass{ppedt-docfig} 2 | \linespread{1.5} 3 | \begin{document} 4 | \begin{tcolorbox} 5 | $\blacktriangledown$ \directlua{tex.write(trans["Data"])} 6 | \framebox{\directlua{tex.write(trans["Series"])}} 7 | 8 | \begin{tabular}{c*{5}{|p{1em}}|p{5em}|p{5em}|} 9 | \cline{2-8} 10 | \texttt{\directlua{tex.write(trans["series"]["fn"])} [01]} & \hfil $\checkmark$ \hfil & \hfil $\uparrow$ \hfil & \hfil X \hfil & & &\textcolor{gray}{\directlua{tex.write(trans["series"]["parameter"])}} & x/2 \\ 11 | \cline{2-8} 12 | \end{tabular} 13 | \end{tcolorbox} 14 | \end{document} -------------------------------------------------------------------------------- /docs/figs/function_chs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/function_chs.png -------------------------------------------------------------------------------- /docs/figs/home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/home.jpg -------------------------------------------------------------------------------- /docs/figs/home_chs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/home_chs.jpg -------------------------------------------------------------------------------- /docs/figs/interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/interface.png -------------------------------------------------------------------------------- /docs/figs/interface.tex: -------------------------------------------------------------------------------- 1 | \PassOptionsToClass{tikz}{standalone} 2 | \documentclass{ppedt-docfig} 3 | \begin{document} 4 | \begin{tikzpicture} 5 | \draw [thick] (-3,2.5) node (v1) {} rectangle (7.5,-4.5) node (v4) {}; 6 | \draw [fill=gray!20!white] (v1) rectangle (7.5,1); 7 | \draw [fill=green!20] (-3,1) rectangle (0.5,-4.5) node (v2) {}; 8 | \draw [fill=green!10] (v2) rectangle (4,1) node (v3) {}; 9 | \draw [fill=green!5] (v3) rectangle (v4); 10 | \node at (2.5,1.7) {\directlua{tex.write(trans["doc"]["Navigation"])}}; 11 | \node at (5.8,-1.5) {\directlua{tex.write(trans["Code"])}}; 12 | \node at (2.3,-1.5) {\directlua{tex.write(trans["Data"])}}; 13 | \node at (-1.25,-1.5) {\directlua{tex.write(trans["doc"]["Preview"])}}; 14 | \end{tikzpicture} 15 | \end{document} -------------------------------------------------------------------------------- /docs/figs/interface_chs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/interface_chs.png -------------------------------------------------------------------------------- /docs/figs/llm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/llm.jpg -------------------------------------------------------------------------------- /docs/figs/llm_chs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/docs/figs/llm_chs.jpg -------------------------------------------------------------------------------- /docs/figs/ppedt-docfig.cls: -------------------------------------------------------------------------------- 1 | % You need to install imagemagick to convert pdf to png 2 | % And requires --shell-escape to run the conversion 3 | \LoadClass[convert={density=300,outext=.png,size=640}]{standalone} 4 | % Get the translation and stored in the variable: trans 5 | \directlua{require("translation.lua")} 6 | \usepackage{xcolor} 7 | \usepackage{array} 8 | \usepackage{amsmath} 9 | \usepackage{MnSymbol} 10 | \let\mathdollar\relax 11 | \usepackage{tcolorbox} 12 | % Set the default font to sans 13 | \renewcommand{\familydefault}{\sfdefault} -------------------------------------------------------------------------------- /docs/figs/translation.lua: -------------------------------------------------------------------------------- 1 | require("lualibs.lua") 2 | local lang = os.getenv("PPEDT_LANG") 3 | if lang == "chs" then 4 | -- -- luatex-ja could not output DVI, use babel as a workaround 5 | -- -- https://tex.stackexchange.com/a/717269 6 | -- tex.print("\\usepackage[chinese, provide=*]{babel}\\babelfont{rm}{FandolSong}\\babelfont{tt}{FandolSong}") 7 | tex.print("\\usepackage[fontset=fandol]{ctex}") 8 | end 9 | if lang == nil then 10 | lang = "en" 11 | end 12 | local f = io.open('../../lang/' .. lang .. '.js', 'r') 13 | local s = f:read('*a') 14 | f:close() 15 | s = string.gsub(s, "const %a+ = ", "") 16 | trans = utilities.json.tolua(s) -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/favicon.ico -------------------------------------------------------------------------------- /js/lang.js: -------------------------------------------------------------------------------- 1 | // 采用 vue-i18n 国际化 2 | Vue.use(VueI18n); 3 | var in_lang = 'en'; 4 | if(in_lang = /lang=(\w+)/.exec(window.location.href)){ 5 | in_lang = in_lang[1]; 6 | // legacy identifier 7 | if(in_lang == 'cn') 8 | in_lang = 'chs'; 9 | } 10 | else in_lang = 'en'; 11 | 12 | lang_messages = { 13 | chs: chs, 14 | en: en 15 | } 16 | 17 | var default_title; 18 | var changelang = function(newlang) { 19 | var newscript = document.createElement('script'); 20 | newscript.setAttribute('type','text/javascript'); 21 | newscript.setAttribute('id','langdict'); 22 | var head = document.getElementsByTagName('head')[0]; 23 | var oldscript = document.getElementById('langdict'); 24 | newscript.setAttribute('src','lang/dict_' + newlang + '.js'); 25 | head.appendChild(newscript); 26 | if(oldscript) head.removeChild(oldscript); 27 | 28 | default_title = lang_messages[newlang]["PGFPlotsEdt"]; 29 | 30 | // 渲染顺序会导致设定的相反性 31 | 32 | // 缩小第一坐标的文本框宽度 33 | Vue.directive('minimize',function(el,binding){ 34 | if(binding.value){ 35 | el.style.width = '40px'; 36 | el.placeholder = lang_messages[newlang]["series"]["funcx"]; 37 | } else { 38 | el.style.width = '80px'; 39 | el.placeholder = lang_messages[newlang]["series"]["funcxfull"]; 40 | } 41 | }); 42 | 43 | Vue.directive('threetip',function (el,binding) { 44 | if(binding.value) 45 | el.placeholder = lang_messages[newlang]["series"]["threetip"]; 46 | else el.placeholder = lang_messages[newlang]["series"]["twotip"]; 47 | }); 48 | 49 | Vue.directive('threenode',function (el,binding) { 50 | if(binding.value) 51 | el.placeholder = 'x,y,z'; 52 | else el.placeholder = 'x,y'; 53 | }) 54 | 55 | } 56 | changelang(in_lang); 57 | setTimeout(() => { 58 | langChangeEvent.$emit('lang-change'); 59 | }, 500); // wait for js loading... 60 | -------------------------------------------------------------------------------- /js/spliter.js: -------------------------------------------------------------------------------- 1 | if(document.body.clientWidth>900){ 2 | // 启用split 3 | var instance = Split(['#panel-one','#panel-two','#panel-three'],{ 4 | sizes:[30,35,35], 5 | minSize: [300,300,0], 6 | direction: 'horizontal', 7 | onDrag: setSpliterHeight, 8 | }); 9 | document.querySelectorAll('.container details').forEach(element => { 10 | element.addEventListener("toggle", setSpliterHeight); 11 | }); 12 | document.querySelector('#data').addEventListener('mouseleave', setSpliterHeight); 13 | document.getElementById('codedetail').open = true; 14 | setSpliterHeight(); 15 | } 16 | else 17 | document.getElementById('codedetail').open = false; 18 | -------------------------------------------------------------------------------- /js/url.js: -------------------------------------------------------------------------------- 1 | const url = window.location.href; 2 | 3 | // Show the about panel directly. 4 | if (url.match("show_about")) 5 | { 6 | document.getElementById('logo').click(); 7 | } 8 | 9 | // Edit the code directly. 10 | if (url.match("code_only")) 11 | { 12 | document.getElementById('btnEdtCode').click(); 13 | } 14 | 15 | // Change compiler. 16 | if (in_compiler = /compiler=(\w+)/.exec(url)) 17 | { 18 | if (in_compiler[1] == "pdflatex" || in_compiler[1] == "xelatex") 19 | { 20 | app.compiler = in_compiler[1]; 21 | } 22 | } 23 | 24 | if (url.match("nofast")) 25 | { 26 | app.notusefast = true; 27 | } 28 | -------------------------------------------------------------------------------- /lib/normalize.min.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} 2 | -------------------------------------------------------------------------------- /lib/snippets-latex.min.js: -------------------------------------------------------------------------------- 1 | window.require(["ace/snippets/latex"],function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}); -------------------------------------------------------------------------------- /lib/theme-textmate.min.js: -------------------------------------------------------------------------------- 1 | define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,c,a){"use strict";c.isDark=!1,c.cssClass="ace-tm",c.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',c.$id="ace/theme/textmate",e("../lib/dom").importCssString(c.cssText,c.cssClass)}),window.require(["ace/theme/textmate"],function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}); -------------------------------------------------------------------------------- /lib/vs.min.css: -------------------------------------------------------------------------------- 1 | .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:grey}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} -------------------------------------------------------------------------------- /lib/vs2015.min.css: -------------------------------------------------------------------------------- 1 | pre code.hljs{display:block;overflow-x:auto;padding:.5em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%} -------------------------------------------------------------------------------- /ppedt_server_llm.py: -------------------------------------------------------------------------------- 1 | """ 2 | PGFPlotsEdt Local Server with LLM 3 | """ 4 | 5 | # Copyright (c) Log Creative 2020--2024. 6 | # 7 | # This program is free software: you can redistribute it and/or modify 8 | # it under the terms of the GNU Affero General Public License as published by 9 | # the Free Software Foundation, either version 3 of the License, or 10 | # (at your option) any later version. 11 | 12 | # Method: PGFPlotsEdt with LLM 13 | # Usage: 14 | # 1. Meet system requirements: GPU with 6GB VRAM, TeX Distribution (TeX Live/MiKTeX/MacTeX) and Anaconda. 15 | # 2. Create the conda environment by `conda env update -n ppedt -f ppedt_server_llm.yml`. 16 | # 3. Activate the conda environment: `conda activate ppedt`. 17 | # 4. Run: `python ppedt_server_llm.py`. 18 | # See the documentation https://github.com/LogCreative/PGFPlotsEdt/blob/master/docs/README.md#pgfplots-with-llm for details. 19 | 20 | import os 21 | import shutil 22 | 23 | from mlc_llm import MLCEngine 24 | 25 | # Create engine 26 | ## The original Llama 3 model: 27 | model = "HF://mlc-ai/Llama-3-8B-Instruct-q4f16_1-MLC" 28 | ## The experimental finetuned Llama 3 model: 29 | # model = "HF://LogCreative/Llama-3-8B-Instruct-pgfplots-finetune-q4f16_1-MLC" 30 | engine = None 31 | 32 | import sys 33 | import ppedt_server 34 | from res.version_updater import write_version_info 35 | 36 | def llm_hook(code, prompt): 37 | for response in engine.chat.completions.create( 38 | messages=[ 39 | {"role": "user", "content": "You are a LaTeX code helper, especially for the code of package pgfplots. Return only the modified version of the following code without any additional text. {}: {}".format(prompt, code)} 40 | ], 41 | model=model, 42 | stream=True, 43 | ): 44 | yield response.choices[0].delta.content 45 | 46 | ppedt_server.llm_hook = llm_hook 47 | 48 | 49 | def llm_test(): 50 | return "PGFPlotsEdt LaTeX Server: POST a request (code, prompt) to LLM.\n", 200 51 | 52 | ppedt_server.llm_test = llm_test 53 | 54 | 55 | if __name__ == '__main__': 56 | print("Loading LLM model...") 57 | engine = MLCEngine(model) 58 | 59 | ver = write_version_info(os.path.join(ppedt_server.rootdir, "res")) 60 | print("PGFPlotsEdt {} with Llama 3".format(ver)) 61 | 62 | # Clean up the tmpdir and create a new one. 63 | if os.path.isdir(ppedt_server.tmpdir): 64 | shutil.rmtree(ppedt_server.tmpdir) 65 | os.mkdir(ppedt_server.tmpdir) 66 | 67 | ppedt_server.app.run(host="127.0.0.1", port=5678) 68 | 69 | print("\nPress CTRL+C again to exit.") 70 | -------------------------------------------------------------------------------- /ppedt_server_llm.yml: -------------------------------------------------------------------------------- 1 | # Set up the conda environment for the LLM server -- ppedt_server_llm.py 2 | dependencies: 3 | - python=3.8 4 | - pip 5 | - pip: 6 | - flask 7 | - mlc-ai-nightly 8 | - mlc-llm-nightly 9 | - -f https://mlc.ai/wheels -------------------------------------------------------------------------------- /res/color/CMConverter.py: -------------------------------------------------------------------------------- 1 | # Convert PGFPlots colormap string into HTML HEX string 2 | # 3 | 4 | import re 5 | import pandas as pd 6 | 7 | _cmstr = "" 8 | print("PGFPlots colormap string (end with #)> ") 9 | for line in iter(input, '#'): 10 | _cmstr += line + '\n' 11 | 12 | # get the name of the colormap 13 | matchDict = re.search(r'colormap=\{(?P[A-Za-z0-9]+)\}\{(?P.*)\}',_cmstr,re.M|re.S).groupdict() 14 | name = matchDict['name'] 15 | _cmstr = matchDict['info'] 16 | 17 | # PGFPlots uniform the grid, 18 | # which is not relevent to HTML displaying 19 | # 20 | # uniform_grid = re.findall(r'\[.*cm\]',_cmstr,re.M) 21 | # if(len(uniform_grid)>0): 22 | # uniform_grid = int(uniform_grid[0].replace('[','').replace('cm]','')) 23 | # else: 24 | # uniform_grid = 0 25 | 26 | _cmstr = re.sub(r'\[.*cm\]','',_cmstr).replace(';',' ') 27 | colors = _cmstr.split( ) 28 | colorArray = [] 29 | portion = False 30 | for i in range(0,len(colors)): 31 | matchObj = re.search(r'rgb255((\((?P[0-9]+)cm\))?)=\((?P[0-9]+),(?P[0-9]+),(?P[0-9]+)\)',colors[i]).groupdict() 32 | if matchObj['L']: 33 | portion = True 34 | colorArray.append([matchObj['R'],matchObj['G'],matchObj['B'],matchObj['L']]) 35 | 36 | colorDf = pd.DataFrame(colorArray,columns=['R','G','B','L']) 37 | colormapStr_ = "" 38 | 39 | def getHexCol(df): 40 | for col in ['R', 'G', 'B']: 41 | df[col] = df[col].apply(int).apply(hex).str[2:].str.zfill(2).str.upper() 42 | df['HEX'] = '#' + df['R'] + df['G'] + df['B'] 43 | 44 | getHexCol(colorDf) 45 | 46 | output_ = "\t\"" + name + "\":\t\t" + "[\"\",\"colormap\",\"" 47 | 48 | if portion: 49 | Lm = int(colorDf['L'].max()) 50 | colorDf['L'] = colorDf['L'].apply(lambda x: str(int(float(x) / Lm * 100)) + '%') 51 | for l in colorDf.index.to_list(): 52 | output_ += colorDf['HEX'][l] + ' ' + colorDf['L'][l] + ',' 53 | output_ = output_[:-1] + '\"],' 54 | else: 55 | for l in colorDf.index.to_list(): 56 | output_ += colorDf['HEX'][l] + ',' 57 | output_ = output_[:-1] + "\"]," 58 | 59 | print(output_) -------------------------------------------------------------------------------- /res/color/colorbrewer.py: -------------------------------------------------------------------------------- 1 | # Convert colorbrewer RGB into HEX list 2 | # 3 | ########################################################################################### 4 | # License for ColorBrewer Schemes: 5 | # 6 | # Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software distributed 15 | # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 16 | # CONDITIONS OF ANY KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations under the License. 18 | ############################################################################################ 19 | 20 | import pandas as pd 21 | import os 22 | 23 | cb = pd.read_csv(os.path.dirname(__file__) + "/colorbrewer.csv") 24 | for col in ["R","G","B"]: 25 | cb[col] = cb[col].apply(hex).str[2:].str.zfill(2).str.upper() 26 | 27 | cb['HEX'] = '#' + cb['R'] + cb['G'] + cb['B'] 28 | 29 | cb = cb.groupby('ColorType')['HEX'].apply(lambda x: x.str.cat(sep=',')).reset_index() 30 | 31 | output_ = "{\n" 32 | for l in cb.index.to_list(): 33 | output_ += '\t\"' + cb['ColorType'][l] + "-\":\t\t[\"\", \"colormap\", \"" + cb['HEX'][l] + "\"],\n" 34 | output_ += "}" 35 | 36 | print(output_) -------------------------------------------------------------------------------- /res/color/viridis.py: -------------------------------------------------------------------------------- 1 | # convert viridis colormap from rgb into HEX code 2 | # 3 | ############################################################################# 4 | # License for viridis colormap pattern 5 | # 6 | # New matplotlib colormaps by Nathaniel J. Smith, Stefan van der Walt, 7 | # and (in the case of viridis) Eric Firing. 8 | # 9 | # This file and the colormaps in it are released under the CC0 license / 10 | # public domain dedication. We would appreciate credit if you use or 11 | # redistribute these colormaps, but do not impose any legal restrictions. 12 | # 13 | # To the extent possible under law, the persons who associated CC0 with 14 | # mpl-colormaps have waived all copyright and related or neighboring rights 15 | # to mpl-colormaps. 16 | # 17 | # You should have received a copy of the CC0 legalcode along with this 18 | # work. If not, see . 19 | ############################################################################## 20 | 21 | import pandas as pd 22 | import os 23 | 24 | def getColormapString(df): 25 | for col in ['r', 'g', 'b']: 26 | df[col] = df[col].apply(lambda x:x*255).apply(int).apply(hex).str[2:].str.zfill(2).str.upper() 27 | df['HEX'] = '#' + df['r'] + df['g'] + df['b'] 28 | output_ = "\t\t[\"\",\"colormap\",\"" + ("".join(i + ',' for i in df['HEX']))[:-1] + "\"]" 29 | print(output_) 30 | 31 | _viridis_data = pd.read_csv(os.path.dirname(__file__) + '/viridis.csv') 32 | _viridis_degrade_data = pd.read_csv(os.path.dirname(__file__) + '/viridis.csv', skiprows=lambda x: x > 0 and (x-1) % 20 != 0) 33 | 34 | getColormapString(_viridis_data) 35 | getColormapString(_viridis_degrade_data) 36 | -------------------------------------------------------------------------------- /res/cyclelist/cyclelist.ps1: -------------------------------------------------------------------------------- 1 | # PGFPlots Example Preview Script - Cycle list 2 | # LaTeX Sparkle Project · Log Creative 2021 3 | # AGPL-3.0 License 4 | 5 | # LaTeX3 SVG Compiler is used. 6 | 7 | $premable = '\documentclass[tikz]{standalone} 8 | \usepackage{pgfplots} 9 | \pgfplotsset{compat=1.14} 10 | \begin{document}' 11 | 12 | $setup_first = '\begin{tikzpicture} 13 | \begin{axis}[axis x line={none}, 14 | axis y line={none}, 15 | cycle list name=' 16 | 17 | $setup_second = ',] 18 | \addplot+ [] coordinates { (0,0) (1,0)}; 19 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 20 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 21 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 22 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 23 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 24 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 25 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 26 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 27 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 28 | \addplot+ [] coordinates { (0,0) (0,1)}; 29 | \end{axis} 30 | \end{tikzpicture}' 31 | 32 | $cl_syntax = @('color','exotic','black white','mark list','mark list*','color list','linestyles','linestyles*'); 33 | 34 | $cl_synopsis = @('color','exotic','black white','mark list','mark listm','color list','linestyles','linestylesm'); 35 | 36 | $suffix = '\end{document}' 37 | 38 | New-Item tex -Type directory 39 | New-Item svg -Type directory 40 | New-Item tmp -Type directory 41 | 42 | for($x=0;$x -lt $cl_synopsis.length;$x++){ 43 | $file = $cl_synopsis[$x] + '.tex' 44 | $premable + $setup_first + $cl_syntax[$x] + $setup_second + $suffix | Out-File tex/$file 45 | Set-Location tmp/ 46 | $dvifile = $cl_synopsis[$x] + ".dvi" 47 | $svgfile = $cl_synopsis[$x] + ".svg" 48 | pdflatex -output-format=dvi ../tex/$file 49 | dvisvgm --zoom=-1 --exact --font-format=woff $dvifile 50 | Copy-Item -Path $svgfile -Destination ../svg/$svgfile -Force 51 | Set-Location ../ 52 | } 53 | 54 | Remove-Item -Path tmp/ -Recurse -------------------------------------------------------------------------------- /res/cyclelist/svg/color list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/cyclelist/svg/linestyles.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/cyclelist/svg/linestylesm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/cyclelist/tex/black white.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=black white,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/color list.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=color list,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/color.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=color,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/exotic.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=exotic,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/line styles.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.17} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=line styles,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/line stylesm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.17} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=line styles*,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/linestyles.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=linestyles,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/linestylesm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=linestyles*,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/mark list.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=mark list,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/cyclelist/tex/mark listm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document}\begin{tikzpicture} 5 | \begin{axis}[axis x line={none}, 6 | axis y line={none}, 7 | cycle list name=mark list*,] 8 | \addplot+ [] coordinates { (0,0) (1,0)}; 9 | \addplot+ [] coordinates { (0,0) (0.9,0.1)}; 10 | \addplot+ [] coordinates { (0,0) (0.8,0.2)}; 11 | \addplot+ [] coordinates { (0,0) (0.7,0.3)}; 12 | \addplot+ [] coordinates { (0,0) (0.6,0.4)}; 13 | \addplot+ [] coordinates { (0,0) (0.5,0.5)}; 14 | \addplot+ [] coordinates { (0,0) (0.4,0.6)}; 15 | \addplot+ [] coordinates { (0,0) (0.3,0.7)}; 16 | \addplot+ [] coordinates { (0,0) (0.2,0.8)}; 17 | \addplot+ [] coordinates { (0,0) (0.1,0.9)}; 18 | \addplot+ [] coordinates { (0,0) (0,1)}; 19 | \end{axis} 20 | \end{tikzpicture}\end{document} 21 | -------------------------------------------------------------------------------- /res/logo/anim/animatedlogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/anim/animatedlogo.gif -------------------------------------------------------------------------------- /res/logo/anim/animatedlogo_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/anim/animatedlogo_back.gif -------------------------------------------------------------------------------- /res/logo/anim/animatedlogolegacy.tex: -------------------------------------------------------------------------------- 1 | % made with PGFPlotsEdt 2 | % legacy animation 3 | \documentclass{article} 4 | \usepackage{pgfplots} 5 | \usepackage{animate} 6 | \pgfplotsset{compat=1.17} 7 | \usepgfplotslibrary{colorbrewer} 8 | \usepgfplotslibrary{colormaps} 9 | \usepgfplotslibrary{external} 10 | \tikzexternalize 11 | \begin{document} 12 | \begin{animateinline}{30} 13 | \multiframe{5}{ind=0+1}{ 14 | \tikzifexternalizing{% 15 | Work-around to make animate happy 16 | }{}% 17 | \begin{tikzpicture} 18 | \begin{axis}[width={5cm}, 19 | height={5cm}, 20 | axis x line={none}, 21 | axis y line={none}, 22 | view={\ind}{0}, 23 | axis z line={none}, 24 | colormap/Greens] 25 | \addplot3 [domain=0:2*pi,color=green!25!black!50!white,mesh,line width=1.8pt,samples=100,samples y=0,] ({(0.5+\ind/90)*1.18*cos(deg(x))},{(0.25+\ind/180)*1.18*cos(deg(x))},{\ind/45*0.7*sin(deg(x))-0.15}); 26 | \addplot3 [domain=-1.5:1.5,surf,opacity=0.75] {exp(-x^2/2-y^2/2)-0.7}; 27 | \end{axis} 28 | \end{tikzpicture} 29 | } 30 | \end{animateinline} 31 | \end{document} -------------------------------------------------------------------------------- /res/logo/anim/animrender.ps1: -------------------------------------------------------------------------------- 1 | # Create Animated Logo Series 2 | # PGFPlotsEdt · LaTeX Sparkle Project 3 | # Log Creative 2021 AGPL-3.0 4 | 5 | Remove-Item *.dvi, *.log, *.aux, animatedlogo-frame*.tex, *.svg 6 | 7 | # Powershell 7 Only -- to render in Parallel 8 | 0..45 | ForEach-Object -Parallel { 9 | $view_replacer = "view={"+ $_ +"}" 10 | $domain_start = -0.57 - ($_ + 1) * 0.02 11 | $domain_end = -0.43 + ($_ + 1) * 0.02 12 | $domain_replacer = "domain=" + $domain_start + "*pi" + ":" + $domain_end + "*pi" 13 | $index = '{0:d2}' -f $_ 14 | $opacity = 0.08 + $_ * 0.02 15 | $opacity_replacer = "opacity=" + $opacity 16 | $file = "animatedlogo-frame" + $index + ".tex" 17 | (Get-Content ../logo.tex -Raw) -replace "view={(\d+)}", $view_replacer -replace "domain=0:2\*pi", $domain_replacer -replace "opacity=1",$opacity_replacer | 18 | Out-File $file 19 | $dvifile = "animatedlogo-frame" + $index + ".dvi" 20 | pdflatex -output-format=dvi $file 21 | dvisvgm --zoom=1 --exact $dvifile 22 | } 23 | 24 | Copy-Item ../logo.svg animatedlogo-frame46.svg 25 | 26 | # svg only mode 27 | 28 | # # need ImageMagick installed 29 | # magick -size 640x640 -depth 8 -loop 1 animatedlogo-frame%d.svg[0-22] animatedlogo.gif 30 | 31 | # # backward 32 | 33 | # 0..22 | ForEach-Object { 34 | # $filename = "animatedlogo-frame" + $_ + ".svg" 35 | # $index = 45 - $_ 36 | # $new_filename = "animatedlogo-frame" + $index + ".svg" 37 | # Rename-Item $filename $new_filename 38 | # } 39 | 40 | # magick -size 640x640 -depth 8 -loop 1 animatedlogo-frame%d.svg[23-45] animatedlogo_back.gif 41 | 42 | Remove-Item *.dvi, *.log, *.aux, animatedlogo-frame*.tex -------------------------------------------------------------------------------- /res/logo/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/banner.png -------------------------------------------------------------------------------- /res/logo/banner.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/banner.pptx -------------------------------------------------------------------------------- /res/logo/logo.tex: -------------------------------------------------------------------------------- 1 | % made with PGFPlotsEdt 2 | \documentclass[tikz,margin=5pt]{standalone} 3 | \usepackage{pgfplots} 4 | \pgfplotsset{compat=newest} 5 | \usepgfplotslibrary{colorbrewer} 6 | \usepgfplotslibrary{colormaps} 7 | \begin{document} 8 | \begin{tikzpicture} 9 | \begin{axis}[width={5cm}, 10 | height={5cm}, 11 | axis x line={none}, 12 | axis y line={none}, 13 | view={45}{0}, 14 | axis z line={none}, 15 | colormap/Greens] 16 | \addplot3 [domain=0:2*pi,color=green!25!black!50!white,mesh,line width=1.8pt,samples=100,samples y=0,] ({1.18*cos(deg(x))},{1.18*cos(deg(x))},{0.7*sin(deg(x))-0.15}); 17 | \addplot3 [domain=-1.5:1.5,surf,shader=flat,opacity=1] {exp(-x^2/2-y^2/2)-0.7}; 18 | \end{axis} 19 | \end{tikzpicture} 20 | \end{document} -------------------------------------------------------------------------------- /res/logo/logoicon (0-00-00-01).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/logoicon (0-00-00-01).png -------------------------------------------------------------------------------- /res/logo/logoicon.aep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/logoicon.aep -------------------------------------------------------------------------------- /res/logo/logoicon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/logoicon.pdf -------------------------------------------------------------------------------- /res/logo/logoicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/logo/logoicon.png -------------------------------------------------------------------------------- /res/logo/logoicon.tex: -------------------------------------------------------------------------------- 1 | % made with PGFPlotsEdt 2 | \documentclass[tikz]{standalone} 3 | \usepackage{pgfplots} 4 | \pgfplotsset{compat=newest} 5 | \usepgfplotslibrary{colorbrewer} 6 | \usepgfplotslibrary{colormaps} 7 | \begin{document} 8 | \begin{tikzpicture} 9 | \begin{axis}[width={5cm}, 10 | height={5cm}, 11 | axis x line={none}, 12 | axis y line={none}, 13 | view={45}{0}, 14 | axis z line={none}, 15 | colormap/Greens] 16 | \addplot3 [domain=0:2*pi,color=green!25!black!50!white,mesh,line width=1.8pt,samples=100,samples y=0,opacity=0] ({1.18*cos(deg(x))},{1.18*cos(deg(x))},{0.7*sin(deg(x))-0.15}); 17 | \addplot3 [domain=-1.5:1.5,surf,shader=flat] {exp(-x^2/2-y^2/2)-0.7}; 18 | \end{axis} 19 | \end{tikzpicture} 20 | \end{document} -------------------------------------------------------------------------------- /res/logo/render.ps1: -------------------------------------------------------------------------------- 1 | pdflatex -output-format=dvi logo.tex 2 | dvisvgm --zoom=-1 --exact --font-format=woff logo.dvi 3 | pdflatex -output-format=dvi logoicon.tex 4 | dvisvgm --zoom=-1 --exact --font-format=woff logoicon.dvi 5 | Remove-Item *.aux, *.dvi, *.log -------------------------------------------------------------------------------- /res/mark/icon/10-pointed star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/Mercedes star flipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/Mercedes star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/asterisk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/cube.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/cubem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /res/mark/icon/diamond.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/diamondm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/halfcircle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /res/mark/icon/halfcirclem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /res/mark/icon/halfdiamond.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /res/mark/icon/halfdiamondm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /res/mark/icon/halfsquare leftm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /res/mark/icon/halfsquare rightm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /res/mark/icon/halfsquarem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /res/mark/icon/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/multi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/o.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/oplus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/oplusm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/otimes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/otimesm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/pentagon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/pentagonm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/squarem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/triangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/trianglem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/icon/vert.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /res/mark/svg/10-pointed star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/Mercedes star flipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/Mercedes star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/asterisk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/diamond.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/diamondm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/half circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /res/mark/svg/half circlem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /res/mark/svg/halfdiamond.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /res/mark/svg/halfdiamondm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /res/mark/svg/halfsquare leftm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /res/mark/svg/halfsquare rightm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /res/mark/svg/halfsquarem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /res/mark/svg/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/multi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/o.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/oplus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/oplusm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/otimes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/otimesm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/pentagon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/pentagonm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/squarem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/triangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/trianglem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/svg/vert.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/mark/tex/10-pointed star.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=10-pointed star,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/Mercedes star flipped.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=Mercedes star flipped,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/Mercedes star.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=Mercedes star,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/asterisk.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=asterisk,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/ball.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot3 [mark=ball,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1,1) (2,2,3) (3,3,2) (4,4,4)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} 11 | -------------------------------------------------------------------------------- /res/mark/tex/cross.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=x,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/cube.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot3 [mark=cube,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1,1) (2,2,3) (3,3,2) (4,4,4)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} 11 | -------------------------------------------------------------------------------- /res/mark/tex/cubem.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot3 [mark=cube*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1,1) (2,2,3) (3,3,2) (4,4,4)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} 11 | -------------------------------------------------------------------------------- /res/mark/tex/diamond.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=diamond,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/diamondm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=diamond*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/half circle.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=half circle,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/half circlem.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=half circle*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfcircle.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfcircle,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfcirclem.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfcircle*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfdiamond.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfdiamond,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfdiamondm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfdiamond*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfsquare leftm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfsquare left*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfsquare rightm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfsquare right*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/halfsquarem.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=halfsquare*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/minus.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=-,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/multi.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/o.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=o,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/oplus.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=oplus,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/oplusm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=oplus*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/otimes.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=otimes,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/otimesm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=otimes*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/pentagon.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=pentagon,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/pentagonm.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=pentagon*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/plus.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=+,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/square.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=square,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/squarem.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=square*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/star.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=star,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/triangle.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=triangle,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/trianglem.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=triangle*,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/mark/tex/vert.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz,dvisvgm]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usetikzlibrary{plotmarks} 5 | \begin{document}\begin{tikzpicture} 6 | \begin{axis}[axis x line={none}, 7 | axis y line={none}, 8 | ] 9 | \addplot [mark=|,mark options={scale=2,fill=yellow!80!black},] coordinates {(1,1) (2,2.8) (3,2) (4,4)}; 10 | \end{axis} 11 | \end{tikzpicture} 12 | \end{document} 13 | -------------------------------------------------------------------------------- /res/poweredby/book.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/book.ico -------------------------------------------------------------------------------- /res/poweredby/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/github.png -------------------------------------------------------------------------------- /res/poweredby/github_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/github_white.png -------------------------------------------------------------------------------- /res/poweredby/latexonline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/latexonline.png -------------------------------------------------------------------------------- /res/poweredby/latexonline_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/latexonline_white.png -------------------------------------------------------------------------------- /res/poweredby/mathjax.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/mathjax.ico -------------------------------------------------------------------------------- /res/poweredby/mlc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/mlc.png -------------------------------------------------------------------------------- /res/poweredby/vue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LogCreative/PGFPlotsEdt/f79039c9283c14a6b2ff188fc250b41fef060925/res/poweredby/vue.png -------------------------------------------------------------------------------- /res/tpl/icon/1i.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /res/tpl/icon/1id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /res/tpl/icon/4i.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/tpl/icon/4id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/tpl/icon/8i.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/tpl/icon/8id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/tpl/icon/9i.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /res/tpl/icon/9id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /res/tpl/tex/1.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [red,very thick] coordinates {(1989,41918.6643) (1990,42233.42234) (1991,41629.28996) (1992,42525.89913) (1993,43133.13396) (1994,44330.11707) (1995,44985.58096) (1996,46140.53992) (1997,47619.84632) (1998,49177.84224) (1999,50930.16459) (2000,52456.57189) (2001,52456.28985) (2002,52863.55743) (2003,53874.95739) (2004,55419.41533) (2005,56837.80082) (2006,57908.1474) (2007,58431.61598) (2008,57808.58684) (2009,55845.29763) (2010,56808.18649) (2011,57276.37498) (2012,58154.65146) (2013,58823.93537) (2014,59878.48764) (2015,61281.36087) (2016,61892.54428) (2017,62940.04552) (2018,64483.09325) (2019,65560.49087) (2020,62127.48465) }; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/10.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usepgfplotslibrary{polar} 5 | \begin{document} 6 | \begin{tikzpicture} 7 | \begin{polaraxis}[] 8 | \addplot [domain=0:720,samples=200,pink!30,fill=pink!10,line width=1.5pt,] {cos(2*x)*sin(2*x)}; 9 | \end{polaraxis} 10 | \end{tikzpicture} 11 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/2.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [mark=*,domain=-2:2,blue] {exp(-x^2)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/3.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [only marks, mark=o, scatter] coordinates {(609,670) (484,551) (440,637) (433,622) (431,593) (423,540) (418,598) (408,497) (406,578) (399,575) (396.5,618) (393,562) (391,623) (389.5,565) (389,559) (387,565) (373,582) (371,533) (368,613) (365.5,636) (358,661) (355,488) (353,560) (348,496) (347,561) (345.5,581) (341,596) (339,650) (335,551) (328,451) (325,561) (324,614) (320,536) (319,486) (307,487) (306,607) (305,586) (304,533) (301.5,581) (296,519) (288,580) (283,646) (274,586) (265,598) (246,594) (227.5,560) (224,535) (213,542) (194,643) (186,503) (152,551)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/4.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [ybar,draw=green!40!black,fill=green!70!black] coordinates {(1,0.86) (2,0.85) (3,0.845) (4,0.84) (5,0.83)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/5.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [samples=200,domain=0:4,blue,very thick,fill=blue!50] {x/(1+x)} \closedcycle; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/6.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot3 [surf] {x*y}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/7.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [contour prepared] table[row sep=crcr,] {2 2 0.8\\\\0.857143 2 0.6\\1 1 0.6\\2 0.857143 0.6\\2.5 1 0.6\\2.66667 2 0.6\\\\0.571429 2 0.4\\0.666667 1 0.4\\1 0.666667 0.4\\2 0.571429 0.4\\3 0.8 0.4\\\\0.285714 2 0.2\\0.333333 1 0.2\\1 0.333333 0.2\\2 0.285714 0.2\\3 0.4 0.2\\}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/8.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \begin{document} 5 | \begin{tikzpicture} 6 | \begin{axis}[] 7 | \addplot [ybar interval,fill=blue!50,draw=blue] coordinates {(0,17) (34,0) (68,3) (102,2) (136,3) (170,5) (204,6) (238,15) (272,22) (306,63) (340,109) (374,162) (408,193) (442,189) (476,166) (510,130) (544,110) (578,83) (612,52) (646,25) (680,4) (714,4)}; 8 | \end{axis} 9 | \end{tikzpicture} 10 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tex/9.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usepackage{pgfplots} 3 | \pgfplotsset{compat=1.14} 4 | \usepgfplotslibrary{statistics} 5 | \begin{document} 6 | \begin{tikzpicture} 7 | \begin{axis}[] 8 | \addplot [boxplot prepared={lower whisker=2.5, lower quartile=4, median=8.5, upper quartile=12, upper whisker=15},blue] coordinates {}; 9 | \end{axis} 10 | \end{tikzpicture} 11 | \end{document} -------------------------------------------------------------------------------- /res/tpl/tplrender.ps1: -------------------------------------------------------------------------------- 1 | New-Item svg -Type directory 2 | New-Item icon -Type directory 3 | New-Item tmp -Type directory 4 | 5 | 1..10 | ForEach-Object -Parallel { 6 | $file = "" + $_; 7 | $texfile = $file + ".tex" 8 | $dvifile = $file + ".dvi" 9 | $svgfile = $file + ".svg" 10 | Set-Location tmp/ 11 | pdflatex -output-format=dvi ../tex/$texfile 12 | dvisvgm --zoom=-1 --exact --font-format=woff2 $dvifile 13 | Copy-Item -Path $svgfile -Destination ../svg/$svgfile -Force 14 | } 15 | 16 | 1..10 | ForEach-Object -Parallel { 17 | $file = "" + $_; 18 | $texfile = $file + ".tex" 19 | $iconfile = $file + "i.tex" 20 | $dvifile = $file + "i.dvi" 21 | $svgfile = $file + "i.svg" 22 | Copy-Item -Path tex/$texfile -Destination tmp/$iconfile 23 | Set-Location tmp/ 24 | (Get-Content $iconfile -Raw) -replace "axis}\[\]", "axis}[axis lines=none,line width=1.5pt]" -replace "\\begin{tikzpicture}","\begin{tikzpicture}[scale=0.4]"| 25 | Out-File $iconfile 26 | pdflatex -output-format=dvi $iconfile 27 | dvisvgm --zoom=-1 --exact $dvifile 28 | Copy-Item -Path $svgfile -Destination ../icon/$svgfile -Force 29 | } 30 | 31 | Remove-Item -Path tmp/ -Recurse -------------------------------------------------------------------------------- /res/version_updater.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import time 3 | import os 4 | 5 | def get_git_commit_count(): 6 | try: 7 | return int(subprocess.check_output(["git", "rev-list", "HEAD", "--count"]).decode('utf-8').strip()) 8 | except Exception: 9 | return -1 10 | 11 | 12 | def get_last_commit_date(): 13 | try: 14 | return subprocess.check_output(["git", "log", "-1", "--format=%cd", "--date=short"]).decode('utf-8').strip() 15 | except Exception: 16 | return "" 17 | 18 | 19 | def write_version_info(dirpath): 20 | vercount = get_git_commit_count() 21 | verdate = get_last_commit_date() 22 | if vercount > -1: 23 | jspath = os.path.join(dirpath, "version.js") 24 | with open(jspath, "w", encoding="utf-8") as f: 25 | ver = "v{:.2f}".format(vercount/100.0) 26 | f.write('// Deployed from: {}\n'.format(time.strftime("%Y-%m-%d %H:%M:%S"))) 27 | f.write('version = "{}";\n'.format(ver)) 28 | txtpath = os.path.join(dirpath, "VERSION") 29 | with open(txtpath, "w", encoding="utf-8") as f: 30 | f.write('{} {}'.format(ver, verdate)) 31 | return ver 32 | return "" 33 | 34 | if __name__ == "__main__": 35 | print(write_version_info(".")) 36 | -------------------------------------------------------------------------------- /res/view/idle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /res/view/view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Viewbox 8 | 9 | 59 | 60 |
61 |
62 |
xz
63 |
yz
64 |
xy
65 |
66 |
67 | 68 | 75 | --------------------------------------------------------------------------------