SlideShare a Scribd company logo
1www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.Copyright © ESI Group, 2018. All rights reserved.
www.esi-group.com
Implementation of a
converting toolbox
for Scilab for
transforming figures
from Scilab to
TikZ/LaTeX
Manuel-Tobias Csapo
10.11.2018
2www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
2
What’s the motivation for a toolbox?
• Include graphs in scientific papers or articles
• LaTeX in scientific environment is de-facto standard
• MATLAB and Octave offer to convert figures to Tikz/LaTeX
• Scilab does not provide this functionality yet
Created toolbox prototype “xs2tikz” in Scilab
Project idea initiated by Professor Dr. Koch
3www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
3
Agenda
1. Working Environment
• University of Applied Sciences Esslingen
• IT Designers Group
2. Target Software
• What’s LaTeX
• What’s PGFPlots
3. Converter Toolbox
• Implementation
• What’s currently there
• Examples
4. Outlook
• What’s missing / New features
4www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
4
Working Environment
University of Applied Sciences Esslingen
• Established in 1868
• Located in Esslingen near Stuttgart
• 6000 students in majors like software engineering,
mechanical engineering and social work
• Cooperation with various companies in Stuttgart
• Cooperation via Steinbeis for technology transfer
Source: www.hs-Esslingen.de
5www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
5
Working Environment
IT Designers Group
• Established in 1994 by Professor Dr. Joachim Goll from
University of Applied Sciences Esslingen via Steinbeis
• Located in Zell/Esslingen
• Nearly 150 employees
• Develops personalized software projects for customers
in automobile, finance, logistic and automation sector
• Provides support and setup of Application Lifecycle
Management
6www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
6
Target Software
Components used
Source: de.wikipedia.org
• Typesetting language LaTeX
(Open Source)
• LaTeX package PGFPlots for creation of
plots; is based on PGF/TikZ (Open Source)
Source: pgfplots.sourceforge.net
7www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
7
Target Software
About LaTeX
Source: de.wikipedia.org
• High-quality typesetting system
• Used in scientific and educational environment
• Well-suited for typesetting mathematical formulas
• Principle: writers should focus on content, not design
• As opposed to Microsoft Word ;-)
documentclass{scrartcl}
title{Awesome article is awesome}
author{Manuel Csapo}
begin{document}
maketitle
end{document}
8www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
8
Target Software
About PGFPlots
• Plot creation package for LaTeX
• Based on PGF/TikZ
• Supports normal/logarithmic plots in two and three
dimensions
begin{tikzpicture}
begin{axis}[xlabel=x, ylabel=f(x)]
addplot coordinates {
(0, 1)
(2,4)
};
end{axis}
end{tikzpicture}
Source: pgfplots.sourceforge.net
9www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
9
Target Software
About PGF/TikZ
• More elaborate graphics
• Use high-level
instructions for designing
image
Source: http://www.texample.net/tikz/examples/p2p-topology/
10www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
10
Converter Toolbox
Graphic representation in Scilab
• Tree with graphic hierarchy
• Each element contains
handle reference to next
lower one
• Direct access or via
get()/set()
11www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
11
Converter Toolbox
First Step: What’s out there?
• Matlab2Tikz package as base
• Has more functionality than needed
• E.g. Parsing additional arguments for creating more elements
• Quickly abandoned due single file provision with ~7000 lines of code, >
100 unprecise declared Functions
• Example: saveToFile()does gathering and calls functions for
generating of strings
12www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
12
Converter Toolbox
Second Step: Designing
• Basic ideas taken: Gathering, Parsing, Writing to file
• Provide functionality as toolbox
• Solely written in Scilab
• gather_graphics_attributes for collecting figure data
• generate_tikz_strings for parsing data to PGFPlots
• xs2tikz provides simple interface
13www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
13
Converter Toolbox
Visualisation
14www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
14
Converter Toolbox
Third Step: Implementation of gather_graphic_attributes
• Traverse graphic hierarchy
• Collect necessary attributes
• Create cell for each type (figure, axes, polylines)
• Save them in struct attributes
15www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
15
Converter Toolbox
Third Step: Implementation of generate_tikz_strings
• Add necessary environment information (begin/end)
• Generate axes with options
• Generate plots from polylines
16www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
16
Converter Toolbox
Example (Calling sequence)
- -> cd /path/to/toolbox/xs2tikz
- -> exec builder.sce; exec
loader.sce;
- -> plot_example_simple_graph();
- -> xs2tikz(“example.tex”, true);
Create PDF (in Linux):
pdflatex example.tex
17www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
17
Converter Toolbox
Example (Result as image)
18www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
18
Converter Toolbox
Current state
• Toolbox structure done
• Basic conversion for 2D figures
• Help pages for functions
• Standalone file generation, titles, legends supported
19www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
19
Outlook
Advantages
+ File is editable after conversion (unlike JPG, PNG, etc.)
+ Same quality of appearance as in LaTeX (fonts, drawing)
+ Consistent structure of file format for LaTeX
+ Elevates Scilab on same level as MATLAB or Octave
20www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
20
Outlook
Next Steps
• Make subplots possible
• Use state machine in string generation
• Add 3D functionality through addplot3d
• More robust testing
21www.esi-group.com
Copyright © ESI Group, 2018. All rights reserved.
21
End of presentation
Thank you for your patience!

