SlideShare a Scribd company logo
1 of 21
Download to read offline
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 2018Scilab
 
CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018Scilab
 
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 CommunityScilab
 
DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018Scilab
 
Spatial Support in MySQL
Spatial Support in MySQLSpatial Support in MySQL
Spatial Support in MySQLNorvald Ryeng
 
MySQL 8.0 GIS Overview
MySQL 8.0 GIS OverviewMySQL 8.0 GIS Overview
MySQL 8.0 GIS OverviewNorvald 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 HivemallMakoto Yui
 
Kantanfest: Dimitar Shterionov - Part 2
Kantanfest: Dimitar Shterionov - Part 2Kantanfest: Dimitar Shterionov - Part 2
Kantanfest: Dimitar Shterionov - Part 2kantanmt
 
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 stractureSakai Misato
 
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 physicsBalá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 TutorialAhmet 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
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew 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-19Sujit Pal
 
6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptxSimRelokasi2
 
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-17Makoto 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 BriefingTBSS Group
 
Balisage - EXPath Packaging
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath PackagingFlorent Georges
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJim Dowling
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLYugabyte
 
Using heka
Using hekaUsing heka
Using hekaExotel
 
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 GuptaInfluxData
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLPGConf 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 optimizationScilab
 
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 - part3Scilab
 
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 2Scilab
 
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 1Scilab
 
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 ScilabScilab
 
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 2018Scilab
 
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 PaletteScilab
 
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énieurScilab
 
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ématiquesScilab
 
Optimization in scilab
Optimization in scilabOptimization in scilab
Optimization in scilabScilab
 
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 naiveScilab
 
Xcos pour débutants
Xcos pour débutantsXcos pour débutants
Xcos pour débutantsScilab
 
Scilab debutant
Scilab debutantScilab debutant
Scilab debutantScilab
 
Xcos for beginners
Xcos for beginnersXcos for beginners
Xcos for beginnersScilab
 

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

WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2
 

Recently uploaded (20)

WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 

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!