diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..2f8e1f61a8e5132c06ba49dff5d888f8e1bb1234 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include src/slider/DTU_Beamer_files/DTU_Beamer_files.zip \ No newline at end of file diff --git a/setup.py b/setup.py index 1679e37cb9a3a6483cce19c2fc28d45cf12a649f..e9c955791edaf21b97f366b95f4748401214c743 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setuptools.setup( name="beamer-slider", - version="0.1.7", + version="0.1.13", author="Tue Herlau", author_email="tuhe@dtu.dk", description="Software to create inkscape overlays in Beamer", @@ -31,7 +31,7 @@ setuptools.setup( python_requires=">=3.8", install_requires=['Jinja2', 'numpy', 'chardet', 'scipy', 'seaborn', 'lxml', 'matplotlib', 'pylatexenc', 'beautifulsoup4', 'PyPDF2', 'clize'], include_package_data=True, - package_data={'': ['DTU_Beamer_files/*.*']}, + package_data={'': ['DTU_Beamer_files/DTU_Beamer_files.zip'],}, # Check Manifest.in. entry_points={ 'console_scripts': ['slider=slider.slider_cli:clize_main_entry_point'], } diff --git a/src/beamer_slider.egg-info/PKG-INFO b/src/beamer_slider.egg-info/PKG-INFO index 76a5a1955812dc8fa2459a3484b3a7afada3f7a0..6fa4e8ba8e8301ff23699b0e40db91106b04c02f 100644 --- a/src/beamer_slider.egg-info/PKG-INFO +++ b/src/beamer_slider.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: beamer-slider -Version: 0.1.7 +Version: 0.1.13 Summary: Software to create inkscape overlays in Beamer Home-page: https://lab.compute.dtu.dk/tuhe/slider Author: Tue Herlau @@ -99,6 +99,14 @@ Thats is! And since this is an overlay, you are free to add more LaTeX to the sl ## Citing ```bibtex - +@online{beamer_slider, + title={Beamer-slider (0.1.7): \texttt{pip install beamer-slider}}, + url={https://lab.compute.dtu.dk/tuhe/slider}, + urldate = {2021-09-08}, + month={9}, + publisher={Technical University of Denmark (DTU)}, + author={Tue Herlau}, + year={2021}, +} ``` diff --git a/src/beamer_slider.egg-info/SOURCES.txt b/src/beamer_slider.egg-info/SOURCES.txt index 24f56e2b33e171a71617ea7cc036937200fb3bb6..2856d876f0c8a073864a7d070e8314b07f180ae2 100644 --- a/src/beamer_slider.egg-info/SOURCES.txt +++ b/src/beamer_slider.egg-info/SOURCES.txt @@ -1,4 +1,5 @@ LICENSE +MANIFEST.in README.md pyproject.toml setup.py @@ -28,4 +29,5 @@ src/slider/legacy_importer.py src/slider/slide.py src/slider/slide_fixer.py src/slider/slider_cli.py -src/slider/slider_init.py \ No newline at end of file +src/slider/slider_init.py +src/slider/DTU_Beamer_files/DTU_Beamer_files.zip \ No newline at end of file diff --git a/src/beamer_slider.egg-info/requires.txt b/src/beamer_slider.egg-info/requires.txt index 7e386127967d6f5ae0c9be2e433e6b542061de6b..ab64305c89c27346b88de50c3f8e51e84e1cca1f 100644 --- a/src/beamer_slider.egg-info/requires.txt +++ b/src/beamer_slider.egg-info/requires.txt @@ -8,3 +8,4 @@ matplotlib pylatexenc beautifulsoup4 PyPDF2 +clize diff --git a/src/slider/DTU_Beamer_files/DTU_Beamer_files.zip b/src/slider/DTU_Beamer_files/DTU_Beamer_files.zip new file mode 100644 index 0000000000000000000000000000000000000000..cca64ae17d10677bbf9ec2b7be54d345d90f8333 Binary files /dev/null and b/src/slider/DTU_Beamer_files/DTU_Beamer_files.zip differ diff --git a/src/slider/__pycache__/legacy_importer.cpython-38.pyc b/src/slider/__pycache__/legacy_importer.cpython-38.pyc index 579747373d3e9e4e94d5787ad81089e4ec5afbb8..137a521800b2dd9dd94431cc0bf741aeb34ad8ce 100644 Binary files a/src/slider/__pycache__/legacy_importer.cpython-38.pyc and b/src/slider/__pycache__/legacy_importer.cpython-38.pyc differ diff --git a/src/slider/latexutils.py b/src/slider/latexutils.py index 2e50e0978da7c792fd2d44a35209b4afdc3e7d71..ad91774533ffc6dc879bdbf183de9e22c47eeb64 100644 --- a/src/slider/latexutils.py +++ b/src/slider/latexutils.py @@ -1,21 +1,28 @@ from jinjafy import execute_command import os import shutil +import subprocess +import glob def latexmk(texfile,pdf_out=None,shell=True,cleanup=False, Linux=False): cdir = os.getcwd() + texfile = os.path.abspath(texfile) dname = os.path.dirname(texfile) os.chdir(dname) texfile = os.path.basename(texfile) - if Linux: - CMD = "latexmk -f -g -pdf -interaction=nonstopmode " + texfile - print("Running LaTeX command>> " + CMD) - s = execute_command(CMD.split(" "), shell=shell) - else: - CMD = "latexmk -f -g -pdf -shell-escape -interaction=nonstopmode " + texfile - print("Running LaTeX command>> " + CMD) - s = execute_command(CMD.split(" "),shell=shell) + CMD = "latexmk -f -g -pdf -shell-escape -interaction=nonstopmode " + texfile + print("Running LaTeX command>> " + CMD) + + s = subprocess.check_output(CMD, shell=True) + # if Linux: + # CMD = "latexmk -f -g -pdf -interaction=nonstopmode " + texfile + # print("Running LaTeX command>> " + CMD) + # s = execute_command(CMD.split(" "), shell=shell) + # else: + # CMD = "latexmk -f -g -pdf -shell-escape -interaction=nonstopmode " + texfile + # s = execute_command(CMD.split(" "),shell=shell) + # if pdf_out: shutil.copyfile(texfile[:-4]+".pdf", pdf_out) else: @@ -24,7 +31,6 @@ def latexmk(texfile,pdf_out=None,shell=True,cleanup=False, Linux=False): if cleanup and os.path.exists(pdf_out): bft = ['bbl', 'blg', 'fdb_latexmk', 'fls', 'aux', 'synctex.gz', 'log'] for ex in bft: - import glob fl = glob.glob(dname + "/*."+ex) for f in fl: os.remove(f) diff --git a/src/slider/legacy_importer.py b/src/slider/legacy_importer.py index 058a79ed579aea5f505f5d78fc45634b3c1779ac..5753a7e2b7c5730a766a0dd996b73729a6c11fee 100644 --- a/src/slider/legacy_importer.py +++ b/src/slider/legacy_importer.py @@ -7,6 +7,8 @@ from jinjafy import jinjafy_comment from bs4 import BeautifulSoup import glob from jinjafy import execute_command +import zipfile +import tempfile CDIR = os.path.dirname(os.path.realpath(__file__)) CDIR = CDIR.replace('\\','/') @@ -407,6 +409,34 @@ def move_template_files(output_dir="examples/output", output_tex_file=None): "02450_beamer_preamble.tex", # Deprecated. 'beamer_slider_preamble.tex', # The current version. ] + + zipf = DTU_beamer_base + "/DTU_Beamer_files.zip" + # os.path.exists(zipf) + + tmp = tempfile.mkdtemp() + + # output_dir = output_dir) + # import random + # "".join( [str(random.randint(1, 10)) for _ in range(10)] ) + # tmp = str(output_dir) + "/"+ "".join( [str(random.randint(1, 10)) for _ in range(10)] ) + # os.mkdir(tmp) + + with zipfile.ZipFile(zipf) as zip: + # for files in zip.namelist(): + # data = zip.read(files, output_dir) + # myfile_path = output_dir / Path(files).name + # myfile_path.write_bytes(data) + # zip.extract(name, output_dir +"/" + os.path.basename(name)) + zip.extractall(tmp) + + for f in glob.glob(tmp + "/**/*.*"): + shutil.move(f, str(output_dir) + "/"+os.path.basename(f)) + shutil.rmtree(tmp) + if output_tex_file != None: + assert False + return + print(f) + sd = list( zip(files_to_move, files_to_move) ) if output_tex_file: sd.append( ("02450_lectures_base.tex", output_tex_file)) diff --git a/src/slider/slide.py b/src/slider/slide.py index ec49193b9b7c4294f4bdaddf11985717560af0c7..884822cff3a6ef06b0ee7db19833f524b9d06b7b 100644 --- a/src/slider/slide.py +++ b/src/slider/slide.py @@ -1,18 +1,13 @@ #!python # The above makes the script executable. -import slider.legacy_importer import PyPDF2 import os -from jinjafy import execute_command -# from slider import slide from slider import legacy_importer from slider.legacy_importer import SVG_EDIT_RELPATH, SVG_TMP_RELPATH, move_template_files, DTU_beamer_base, svg_edit_to_importable from jinjafy.cache import cache_update_str, cache_contains_str, cache_contains_file, cache_update_file import shutil from slider.slide_fixer import check_svg_file_and_fix_if_broken -from slider.latexutils import latexmk -import clize import glob dc = "\\documentclass" @@ -119,7 +114,11 @@ def set_svg_background_images(lecture_tex, verbose=False, else: cdir = os.getcwd() os.chdir(os.path.dirname(lecture_tex_nosvg)) - execute_command(("latexmk -shell-escape -f -pdf -interaction=nonstopmode " + os.path.basename(lecture_tex_nosvg)).split(" ")) + + from slider import latexmk + print("Compiling latex file using latexmk...", os.path.basename(lecture_tex_nosvg)) + latexmk(os.path.abspath(lecture_tex_nosvg)) + # execute_command(("latexmk -shell-escape -f -pdf -interaction=nonstopmode " + os.path.basename(lecture_tex_nosvg)).split(" ")) os.chdir(cdir) cache_update_file(MAIN_TEX_DIR, lecture_tex_nosvg) ANY_CHANGES = True diff --git a/src/slider/slide_fixer.py b/src/slider/slide_fixer.py index 3ca3f50ad5b9c32345121abc3a6f169468f6c337..eaf16b3be5f56728118eb38cb475f3cd57b15072 100644 --- a/src/slider/slide_fixer.py +++ b/src/slider/slide_fixer.py @@ -110,7 +110,7 @@ def check_svg_file_and_fix_if_broken(osvg_file, verbose=True): s = f.read() soup = BeautifulSoup(s, 'xml', from_encoding="UTF-8") print("Finding all tags") - # c = 0 + for j in soup.svg.find_all(recursive=False): IL= "inkscape:label" if IL in j.attrs and j[IL] == "bg_layer": diff --git a/src/slider/slider_init.py b/src/slider/slider_init.py index a72e1217cb2497c3fcc5d0412dcefd9ab534c2d4..630688626399071c033b91a3900200448a4904ab 100644 --- a/src/slider/slider_init.py +++ b/src/slider/slider_init.py @@ -49,7 +49,7 @@ def slider_init(latexfile=None): if not os.path.isdir(os.path.dirname(latexfile)): os.makedirs(os.path.dirname(latexfile)) - import jinja2 + # import jinja2 with open(latexfile, 'w') as f: f.write(base_slide)