More Related Content

What's hot

Sanofi @ Scilab Conference 2018
Sanofi @ Scilab Conference 2018Sanofi @ Scilab Conference 2018
Sanofi @ Scilab Conference 2018
Scilab
 
CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018
Scilab
 
Scilab Conference 2018 - Welcome to the Community
Scilab Conference 2018 - Welcome to the CommunityScilab Conference 2018 - Welcome to the Community
Scilab Conference 2018 - Welcome to the Community
Scilab
 
DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018
Scilab
 
Spatial Support in MySQL
Spatial Support in MySQLSpatial Support in MySQL
Spatial Support in MySQL
Norvald Ryeng
 
MySQL 8.0 GIS Overview
MySQL 8.0 GIS OverviewMySQL 8.0 GIS Overview
MySQL 8.0 GIS Overview
Norvald Ryeng
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?
Norvald Ryeng
 
Incubating Apache Hivemall
Incubating Apache HivemallIncubating Apache Hivemall
Incubating Apache Hivemall
Makoto Yui
 
20130108 kaptur technical_cs
20130108 kaptur technical_cs20130108 kaptur technical_cs
20130108 kaptur technical_cs
JISC funded KAPTUR project
 
Kantanfest: Dimitar Shterionov - Part 2
Kantanfest: Dimitar Shterionov - Part 2Kantanfest: Dimitar Shterionov - Part 2
Kantanfest: Dimitar Shterionov - Part 2
kantanmt
 
SureCHEMBL Open Patent Data Seaching with chemical stracture
SureCHEMBL Open Patent Data Seaching with chemical stractureSureCHEMBL Open Patent Data Seaching with chemical stracture
SureCHEMBL Open Patent Data Seaching with chemical stracture
Sakai Misato
 
AI4quant 2018 PIXNET Hackathon
AI4quant 2018 PIXNET HackathonAI4quant 2018 PIXNET Hackathon
AI4quant 2018 PIXNET Hackathon
Tzu-Cheng(Jason) Chuang
 
Learning do discover: machine learning in high-energy physics
Learning do discover: machine learning in high-energy physicsLearning do discover: machine learning in high-energy physics
Learning do discover: machine learning in high-energy physics
Balázs Kégl
 
How can you prevent critical Machine failures, employing Machine Learning and...
How can you prevent critical Machine failures, employing Machine Learning and...How can you prevent critical Machine failures, employing Machine Learning and...
How can you prevent critical Machine failures, employing Machine Learning and...
DIGIOTAI Solutions
 

What's hot (14)

Sanofi @ Scilab Conference 2018
Sanofi @ Scilab Conference 2018Sanofi @ Scilab Conference 2018
Sanofi @ Scilab Conference 2018
 
CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018
 
Scilab Conference 2018 - Welcome to the Community
Scilab Conference 2018 - Welcome to the CommunityScilab Conference 2018 - Welcome to the Community
Scilab Conference 2018 - Welcome to the Community
 
DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018
 
