├── .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 |
--------------------------------------------------------------------------------
/res/cyclelist/svg/linestyles.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/cyclelist/svg/linestylesm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/res/mark/icon/Mercedes star flipped.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/Mercedes star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/asterisk.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/cube.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/cubem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/diamond.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/diamondm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfcircle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfcirclem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfdiamond.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfdiamondm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfsquare leftm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfsquare rightm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/halfsquarem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/multi.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/o.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/oplus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/oplusm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/otimes.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/otimesm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/pentagon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/pentagonm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/square.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/squarem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/triangle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/trianglem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/icon/vert.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/10-pointed star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/Mercedes star flipped.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/Mercedes star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/asterisk.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/diamond.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/diamondm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/half circle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/half circlem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/halfdiamond.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/halfdiamondm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/halfsquare leftm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/halfsquare rightm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/halfsquarem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/multi.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/o.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/oplus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/oplusm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/otimes.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/otimesm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/pentagon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/pentagonm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/square.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/squarem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/triangle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/trianglem.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/mark/svg/vert.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/res/tpl/icon/1id.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/tpl/icon/4i.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/tpl/icon/4id.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/tpl/icon/8i.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/tpl/icon/8id.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/tpl/icon/9i.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/tpl/icon/9id.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------