Spatial Support in MySQL
Spatial Support in MySQLSpatial Support in MySQL
Spatial Support in MySQL
 
MySQL 8.0 GIS Overview
MySQL 8.0 GIS OverviewMySQL 8.0 GIS Overview
MySQL 8.0 GIS Overview
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?
 
Incubating Apache Hivemall
Incubating Apache HivemallIncubating Apache Hivemall
Incubating Apache Hivemall
 
20130108 kaptur technical_cs
20130108 kaptur technical_cs20130108 kaptur technical_cs
20130108 kaptur technical_cs
 
Kantanfest: Dimitar Shterionov - Part 2
Kantanfest: Dimitar Shterionov - Part 2Kantanfest: Dimitar Shterionov - Part 2
Kantanfest: Dimitar Shterionov - Part 2
 
SureCHEMBL Open Patent Data Seaching with chemical stracture
SureCHEMBL Open Patent Data Seaching with chemical stractureSureCHEMBL Open Patent Data Seaching with chemical stracture
SureCHEMBL Open Patent Data Seaching with chemical stracture
 
AI4quant 2018 PIXNET Hackathon
AI4quant 2018 PIXNET HackathonAI4quant 2018 PIXNET Hackathon
AI4quant 2018 PIXNET Hackathon
 
Learning do discover: machine learning in high-energy physics
Learning do discover: machine learning in high-energy physicsLearning do discover: machine learning in high-energy physics
Learning do discover: machine learning in high-energy physics
 
How can you prevent critical Machine failures, employing Machine Learning and...
How can you prevent critical Machine failures, employing Machine Learning and...How can you prevent critical Machine failures, employing Machine Learning and...
How can you prevent critical Machine failures, employing Machine Learning and...
 

Similar to University of Applied Science Esslingen @ Scilab Conference 2018

Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Codemotion
 
Apache Spark Tutorial
Apache Spark TutorialApache Spark Tutorial
Apache Spark Tutorial
Ahmet Bulut
 
MySQL 8.0: What Is New in Optimizer and Executor?
MySQL 8.0: What Is New in Optimizer and Executor?MySQL 8.0: What Is New in Optimizer and Executor?
MySQL 8.0: What Is New in Optimizer and Executor?
Norvald Ryeng
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
Matthew Gerring
 
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Sujit Pal
 
6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx
SimRelokasi2
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
 
Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17
Makoto Yui
 
Scilab Challenge@NTU 2014/2015 Project Briefing
Scilab Challenge@NTU 2014/2015 Project BriefingScilab Challenge@NTU 2014/2015 Project Briefing
Scilab Challenge@NTU 2014/2015 Project Briefing
TBSS Group
 
Balisage - EXPath Packaging
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath Packaging
Florent Georges
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocks
Jim Dowling
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
Yugabyte
 
Using heka
Using hekaUsing heka
Using heka
Exotel
 
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia GuptaIntro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
InfluxData
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
PGConf APAC
 

Similar to University of Applied Science Esslingen @ Scilab Conference 2018 (20)

Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
 
Apache Spark Tutorial
Apache Spark TutorialApache Spark Tutorial
Apache Spark Tutorial
 
MySQL 8.0: What Is New in Optimizer and Executor?
MySQL 8.0: What Is New in Optimizer and Executor?MySQL 8.0: What Is New in Optimizer and Executor?
MySQL 8.0: What Is New in Optimizer and Executor?
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17
 
Scilab Challenge@NTU 2014/2015 Project Briefing
Scilab Challenge@NTU 2014/2015 Project BriefingScilab Challenge@NTU 2014/2015 Project Briefing
Scilab Challenge@NTU 2014/2015 Project Briefing
 
eScience Cluster Arch. Overview
eScience Cluster Arch. OvervieweScience Cluster Arch. Overview
eScience Cluster Arch. Overview
 
Session 2
Session 2Session 2
Session 2
 
Balisage - EXPath Packaging
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath Packaging
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocks
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
 
Using heka
Using hekaUsing heka
Using heka
 
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia GuptaIntro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
 

More from Scilab

Electric motor optimization
Electric motor optimizationElectric motor optimization
Electric motor optimization
Scilab
 
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Scilab
 
X2C -a tool for model-based control development and automated code generation...
X2C -a tool for model-based control development and automated code generation...X2C -a tool for model-based control development and automated code generation...
X2C -a tool for model-based control development and automated code generation...
Scilab
 
Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3
Scilab
 
Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2
Scilab
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1
Scilab
 
Multiobjective optimization and Genetic algorithms in Scilab
Multiobjective optimization and Genetic algorithms in ScilabMultiobjective optimization and Genetic algorithms in Scilab
Multiobjective optimization and Genetic algorithms in Scilab
Scilab
 
Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop
Scilab
 
Fraunhofer IIS @ Scilab Conference 2018
Fraunhofer IIS @ Scilab Conference 2018Fraunhofer IIS @ Scilab Conference 2018
Fraunhofer IIS @ Scilab Conference 2018
Scilab
 
Customizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and PaletteCustomizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and Palette
Scilab
 
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieurScilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab
 
Scilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiquesScilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiques
Scilab
 
Optimization in scilab
Optimization in scilabOptimization in scilab
Optimization in scilab
Scilab
 
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Scilab
 
Scilab is not naive
Scilab is not naiveScilab is not naive
Scilab is not naive
Scilab
 
Xcos pour débutants
Xcos pour débutantsXcos pour débutants
Xcos pour débutants
Scilab
 
Scilab debutant
Scilab debutantScilab debutant
Scilab debutant
Scilab
 
Xcos for beginners
Xcos for beginnersXcos for beginners
Xcos for beginners
Scilab
 

More from Scilab (18)

Electric motor optimization
Electric motor optimizationElectric motor optimization
Electric motor optimization
 
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
 
X2C -a tool for model-based control development and automated code generation...
X2C -a tool for model-based control development and automated code generation...X2C -a tool for model-based control development and automated code generation...
X2C -a tool for model-based control development and automated code generation...
 
Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3
 
Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1
 
Multiobjective optimization and Genetic algorithms in Scilab
Multiobjective optimization and Genetic algorithms in ScilabMultiobjective optimization and Genetic algorithms in Scilab
Multiobjective optimization and Genetic algorithms in Scilab
 
Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop
 
Fraunhofer IIS @ Scilab Conference 2018
Fraunhofer IIS @ Scilab Conference 2018Fraunhofer IIS @ Scilab Conference 2018
Fraunhofer IIS @ Scilab Conference 2018
 
Customizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and PaletteCustomizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and Palette
 
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieurScilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
 
Scilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiquesScilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiques
 
Optimization in scilab
Optimization in scilabOptimization in scilab
Optimization in scilab
 
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
 
Scilab is not naive
Scilab is not naiveScilab is not naive
Scilab is not naive
 
Xcos pour débutants
Xcos pour débutantsXcos pour débutants
Xcos pour débutants
 
Scilab debutant
Scilab debutantScilab debutant
Scilab debutant
 
Xcos for beginners
Xcos for beginnersXcos for beginners
Xcos for beginners
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

University of Applied Science Esslingen @ Scilab Conference 2018

  • 1. 1www.esi-group.com Copyright © ESI Group, 2018. All rights reserved.Copyright © ESI Group, 2018. All rights reserved. www.esi-group.com Implementation of a converting toolbox for Scilab for transforming figures from Scilab to TikZ/LaTeX Manuel-Tobias Csapo 10.11.2018
  • 2. 2www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 2 What’s the motivation for a toolbox? • Include graphs in scientific papers or articles • LaTeX in scientific environment is de-facto standard • MATLAB and Octave offer to convert figures to Tikz/LaTeX • Scilab does not provide this functionality yet Created toolbox prototype “xs2tikz” in Scilab Project idea initiated by Professor Dr. Koch
  • 3. 3www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 3 Agenda 1. Working Environment • University of Applied Sciences Esslingen • IT Designers Group 2. Target Software • What’s LaTeX • What’s PGFPlots 3. Converter Toolbox • Implementation • What’s currently there • Examples 4. Outlook • What’s missing / New features
  • 4. 4www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 4 Working Environment University of Applied Sciences Esslingen • Established in 1868 • Located in Esslingen near Stuttgart • 6000 students in majors like software engineering, mechanical engineering and social work • Cooperation with various companies in Stuttgart • Cooperation via Steinbeis for technology transfer Source: www.hs-Esslingen.de
  • 5. 5www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 5 Working Environment IT Designers Group • Established in 1994 by Professor Dr. Joachim Goll from University of Applied Sciences Esslingen via Steinbeis • Located in Zell/Esslingen • Nearly 150 employees • Develops personalized software projects for customers in automobile, finance, logistic and automation sector • Provides support and setup of Application Lifecycle Management
  • 6. 6www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 6 Target Software Components used Source: de.wikipedia.org • Typesetting language LaTeX (Open Source) • LaTeX package PGFPlots for creation of plots; is based on PGF/TikZ (Open Source) Source: pgfplots.sourceforge.net
  • 7. 7www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 7 Target Software About LaTeX Source: de.wikipedia.org • High-quality typesetting system • Used in scientific and educational environment • Well-suited for typesetting mathematical formulas • Principle: writers should focus on content, not design • As opposed to Microsoft Word ;-) documentclass{scrartcl} title{Awesome article is awesome} author{Manuel Csapo} begin{document} maketitle end{document}
  • 8. 8www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 8 Target Software About PGFPlots • Plot creation package for LaTeX • Based on PGF/TikZ • Supports normal/logarithmic plots in two and three dimensions begin{tikzpicture} begin{axis}[xlabel=x, ylabel=f(x)] addplot coordinates { (0, 1) (2,4) }; end{axis} end{tikzpicture} Source: pgfplots.sourceforge.net
  • 9. 9www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 9 Target Software About PGF/TikZ • More elaborate graphics • Use high-level instructions for designing image Source: http://www.texample.net/tikz/examples/p2p-topology/
  • 10. 10www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 10 Converter Toolbox Graphic representation in Scilab • Tree with graphic hierarchy • Each element contains handle reference to next lower one • Direct access or via get()/set()
  • 11. 11www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 11 Converter Toolbox First Step: What’s out there? • Matlab2Tikz package as base • Has more functionality than needed • E.g. Parsing additional arguments for creating more elements • Quickly abandoned due single file provision with ~7000 lines of code, > 100 unprecise declared Functions • Example: saveToFile()does gathering and calls functions for generating of strings
  • 12. 12www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 12 Converter Toolbox Second Step: Designing • Basic ideas taken: Gathering, Parsing, Writing to file • Provide functionality as toolbox • Solely written in Scilab • gather_graphics_attributes for collecting figure data • generate_tikz_strings for parsing data to PGFPlots • xs2tikz provides simple interface
  • 13. 13www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 13 Converter Toolbox Visualisation
  • 14. 14www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 14 Converter Toolbox Third Step: Implementation of gather_graphic_attributes • Traverse graphic hierarchy • Collect necessary attributes • Create cell for each type (figure, axes, polylines) • Save them in struct attributes
  • 15. 15www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 15 Converter Toolbox Third Step: Implementation of generate_tikz_strings • Add necessary environment information (begin/end) • Generate axes with options • Generate plots from polylines
  • 16. 16www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 16 Converter Toolbox Example (Calling sequence) - -> cd /path/to/toolbox/xs2tikz - -> exec builder.sce; exec loader.sce; - -> plot_example_simple_graph(); - -> xs2tikz(“example.tex”, true); Create PDF (in Linux): pdflatex example.tex
  • 17. 17www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 17 Converter Toolbox Example (Result as image)
  • 18. 18www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 18 Converter Toolbox Current state • Toolbox structure done • Basic conversion for 2D figures • Help pages for functions • Standalone file generation, titles, legends supported
  • 19. 19www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 19 Outlook Advantages + File is editable after conversion (unlike JPG, PNG, etc.) + Same quality of appearance as in LaTeX (fonts, drawing) + Consistent structure of file format for LaTeX + Elevates Scilab on same level as MATLAB or Octave
  • 20. 20www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 20 Outlook Next Steps • Make subplots possible • Use state machine in string generation • Add 3D functionality through addplot3d • More robust testing
  • 21. 21www.esi-group.com Copyright © ESI Group, 2018. All rights reserved. 21 End of presentation Thank you for your patience!