From 5f3d96d87767eb177d7dd5d1f5f8a4b81527b848 Mon Sep 17 00:00:00 2001 From: Dominik Hofer Date: Tue, 21 Jan 2020 15:39:44 +0100 Subject: Presentation 36C3 taler-mdb --- .../taler-mdb-36c3/.template/CONTRIBUTING.md | 35 + presentations/taler-mdb-36c3/.template/LICENSE | 163 + presentations/taler-mdb-36c3/.template/Makefile | 296 + presentations/taler-mdb-36c3/.template/README.md | 139 + .../taler-mdb-36c3/.template/cf_handouts.tex | 8 + .../taler-mdb-36c3/.template/cf_notes.tex | 5 + .../taler-mdb-36c3/.template/cf_slides.tex | 4 + .../taler-mdb-36c3/.template/cf_tablet.tex | 8 + .../.template/img/BFH_Logo_A_en_100_4CU.pdf | Bin 0 -> 21180 bytes .../img/BFH_Logo_HuCE_microLab_en_100_4CC.pdf | Bin 0 -> 5021 bytes .../taler-mdb-36c3/.template/img/BFH_logo.pdf | Bin 0 -> 21180 bytes .../taler-mdb-36c3/.template/mk_copySampleFiles.sh | 39 + .../taler-mdb-36c3/.template/mk_gitignore.sh | 81 + .../taler-mdb-36c3/.template/mk_latexmkrc.sh | 48 + .../taler-mdb-36c3/.template/mk_sample_lecture.sh | 233 + .../taler-mdb-36c3/.template/mk_variables.sh | 52 + .../.template/sample/sample-flowChartSwitch.svg | 583 + .../.template/sample/sample-helloWorld.c | 7 + .../.template/sample/sample-helloWorld.cpp | 6 + .../.template/sample/sample-learnProgLang.jpg | Bin 0 -> 112680 bytes .../.template/sample/sample-theRefs.bib | 8 + .../taler-mdb-36c3/.template/sty/adjcalc.sty | 155 + .../taler-mdb-36c3/.template/sty/adjustbox.sty | 1241 ++ .../taler-mdb-36c3/.template/sty/adjustbox.sty.tex | 10 + .../taler-mdb-36c3/.template/sty/bfh-cli.sty | 33 + .../.template/sty/bfh-colortabular.sty | 30 + .../.template/sty/bfh-graphicref.sty | 39 + presentations/taler-mdb-36c3/.template/sty/bfh.sty | 106 + .../taler-mdb-36c3/.template/sty/cmbright.sty | 147 + .../taler-mdb-36c3/.template/sty/collectbox.sty | 328 + .../taler-mdb-36c3/.template/sty/geometry.sty | 1130 ++ .../.template/sty/handoutWithNotes.sty | 604 + .../.template/sty/lecture-article.tex | 53 + .../taler-mdb-36c3/.template/sty/lecture-style.tex | 441 + .../taler-mdb-36c3/.template/sty/listings-bfh.tex | 104 + .../.template/sty/pdfpc-commands.sty | 163 + .../taler-mdb-36c3/.template/sty/tc-dvips.def | 45 + .../taler-mdb-36c3/.template/sty/tc-pdftex.def | 39 + .../taler-mdb-36c3/.template/sty/tc-pgf.def | 37 + .../taler-mdb-36c3/.template/sty/tc-xetex.def | 41 + .../taler-mdb-36c3/.template/sty/trimclip.sty | 260 + presentations/taler-mdb-36c3/Makefile | 1 + presentations/taler-mdb-36c3/README.md | 91 + presentations/taler-mdb-36c3/cf_handouts.tex | 1 + presentations/taler-mdb-36c3/cf_notes.tex | 5 + presentations/taler-mdb-36c3/cf_slides.tex | 1 + presentations/taler-mdb-36c3/cf_tablet.tex | 1 + .../taler-mdb-36c3/database/sample-theRefs.bib | 8 + .../taler-mdb-36c3/exsrc/sample-helloWorld.c | 7 + .../taler-mdb-36c3/exsrc/sample-helloWorld.cpp | 6 + .../taler-mdb-36c3/lectures/presentation_36C3.tex | 312 + .../taler-mdb-36c3/pictures/built_with.png | Bin 0 -> 116079 bytes presentations/taler-mdb-36c3/pictures/creation.png | Bin 0 -> 1559287 bytes .../taler-mdb-36c3/pictures/download_wallet.png | Bin 0 -> 463643 bytes .../taler-mdb-36c3/pictures/dude_handy.jpg | Bin 0 -> 124491 bytes .../taler-mdb-36c3/pictures/get_snacks.png | Bin 0 -> 1121129 bytes .../taler-mdb-36c3/pictures/get_taler_coins.png | Bin 0 -> 725528 bytes .../taler-mdb-36c3/pictures/hardware_bunch.png | Bin 0 -> 417883 bytes .../taler-mdb-36c3/pictures/hungry_dude.jpg | Bin 0 -> 145318 bytes .../pictures/hungry_dude_not_anymore.png | Bin 0 -> 424170 bytes .../taler-mdb-36c3/pictures/mdb_hat_opt_1.png | Bin 0 -> 636424 bytes .../taler-mdb-36c3/pictures/mdb_hat_opt_2.png | Bin 0 -> 927961 bytes .../taler-mdb-36c3/pictures/mdb_hat_opt_used.png | Bin 0 -> 643254 bytes .../taler-mdb-36c3/pictures/nfc_reader.png | Bin 0 -> 235327 bytes presentations/taler-mdb-36c3/pictures/pi.png | Bin 0 -> 691929 bytes presentations/taler-mdb-36c3/pictures/pitft.png | Bin 0 -> 295691 bytes .../pictures/sample-learnProgLang.jpg | Bin 0 -> 112680 bytes .../taler-mdb-36c3/pictures/snackmachine.jpg | Bin 0 -> 123613 bytes presentations/taler-mdb-36c3/pictures/students.jpg | Bin 0 -> 60753 bytes presentations/taler-mdb-36c3/pictures/testbed.png | Bin 0 -> 477411 bytes presentations/taler-mdb-36c3/pictures/visit_us.png | Bin 0 -> 612134 bytes presentations/taler-mdb-36c3/svg/BFH_logo.svg | 290 + presentations/taler-mdb-36c3/svg/design.svg | 16987 ++++++++++++++++ .../taler-mdb-36c3/svg/sample-flowChartSwitch.svg | 583 + .../taler-mdb-36c3/svg/software_stack.svg | 1051 + presentations/taler-mdb-36c3/svg/students_1.svg | 2012 ++ presentations/taler-mdb-36c3/svg/students_2.svg | 5205 +++++ presentations/taler-mdb-36c3/svg/students_3.svg | 7396 +++++++ .../taler-mdb-36c3/svg/taler-arch-full.svg | 19620 +++++++++++++++++++ .../taler-mdb-36c3/svg/taler-arch-new.svg | 19619 ++++++++++++++++++ .../taler-mdb-36c3/svg/taler-logo-2018.svg | 93 + presentations/taler-mdb-36c3/variables.tex | 19 + 82 files changed, 80029 insertions(+) create mode 100644 presentations/taler-mdb-36c3/.template/CONTRIBUTING.md create mode 100644 presentations/taler-mdb-36c3/.template/LICENSE create mode 100644 presentations/taler-mdb-36c3/.template/Makefile create mode 100644 presentations/taler-mdb-36c3/.template/README.md create mode 100644 presentations/taler-mdb-36c3/.template/cf_handouts.tex create mode 100644 presentations/taler-mdb-36c3/.template/cf_notes.tex create mode 100644 presentations/taler-mdb-36c3/.template/cf_slides.tex create mode 100644 presentations/taler-mdb-36c3/.template/cf_tablet.tex create mode 100644 presentations/taler-mdb-36c3/.template/img/BFH_Logo_A_en_100_4CU.pdf create mode 100644 presentations/taler-mdb-36c3/.template/img/BFH_Logo_HuCE_microLab_en_100_4CC.pdf create mode 100644 presentations/taler-mdb-36c3/.template/img/BFH_logo.pdf create mode 100755 presentations/taler-mdb-36c3/.template/mk_copySampleFiles.sh create mode 100755 presentations/taler-mdb-36c3/.template/mk_gitignore.sh create mode 100755 presentations/taler-mdb-36c3/.template/mk_latexmkrc.sh create mode 100755 presentations/taler-mdb-36c3/.template/mk_sample_lecture.sh create mode 100755 presentations/taler-mdb-36c3/.template/mk_variables.sh create mode 100644 presentations/taler-mdb-36c3/.template/sample/sample-flowChartSwitch.svg create mode 100644 presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.c create mode 100644 presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.cpp create mode 100644 presentations/taler-mdb-36c3/.template/sample/sample-learnProgLang.jpg create mode 100644 presentations/taler-mdb-36c3/.template/sample/sample-theRefs.bib create mode 100644 presentations/taler-mdb-36c3/.template/sty/adjcalc.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/adjustbox.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/adjustbox.sty.tex create mode 100644 presentations/taler-mdb-36c3/.template/sty/bfh-cli.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/bfh-colortabular.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/bfh-graphicref.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/bfh.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/cmbright.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/collectbox.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/geometry.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/handoutWithNotes.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/lecture-article.tex create mode 100644 presentations/taler-mdb-36c3/.template/sty/lecture-style.tex create mode 100644 presentations/taler-mdb-36c3/.template/sty/listings-bfh.tex create mode 100644 presentations/taler-mdb-36c3/.template/sty/pdfpc-commands.sty create mode 100644 presentations/taler-mdb-36c3/.template/sty/tc-dvips.def create mode 100644 presentations/taler-mdb-36c3/.template/sty/tc-pdftex.def create mode 100644 presentations/taler-mdb-36c3/.template/sty/tc-pgf.def create mode 100644 presentations/taler-mdb-36c3/.template/sty/tc-xetex.def create mode 100644 presentations/taler-mdb-36c3/.template/sty/trimclip.sty create mode 120000 presentations/taler-mdb-36c3/Makefile create mode 100644 presentations/taler-mdb-36c3/README.md create mode 120000 presentations/taler-mdb-36c3/cf_handouts.tex create mode 100644 presentations/taler-mdb-36c3/cf_notes.tex create mode 120000 presentations/taler-mdb-36c3/cf_slides.tex create mode 120000 presentations/taler-mdb-36c3/cf_tablet.tex create mode 100644 presentations/taler-mdb-36c3/database/sample-theRefs.bib create mode 100644 presentations/taler-mdb-36c3/exsrc/sample-helloWorld.c create mode 100644 presentations/taler-mdb-36c3/exsrc/sample-helloWorld.cpp create mode 100644 presentations/taler-mdb-36c3/lectures/presentation_36C3.tex create mode 100644 presentations/taler-mdb-36c3/pictures/built_with.png create mode 100644 presentations/taler-mdb-36c3/pictures/creation.png create mode 100644 presentations/taler-mdb-36c3/pictures/download_wallet.png create mode 100644 presentations/taler-mdb-36c3/pictures/dude_handy.jpg create mode 100644 presentations/taler-mdb-36c3/pictures/get_snacks.png create mode 100644 presentations/taler-mdb-36c3/pictures/get_taler_coins.png create mode 100644 presentations/taler-mdb-36c3/pictures/hardware_bunch.png create mode 100644 presentations/taler-mdb-36c3/pictures/hungry_dude.jpg create mode 100644 presentations/taler-mdb-36c3/pictures/hungry_dude_not_anymore.png create mode 100644 presentations/taler-mdb-36c3/pictures/mdb_hat_opt_1.png create mode 100644 presentations/taler-mdb-36c3/pictures/mdb_hat_opt_2.png create mode 100644 presentations/taler-mdb-36c3/pictures/mdb_hat_opt_used.png create mode 100644 presentations/taler-mdb-36c3/pictures/nfc_reader.png create mode 100644 presentations/taler-mdb-36c3/pictures/pi.png create mode 100644 presentations/taler-mdb-36c3/pictures/pitft.png create mode 100644 presentations/taler-mdb-36c3/pictures/sample-learnProgLang.jpg create mode 100644 presentations/taler-mdb-36c3/pictures/snackmachine.jpg create mode 100644 presentations/taler-mdb-36c3/pictures/students.jpg create mode 100644 presentations/taler-mdb-36c3/pictures/testbed.png create mode 100644 presentations/taler-mdb-36c3/pictures/visit_us.png create mode 100644 presentations/taler-mdb-36c3/svg/BFH_logo.svg create mode 100644 presentations/taler-mdb-36c3/svg/design.svg create mode 100644 presentations/taler-mdb-36c3/svg/sample-flowChartSwitch.svg create mode 100644 presentations/taler-mdb-36c3/svg/software_stack.svg create mode 100644 presentations/taler-mdb-36c3/svg/students_1.svg create mode 100644 presentations/taler-mdb-36c3/svg/students_2.svg create mode 100644 presentations/taler-mdb-36c3/svg/students_3.svg create mode 100644 presentations/taler-mdb-36c3/svg/taler-arch-full.svg create mode 100644 presentations/taler-mdb-36c3/svg/taler-arch-new.svg create mode 100644 presentations/taler-mdb-36c3/svg/taler-logo-2018.svg create mode 100644 presentations/taler-mdb-36c3/variables.tex diff --git a/presentations/taler-mdb-36c3/.template/CONTRIBUTING.md b/presentations/taler-mdb-36c3/.template/CONTRIBUTING.md new file mode 100644 index 0000000..7bbfdaa --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Contribution Guide + +Great you are reading this helpful and very important guide. I dried to keep things short. Feel free to jump to the most suitable section. + +## I Have Great Ideas... +If you were facing some bugs or have some great ideas for improvement apply for **reporter** access. Create separate issues. + + +## Wanna Pitch in... + +Great you get your hands dirty! Apply for **developer** access and send your changes as merge request on separate branches. For branch namespaces read below. + +## Notes for Developers + +### Branch Naming + + * Each new feature **must** be developed in its own branch. The feature branches are post-fixed with the namespace name *fb/* which stands for feature branch. + * Bug fixes or more precisely **hotfixes** are as well in separated branches and close one and only one particular issue. Such issues are flagged as bug. The namspace name for hotfixes is *hf/* + +### Merging + * It is allowed to merge directly from **hf/** to master. Increment patch counter. + * A merge from develop branch into muster undergoes a review and test. + * New features are merged into develop branch and from develop branch into master. Increment minor number counter. + * Massive changes and API changes will result in a new major release. Major releases are not backward compatible. + +### Semantic Versions + +Given a version number MAJOR.MINOR.PATCH, increment the: + * MAJOR version when you make incompatible API changes, + * MINOR version when you add functionality in a backwards-compatible manner, and + * PATCH version when you make backwards-compatible bug fixes. + +Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format. + +*For further reading see here https://semver.org/ \ No newline at end of file diff --git a/presentations/taler-mdb-36c3/.template/LICENSE b/presentations/taler-mdb-36c3/.template/LICENSE new file mode 100644 index 0000000..cb564da --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/LICENSE @@ -0,0 +1,163 @@ +GNU Lesser General Public License +================================= + +_Version 3, 29 June 2007_ +_Copyright © 2007 Free Software Foundation, Inc. <>_ + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + +This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + +### 0. Additional Definitions + +As used herein, “this License” refers to version 3 of the GNU Lesser +General Public License, and the “GNU GPL” refers to version 3 of the GNU +General Public License. + +“The Library” refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + +An “Application” is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + +A “Combined Work” is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the “Linked +Version”. + +The “Minimal Corresponding Source” for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + +The “Corresponding Application Code” for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +### 1. Exception to Section 3 of the GNU GPL + +You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +### 2. Conveying Modified Versions + +If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + +* **a)** under this License, provided that you make a good faith effort to +ensure that, in the event an Application does not supply the +function or data, the facility still operates, and performs +whatever part of its purpose remains meaningful, or + +* **b)** under the GNU GPL, with none of the additional permissions of +this License applicable to that copy. + +### 3. Object Code Incorporating Material from Library Header Files + +The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + +* **a)** Give prominent notice with each copy of the object code that the +Library is used in it and that the Library and its use are +covered by this License. +* **b)** Accompany the object code with a copy of the GNU GPL and this license +document. + +### 4. Combined Works + +You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + +* **a)** Give prominent notice with each copy of the Combined Work that +the Library is used in it and that the Library and its use are +covered by this License. + +* **b)** Accompany the Combined Work with a copy of the GNU GPL and this license +document. + +* **c)** For a Combined Work that displays copyright notices during +execution, include the copyright notice for the Library among +these notices, as well as a reference directing the user to the +copies of the GNU GPL and this license document. + +* **d)** Do one of the following: + - **0)** Convey the Minimal Corresponding Source under the terms of this +License, and the Corresponding Application Code in a form +suitable for, and under terms that permit, the user to +recombine or relink the Application with a modified version of +the Linked Version to produce a modified Combined Work, in the +manner specified by section 6 of the GNU GPL for conveying +Corresponding Source. + - **1)** Use a suitable shared library mechanism for linking with the +Library. A suitable mechanism is one that **(a)** uses at run time +a copy of the Library already present on the user's computer +system, and **(b)** will operate properly with a modified version +of the Library that is interface-compatible with the Linked +Version. + +* **e)** Provide Installation Information, but only if you would otherwise +be required to provide such information under section 6 of the +GNU GPL, and only to the extent that such information is +necessary to install and execute a modified version of the +Combined Work produced by recombining or relinking the +Application with a modified version of the Linked Version. (If +you use option **4d0**, the Installation Information must accompany +the Minimal Corresponding Source and Corresponding Application +Code. If you use option **4d1**, you must provide the Installation +Information in the manner specified by section 6 of the GNU GPL +for conveying Corresponding Source.) + +### 5. Combined Libraries + +You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + +* **a)** Accompany the combined library with a copy of the same work based +on the Library, uncombined with any other library facilities, +conveyed under the terms of this License. +* **b)** Give prominent notice with the combined library that part of it +is a work based on the Library, and explaining where to find the +accompanying uncombined form of the same work. + +### 6. Revised Versions of the GNU Lesser General Public License + +The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License “or any later version” +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/presentations/taler-mdb-36c3/.template/Makefile b/presentations/taler-mdb-36c3/.template/Makefile new file mode 100644 index 0000000..03b5052 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/Makefile @@ -0,0 +1,296 @@ +## +## Used commands by the build process +## +CWD := $(shell pwd) +RM=rm + +## +## Internal variables +## +_BUILD_DIR=_build +_OUT_DIR=_output +_XFIG_DIR=fig +_MAINFILE:= $(MAINFILE:.tex=) +export _TEMPLATE=.template +export _SVG_DIR=svg +_LECTURE=$(LECTURE:.tex=) +export _LECTURES=lectures +export _EXSRC=exsrc +export _PICTURES=pictures + +## Template mode configuration files +_CF_HANDOUTS=cf_handouts +_CF_TABLET=cf_tablet +_CF_NOTES=cf_notes +_CF_SLIDES=cf_slides + +## +## Ext variables for build ctrl. All use a default set +## +MAINFILE ?= ${_CF_SLIDES} +LECTURE ?= sample_lecture.tex +DEBUG ?= 0 + +## bibtex data files +export _DB_DIR=database + + + +_TEMPLATE_DIRS=${_LECTURES} \ + ${_XFIG_DIR} \ + ${_SVG_DIR} \ + ${_DB_DIR} \ + ${_EXSRC} \ + ${_PICTURES} + + +## +## Eval dest dir +## +ifeq (${_CWD_NAME},${_TEMPLATE}) + _DESTINATION_DIR=.. +else + _DESTINATION_DIR=. +endif + +export _DESTINATION_DIR + +## +## Lists +## +SVGFILES := $(wildcard $(_SVG_DIR)/*.svg) +XFIGFILES := $(wildcard $(_XFIG_DIR)/*.fig) + +export TEXINPUTS :=./:${_TEMPLATE}:${_TEMPLATE}/sty:${_TEMPLATE}/img:${_LECTURES}:${_DB_DIR}:${_EXSRC}:${_PICTURES}:$(TEXINPUTS) + + +ifeq ($(DEBUG), 2) +# Extra options, these must be available for both pdflatex and latexmk + _DEFAULT_LATEX_OPTIONS=-synctex=1 -output-directory=$(_BUILD_DIR) -aux-directory=$(_BUILD_DIR) +else ifeq ($(DEBUG), 1) +# Extra options, these must be available for both pdflatex and latexmk + _DEFAULT_LATEX_OPTIONS=-synctex=1 -output-directory=$(_BUILD_DIR) -aux-directory=$(_BUILD_DIR) -interaction=batchmode +else + _DEFAULT_LATEX_OPTIONS=-synctex=1 -output-directory=$(_BUILD_DIR) -aux-directory=$(_BUILD_DIR) -interaction=batchmode -quiet -silent +endif + +# Options for glossary +_GLOSSARY_OPTIONS = -q + +_LINE_WIDTH = error_line=240 half_error_line=160 max_print_line=240 + +# Command to build document +#_BUILD = $(_LINE_WIDTH) latexmk -pdf -bibtex- -jobname=$(_MAINFILE) $(_DEFAULT_LATEX_OPTIONS) $(_MAINFILE) +_BUILD = $(_LINE_WIDTH) latexmk -pdf -jobname=$(_MAINFILE) $(_DEFAULT_LATEX_OPTIONS) $(_MAINFILE) + +# Command to build glossary and glossarylists +# (Not using -d option due to incompatibility with some systems) +_BUILD_GLOSSARY = cd $(BUILD_DIR) &&\ + makeglossaries $(_GLOSSARY_OPTIONS) $(_MAINFILE) &&\ + cd - >/dev/null + +# Command to build bibliography +# Latexmk does not currently handle this well when building to subdir +# so we do it manually +#_BUILD_BIBLIOGRAPHY = bibtex $(_BUILD_DIR)/$(_MAINFILE) + +##_PARSE_LOG = sed '/[Cc]\:.*\:.*\:.*/,/.*/!d' $(_BUILD_DIR)/$(MAINFILE:.tex=.log) + +.PHONY : init list help slides handouts notes tablet distclean clean mrproper migrate + +help: + @echo "MAKE OPTIONS" + @echo "==========================================================================" + @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + @echo "" + @echo "LECTURE=lecture_* : Set target lecture (use LIST for a overview)" + @echo "DEBUG=[0|1|2] : Increase LaTex build verbosity level" + @echo "" + @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + @echo ">> Information targets" + @echo "--------------------------------------------------------------------------" + @echo "help : Print this dialogue" + @echo "[s*|h*|m*]_show : Build slide of LECTURE and display the corresponding" + @echo " build mode [slides_show | handouts_show | memo_show]" + @echo "list : List available LECTURES located in '$(_LECTURES)/'" + @echo "" + @echo ">> Build Targets" + @echo "--------------------------------------------------------------------------" + @echo "" + @echo "bundle : Build a LECTURE set (slides, handouts, and memo)" + @echo "slides : Build LECTURE slides" + @echo "handouts : Build LECTURE handouts" + @echo "tablet : Build LECTURE tabled" + @echo "notes : Build LECTURE notes" + @echo "convert : Convert *.fig and *.svg files. (The following direct-" + @echo " ories are parsed : '$(_XFIG_DIR)' and '$(_SVG_DIR)')" + @echo "" + @echo ">> Clean Targets" + @echo "--------------------------------------------------------------------------" + @echo "" + @echo "clean : Remove files in directory '$(_BUILD_DIR)/'" + @echo "mrproper : Remove temp files such as '*~'" + @echo "distclean : Cleanup everything and remove all '_*' directories" + @echo "" + @echo ">> Initialization and Migration Targets" + @echo "--------------------------------------------------------------------------" + @echo "" + @echo "init : Create all directories holding important source and" + @echo " and add simlinks to the cf files" + @echo "" + @echo "sample : Create sample presentation source file" + @echo " Build the presentation with command given below:" + @echo " LECTURE=sample_lecture make convert bundle slides_show" + @echo "" + @echo "migrate : Convert current directory structure and files to make" + @echo " it compliant to newest build system requirements." + @echo "" + @echo "" + @echo "==========================================================================" + @echo "Author : Andreas HABEGGER " + @echo "Date : 2019-09-30" + @echo "Version: v2.0" + @echo "==========================================================================" + @echo "" + +bundle: slides handouts tablet + @echo "" + @echo "*****************************************************************************************" + @echo "** A lecturing set has been produced for lecture: $(_LECTURE)" + @echo "*****************************************************************************************" + @echo "" + +init: $(_TEMPLATE_DIRS) _mkgitignore_ _mklatexmkrc_ _mkvariables_ + @if [ ! -f ${_CF_HANDOUTS}.tex ]; then ln -s ${_TEMPLATE}/${_CF_HANDOUTS}.tex; fi + @if [ ! -f ${_CF_TABLET}.tex ]; then ln -s ${_TEMPLATE}/${_CF_TABLET}.tex; fi + @if [ ! -f ${_CF_SLIDES}.tex ]; then ln -s ${_TEMPLATE}/${_CF_SLIDES}.tex; fi +# @if [ ! -f ${_CF_NOTES}.tex ]; then ln -s ${_TEMPLATE}/${CF_NOTES}.tex; fi + @echo "Initialization of new exam environment completed ..." + + +slides_show: _slides_ + @$(_LINE_WIDTH) latexmk -pdf -pv -bibtex -jobname=$(_MAINFILE) $(_DEFAULT_LATEX_OPTIONS) $(MAINFILE) + +handouts_show: _handouts_ + @$(_LINE_WIDTH) latexmk -pdf -pv -bibtex -jobname=$(_MAINFILE) $(_DEFAULT_LATEX_OPTIONS) $(MAINFILE) + +tablet_show: _tablet_ + @$(_LINE_WIDTH) latexmk -pdf -pv -bibtex -jobname=$(_MAINFILE) $(_DEFAULT_LATEX_OPTIONS) $(MAINFILE) + +list: + @if [ -d $(_LECTURES) ]; then ls $(_LECTURES)/*.tex | cut -d"/" -f2-; fi + +sample: $(_TEMPLATE_DIRS) _mksample_lecture_ _cpsample_ + @echo "Sample lecture created... !" + +slides: _slides_ + @cp $(_BUILD_DIR)/$(_MAINFILE).pdf $(_OUT_DIR)/$(_LECTURE)_$@.pdf + +handouts: _handouts_ + @cp $(_BUILD_DIR)/$(_MAINFILE).pdf $(_OUT_DIR)/$(_LECTURE)_$@.pdf + +notes: _notes_ + @cp $(_BUILD_DIR)/$(_MAINFILE).pdf $(_OUT_DIR)/$(_LECTURE)_$@.pdf + +tablet: _tablet_ + @cp $(_BUILD_DIR)/$(_MAINFILE).pdf $(_OUT_DIR)/$(_LECTURE)_$@.pdf + +archive: + @git archive --format zip --prefix lectureTemplate/ master > ../lectureTemplate.zip + +convert: _mkdir_ _convsvg_ _convfig_ + +clean: + @if [ -d $(_BUILD_DIR) ]; then \ + rm -f $(_BUILD_DIR)/${_CF_HANDOUTS}.* \ + $(_BUILD_DIR)/${_CF_TABLET}.* \ + $(_BUILD_DIR)/${_CF_NOTES}.* \ + $(_BUILD_DIR)/${_CF_SLIDES}.* \ + ;fi + +migrate: _migrate_001_ $(_TEMPLATE_DIRS) _mkgitignore_ _mklatexmkrc_ _mkvariables_ + @echo "Migration from old template to new version completed!" + +mrproper: + @find . -iname '*~' -exec $(RM) '{}' \; + @find . -iname '#*' -exec $(RM) '{}' \; + +distclean: mrproper clean + @latexmk -C > /dev/null 2>&1 + @if [ -d $(_BUILD_DIR) ] && [ `readlink -f $(_BUILD_DIR)` != $(CWD) ]; then $(RM) -rf $(_BUILD_DIR) > /dev/null; fi + @if [ -d $(_OUT_DIR) ] && [ `readlink -f $(_OUT_DIR)` != $(CWD) ]; then $(RM) -rf $(_OUT_DIR) > /dev/null; fi + +$(_TEMPLATE_DIRS): + @if [ ! -d $@ ]; then mkdir -p ${_DESTINATION_DIR}/$@; fi + +_slides_: _mkmain_ + $(eval _MAINFILE := ${_CF_SLIDES}) + @$(_BUILD) && echo "" + +_handouts_: _mkmain_ + $(eval _MAINFILE := ${_CF_HANDOUTS}) + @$(_BUILD) && echo "" + +_notes_: _mkmain_ + $(eval _MAINFILE := ${_CF_NOTES}) + @$(_BUILD) && echo "" + +_tablet_: _mkmain_ + $(eval _MAINFILE := ${_CF_TABLET}) + @$(_BUILD) && echo "" + +_mkdir_: + @mkdir -p $(_BUILD_DIR) &>/dev/null + @mkdir -p $(_OUT_DIR) &>/dev/null + +_mkmain_: _mkdir_ + @echo "\\def\\lectureToBuild{${LECTURE}}" > $(_BUILD_DIR)/env.tex + @if [ -d $(_DB_DIR) ]; then find $(_DB_DIR)/ -iname '*.bib' -exec cp '{}' $(_BUILD_DIR)/ \; ;fi + +_mkgitignore_: + @${_DESTINATION_DIR}/${_TEMPLATE}/mk_gitignore.sh + +_mklatexmkrc_: + @${_DESTINATION_DIR}/${_TEMPLATE}/mk_latexmkrc.sh + +_mkvariables_: + @if [ -e ${_DESTINATION_DIR}/variables.tex ]; then \ + echo "Backup 'variables.tex' "; \ + cp ${_DESTINATION_DIR}/variables.tex ${_DESTINATION_DIR}/_variables.tex.backup; \ + fi + @${_DESTINATION_DIR}/${_TEMPLATE}/mk_variables.sh + +_mksample_lecture_: + @${_DESTINATION_DIR}/${_TEMPLATE}/mk_sample_lecture.sh + +_cpsample_: + @${_DESTINATION_DIR}/${_TEMPLATE}/mk_copySampleFiles.sh + +_convfig_: $(XFIGFILES:%.fig=%.pdf) #$(XFIGFILES:%.fig=%.png) $(XFIGFILES:%.fig=%.eps) + +_convsvg_: $(SVGFILES:%.svg=%.pdf) #$(SVGFILES:%.svg=%.png) + +_migrate_001_: + @if [ -d ${_DESTINATION_DIR}/images ]; then \ + echo "Rename 'images' -> ${_PICTURES}"; \ + mv ${_DESTINATION_DIR}/images ${_PICTURES}; \ + fi + +%.eps:%.fig + fig2dev -L eps $*.fig $(*:$(_XFIG_DIR)/%=$(_BUILD_DIR)/%).eps + +%.png:%.fig + fig2dev -L png $*.fig $(*:$(_XFIG_DIR)/%=$(_BUILD_DIR)/%).png + +%.pdf:%.fig + fig2dev -L pdftex $*.fig $(*:$(_XFIG_DIR)/%=$(_BUILD_DIR)/%).pdf;\ + fig2dev -L pdftex_t -p $(*:$(_XFIG_DIR)/%=$(_BUILD_DIR)/%).pdf $*.fig $(*:$(_XFIG_DIR)/%=$(_BUILD_DIR)/%).pdf_t + +%.pdf:%.svg + inkscape --without-gui --export-area-page -A $(*:$(_SVG_DIR)/%=$(_BUILD_DIR)/%).pdf $*.svg + +%.eps:%.svg + inkscape --without-gui --export-area-page -E $(*:$(_SVG_DIR)/%=$(_BUILD_DIR)/%).eps $*.svg + +%.png:%.svg + inkscape --without-gui --export-area-page -e $(*:$(_SVG_DIR)/%=$(_BUILD_DIR)/%).png $*.svg diff --git a/presentations/taler-mdb-36c3/.template/README.md b/presentations/taler-mdb-36c3/.template/README.md new file mode 100644 index 0000000..0cd0786 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/README.md @@ -0,0 +1,139 @@ +IMAGE ALT TEXT HERE + +# Description - LaTex Course Build System + +This build system is based on BFH LaTex beamer template but can be used with any other LaTex beamer template. + + +##### Company +Bern University of Applied Sciences + +##### Purpose + This template is for creating and managing course lectures based on LaTex files. + + Building from LaTex source a complex beamer education bundle is quite tricky. To overcome this the build environment uses make for a layer of build system control and latexmk for converting Tex to PDF. + +##### Author + Andreas HABEGGER + + +## Linux Prerequisites (Debian/Ubuntu) +Follow the procedure below to install 3rd party package (Debian/Ubuntu). + +Install used LaTex packages: +```bash +apt-get install texlive-base texlive-extra-utils texlive-generic-recommended texlive-latex-base texlive-latex-extra +``` + +Install used fonts packages: +```bash +apt-get install texlive-fonts-extra texlive-fonts-recommended +``` +Install used build environment packages +```bash +apt-get install latexmk make git +``` +Install used converter packages +```bash +apt-get install inkscape +``` + +## Set-Up the Build System + - Create project directory + +```bash +mkdir +cd +``` + - Activate Git version control for that project + +```bash +git init +``` + - Add the build system as a git sub-module (the submodul name .template is important) + +```bash +git submodule add git@gitlab.ti.bfh.ch:latex-utils/tpl_latex-course.git .template +``` + - Link the Makefile from within .template directory + +```bash +ln -s .template/Makefile +``` + - Make default structure of project + +```bash +make init +``` + - (optional) Create default sample presentation to get started quick. + +```bash +make sample +``` + - List available lectures after creating a sample lecture + +```bash +make list +``` + - Convert SVGs into PDF pictures +```bash +make convert +``` + + - Translate sample lecture into PDF slides and handouts. (Look-up the documents in output drectory called "_output".) + +```bash +LECTURE=sample_lecture make bundle +``` + - Display all possible make targets. + +```bash +make help +``` + +## Did You Know!? +### List Lectures +Get an overview of available lectures +```bash +make list +``` + +### LECTURE Environment Variable Support +If you do lots of builds when developing a specific "lecture", export the variable **LECTURE** +```bash +export LECTURE=lecture_sample +``` +Having the variable "LECTURE" in the bash environment allows shorter build command. +```bash +make slide +``` +### Increase Verbosity Level +The variable DEBUG controls the verbosity level + * [0] As quiet as possible + * [1] Get more details to build steps (latexmk still in batch mode) + * [2] Build in interactive mode + +Set a verbosity level other than zero +```bash +DEBUG=2 +``` +### Get List of Available Lectures +To get an overview about lectures available in the "lectures" folder use the **list** target +```bash +make list +``` + +### Convert XFIGs and SVGs +To convert fig and svg files use the **convert** target. Did you know the location for such files is fig or svg, respectively. +```bash +make convert +``` +### Compress Your Work +```bash +make archive +``` +or +```bash +git archive --format zip --prefix --output ../.zip master +``` +___ diff --git a/presentations/taler-mdb-36c3/.template/cf_handouts.tex b/presentations/taler-mdb-36c3/.template/cf_handouts.tex new file mode 100644 index 0000000..547a49f --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/cf_handouts.tex @@ -0,0 +1,8 @@ +\documentclass[handout]{beamer} +\usepackage{etex} +\usepackage{handoutWithNotes} +\def\beamerTitlepageMode{} +\input{lecture-style.tex} +\pgfpagesuselayout{3 on 1 with diamonds}[a4paper,border shrink=5mm] +\input{env.tex} +\input{\lectureToBuild} diff --git a/presentations/taler-mdb-36c3/.template/cf_notes.tex b/presentations/taler-mdb-36c3/.template/cf_notes.tex new file mode 100644 index 0000000..b5c6a4d --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/cf_notes.tex @@ -0,0 +1,5 @@ +\documentclass[11pt]{extarticle} +\usepackage{beamerarticle} +\input{lecture-style.tex} +\input{env.tex} +\input{\lectureToBuild} diff --git a/presentations/taler-mdb-36c3/.template/cf_slides.tex b/presentations/taler-mdb-36c3/.template/cf_slides.tex new file mode 100644 index 0000000..34dd854 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/cf_slides.tex @@ -0,0 +1,4 @@ +\documentclass[10pt]{beamer} +\input{lecture-style} +\input{env.tex} +\input{\lectureToBuild} diff --git a/presentations/taler-mdb-36c3/.template/cf_tablet.tex b/presentations/taler-mdb-36c3/.template/cf_tablet.tex new file mode 100644 index 0000000..117d8b2 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/cf_tablet.tex @@ -0,0 +1,8 @@ +\documentclass[handout]{beamer} +\usepackage{etex} +\usepackage{handoutWithNotes} +\def\beamerTitlepageMode{} +\input{lecture-style.tex} +\pgfpagesuselayout{1 on 1 without notes landscape}[a5paper] +\input{env.tex} +\input{\lectureToBuild} diff --git a/presentations/taler-mdb-36c3/.template/img/BFH_Logo_A_en_100_4CU.pdf b/presentations/taler-mdb-36c3/.template/img/BFH_Logo_A_en_100_4CU.pdf new file mode 100644 index 0000000..9fe2ca6 Binary files /dev/null and b/presentations/taler-mdb-36c3/.template/img/BFH_Logo_A_en_100_4CU.pdf differ diff --git a/presentations/taler-mdb-36c3/.template/img/BFH_Logo_HuCE_microLab_en_100_4CC.pdf b/presentations/taler-mdb-36c3/.template/img/BFH_Logo_HuCE_microLab_en_100_4CC.pdf new file mode 100644 index 0000000..9b68ff5 Binary files /dev/null and b/presentations/taler-mdb-36c3/.template/img/BFH_Logo_HuCE_microLab_en_100_4CC.pdf differ diff --git a/presentations/taler-mdb-36c3/.template/img/BFH_logo.pdf b/presentations/taler-mdb-36c3/.template/img/BFH_logo.pdf new file mode 100644 index 0000000..9fe2ca6 Binary files /dev/null and b/presentations/taler-mdb-36c3/.template/img/BFH_logo.pdf differ diff --git a/presentations/taler-mdb-36c3/.template/mk_copySampleFiles.sh b/presentations/taler-mdb-36c3/.template/mk_copySampleFiles.sh new file mode 100755 index 0000000..e938d40 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/mk_copySampleFiles.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# generate sample_lecture.tex +# Based on an idea by Albert Reiner. + +SAMPLE_DIR="sample" +COPY_FILES=(`ls ${_TEMPLATE}/${SAMPLE_DIR}/`) + +for idx in ${!COPY_FILES[@]}; do + DEST_FOLDER="" + + case ${COPY_FILES[idx]} in + *.png) + DEST_FOLDER=${_PICTURES} + ;; + *.jpg) + DEST_FOLDER=${_PICTURES} + ;; + *.svg) + DEST_FOLDER=${_SVG_DIR} + ;; + *.bib) + DEST_FOLDER=${_DB_DIR} + ;; + *.c) + DEST_FOLDER=${_EXSRC} + ;; + *.cpp) + DEST_FOLDER=${_EXSRC} + ;; + *) + echo "No location set for : $FILE" + ;; + esac + + cp ${_TEMPLATE}/${SAMPLE_DIR}/${COPY_FILES[idx]} ${_DESTINATION_DIR}/${DEST_FOLDER} + +done + +exit 0 diff --git a/presentations/taler-mdb-36c3/.template/mk_gitignore.sh b/presentations/taler-mdb-36c3/.template/mk_gitignore.sh new file mode 100755 index 0000000..46e41dd --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/mk_gitignore.sh @@ -0,0 +1,81 @@ +#!/bin/bash +# generate variables.txt +# Author: Andreas HABEGGER +# Date : 2017 +# Based on an idea by Albert Reiner. + +_FILE_PERM=644 + +OUTFILE=".gitignore" # Name of the file to generate. + +OUTFILE="${_DESTINATION_DIR}/${OUTFILE}" + +# ----------------------------------------------------------- +# 'Here document containing the body of the generated script. +( +cat <<'EOF' +# Ignore Linux temp files +*~ + +# Ignore Mac specific files +.DS_Store + +# Ignore Windows temp files +*.log +*.temp +*.tmp + +# Ignore NFS lock ressources +.nfs* + +# Ignore Snapshots directories +.snapshot + +#ignore all autobuild directories +_* + +# ignore Emacs temp buffers +\#* +\.#* + +# ignore TAR archives +*.tar + +# exclude vc version-check scripts +vc.tex +temp/ +*.log + +# do not track merge or other orig cpy files +*.orig + +# exclude files other than *.c from exsrc +exsrc/* +!exsrc/*.c +!exsrc/*.h +!exsrc/*.cpp +!exsrc/*.hpp +!exsrc/*.hh +!exsrc/*.cc + +# Ignore all sample files +sample-* +sample_lecture* + +EOF +) > $OUTFILE +# ----------------------------------------------------------- + +# Quoting the 'limit string' prevents variable expansion +# within the body of the above 'here document.' +# This permits outputting literal strings in the output file. + +if [ -f "$OUTFILE" ] +then + chmod ${_FILE_PERM} ${OUTFILE} +else + echo "Problem in creating file: \"$OUTFILE\"" +fi + + +exit 0 diff --git a/presentations/taler-mdb-36c3/.template/mk_latexmkrc.sh b/presentations/taler-mdb-36c3/.template/mk_latexmkrc.sh new file mode 100755 index 0000000..fefbd72 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/mk_latexmkrc.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# generate latexmkrc +# Author: Andreas HABEGGER +# Date : 2017 +# Based on an idea by Albert Reiner. + +_FILE_PERM=644 + +OUTFILE=.latexmkrc # Name of the file to generate. + +OUTFILE="${_DESTINATION_DIR}/${OUTFILE}" + +# ----------------------------------------------------------- +# 'Here document containing the body of the generated script. +( +cat <<'EOF' +$dvi_previewer = 'start xdvi -watchfile 1.5'; +$ps_previewer = 'start gv --watch'; +$pdf_previewer = 'start xdg-open'; + +@cus_dep_list = (@cus_dep_list, "eps pdf 0 eps2pdf"); +sub eps2pdf { + system("epstopdf $_[0].eps"); } + +$latex = 'latex -interaction=nonstopmode -shell-escape'; + +$pdflatex = 'pdflatex -interaction=nonstopmode -shell-escape'; + +$bibtex_use = 2; + +EOF +) > $OUTFILE +# ----------------------------------------------------------- + +# Quoting the 'limit string' prevents variable expansion +#+ within the body of the above 'here document.' +# This permits outputting literal strings in the output file. + +if [ -f "$OUTFILE" ] +then + chmod ${_FILE_PERM} ${OUTFILE} +else + echo "Problem in creating file: \"$OUTFILE\"" +fi + + + +exit 0 diff --git a/presentations/taler-mdb-36c3/.template/mk_sample_lecture.sh b/presentations/taler-mdb-36c3/.template/mk_sample_lecture.sh new file mode 100755 index 0000000..3bf6f41 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/mk_sample_lecture.sh @@ -0,0 +1,233 @@ +#!/bin/bash +# generate sample_lecture.tex +# Author: Andreas HABEGGER +# Date : 2017 +# Based on an idea by Albert Reiner. + +_FILE_PERM=644 + +OUTFILE=sample_lecture.tex # Name of the file to generate. + +OUTFILE="${_DESTINATION_DIR}/${_LECTURES}/${OUTFILE}" + +# ----------------------------------------------------------- +# 'Here document containing the body of the generated script. +( +cat <<'EOF' +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Lecture specific settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\lecture[SAMPLE]{LaTex Sample Lecture} + +\subtitle{Based on examples get started with the template} + +\date{Aug. 30, 2016} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Do not modify the following lines untile section : +%% -> "Add your presentation content" +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} +\input{lecture-article} + +\lstset{style=bfh-c} + + +\begin{frame}[plain] + \maketitle +\end{frame} + +\begin{frame}\frametitle{Agenda} +\tableofcontents[ +% currentsection, % causes all sections but the current to be shown in a semi-transparent way. + currentsubsection, % causes all subsections but the current subsection in the current section to ... +% hideallsubsections, % causes all subsections to be hidden. +% hideothersubsections, % causes the subsections of sections other than the current one to be hidden. + subsectionstyle=show/shaded, +% part=, % part number causes the table of contents of part part number to be shown + pausesections, % causes a \pause command to be issued before each section. This is useful if you +% pausesubsections, % causes a \pause command to be issued before each subsection. +% sections={ overlay specification }, + ] +\end{frame} + +\addtocontents{toc}{\vskip -0.1cm} %new code + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Add your presentation contetn below +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{section} +%%%--------------------------------------- +\frame[t]{\frametitle{Some Slide Title} + \framesubtitle{Examine some basic code. Take a look at the (very) basic program below to get a good idea about how some of the various aspects of the language work together, and to get an idea of how programs function.} + \only<2->{ + \lstinputlisting[basicstyle=\ttfamily\scriptsize]{sample-helloWorld.c} + } + \only<3>{ + \begin{itemize} + \item The \texttt{\#include} command occurs before the program starts, and loads libraries that contain the functions you need. In this example, \texttt{stdio.h} lets us use the \texttt{printf()} and \texttt{getchar()} functions. + \item The \texttt{int main()} command tells the compiler that the program is running the function called ``main'' and that it will return an integer when it is finished. All-most all C programs run a ``main'' function. + \item The \texttt{\{\}} indicate that everything inside them is part of the function. In this case, they denote that everything inside is a part of the ``main'' function. + \item The \texttt{printf()} function displays the contents of the parentheses on the user's screen. The quotes ensure that the string inside is printed literally. The \textbackslash~n sequence tells the compiler to move the cursor to the next line. + \end{itemize} + } + \only<4-|handout:0>{ + \begin{itemize} + \item The ``;'' denotes the end of a line. Most lines of C code need to end with a semicolon. + \item The \texttt{getchar()} command tells the compiler to wait for a keystroke input before moving on. This is useful because many compilers will run the program and immediately close the window. This keeps the program from finishing until a key is pressed. + \item The \texttt{return 0 } command indicates the end of the function. This means that it will need an integer to be returned once the program is finished.\footnote{A ``0'' indicates that the program has performed correctly; any other number will mean that the program ran into an error.} + \end{itemize} + } +}\note{ +} +%%%--------------------------------------- +\subsection[short]{A very very very long title} +%%%--------------------------------------- +\frame[c]{\frametitle{A graphic based on SVG source} + \begin{figure} + \centering + \includegraphics[width=.4\textwidth]{sample-flowChartSwitch} + \caption{The flow-chart of the switch case control statement} + \label{fig:flowChartSwitch} + \end{figure} +}\note{ +} +%%%--------------------------------------- +\subsection[other]{A very very very long title} +%%%--------------------------------------- +\frame[t]{\frametitle{A picture from internet} +Understanding flow-charts is basic skill for an engineer. One is shown on slide~\pageref{fig:flowChartSwitch}. + \begin{figure} + \centering + \includegraphics[width=.4\textwidth]{sample-learnProgLang} + \caption{Daily text snippet of a coder.} + \source[Image]{learnProgLang} + \label{fig:learnProgLang} + \end{figure} +}\note{ +} +%%%--------------------------------------- +\subsection[exercise]{A very very very heavy exercise } +%%%--------------------------------------- +\frame[t]{ + \begin{block}{Exercise} + Some meaningful exercise!! + \end{block} + \noindent + \textbf{Solution.}\nopagebreak\vspace{2in} +} +%%%--------------------------------------- +\section{An other section} +\sectionpage +%%%--------------------------------------- +\frame[c]{\frametitle{The box env } + \begin{block}{Blocktitel} + Blocktext + \end{block} + \begin{exampleblock}{Beispielblocktitel} + Beispielblocktext + \end{exampleblock} + \begin{alertblock}{Warnungsblocktitel} + Warnungsblocktext + \end{alertblock} + \only<2->{ + \lstinputlisting[style=bfh-cpp,basicstyle=\ttfamily\scriptsize]{sample-helloWorld.cpp} + } +}\note{ +} +%%%--------------------------------------- +\frame[c]{\frametitle{Shell examples} + \begin{itemize} + \item An ordinary user shell command.\hfill\\ + \begin{cli}git log \end{cli} + \item A command on a root shell.\hfill\\ + \begin{cli}[\#]apt update \&\& apt install -Y tree\end{cli} + \item A user shell where a command with super user perm.\hfill\\ + \begin{cli}sudo pstree\end{cli} + \end{itemize} +} \note{ +} +%%%--------------------------------------- +\section{Some math stuff} +\sectionpage +%%%--------------------------------------- +\frame[t]{\frametitle{Exercise } + \begin{enumerate} + \item Let $X\sim\mathcal{U}(0,10)$. Find $\P(|X-5|>4)$.\\ + \item Let $X\sim\mathcal{N}(\mu,\sigma^2)$. Find $\P(|X-\mu|>2\sigma)$.\\ + \end{enumerate} +}\note{ +} +%%%--------------------------------------- +\frame[c]{\frametitle{The box env } + \begin{lemma}[XY -- Ein Dual zu YX] + Lemma + \end{lemma} +}\note{ +} +%%%--------------------------------------- +\frame[c]{\frametitle{The box env } + \begin{theorem}[T -- Nach Tarski] + Theorem + \end{theorem} +}\note{ +} + + \section{section} + +%%%--------------------------------------- +\subsection{The definitions} +%%%--------------------------------------- +\frame[c]{\frametitle{The box env } + \begin{definition} + Definition bla bla bla bla bla + \end{definition} +}\note{ +} +%%%--------------------------------------- +\frame[t]{ + \begin{block}{Exercise} + \end{block} + \noindent + \textbf{Solution.}\nopagebreak\vspace{2in} +} +%%%--------------------------------------- +\begin{frame}[c,allowframebreaks]{Text on multiple slides} +A\\ A\\ A\\ A\\ A\\ A\\ A\\ A\\ A\\ A\\ A\\ A\\ A\\ +\framebreak +B\\ B\\ B\\ B\\ B\\ B\\ B\\\framebreak B\\ B\\ B\\ B\\ B\\ B\\ +\end{frame} +\note{ +} +%%%--------------------------------------- +\begin{frame}[c,allowframebreaks]{References} + \tiny{\bibliographystyle{abbrv} } + \bibliography{sample-theRefs} +\end{frame} +\note{ +} +%%%--------------------------------------- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Do not modify below +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\end{document} +EOF +) > $OUTFILE +# ----------------------------------------------------------- + +# Quoting the 'limit string' prevents variable expansion +#+ within the body of the above 'here document.' +# This permits outputting literal strings in the output file. + +if [ -f "$OUTFILE" ] +then + chmod ${_FILE_PERM} ${OUTFILE} +else + echo "Problem in creating file: \"$OUTFILE\"" +fi + + + +exit 0 diff --git a/presentations/taler-mdb-36c3/.template/mk_variables.sh b/presentations/taler-mdb-36c3/.template/mk_variables.sh new file mode 100755 index 0000000..970e7a4 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/mk_variables.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# generate variables.tex +# Author: Andreas HABEGGER +# Date : 2017 +# Based on an idea by Albert Reiner. + +_FILE_PERM=644 + +OUTFILE=variables.tex # Name of the file to generate. +OUTFILE="${_DESTINATION_DIR}/${OUTFILE}" + +# ----------------------------------------------------------- +# 'Here document containing the body of the generated script. +( +cat <<'EOF' + +%% Replace COURSE_TITLE by the appropriate course title +\def\coursename{COURSE\_TITLE} + +%% Replace NAME with first and last file of the author +\def\lecturername{Prof. NAME} + +%% Replace EMAIL NAME by author email address +\def\lectureremail{} + +%% Modify company name +\def\universityname{Bern University of Applied Sciences} + +%% Modify division name +\def\departmentname{Micro- and Medicaltechnology} + +%% Modify revison +\def\revision{1.0} + +EOF +) > $OUTFILE +# ----------------------------------------------------------- + +# Quoting the 'limit string' prevents variable expansion +#+ within the body of the above 'here document.' +# This permits outputting literal strings in the output file. + +if [ -f "$OUTFILE" ] +then + chmod ${_FILE_PERM} ${OUTFILE} +else + echo "Problem in creating file: \"$OUTFILE\"" +fi + + + +exit 0 diff --git a/presentations/taler-mdb-36c3/.template/sample/sample-flowChartSwitch.svg b/presentations/taler-mdb-36c3/.template/sample/sample-flowChartSwitch.svg new file mode 100644 index 0000000..2f46218 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sample/sample-flowChartSwitch.svg @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Statements_C + + + + DefaultStatements + + + + Statements_A + + + + Done + + + + Start + + + + ConditionA + + + + ConditionB + + + + ConditionC + + T + F + + + Default + + + + Statements_B + + + + + + + + + + + + + + T + T + T + F + F + + diff --git a/presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.c b/presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.c new file mode 100644 index 0000000..5edd67e --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.c @@ -0,0 +1,7 @@ +#include +int main() +{ + printf("Hello, World!\n"); + getchar(); + return 0; +} diff --git a/presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.cpp b/presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.cpp new file mode 100644 index 0000000..91c4409 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sample/sample-helloWorld.cpp @@ -0,0 +1,6 @@ +#include +int main() +{ + std::cout << "Hello, World!" << std::endl; + return 0; +} diff --git a/presentations/taler-mdb-36c3/.template/sample/sample-learnProgLang.jpg b/presentations/taler-mdb-36c3/.template/sample/sample-learnProgLang.jpg new file mode 100644 index 0000000..2d6cf28 Binary files /dev/null and b/presentations/taler-mdb-36c3/.template/sample/sample-learnProgLang.jpg differ diff --git a/presentations/taler-mdb-36c3/.template/sample/sample-theRefs.bib b/presentations/taler-mdb-36c3/.template/sample/sample-theRefs.bib new file mode 100644 index 0000000..1862ad0 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sample/sample-theRefs.bib @@ -0,0 +1,8 @@ + +@online{learnProgLang, + author = {wikiHow, Chris Hadley}, + title = {{WikiHow} Learn a Programming Language}, + year = 2016, + url = {http://www.wikihow.com/Learn-a-Programming-Language}, + urldate = {2016-08-30} +} diff --git a/presentations/taler-mdb-36c3/.template/sty/adjcalc.sty b/presentations/taler-mdb-36c3/.template/sty/adjcalc.sty new file mode 100644 index 0000000..98c05a8 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/adjcalc.sty @@ -0,0 +1,155 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files adjcalc.dtx, adjustbox.ins +%% and the derived file adjcalc.sty. +%% It is part of the larger adjustbox bundle. +%% +\ProvidesPackage{adjcalc}[% + 2012/05/16 + v1.1 + Provides advanced setlength with multiple back-ends (calc, etex, pgfmath)] +\RequirePackage{xkeyval} +\def\adjcalc@atend{% +\begingroup +\expandafter\ifx\csname glueexpr\endcsname\relax + \endgroup + \RequirePackage{calc}% + \adjcalc@calc + \def\adjcalc@etex{\PackageError{adjcalc}{e-TeX not available for current compiler!}}% +\else + \endgroup + \adjcalc@etex +\fi +} +\def\adjcalc@pgfmath{\AtEndOfPackage{\RequirePackage{pgf}}\def\adjcalc@atend{\adjcalc@pgfmath}} +\def\adjcalc@etex{\def\adjcalc@atend{\adjcalc@etex}} +\def\adjcalc@calc{\AtEndOfPackage{\RequirePackage{calc}}\def\adjcalc@atend{\adjcalc@calc}} +\def\adjcalc@overwrite{\AtEndOfPackage{\adjcalc@overwrite}} +\def\adjcalc@defaultunit{bp}% +\DeclareOptionX{pgfmath}{\adjcalc@pgfmath} +\DeclareOptionX{etex}{\adjcalc@etex} +\DeclareOptionX{calc}{\adjcalc@calc} +\DeclareOptionX{none}{% + \let\adjcalc@atend\relax + \let\adjcalc@overwrite\relax + \def\adjsetlength{\setlength}% + \def\adjaddtolength{\addtolength}% + \def\adjsetcounter{\setcounter}% + \def\adjaddtocounter{\addtocounter}% +} +\DeclareOptionX{overwrite}{\adjcalc@overwrite} +\DeclareOptionX{defaultunit}[bp]{% + \begingroup + \def\@tempa{#1}% + \def\@tempb{none}% + \ifx\@tempa\@tempb% 'none': + \endgroup + \def\adjsetlengthdefault{\adjsetlength}% + \else + \ifx\@tempb\adjcalc@defaultunit + \endgroup + % was 'none' before + \let\adjsetlengthdefault\adjsetlengthdefault@ + \else + \endgroup + \fi + \fi + \def\adjcalc@defaultunit{#1}% +} +\ProcessOptionsX* +\disable@keys{adjcalc}{none} +\def\adjcalcset{% + \setkeys{adjcalc}% +} +\def\adjcalc@etex{% + \protected\def\adjsetlength##1##2{% + ##1=\glueexpr(##2)\relax + }% + \protected\def\adjaddtolength##1##2{% + \advance##1 by \glueexpr(##2)\relax + }% + \protected\def\adjsetcounter##1##2{% + \@ifundefined{c@##1}% + {\@nocounterr{##1}}% + {\global\csname c@##1\endcsname\numexpr(##2)\relax}% + }% + \protected\def\adjaddtocounter##1##2{% + \@ifundefined{c@##1}% + {\@nocounterr{##1}}% + {\global\advance\csname c@##1\endcsname\numexpr(##2)\relax}% + }% + \def\adjsetlengthdefault@##1##2{% + \@defaultunits##1=\glueexpr##2 \adjcalc@defaultunit\relax\@nnil + }% + \let\adjsetlengthdefault\adjsetlengthdefault@ +} +\newif\if@adjcalc@needsdefault +\def\adjcalc@calc{% + \DeclareRobustCommand\adjsetlength{\calc@assign@skip}% + \DeclareRobustCommand\adjaddtolength[1]{\calc@assign@skip{\advance ##1}}% + \DeclareRobustCommand\adjsetcounter[2]{\@ifundefined{c@##1}{\@nocounterr{##1}}{\calc@assign@count{\global\csname c@##1\endcsname}{##2}}}% + \DeclareRobustCommand\adjaddtocounter[2]{\@ifundefined{c@##1}{\@nocounterr{##1}}{\calc@assign@count{\global\advance\csname c@##1\endcsname}{##2}}}% + \def\adjsetlengthdefault@##1##2{% + \begingroup + \def\calc@post@scan####1!{% + \def\@tempa{####1}% + \ifx\@tempa\@empty + \endgroup% to end calc processing + % is number only + \global\@adjcalc@needsdefaulttrue + \else + \endgroup% to end calc processing + % full expression + \global\@adjcalc@needsdefaultfalse + \fi + }% + \calc@assign@skip{##1}{##2 \adjcalc@defaultunit}% + \endgroup + \if@adjcalc@needsdefault + ##1=##2 \adjcalc@defaultunit\relax + \else + \calc@assign@skip{##1}{##2}% + \fi + }% + \def\adjcalc@checkdefault##1\@nnil##2##3{% + \ifx\relax##1\relax\else + \calc@assign@skip{##2}{##3}% + \fi + }% + \let\adjsetlengthdefault\adjsetlengthdefault@ +} +\def\adjcalc@pgfmath{% + \DeclareRobustCommand\adjsetlength{\pgfmathsetlength}% + \DeclareRobustCommand\adjaddtolength{\pgfmathaddtolength}% + \DeclareRobustCommand\adjsetcounter{\pgfmathsetcounter}% + \DeclareRobustCommand\adjaddtocounter{\pgfmathaddtocounter}% + \def\adjsetlengthdefault@##1##2{% + \edef\pgfmathresultunitscale{1\adjcalc@defaultunit}% + \let\pgfmathpostparse\pgfmathscaleresult + \pgfmathparse{##2}% + ##1=\pgfmathresult pt\relax + }% + \let\adjsetlengthdefault\adjsetlengthdefault@ +} +\def\adjcalc@overwrite{% + \let\setlength\adjsetlength + \let\addtolength\adjaddtolength + \let\setcounter\adjsetcounter + \let\addtocounter\adjaddtocounter +} +\adjcalc@atend +\endinput +%% +%% End of file `adjcalc.sty'. diff --git a/presentations/taler-mdb-36c3/.template/sty/adjustbox.sty b/presentations/taler-mdb-36c3/.template/sty/adjustbox.sty new file mode 100644 index 0000000..b07f7d9 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/adjustbox.sty @@ -0,0 +1,1241 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files adjustbox.dtx, adjustbox.ins +%% and the derived file adjustbox.sty. +%% +\ProvidesPackage{adjustbox}[% + 2012/05/21 + v1.0 + Adjusting TeX boxes (trim, clip, ...)] +\RequirePackage{xkeyval} +\RequirePackage{adjcalc} +\def\adjbox@fam{adjbox} +\DeclareOptionX{export}{\def\adjbox@fam{Gin}} +\DeclareOptionX{Export}{\AtEndOfPackage{\let\includegraphics\adjincludegraphics}} +\DeclareOptionX{patch}{% + \PackageWarning{adjustbox}{% + The 'patch' option is now deprecated.\MessageBreak + Use the new \string\adjustimage\space or \string\adjincludegraphics\space macros instead% + \@gobble + }% +} +\DeclareOptionX{minimal}{\let\adjustbox@minimal\endinput} +\DeclareOptionX{pgfmath}{\AtEndOfPackage{\RequirePackage{pgf}\adjcalcset{pgfmath}}} +\DeclareOptionX{calc}{\AtEndOfPackage{\RequirePackage{calc}\adjcalcset{calc}}} +\DeclareOptionX{etex}{\AtEndOfPackage{\adjcalcset{etex}}} +\DeclareOptionX{defaultunit}{\AtEndOfPackage{\adjcalcset{defaultunit={#1}}}} +\DeclareOptionX{pgf}{\PassOptionsToPackage{pgf}{trimclip}} +\DeclareOptionX{PGF}{\PassOptionsToPackage{pgf}{trimclip}\AtEndOfPackage{\RequirePackage{pgf}\adjcalcset{pgfmath}}} +\DeclareOptionX*{% + \IfFileExists{tc-\CurrentOption.def}{% + \PassOptionsToPackage\CurrentOption{trimclip}% + }{% + \PassOptionsToPackage\CurrentOption{graphicx}% + }% +} +\ProcessOptionsX*\relax +\RequirePackage{trimclip} +\RequirePackage{graphicx}[1999/02/16] +\RequirePackage{collectbox}[2012/05/17] +\@ifpackagelater{collectbox}{2012/05/17}{}{% + \let\@Collectbox\@collectbox +} +\newcommand*\adjustboxset{% + \@ifstar + {\adjbox@addkeysafter}% + {\adjbox@addkeysbefore}% +} +\def\adjbox@addkeysbefore#1{% + \ifx\@nnil#1\@nnil + \let\adjbox@keysbefore\@empty + \else + \expandafter\def\expandafter\adjbox@keysbefore\expandafter{\adjbox@keysbefore,#1}% + \let\adjbox@setkeys\adjbox@setkeys@ba + \fi +} +\let\adjbox@keysbefore\@empty +\def\adjbox@addkeysafter#1{% + \begingroup + \def\@tempa{#1}% + \ifx\@tempa\@empty + \endgroup + \let\adjbox@keysafter\@empty + \else + \expandafter\expandafter + \expandafter\endgroup + \expandafter\expandafter + \expandafter\def + \expandafter\expandafter + \expandafter\adjbox@keysafter + \expandafter\expandafter + \expandafter{\expandafter\@tempa\expandafter,\adjbox@keysafter}% + \let\adjbox@setkeys\adjbox@setkeys@ba + \fi +} +\let\adjbox@keysafter\@empty +\newcommand\adjustbox[1]{% + \begingroup + \edef\adjbox@line{\the\inputlineno}% + \let\collectbox@mode\relax + \let\collectbox@noindent\relax + \collectboxcheckenv{adjustbox}% + \ifcollectboxenv\else + \let\adjustbox@noindent\relax + \fi + \begingroup + \adjbox@setkeys{#1}% + \expandafter\expandafter\expandafter + \endgroup + \expandafter + \adjbox@collectbox\expandafter{\expandafter\adjustbox@\expandafter{\XKV@rm}}% +} +\def\adjbox@collectbox{\@collectbox} +\def\adjbox@setkeys@ba{% + \expandafter\expandafter + \expandafter\adjbox@@setkeys@ba + \expandafter\expandafter + \expandafter{\expandafter\adjbox@keysbefore\expandafter}% + \expandafter{\adjbox@keysafter}% +} +\def\adjbox@@setkeys@ba#1#2#3{% + \setkeys*{ADJBOX}{#1,#3,#2}% +} +\def\adjbox@setkeys{% + \setkeys*{ADJBOX}% +} +\let\adjustbox@noindent\noindent +\def\adjustbox@#1{% + \adjbox@Width\width + \adjbox@Height\height + \adjbox@Depth\depth + \adjbox@Totalheight\totalheight + \let\Width\adjbox@Width + \let\Height\adjbox@Height + \let\Depth\adjbox@Depth + \let\Totalheight\adjbox@Totalheight + \let\Gin@esetsize\adjbox@esetsize + \let\@collectbox\@Collectbox + \@tempswatrue + \toks@{{\adjustbox@content}}% + \def\setlength{\adjsetlength}% + \setkeys{adjbox,Gin,adjcalc}{#1}% + \adjbox@esetsize + \adjustbox@noindent + \the\toks@ + \endgroup +} +\def\adjustbox@content{% + \usebox\collectedbox +} +\newdimen\adjbox@Width +\newdimen\adjbox@Height +\newdimen\adjbox@Depth +\newdimen\adjbox@Totalheight +\def\adjbox@esetsize{% + \ifcase0% + \ifx\Gin@ewidth\Gin@exclamation\else 1\fi + \ifx\Gin@eheight\Gin@exclamation\else 1\fi + \relax + \else + \edef\@tempa{\toks@{\noexpand + \Gscale@@box\noexpand\Gin@eresize + {\Gin@ewidth}{\Gin@eheight}{\the\toks@}}}% + \@tempa + \let\Gin@ewidth\Gin@exclamation + \let\Gin@eheight\Gin@exclamation + \fi +} +\newcommand*\adjustimage[2]{% + \adjustbox{#1}{\Gin@clipfalse\Gin@i{#2}}% +} +\newcommand*\adjincludegraphics[2][]{% + \adjustbox{#1}{\Gin@clipfalse\Gin@i{#2}}% +} +{\csname adjustbox@minimal\endcsname} +\def\adjbox@Gin@add#1{% + \def\@tempa{#1}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}}% +} +\def\adjbox@Gin@Add{% + \Gin@esetsize + \@tempswatrue + \adjbox@Gin@add +} +\newcommand\newadjustboxkey{% + \@adjustboxkey\adjustbox@newkey +} +\newcommand\renewadjustboxkey{% + \@adjustboxkey\adjustbox@renewkey +} +\newcommand\provideadjustboxkey{% + \@adjustboxkey\adjustbox@providekey +} +\newcommand\defadjustboxkey{% + \@adjustboxkey\@secondoftwo +} +\def\@adjustboxkey#1{% + \@ifstar + {\@adjustboxkey@i#1*}% + {\@adjustboxkey@i#1\relax}% +} +\def\@adjustboxkey@i#1#2#3{% + \@ifnextchar{[}% + {\@adjustboxkey@ii#1#2{#3}}% + {\@adjustboxkey@ii#1#2{#3}[\@nnil]}% +} +\def\@adjustboxkey@ii#1#2#3[#4]#5{% + \ifx\@nnil#4\relax + \@adjustboxkey@iii#1#2{#3}{}{#5}% + \else + \@adjustboxkey@iii#1#2{#3}{[#4]}{#5}% + \fi +} +\def\@adjustboxkey@iii#1#2#3#4#5{% + #1{#3}{% + \ifx*#2\relax + \define@key\adjbox@fam{#3}#4{#5}% + \else + \define@key\adjbox@fam{#3}#4{% + \adjbox@Gin@Add{\@Collectbox{#5}}% + }% + \fi + }{}% +} +\def\define@adjboxkey#1#2{% + \define@key\adjbox@fam{#1}{% + \adjbox@Gin@Add{#2}% + }% +} +\def\define@adjboxkey@defvalue#1#2#3{% + \define@key\adjbox@fam{#1}[{#2}]{% + \adjbox@Gin@Add{#3}% + }% +} +\def\define@adjboxkey@novalue#1#2{% + \define@key\adjbox@fam{#1}[\@nil]{% + \adjbox@novalue{##1}% + \adjbox@Gin@Add{#2}% + }% +} +\def\adjbox@novalue#1{% + \ifx\@nil#1\else + \PackageWarning{adjustbox}{% + Key '\XKV@tkey' does not await a value.\MessageBreak + Given value will be ignored% + }% + \fi +} +\def\adjustbox@newkey#1#2{% + \@ifundefined{KV@\adjbox@fam @#1}{#2}{% + \PackageError{adjustbox}{Key '#1' already defined}{}% + }% +} +\def\adjustbox@renewkey#1{% + \@ifundefined{KV@\adjbox@fam @#1}{% + \PackageError{adjustbox}{Key '#1' undefined}{}% + }% +} +\def\adjustbox@providekey#1#2{% + \@ifundefined{KV@\adjbox@fam @#1}{#2}{}% +} +\def\adjbox@let@key#1#2#3{% + \expandafter\let\csname KV@#1@#2\expandafter\endcsname\csname KV@#1@#3\endcsname + \expandafter\let\csname KV@#1@#2@default\expandafter\endcsname\csname KV@#1@#3@default\endcsname +} +\define@key{adjbox}{viewport}{% + \def\adjustbox@content{% + \@trimclip{% + \ifGin@clip + \expandafter\@clipvpbox + \else + \expandafter\@viewportbox + \fi + }{#1}% + }% +} +\define@adjboxkey{Viewport}{\trimbox@s{#1}}% +\define@key{adjbox}{trim}{% + \def\adjustbox@content{% + \@trimclip{% + \ifGin@clip + \expandafter\@clipbox + \else + \expandafter\@trimbox + \fi + }{#1}% + }% +} +\define@adjboxkey{Trim}{\trimbox@{#1}}% +\define@adjboxkey{Clip}{\clipbox@{#1}} +\define@adjboxkey{Clip*}{\clipbox@s{#1}} +\define@adjboxkey{margin}{\marginbox@{#1}} +\define@adjboxkey{margin*}{\marginbox@s{#1}} +\adjbox@let@key\adjbox@fam{padding}{margin} +\adjbox@let@key\adjbox@fam{padding*}{margin*} +\define@key\adjbox@fam{scale}{% + \@ifnextchar\bgroup{% + \adjbox@scale@xy + }{% + \adjbox@scale@x + }#1\@nnil +} +\def\adjbox@scale@x#1\@nnil{% + \adjbox@scale@xy{#1}{#1}\@nnil% +} +\def\adjbox@scale@xy#1#2\@nnil{% + \if@tempswa + \adjbox@Gin@add{\Gscale@box{#1}[{#2}]}% + \else + \def\Gin@req@sizes{% + \def\Gin@scalex{#1}\def\Gin@scaley{#2}% + \Gin@req@height\Gin@scaley\Gin@nat@height + \Gin@req@width\Gin@scalex\Gin@nat@width}% + \fi + \@tempswatrue +} +\define@key\adjbox@fam{reflect}[]{% + \adjbox@scale@xy{-1}{1}\@nnil +} +\expandafter\let\csname KV@\adjbox@fam @rotate\endcsname\KV@Gin@angle +\def\adjbox@halign#1#2#3{% + \@collectbox{\@adjbox@halign{#1}{#2}{#3}}% +} +\def\@adjbox@halign#1#2#3{% + \begingroup + \adjsetlength\@tempdima{#1}% + \leavevmode\hb@xt@\the\@tempdima{#2\BOXCONTENT#3}% + \endgroup +} +\define@adjboxkey@defvalue{center}{\linewidth}{\adjbox@halign{#1}\hss\hss} +\define@adjboxkey@defvalue{left}{\linewidth}{\adjbox@halign{#1}\relax\hss} +\define@adjboxkey@defvalue{right}{\linewidth}{\adjbox@halign{#1}\hss\relax} +\newcommand\centerbox[1][\linewidth]{% + \adjustbox@noindent + \adjbox@halign{#1}\hss\hss +} +\newcommand\leftalignbox[1][\linewidth]{% + \adjustbox@noindent + \adjbox@halign{#1}\relax\hss +} +\newcommand\rightalignbox[1][\linewidth]{% + \adjustbox@noindent + \adjbox@halign{#1}\hss\relax +} +\define@adjboxkey@defvalue{outer}{\linewidth}{% + \outersidebox[{#1}]% +} +\define@adjboxkey@defvalue{inner}{\linewidth}{% + \innersidebox[{#1}]% +} +\newcommand\outersidebox[1][\linewidth]{% + \collectboxcheckenv{outersidebox}% + \adjustbox@noindent + \adjbox@halign{#1}{% + \checkoddpage + \ifoddpageoroneside + \hss + \else + \relax + \fi + }{% + \ifoddpageoroneside + \relax + \else + \hss + \fi + }% +} +\newcommand\innersidebox[1][\linewidth]{% + \collectboxcheckenv{innersidebox}% + \adjustbox@noindent + \adjbox@halign{#1}{% + \checkoddpage + \ifoddpageoroneside + \relax + \else + \hss + \fi + }{% + \ifoddpageoroneside + \hss + \else + \relax + \fi + }% +} +\IfFileExists{ifoddpage.sty}{% + \RequirePackage{ifoddpage}% +}{% + \renewcommand\outersidebox[1][]{% + \PackageError{adjustbox}{% + The 'outer' and 'inner' keys as well as the\MessageBreak + \string\outersidebox\space and \string\innersidebox\space macros\MessageBreak + require the 'ifoddpage' package, which is not\MessageBreak + installed}{}% + }% + \let\innersidebox\outersidebox +}% +\define@key\adjbox@fam{raise}{% + \@ifnextchar\bgroup{% + \adjbox@raise + }{% + \adjbox@raise{#1}{}{}% + }#1{}{}{}\@nnil +} +\def\adjbox@raise#1#2#3#4\@nnil{% + \adjbox@Gin@Add{\adjbox@raisebox{#1}{#2}{#3}}% +} +\def\adjbox@raisebox#1#2#3{% + \@collectbox{\adjbox@@raisebox{#1}{#2}{#3}}% +} +\def\adjbox@@raisebox#1#2#3{% + \ifx\@nnil#1\@nnil + \setbox\@tempboxa\copy\collectedbox + \else + \adjsetlength\@tempdima{#1}% + \setbox\@tempboxa\hbox{\raise\@tempdima\copy\collectedbox}% + \fi + \ifx\@nnil#2\@nnil\else + \adjsetlength\@tempdima{#2}% + \ht\@tempboxa\@tempdima + \fi + \ifx\@nnil#3\@nnil\else + \adjsetlength\@tempdima{#3}% + \dp\@tempboxa\@tempdima + \fi + \leavevmode + \box\@tempboxa +} +\define@key\adjbox@fam{valign}{% + \expandafter\adjbox@Gin@Add\expandafter{\csname adjbox@valign@#1\endcsname}% +} +\def\adjboxvtop{\ht\strutbox} +\def\adjboxvcenter{1ex} +\def\adjboxvbottom{-\dp\strutbox} +\def\adjbox@valign@t{% + \adjbox@raisebox{-\height+\adjboxvtop}{}{}% +} +\def\adjbox@valign@T{% + \adjbox@raisebox{-\height}{}{}% +} +\def\adjbox@valign@M{% + \adjbox@raisebox{.5\depth-.5\height}{}{}% +} +\def\adjbox@valign@m{% + \adjbox@raisebox{.5\depth-.5\height+\adjboxvcenter}{}{}% +} +\def\adjbox@valign@c#1{% + \leavevmode + \hbox{% + $\vcenter{\hbox{#1}}\m@th$% + }% +} +\def\adjbox@valign@b{% + \adjbox@raisebox{\depth+\adjboxvbottom}{}{}% +} +\def\adjbox@valign@B{% + \adjbox@raisebox{\depth}{}{}% +} +\define@adjboxkey{set height}{\adjbox@raisebox{}{#1}{}} +\define@adjboxkey{set depth}{\adjbox@raisebox{}{}{#1}} +\define@adjboxkey{set vsize}{\adjbox@raisebox{}#1} +\define@key\adjbox@fam{vspace}{% + \adjbox@vskip#1 {} \@nnil{}% +} +\define@key\adjbox@fam{vspace*}{% + \adjbox@vskip#1 {} \@nnil*% +} +\def\adjbox@vskip#1 #2 #3\@nnil#4{% + \ifx\@nnil#2\@nnil + \adjust@addcode{\par\vspace#4{#1}\noindent}{\par\vspace#4{#1}}% + \else + \adjust@addcode{\par\vspace#4{#1}\noindent}{\par\vspace#4{#2}}% + \fi +} +\define@adjboxkey{min width}{\@minsizebox\height{#1}!} +\define@adjboxkey{max width}{\@maxsizebox\height{#1}!} +\define@adjboxkey{min height}{\@minsizebox\height!{#1}} +\define@adjboxkey{max height}{\@maxsizebox\height!{#1}} +\define@adjboxkey{min totalheight}{\@minsizebox\totalheight!{#1}} +\define@adjboxkey{max totalheight}{\@maxsizebox\totalheight!{#1}} +\def\adjbox@Gin@sizeadd#1#2\@nnil{% + \@ifnextchar\bgroup{% + \adjbox@Gin@Add{#1#2}% + \remove@to@nnil + }{% + \adjbox@Gin@Add{#1{#2}{#2}}% + \remove@to@nnil + }#2\@nnil +} +\define@key\adjbox@fam{min size}{% + \adjbox@Gin@sizeadd{\@minsizebox\height}#1\@nnil +} +\define@key\adjbox@fam{max size}{% + \adjbox@Gin@sizeadd{\@maxsizebox\height}#1\@nnil +} +\define@key\adjbox@fam{min totalsize}{% + \adjbox@Gin@sizeadd{\@minsizebox\totalheight}#1\@nnil +} +\define@key\adjbox@fam{max totalsize}{% + \adjbox@Gin@sizeadd{\@maxsizebox\totalheight}#1\@nnil +} +\define@adjboxkey@defvalue{warn width}{\linewidth}{\@Collectbox{\adjbox@warnwidth{#1}}} +\def\adjbox@warnwidth#1{% + \@tempdima=#1\relax + \advance\@tempdima by -\width + \@tempdima=-\@tempdima + \ifdim\@tempdima>\hfuzz + \typeout{Overfull \string\hbox\space (\the\@tempdima\space too wide) in adjustbox at + \ifnum\adjbox@line=\inputlineno + line \adjbox@line + \else + lines \adjbox@line--\the\inputlineno + \fi + }% + \fi + \BOXCONTENT +} +\newcommand*\minsizebox{% + \collectboxcheckenv{minsizebox}% + \@ifstar{\@minsizebox\totalheight}{\@minsizebox\height}% +} +\expandafter\newcommand\expandafter*\csname minsizebox*\endcsname{% + \@collectboxisenv{minsizebox*}% + \@minsizebox\totalheight +} +\newcommand*\@minsizebox[3]{% + \@collectbox{\@minmaxsizebox>#1{#2}{#3}}% +} +\newcommand*\maxsizebox{% + \collectboxcheckenv{maxsizebox}% + \@ifstar{\@maxsizebox\totalheight}{\@maxsizebox\height}% +} +\expandafter\newcommand\expandafter*\csname maxsizebox*\endcsname{% + \@collectboxisenv{maxsizebox*}% + \@maxsizebox\totalheight +} +\newcommand*\@maxsizebox[3]{% + \@collectbox{\@minmaxsizebox<#1{#2}{#3}}% +} +\newcommand*\@minmaxsizebox[4]{% + \edef\@tempa{#3}% + \edef\@tempb{#4}% + \ifcase0% + \ifx\@tempa\Gin@exclamation + \ifx\@tempb\Gin@exclamation + \else + \ifdim\@tempb#1#2% + 1% + \fi + \fi + \else + \ifx\@tempb\Gin@exclamation + \ifdim\@tempa#1\width + 2% + \fi + \else + \ifdim\@tempa#1\width + \ifdim\@tempb#1#2% + 3% + \else + 2% + \fi + \else + \ifdim\@tempb#1#2% + 1% + \fi + \fi + \fi + \fi + \relax% 0 + \BOXCONTENT + \or + \adjsetlength\@tempdima\@tempb + \Gscale@div\@tempa\@tempdima#2% + \Gscale@box\@tempa[\@tempa]\BOXCONTENT + \or + \adjsetlength\@tempdima\@tempa + \Gscale@div\@tempa\@tempdima\width + \Gscale@box\@tempa[\@tempa]\BOXCONTENT + \or + \adjsetlength\@tempdima\@tempa + \Gscale@div\@tempa\@tempdima\width + \adjsetlength\@tempdima\@tempb + \Gscale@div\@tempb\@tempdima#2% + \ifdim\@tempa\p@#1\@tempb\p@ + \let\@tempb\@tempa + \else + \let\@tempa\@tempb + \fi + \Gscale@box\@tempa[\@tempb]\BOXCONTENT + \fi +} +\define@key\adjbox@fam{frame}[{{\fboxrule}}]{% + \adjbox@frame{\fboxsep\z@}#1 {} {} \relax\relax\@nnil +} +\define@key\adjbox@fam{fbox}[{{\fboxrule}}]{% + \adjbox@frame{}#1 {} {} {} \relax\relax\@nnil +} +\def\adjbox@frame#1#2 #3 #4 #5\relax{% + \adjbox@Gin@Add{% + \@Collectbox{#1\adjbox@@frame{}{#2}{#3}{#4}}% + }% + \remove@to@nnil +} +\define@key\adjbox@fam{cframe}{% + \adjbox@checkcolor + \adjbox@cframe{\fboxsep\z@}#1 {} {} {} \relax\relax\@nnil +} +\define@key\adjbox@fam{cfbox}{% + \adjbox@checkcolor + \adjbox@cframe{}#1 {} {} {} \relax\relax\@nnil +} +\def\adjbox@cframe#1#2 #3 #4 #5 #6\relax{% + \adjbox@Gin@Add{% + \@Collectbox{#1\adjbox@@frame{\color{#2}}{#3}{#4}{#5}}% + }% + \remove@to@nnil +} +\def\adjbox@checkcolor{% + \ifcase0% + \expandafter\ifx\csname ver@xcolor.sty\endcsname\relax + \expandafter\ifx\csname ver@color.sty\endcsname\relax + \expandafter\ifx\csname ver@xxcolor.sty\endcsname\relax 1\fi\fi\fi + \relax + \global\let\adjbox@checkcolor\relax + \else + \PackageError{adjustbox}{Using a macro, environment or key with color\MessageBreak + requires a color package to be loaded manually.\MessageBreak + Recommended is 'xcolor' but 'color' is ok, too}{}. + \fi +} +\def\adjbox@@frame#1#2#3#4{% + \ifx\@nnil#2\@nnil\else + \adjsetlength\fboxrule{#2}% + \fi + \ifx\@nnil#3\@nnil\else + \adjsetlength\fboxsep{#3}% + \fi + \adjsetlength\tc@llx{\fboxrule + \fboxsep}% + \@marginbox\collectedbox\tc@llx\tc@llx\tc@llx\tc@llx + \ifx\@nnil#4\@nnil\else + \setbox\collectedbox + \fi + \hbox\bgroup\color@setgroup + \BOXCONTENT + \hskip-\width + #1% + \adjbox@boxframe\width\height\depth + \color@endgroup\egroup + \ifx\@nnil#4\@nnil\else + \adjsetlength\tc@llx{#4}% + \@marginbox\collectedbox\tc@llx\tc@llx\tc@llx\tc@llx + \BOXCONTENT + \fi +} +\let\adjbox@boxframe\boxframe +\providecommand\adjbox@boxframe[3]{% + \hbox{% + \dimen@ #2% + \advance \dimen@ #3\relax + \lower #3\vbox {% + \hrule \@height \fboxrule + \@tempdima -0.5\fboxrule + \ifodd\fboxrule + \advance \@tempdima \m@ne sp + \fi + \kern \@tempdima + \hbox {% + \advance \dimen@ -\fboxrule + \vrule \@width \fboxrule \@height \dimen@ \@depth \z@ + \@tempdima #1% + \advance \@tempdima -\tw@ \fboxrule + \kern \@tempdima + \vrule \@width \fboxrule \@height \dimen@ \@depth \z@ + }% + \kern -0.5\fboxrule + \hrule \@height \fboxrule + }% + }% +} +\define@key\adjbox@fam{dpi}{% + \adjsetlength\pdfpxdimen{1in/(#1)}% +} +\define@key\adjbox@fam{pxdim}{% + \adjsetlength\pdfpxdimen{#1}% +} +\define@key\adjbox@fam{execute}{% + #1% +} +\define@key\adjbox@fam{@debug}[]{% + \showthe\toks@ +} +\define@key{ADJBOX}{Execute}{% + #1% +} +\define@key{adjbox}{Addcode}{% + \adjust@@addcode#1{}\@nnil% +} +\define@key{adjbox}{addcode}{% + \Gin@esetsize + \@tempswatrue + \adjust@@addcode#1{}\@nnil% +} +\long\def\adjust@@addcode#1#2#3\@nnil{% + \ifx\@nnil#3\@nnil + \adjust@addcode{#1}{#2}% + \else + \PackageError{adjustbox}{Incorrect input for key 'addcode={}{}'!}% + \fi +} +\define@key{adjbox}{precode}{% + \Gin@esetsize + \@tempswatrue + \adjust@addcode{#1}{}% +} +\define@key{adjbox}{Precode}{% + \adjust@addcode{#1}{}% +} +\define@key{adjbox}{appcode}{% + \toks@\expandafter{\the\toks@#1}% +} +\long\def\adjust@addcode#1#2{% + \def\@tempa{#1}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}#2}% +}% +\define@key\adjbox@fam{env}{% + \@ifnextchar\bgroup{% + \adjbox@addenv + }{% + \adjbox@addenv{#1}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@addenv#1#2\@nnil{% + \def\@tempa{\begin{#1}#2}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\the\toks@\end{#1}}% +}% +\define@key\adjbox@fam{bgcolor}{% + \adjbox@checkcolor + \@ifnextchar\bgroup{% + \adjbox@bgcolor + }{% + \adjbox@bgcolor{}{#1}% + }#1\@nnil +} +\def\adjbox@bgcolor#1#2#3\@nnil{% + \ifx\@nnil#1\@nnil + \adjbox@Gin@add{\@Collectbox{\adjbox@@bgcolor{\color{#2}}}}% + \else + \adjbox@Gin@add{\@Collectbox{\adjbox@@bgcolor{\color[#1]{#2}}}}% + \fi +} +\define@key\adjbox@fam{bgcolor*}{% + \adjbox@checkcolor + \adjbox@Gin@add{\@Collectbox{\adjbox@@bgcolor{#1}}}% +} +\def\adjbox@@bgcolor#1{% + \mbox{% + \hbox{% + #1% + \vrule\@width\width\@height\height\@depth\depth% + }% + \hskip-\width + \BOXCONTENT + }% +}% +\newcommand*\bgimagebox[2][]{% + \collectboxcheckenv{bgimagebox}% + \@collectbox{\@bgimagebox{#1}{#2}}% +} +\def\@bgimagebox#1#2{% + \mbox{% + \lower\depth\hbox{% + \edef\@tempa{\noexpand\adjustimage + {#1,width=\the\width,totalheight=\the\totalheight}% + {#2}% + }% + \@tempa + }% + \hskip-\width% + \BOXCONTENT + }% +} +\define@key{adjbox}{bgimage}{% + \@ifnextchar\bgroup{% + \adjbox@bgimage + }{% + \adjbox@bgimage{}{#1}% + }#1\@nnil +} +\def\adjbox@bgimage#1#2#3\@nnil{% + \adjbox@Gin@add{\@Collectbox{\@bgimagebox{#1}{#2}}}% +} +\define@key\adjbox@fam{lap}{% + \@ifnextchar\bgroup{% + \adjbox@lapbox + }{% + \adjbox@lapbox{#1}{}% + }#1{}{}\@nnil +} +\def\adjbox@lapbox#1#2#3\@nnil{% + \ifx\@nnil#2\@nnil + \adjbox@Gin@Add{\lapbox{#1}}% + \else + \adjbox@Gin@Add{\lapbox[{#1}]{#2}}% + \fi +} +\define@key\adjbox@fam{rlap}[]{% + \adjbox@Gin@Add{\lapbox{\width}}% +} +\define@key\adjbox@fam{llap}[]{% + \adjbox@Gin@Add{\lapbox{-\width}}% +} +\newcommand*\lapbox[2][\width-\@tempdimb]{% + \collectboxcheckenv{lapbox}% + \@collectbox{\@lapbox{#1}{#2}}% +} +\def\@lapbox#1#2{% + \adjsetlength\@tempdima{#2}% + \ifdim\@tempdima<\z@ + \@tempdimb=-\@tempdima + \else + \@tempdimb=\@tempdima + \fi + \adjsetlength\@tempdimc{#1}% + \ifdim\@tempdimc<\z@ + \@tempdimc=\z@ + \fi + \leavevmode + \ifdim\@tempdima<\z@ + \hb@xt@\@tempdimc{\hss\hb@xt@\@tempdimb{\usebox\collectedbox\hss}\hskip\@tempdimc}% + \else + \hb@xt@\@tempdimc{\hskip\@tempdimc\hb@xt@\@tempdimb{\hss\usebox\collectedbox}\hss}% + \fi +} +\define@key{ADJBOX}{minipage}{% + \adjbox@page{minipage}{#1}% +} +\define@key{ADJBOX}{varwidth}{% + \adjbox@page{varwidth}{#1}% +} +\def\adjbox@page#1#2{% + \@ifnextchar[{% + \adjbox@@page{#1}% + }{% + \@ifnextchar\bgroup{% + \adjbox@@page{#1}% + }{% + \adjbox@@page{#1}{{#2}}\@nnil% + \remove@to@nnil + }% + }#2\@nnil +} +\def\adjbox@@page#1#2\@nnil{% + \def\adjbox@collectbox##1{\collectbox@{\adjbox@set\begin{#1}#2\adjbox@reset}{##1}{\end{#1}}}% +} +\def\adjbox@set{% + \let\adjbox@origsetlength\setlength + \def\setlength{\adjsetlength}% +} +\def\adjbox@reset{% + \let\setlength\adjbox@origsetlength +} +\newcommand*\stackbox[1][c]{% + \collectboxcheckenv{stackbox}% + \@ifnextchar[%] + {\@stackbox{#1}}% + {\@@stackbox{#1}{b}[]}% +} +\def\@stackbox#1[#2]{% + \@testopt{\@@stackbox{#1}{#2}}{}% +} +\def\@@stackbox#1#2[#3]{% + \collectbox@ + {\begin{varwidth}[#2]{\linewidth}\csname adjbox@halign@#1\endcsname#3} + \BOXCONTENT + {\end{varwidth}}% +} +\def\adjbox@halign@c{\centering} +\def\adjbox@halign@l{\raggedright} +\def\adjbox@halign@r{\raggedleft} +\def\adjbox@halign@j{\let\\\newline} +\define@key{ADJBOX}{stack}[{}{}{}]{% + \adjbox@stack#1{}{}{}\@nnil +} +\def\adjbox@stack#1#2#3#4\@nnil{% + \ifx\@nnil#1\@nnil + \adjbox@@stack{c}{b}{}% + \else + \ifx\@nnil#2\@nnil + \adjbox@@stack{#1}{b}{}% + \else + \adjbox@@stack{#1}{#2}{#3}% + \fi\fi +} +\def\adjbox@@stack#1#2#3{% + \def\adjbox@collectbox##1{% + \collectbox@{% + \begin{varwidth}[#2]{\linewidth}% + \csname adjbox@halign@#1\endcsname#3% + }{##1}{\end{varwidth}}% + }% +} +\IfFileExists{varwidth.sty} + {\RequirePackage{varwidth}}{% + \define@key{ADJBOX}{varwidth}{% + \PackageError{adjustbox}{The 'varwidth' key requires the 'varwidth' package, which is not installed}{}% + } + \define@key{ADJBOX}{stack}{% + \PackageError{adjustbox}{The 'stack' key requires the 'varwidth' package, which is not installed}{}% + } +}% +\define@key{ADJBOX}{tabular}{% + \@ifnextchar[{% + \adjbox@tabular{tabular}% + }{% + \adjbox@tabular{tabular}{{#1}}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@tabular#1#2\@nnil{% + \ifcollectboxenv + \adjbox@innerenv{#1}{#2}\@nnil + \else + \def\adjbox@collectbox##1{\collectbox@tab{#1}{#2}{}{##1}{}}% + \fi +} +\define@key{ADJBOX}{tabular*}{% + \adjbox@tabular{tabular*}#1\@nnil +} +\define@key{ADJBOX}{array}{% + \@ifnextchar[{% + \adjbox@array% + }{% + \adjbox@array{{#1}}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@array#1\@nnil{% + \ifcollectboxenv + \adjbox@innercode{\(\begin{array}#1}{\end{array}\)}% + \else + \def\adjbox@collectbox##1{\collectbox@tab{array}{#1}{\(}{##1}{\)}}% + \fi +} +\define@key{ADJBOX}{innerenv}{% + \@ifnextchar\bgroup{% + \adjbox@@innerenv + }{% + \adjbox@innerenv{#1}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@innerenv#1#2\@nnil{% + \def\adjbox@collectbox##1{\collectbox@{\begin{#1}#2}{##1}{\end{#1}}}% +}% +\def\adjbox@@innerenv#1{% + \adjbox@@@innerenv{#1}{}% +}% +\def\adjbox@@@innerenv#1#2\@nnil{% + \expandafter\adjbox@@@@innerenv\expandafter{\@gobble#2}{#1}% +}% +\def\adjbox@@@@innerenv#1#2{% + \adjbox@innerenv{#2}{#1}\@nnil +}% +\define@key{ADJBOX}{innercode}{% + \adjbox@innercode#1{}{}% +} +\def\adjbox@innercode#1#2{% + \def\adjbox@collectbox##1{\collectbox@{#1}{##1}{#2}}% +}% +\define@key\adjbox@fam{label}{% + \def\adjbox@label{\label{#1}}% +} +\let\adjbox@label\@empty +\chardef\adjbox@caption@pos=11 +\define@key\adjbox@fam{captionabove}{% + \chardef\adjbox@caption@pos=1 + \csname KV@\adjbox@fam @caption\endcsname{#1}% +} +\define@key\adjbox@fam{captionbelow}{% + \chardef\adjbox@caption@pos=0 + \csname KV@\adjbox@fam @caption\endcsname{#1}% +} +\define@key\adjbox@fam{caption}{% + \@ifnextchar{[}{% + \adjbox@def@caption + }{% + \adjbox@def@@caption + }#1\@nnil +} +\def\adjbox@def@@caption#1\@nnil{% + \def\adjbox@caption{\caption{#1}}% +} +\def\adjbox@def@caption[#1]#2\@nnil{% + \def\adjbox@caption{\caption[#1]{#2}}% +} +\let\adjbox@caption\@empty +\define@key\adjbox@fam{figure}[]{% + \let\adjustbox@noindent\relax + \ifx\@nnil#1\@nnil + \adjbox@addfloat{figure}{\begin{figure}}{}{\end{figure}}% + \else + \adjbox@addfloat{figure}{\begin{figure}}{[{#1}]}{\end{figure}}% + \fi +} +\define@key\adjbox@fam{float}{% + \let\adjustbox@noindent\relax + \@ifnextchar\bgroup{% + \adjbox@float + }{% + \adjbox@float{#1}{}\@nnil + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@float#1#2\@nnil{% + \adjbox@addfloat{#1}{\begin{#1}}{#2}{\end{#1}}% +} +\define@key\adjbox@fam{nofloat}[figure]{% + \adjbox@addfloat{#1}{\adjnofloat}{{#1}}{\endadjnofloat}% +} +\def\adjbox@caption@table@pos{1} +\def\adjbox@addfloat#1#2#3#4{% + \ifnum\adjbox@caption@pos>10 + \chardef\adjbox@caption@pos=0\csname adjbox@caption@#1@pos\endcsname\relax + \fi + \ifcase\adjbox@caption@pos + \def\@tempa{\adjust@addcode{#2#3}}% + \expandafter\expandafter\expandafter\@tempa + \expandafter\expandafter\expandafter{\expandafter\adjbox@caption\adjbox@label#4}% + \else + \def\@tempa##1{\adjust@addcode{#2#3\adjbox@captionabove##1}}% + \expandafter\expandafter\expandafter\@tempa + \expandafter\expandafter\expandafter + {\expandafter\adjbox@caption\adjbox@label}{#4}% + \fi +} +\@ifpackageloaded{caption}{% + \let\adjbox@captionabove\relax +}{% + \def\adjbox@captionabove{% + \begingroup + \edef\@tempa{\endgroup + \abovecaptionskip=\the\belowcaptionskip\relax + \belowcaptionskip=\the\abovecaptionskip\relax + }% + \@tempa + }% + \AtBeginDocument{% + \@ifpackageloaded{caption}{% + \global\let\adjbox@captionabove\relax + }{}% + }% +} +\newenvironment{adjnofloat}[1]{% + \trivlist + \def\@captype{#1}% + \parindent\z@ + \item\relax +}{% + \endtrivlist +} +\define@key\adjbox@fam{phantom}[]{% + \expandafter\ifx\csname #1phantom\endcsname\relax + \adjust@addcode{\phantom}{}% + \else + \expandafter\adjust@addcode\expandafter{\csname #1phantom\endcsname}{}% + \fi +} +\newcommand*\phantombox[3]{% + \begingroup + \adjsetlength\@tempdima{#1}% + \adjsetlength\@tempdimb{#2}% + \adjsetlength\@tempdimc{#3}% + \setbox\collectedbox\hbox{}% + \wd\collectedbox\@tempdima + \ht\collectedbox\@tempdimb + \dp\collectedbox\@tempdimc + \leavevmode + \box\collectedbox + \endgroup +} +\define@key\adjbox@fam{gobble}[\@nil]{% + \adjbox@novalue{#1}% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\@Collectbox{}}% +} +\adjbox@let@key\adjbox@fam{discard}{gobble}% +\define@adjboxkey{content}{\@Collectbox{#1}}% +\define@adjboxkey{gstore}{\global\@collectboxto{#1}{\BOXCONTENT}} +\define@key\adjbox@fam{gstore*}{% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\global\sbox{#1}}% +} +\define@key{adjbox}{gstore width}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\width\BOXCONTENT}}% +} +\define@key{adjbox}{gstore depth}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\depth\BOXCONTENT}}% +} +\define@key{adjbox}{gstore height}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\height\BOXCONTENT}}% +} +\define@key{adjbox}{gstore totalheight}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\totalheight\BOXCONTENT}}% +} +\define@key{adjbox}{gstore sizes}{% + \adjbox@Gin@Add{\@Collectbox{\adjbox@gstore@sizes#1\relax\relax\relax\relax\@nnil\BOXCONTENT}}% +} +\def\adjbox@gstore@sizes#1#2#3#4#5\@nnil{% + \ifx\relax#1\relax\else + \global#1=\width + \fi + \ifx\relax#2\relax\else + \global#2=\height + \fi + \ifx\relax#3\relax\else + \global#3=\depth + \fi + \ifx\relax#4\relax\else + \global#4=\totalheight + \fi +} +%%\RequirePackage{storebox} +\newcommand\splitbox[2]{% + \collectboxcheckenv{splitbox}% + \@collectbox{\@splitbox{#1}{#2}}% +} +\define@adjboxkey{split}{\@Collectbox{\@splitbox#1}} +\def\@splitbox#1#2{% + \ifstorebox + \storebox\splittedbox{\BOXCONTENT}% + \setbox\collectedbox\hbox{\usestorebox\splittedbox}% + \fi + \xdef\@tempa{#1}% + \xdef\@tempb{#2}% + \ifx\@tempa\Gin@exclamation + \@tempdima\maxdimen + \else + \adjsetlength\@tempdima\@tempa + \fi + \ifx\@tempb\Gin@exclamation + \Gin@nat@height\maxdimen + \else + \adjsetlength\Gin@nat@height\@tempb + \fi + \ifdim\@tempdima>\width + \@tempdima\width + \fi + \ifdim\Gin@nat@height>\totalheight + \Gin@nat@height\totalheight + \fi + \tc@llx\z@ + \tc@lly\totalheight + \tc@urx\width + \tc@ury\z@ + \advance\tc@lly-\Gin@nat@height + \@@splitbox +} +\def\@@splitbox{% + \advance\tc@urx-\@tempdima + \@@@splitbox + \ifdim\tc@urx>\z@ + \advance\tc@llx+\@tempdima + \expandafter\@@splitbox + \else + \ifdim\tc@lly<\splitbox@epsilon + \splitboxlastnewline + \else + \splitboxnewline + \tc@llx\z@ + \tc@urx\width + \advance\tc@lly-\Gin@nat@height + \advance\tc@ury+\Gin@nat@height + \expandafter\expandafter + \expandafter\@@splitbox + \fi + \fi +} +\def\@@@splitbox{% + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\tc@llx\tc@lly\tc@urx\tc@ury + \splitboxcmd{\usebox\collectedbox}% + \endgroup +} +\def\@@@splitbox{% + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\tc@llx\tc@lly\tc@urx\tc@ury + \splitboxcmd{\usebox\collectedbox}% + \endgroup +} +\let\splitboxcmd\empty +\newcommand\splitboxnewline{\\} +\newcommand\splitboxlastnewline{\splitboxnewline} +\def\splitbox@epsilon{100sp} +\newcommand\pagebreakbox{% + \par\noindent + \collectboxcheckenv{pagebreakbox}% + \@collectbox{\@pagebreakbox}% +} +\define@key\adjbox@fam{pagebreak}[]{% + \adjbox@Gin@Add{\@Collectbox{\@pagebreakbox}}% +} +\def\@pagebreakbox{% + \sbox\collectedbox{\raise\dp\collectedbox\hbox{\BOXCONTENT}}% + \ifstorebox + \storebox\splittedbox{\BOXCONTENT}% + \setbox\collectedbox\hbox{\usestorebox\splittedbox}% + \fi + \adjsetlength\tc@lly + {\totalheight-\pagegoal+\pagetotal+\pagebreakboxoffset}% + \ifdim\tc@lly>\z@ + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\z@\tc@lly\z@\z@ + \BOXCONTENT + \endgroup + \par\noindent + \adjsetlength\tc@ury{\totalheight-\tc@lly}% + \ifdim\tc@lly>\textheight + \loop + \advance\tc@lly-\textheight + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\z@\tc@lly\z@\tc@ury + \BOXCONTENT + \endgroup + \advance\tc@ury\textheight + \par\noindent + \ifdim\tc@lly>\textheight + \repeat + \@clipbox\collectedbox\z@\z@\z@\tc@ury + \BOXCONTENT + \else + \@clipbox\collectedbox\z@\z@\z@\tc@ury + \par\noindent + \BOXCONTENT + \fi + \else + \BOXCONTENT% + \fi + \par +} +\newcommand*\pagebreakboxoffset{\ht\strutbox} +\endinput +%% +%% End of file `adjustbox.sty'. diff --git a/presentations/taler-mdb-36c3/.template/sty/adjustbox.sty.tex b/presentations/taler-mdb-36c3/.template/sty/adjustbox.sty.tex new file mode 100644 index 0000000..93138d2 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/adjustbox.sty.tex @@ -0,0 +1,10 @@ +\documentclass{article} +\usepackage{geometry} +\geometry{noheadfoot, margin=0.5in} +\usepackage{prerex} +\begin{document} +\thispagestyle{empty} +\begin{chart} +\grid +\end{chart} +\end{document} diff --git a/presentations/taler-mdb-36c3/.template/sty/bfh-cli.sty b/presentations/taler-mdb-36c3/.template/sty/bfh-cli.sty new file mode 100644 index 0000000..345f50c --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/bfh-cli.sty @@ -0,0 +1,33 @@ +%% Copyright (C) 2018 by Andreas HABEGGER +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Andreas Habegger. +%% +%% +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{bfh-cli}[% + 2018/08/07 + v1.0 + CLI env for slides + ] +%\RequirePackage{verbatim} + +\newenvironment{cli}[1][\$] +{ \ttfamily\scriptsize\textbf{{#1}\,:\;}\noindent\ignorespaces} +{ \par } + +%% Usage examples +%% +%% User shell +% \begin{cli}git log \end{cli} +%% Root shell +%\begin{cli}[\#]git log \end{cli} diff --git a/presentations/taler-mdb-36c3/.template/sty/bfh-colortabular.sty b/presentations/taler-mdb-36c3/.template/sty/bfh-colortabular.sty new file mode 100644 index 0000000..89a79df --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/bfh-colortabular.sty @@ -0,0 +1,30 @@ +%% Copyright (C) 2018 by Andreas HABEGGER +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Andreas Habegger. +%% +%% +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{bfh-colortabular}[% + 2018/08/07 + v1.0 + Special color table + ] + +\newenvironment{colortabular}[1]{\medskip\rowcolors[]{1}{blue!20}{blue!10}\tabular{#1}\rowcolor{blue!40}}{\endtabular\medskip} + +\def\equad{\leavevmode\hbox{}\quad} + +\newenvironment{greencolortabular}[1] +{\medskip\rowcolors[]{1}{green!50!black!20}{green!50!black!10}% + \tabular{#1}\rowcolor{green!50!black!40}}% +{\endtabular\medskip} diff --git a/presentations/taler-mdb-36c3/.template/sty/bfh-graphicref.sty b/presentations/taler-mdb-36c3/.template/sty/bfh-graphicref.sty new file mode 100644 index 0000000..1260c51 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/bfh-graphicref.sty @@ -0,0 +1,39 @@ +%% Copyright (C) 2018 by Andreas HABEGGER +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Andreas Habegger. +%% +%% +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{bfh-graphicref}[% + 2018/08/07 + v1.0 + reference source and copyright authority + ] +\RequirePackage[absolute,overlay]{textpos} + + +\newcommand\includegraphicscopyright[3][]{% + \leavevmode\vbox{\vskip3pt\raggedright\setbox\mytempbox=\hbox{\includegraphics[#1]{#2}}% + \mytempdimen=\wd\mytempbox\box\mytempbox\par\vskip1pt% + \fontsize{3}{3.5}\selectfont{\color{black!25}{\vbox{\hsize=\mytempdimen#3}}}\vskip3pt% +}} + + +\setbeamercolor{framesource}{fg=gray} +\setbeamerfont{framesource}{size=\tiny} + +\newcommand{\source}[2][]{\begin{textblock*}{4cm}(.05\textwidth, .95\textheight) + \begin{beamercolorbox}[left]{framesource} + \usebeamerfont{framesource}\usebeamercolor[fg]{framesource} Credit: #1~{\cite{#2}} + \end{beamercolorbox} +\end{textblock*}} diff --git a/presentations/taler-mdb-36c3/.template/sty/bfh.sty b/presentations/taler-mdb-36c3/.template/sty/bfh.sty new file mode 100644 index 0000000..ebea39e --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/bfh.sty @@ -0,0 +1,106 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bfh}[2014/01/23 Standard BFH LaTeX package] + +%% Needed packages +\RequirePackage{color} +\RequirePackage{colortbl} +\RequirePackage{fancyhdr} +\RequirePackage{etoolbox} +\RequirePackage[table]{xcolor} + + +% BFH color definition on RGB level +%--------------------------------------------------------------------------- +\definecolor{BFHGray}{rgb}{0.412,0.49,0.569} +\definecolor{BFHGray1}{rgb}{0.392,0.471,0.545} +\definecolor{BFHGray2}{rgb}{0.635,0.682,0.725} +\definecolor{BFHGray3}{rgb}{0.757,0.788,0.82} +\definecolor{BFHGray4}{rgb}{0.878,0.894,0.91} +\definecolor{BFHGray5}{rgb}{0.937,0.945,0.953} +\definecolor{BFHOrange}{rgb}{0.98,0.647,0} +\definecolor{BFHArrow}{rgb}{0.98,0.647,0} +\definecolor{white}{rgb}{1,1,1} +\definecolor{BFHlink}{rgb}{0,0,0} +%--------------------------------------------------------------------------- + +% Table definitions +%--------------------------------------------------------------------------- +\let\oldtable\table +\let\endoldtable\endtable +\renewenvironment{table}{\rowcolors{2}{BFHGray3}{BFHGray5}\oldtable}{\endoldtable} +%--------------------------------------------------------------------------- + + +% itemize style redefinition +%--------------------------------------------------------------------------- +\renewcommand{\labelitemi}{\small\color{BFHOrange}$\blacktriangleright$} +\renewcommand{\labelitemii}{\scriptsize\color{BFHOrange}$\blacktriangleright$} +\renewcommand{\labelitemiii}{\tiny\color{BFHOrange}$\blacktriangleright$} +%--------------------------------------------------------------------------- + +% Set up header and footer +%--------------------------------------------------------------------------- +\makeatletter +\patchcmd{\@fancyhead}{\rlap}{\color{BFHGray}\rlap}{}{} % new color of header +\patchcmd{\@fancyfoot}{\rlap}{\color{BFHGray}\rlap}{}{} % new color of footer +\makeatother + + +% Set up header and footer +%--------------------------------------------------------------------------- +%\fancyhf{} +%\fancypagestyle{plain}{ +% \fancyhead[L]{\doctype} +% \fancyhead[C]{Confidentiality Level: \conflvl} +% \fancyhead[R]{\doctitle} +% \fancyfoot[L]{Version: \docver} +% \fancyfoot[C]{Last change: \today} +% \fancyfoot[R]{Page \thepage{} of \pageref*{LastPage}} +%} + + +%\fancypagestyle{plain}{ +%\fancyhead[LE,RO]{\slshape \rightmark} +%\fancyhead[LO,RE]{\slshape \leftmark} + +% \fancyhead[LO,LE]{test 1} +% \fancyhead[CO,CE]{44444} +% \fancyhead[RO,RE]{bla bla bla} +% \fancyfoot[OL,EL]{Version: \docver} +% \fancyfoot[OC,EC]{Last change: \today} +% \fancyfoot[OR,ER]{Page \thepage{} of \pageref*{LastPage}} +%} + +%\renewcommand{\headrulewidth}{0pt} % no header stripline +%\renewcommand{\footrulewidth}{0pt} % no bottom stripline +%\pagestyle{plain} + + +%\fancyhf{} % clean all fields +%\fancypagestyle{plain}{ % new definition of plain style +% \fancyfoot[OR,EL]{\footnotesize \thepage} % footer right part --> page number +% \fancyfoot[OL,ER]{\footnotesize \doctitle, Version \docver, \today} % footer even page left part +%} + +%\renewcommand{\headrulewidth}{0pt} % no header stripline +%\renewcommand{\footrulewidth}{0pt} % no bottom stripline +%\pagestyle{plain} + +%\renewcommand{\chaptermark}[1]{\markboth{\thechapter. #1}{}} +%--------------------------------------------------------------------------- + +%--------------------------------------------------------------------------- +%\def\chapterNPB#1{{\let\cleardoublepage\relax\chapter{#1}}} % Chapter with no clear doublepage +%--------------------------------------------------------------------------- +% Horizontal spaceing between subfigures +%--------------------------------------------------------------------------- +\newcommand{\subfighspace}{\hspace{3mm}} +%--------------------------------------------------------------------------- +% Keine "Schusterjungen" +%--------------------------------------------------------------------------- +%\clubpenalty = 10000 +%--------------------------------------------------------------------------- +% Keine "Hurenkinder" +%--------------------------------------------------------------------------- +% \widowpenalty = 10000 \displaywidowpenalty = 10000 +%--------------------------------------------------------------------------- diff --git a/presentations/taler-mdb-36c3/.template/sty/cmbright.sty b/presentations/taler-mdb-36c3/.template/sty/cmbright.sty new file mode 100644 index 0000000..2232a86 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/cmbright.sty @@ -0,0 +1,147 @@ +%% +%% This is file `cmbright.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% cmbright.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from cmbright.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file cmbright.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesPackage{cmbright} + [2005/04/13 v8.1 (WaS)] +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\renewcommand{\familydefault}{\sfdefault} +\renewcommand{\sfdefault}{cmbr} +\renewcommand{\ttdefault}{cmtl} +\DeclareSymbolFont {operators} {OT1}{cmbr}{m}{n} +\DeclareSymbolFont {letters} {OML}{cmbrm}{m}{it} +\SetSymbolFont {letters}{bold} {OML}{cmbrm}{b}{it} +\DeclareSymbolFont {symbols} {OMS}{cmbrs}{m}{n} +\DeclareMathAlphabet{\mathit} {OT1}{cmbr}{m}{sl} +\DeclareMathAlphabet{\mathbf} {OT1}{cmbr}{bx}{n} +\DeclareMathAlphabet{\mathtt} {OT1}{cmtl}{m}{n} +\DeclareMathAlphabet{\mathbold}{OML}{cmbrm}{b}{it} +\DeclareMathSymbol{\alpha}{\mathalpha}{letters}{11} +\DeclareMathSymbol{\beta}{\mathalpha}{letters}{12} +\DeclareMathSymbol{\gamma}{\mathalpha}{letters}{13} +\DeclareMathSymbol{\delta}{\mathalpha}{letters}{14} +\DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{15} +\DeclareMathSymbol{\zeta}{\mathalpha}{letters}{16} +\DeclareMathSymbol{\eta}{\mathalpha}{letters}{17} +\DeclareMathSymbol{\theta}{\mathalpha}{letters}{18} +\DeclareMathSymbol{\iota}{\mathalpha}{letters}{19} +\DeclareMathSymbol{\kappa}{\mathalpha}{letters}{20} +\DeclareMathSymbol{\lambda}{\mathalpha}{letters}{21} +\DeclareMathSymbol{\mu}{\mathalpha}{letters}{22} +\DeclareMathSymbol{\nu}{\mathalpha}{letters}{23} +\DeclareMathSymbol{\xi}{\mathalpha}{letters}{24} +\DeclareMathSymbol{\pi}{\mathalpha}{letters}{25} +\DeclareMathSymbol{\rho}{\mathalpha}{letters}{26} +\DeclareMathSymbol{\sigma}{\mathalpha}{letters}{27} +\DeclareMathSymbol{\tau}{\mathalpha}{letters}{28} +\DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{29} +\DeclareMathSymbol{\phi}{\mathalpha}{letters}{30} +\DeclareMathSymbol{\chi}{\mathalpha}{letters}{31} +\DeclareMathSymbol{\psi}{\mathalpha}{letters}{32} +\DeclareMathSymbol{\omega}{\mathalpha}{letters}{33} +\DeclareMathSymbol{\varepsilon}{\mathalpha}{letters}{34} +\DeclareMathSymbol{\vartheta}{\mathalpha}{letters}{35} +\DeclareMathSymbol{\varpi}{\mathalpha}{letters}{36} +\DeclareMathSymbol{\varrho}{\mathalpha}{letters}{37} +\DeclareMathSymbol{\varsigma}{\mathalpha}{letters}{38} +\DeclareMathSymbol{\varphi}{\mathalpha}{letters}{39} +\DeclareOption{slantedGreek}{% + \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0} + \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1} + \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2} + \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3} + \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4} + \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5} + \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6} + \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7} + \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8} + \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9} + \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10} +} +\let\upDelta\Delta +\let\upOmega\Omega +\let\upGamma\Gamma +\let\upTheta\Theta +\let\upLambda\Lambda +\let\upXi\Xi +\let\upPi\Pi +\let\upSigma\Sigma +\let\upUpsilon\Upsilon +\let\upPhi\Phi +\let\upPsi\Psi +\def\bright@baselineskip@table + {<\@viiipt>10<\@ixpt>11.25<\@xpt>12.5<\@xipt>13.7<\@xiipt>15} +\def\bright@setfontsize#1#2#3% + {\edef\@tempa{\def\noexpand\@tempb####1<#2}% + \@tempa>##2<##3\@nil{\def\bright@baselineskip@value{##2}}% + \edef\@tempa{\noexpand\@tempb\bright@baselineskip@table<#2}% + \@tempa><\@nil + \ifx\bright@baselineskip@value\@empty + \def\bright@baselineskip@value{#3}% + \fi + \old@setfontsize{#1}{#2}\bright@baselineskip@value} +\let\old@setfontsize=\@setfontsize +\DeclareOption{enlarged-baselineskips}{% + \let\@setfontsize=\bright@setfontsize} +\DeclareOption{standard-baselineskips}{% + \let\@setfontsize=\old@setfontsize} +\DeclareTextCommand{\textsterling}{OT1}{{% + \ifdim \fontdimen\@ne\font >\z@ + \fontfamily{\rmdefault}\fontshape{it}\selectfont + \else + \fontfamily{\rmdefault}\fontshape{ui}\selectfont + \fi + \char`\$}} +\def\mathsterling{\textsl{\textsterling}} +\AtBeginDocument{% + \DeclareFontFamily{U}{msa}{} + \DeclareFontShape{U}{msa}{m}{n}{% + <-9>cmbras8% + <9-10>cmbras9% + <10->cmbras10% + }{} + \DeclareFontFamily{U}{msb}{} + \DeclareFontShape{U}{msb}{m}{n}{% + <-9>cmbrbs8% + <9-10>cmbrbs9% + <10->cmbrbs10% + }{} +} +\def\TeX{T\kern-.19em\lower.5ex\hbox{E}\kern-.05emX\@} +\DeclareRobustCommand{\LaTeX}{L\kern-.3em% + {\sbox\z@ T% + \vbox to\ht\z@{\hbox{\check@mathfonts + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A}% + \vss}% + }% + \kern-.15em% + \TeX} +\DeclareRobustCommand{\LaTeXe}{\mbox{\m@th + \if b\expandafter\@car\f@series\@nil\boldmath\fi + \LaTeX\kern.15em2$_{\textstyle\varepsilon}$}} +\ExecuteOptions{enlarged-baselineskips} +\ProcessOptions\relax +\normalfont\normalsize +\endinput +%% +%% End of file `cmbright.sty'. diff --git a/presentations/taler-mdb-36c3/.template/sty/collectbox.sty b/presentations/taler-mdb-36c3/.template/sty/collectbox.sty new file mode 100644 index 0000000..fd73222 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/collectbox.sty @@ -0,0 +1,328 @@ +%% +%% This is file `collectbox.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% collectbox.dtx (with options: `collectbox.sty') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from collectbox.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file collectbox.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% Copyright (C) 2012 by Martin Scharrer +%% -------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files collectbox.dtx and collectbox.ins +%% and the derived filebase collectbox.sty. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{collectbox}[% + 2012/05/17 + v0.4b + Collect macro arguments as boxes] +\newsavebox\collectedbox +\newcommand*\collectbox{% + \@ifstar + {\collectbox@a{{\BOXCONTENT}}}% + {\collectbox@a{}}% +} +\long\def\collectbox@a#1{% + \@ifnextchar[% + {\collectbox@b{#1}}% + {\collectbox@b{#1}[]}% +} +\long\def\collectbox@b#1[#2]#3{% + \@ifnextchar[% + {\collectbox@c{#2}{#3#1}}% + {\collectbox@c{#2}{#3#1}[]}% +} +\long\def\collectbox@c#1#2[#3]{% + \collectbox@{#1}{#2}{#3}% +} +\let\collect@box\hbox +\let\collectbox@mode\leavevmode +\newcommand\collectbox@[3]{% + \begingroup + \collectbox@mode + \@temptokena{#3\collectbox@end#2\endgroup}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup + #1\bgroup + \aftergroup\the + \aftergroup\@temptokena + \collectbox@bgroup +} +\let\collectbox@macro\collectbox@ +\newcommand\collectbox@env[3]{% + \collectbox@mode + \def\collectboxenvend{#3\collectbox@end#2\collectbox@currenvir}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup + \collectbox@reset + \ignorespaces + #1% +} +\def\collectbox@currenvir{% + \edef\@currenvir{\@currenvir}% +} +\def\collectbox@macro@bgroup{% + \@ifnextchar\bgroup + {\let\@let@token=}% + {\collectbox@arg}% +} +\def\collectbox@env@bgroup{% + \collectbox@reset + \ignorespaces +} +\let\collectbox@bgroup\collectbox@macro@bgroup +\def\collectbox@setgroup{% + \color@setgroup +} +\def\collectbox@endgroup{% + \collectbox@endcode + \color@endgroup +} +\let\collectbox@endcode\relax +\newcommand\@collectbox[1]{% + \begingroup + \collectbox@mode + \@temptokena{\collectbox@end#1\endgroup}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup\bgroup + \aftergroup\the + \aftergroup\@temptokena + \collectbox@bgroup +} +\newcommand\@Collectbox[2]{% + \begingroup + \collectbox@mode + \sbox\collectedbox{#2}% + \collectbox@setdims + #1% + \endgroup +} +\def\collectbox@arg#1{% + #1\egroup +} +\def\collectbox@end{% + \collectbox@endgroup + \egroup + \collectbox@setdims + \ifcollectboxenv + \collectbox@reset + \collectbox@currenvir + \fi +} +\def\collectbox@setdims{% + \collectbox@protecteddef\BOXCONTENT{\usebox\collectedbox}% + \collectbox@protecteddef\width{\wd\collectedbox}% + \collectbox@protecteddef\height{\ht\collectedbox}% + \collectbox@protecteddef\depth{\dp\collectedbox}% + \collectbox@protecteddef\totalheight{\@ovri}% + \totalheight\height + \advance\totalheight\depth +}% +\def\collectbox@reset{% + \let\collectbox@endcode\relax + \let\collectbox@bgroup\collectbox@macro@bgroup + \let\collectbox@\collectbox@macro + \collectboxenvfalse +} +\begingroup +\expandafter\ifx\csname protected\endcsname\relax + \let\collectbox@protecteddef\def% +\else + \gdef\collectbox@protecteddef{\protected\def}% +\fi +\endgroup +\let\collectbox@code\empty +\newcommand\collectboxto[1]{% + \@ifnextchar[% + {\collectboxto@a{#1}}% + {\collectboxto@a{#1}[]}% +} +\long\def\collectboxto@a#1[#2]#3{% + \@ifnextchar[% + {\collectboxto@b{#1}{#2}{#3}}% + {\collectboxto@b{#1}{#2}{#3}[]}% +} +\long\def\collectboxto@b#1#2#3[#4]{% + \collectboxto@{#1}{#2}{#3}{#4}% +} +\newcommand\collectboxto@[4]{% + \collectbox@mode + \setbox#1\collect@box\bgroup + \def\collectbox@code{#4\collectbox@endgroup\egroup#3}% + \collectbox@setgroup#2\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand\@collectboxto[2]{% + \collectbox@mode + \setbox#1\collect@box\bgroup + \def\collectbox@code{\collectbox@endgroup\egroup#2}% + \collectbox@setgroup\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand\nocollectbox@[3]{% + \collectbox@mode + \collect@box\bgroup + \def\collectbox@code{#3\egroup#2}% + #1\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand\nocollectbox@to[4]{% + \collectbox@mode + \collect@box to #1\bgroup + \def\collectbox@code{#4\egroup#3}% + #2\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand*\collectboxcheckenv[1]{% + \begingroup + \def\@tempa{#1}% + \expandafter\endgroup + \ifx\@currenvir\@tempa + \@collectboxisenv{#1}% + \fi +} +\def\@collectboxisenv#1{% + \collectbox@noindent + \collectboxenvtrue + \edef\@currenvir{\@currenvir\noexpand\empty}% + \let\collectbox@bgroup\collectbox@env@bgroup + \let\collectbox@endcode\collectbox@env@endcode + \let\collectbox@\collectbox@env + \expandafter\ifx\csname end#1\endcsname\relax + \expandafter\let\csname end#1\endcsname\collectbox@envend + \fi +} +\newif\ifcollectboxenv +\let\collectbox@noindent\noindent +\def\collectbox@env@endcode{\ifhmode\unskip\fi}% +\def\collectbox@envend{\collectboxenvend}% +\def\collectboxenvend{% + \egroup + \collectbox@currenvir +}% +\newcommand\collectboxtabular[3][c]{% + \collectbox@tab{tabular}{[#1]{#2}}{}{#3}{}% +} +\newcommand\collectboxtabularstar[4][c]{% + \collectbox@tab{tabular*}{[#1]{#2}{#3}}{}{#4}{}% +} +\newcommand\collectboxarray[2]{% + \collectbox@tab{array}{{#1}}{\(}{#2}{\)}% +} +\def\collectbox@checkarray{% +\@ifpackageloaded{array}{% + \let\collectbox@realarraycr\@arraycr + \def\collectbox@setarraycr{% + \let\@arraycr\collebox@cr + \def\ialign{\let\@arraycr\collectbox@realarraycr \everycr {}\tabskip \z@skip \halign}% + }% +}{% + \let\collectbox@realarraycr\@tabularcr + \def\collectbox@setarraycr{% + \let\@tabularcr\collebox@cr + \def\ialign{\let\noexpand\@tabularcr\noexpand\collectbox@realarraycr \everycr {}\tabskip \z@skip \halign}% + }% +}% +} +\collectbox@checkarray +\AtBeginDocument{\collectbox@checkarray}% +\def\collectbox@dorealarraycr{% + \expandafter\collectbox@realarraycr\collectbox@aftercrstuff +} +\let\collectbox@aftercrstuff\empty +\def\collectbox@tab#1#2#3#4#5{% + \begingroup + \collectbox@mode + \def\collectbox@codeafter{#4\endgroup}% + \def\collectbox@endtabenv{\end{#1}#5\collectbox@end}% + \def\collectbox@dotab{#3\begin{#1}#2}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup + \collectbox@setarraycr + \afterassignment\collectbox@dotab + \let\@let@token=% +} +\def\collebox@cr{% + \@ifstar\collebox@@cr\collebox@@cr% +} +\def\collebox@@cr{% + \@ifnextchar[% + \collebox@@cr@opt + {\collebox@@@cr{}}% +} +\def\collebox@@cr@opt[#1]{% + \collebox@@@cr{[#1]}% +} +\def\collebox@@@cr#1{% + \def\collectbox@aftercrstuff{#1}% + \expandafter\collebox@@@@cr + \romannumeral-`0% +} +\def\collebox@@@@cr{% + \@ifnextchar\egroup{\collectbox@dorealarraycr\collectbox@aftertab}{% + \ifx\@let@token\noalign + \expandafter\collectbox@handlenoalign + \else + \expandafter\collectbox@dorealarraycr + \fi + }% +} +\def\collectbox@handlenoalign#1#2{% + \collectbox@dorealarraycr + \noalign{\bgroup\aftergroup\collectbox@afternoalign#2}% +} +\def\collectbox@handlenextnoalign#1#2{% + \egroup + \noalign{\bgroup\aftergroup\collectbox@afternoalign#2}% +} +\def\collectbox@afternoalign{% + \expandafter\collectbox@@afternoalign + \romannumeral-`0% +} +\def\collectbox@@afternoalign{% + \@ifnextchar\egroup{\egroup\collectbox@aftertab}{% + \ifx\@let@token\noalign + \expandafter\collectbox@handlenextnoalign + \else + \expandafter\egroup + \fi + }% +} +\def\collectbox@aftertab{% + \collectbox@endtabenv + \afterassignment\collectbox@codeafter + \let\@let@token=% +} +\endinput +%% +%% End of file `collectbox.sty'. diff --git a/presentations/taler-mdb-36c3/.template/sty/geometry.sty b/presentations/taler-mdb-36c3/.template/sty/geometry.sty new file mode 100644 index 0000000..b46f4ee --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/geometry.sty @@ -0,0 +1,1130 @@ +%% +%% This is file `geometry.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% geometry.dtx (with options: `package') +%% +%% Copyright (C) 1996-2010 +%% by Hideo Umeki +%% +%% This work may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3c of this license +%% or (at your option) any later version. The latest version of this +%% license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work is "maintained" (as per the LPPL maintenance status) +%% by Hideo Umeki. +%% +%% This work consists of the files geometry.dtx and +%% the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{geometry} + [2010/09/12 v5.6 Page Geometry] +\RequirePackage{keyval}% +\RequirePackage{ifpdf}% +\RequirePackage{ifvtex}% +\RequirePackage{ifxetex}% +\newif\ifGm@verbose +\newif\ifGm@landscape +\newif\ifGm@swap@papersize +\newif\ifGm@includehead +\newif\ifGm@includefoot +\newif\ifGm@includemp +\newif\ifGm@hbody +\newif\ifGm@vbody +\newif\ifGm@heightrounded +\newif\ifGm@showframe +\newif\ifGm@showcrop +\newif\ifGm@pass +\newif\ifGm@resetpaper +\newif\ifGm@layout +\newif\ifGm@newgm +\newcount\Gm@cnth +\newcount\Gm@cntv +\newcount\c@Gm@tempcnt +\newdimen\Gm@bindingoffset +\newdimen\Gm@wd@mp +\newdimen\Gm@odd@mp +\newdimen\Gm@even@mp +\newdimen\Gm@layoutwidth +\newdimen\Gm@layoutheight +\newdimen\Gm@layouthoffset +\newdimen\Gm@layoutvoffset +\newtoks\Gm@dimlist +\def\Gm@warning#1{\PackageWarningNoLine{geometry}{#1}}% +\def\ifGm@preamble#1{% + \ifGm@newgm + \Gm@warning{`#1': not available in `\string\newgeometry'; skipped}% + \else + \expandafter\@firstofone + \fi}% +\def\Gm@Dhratio{1:1}% = left:right default for oneside +\def\Gm@Dhratiotwo{2:3}% = inner:outer default for twoside. +\def\Gm@Dvratio{2:3}% = top:bottom default +\def\Gm@Dhscale{0.7}% +\def\Gm@Dvscale{0.7}% +\def\Gm@dvips{dvips}% +\def\Gm@dvipdfm{dvipdfm}% +\def\Gm@pdftex{pdftex}% +\def\Gm@xetex{xetex}% +\def\Gm@vtex{vtex}% +\def\Gm@true{true}% +\def\Gm@false{false}% +\edef\Gm@orgpw{\the\paperwidth}% +\edef\Gm@orgph{\the\paperheight}% +\def\Gm@savelength#1{% + \g@addto@macro\Gm@restore{\expandafter\noexpand\expandafter\csname + #1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}}% +\def\Gm@saveboolean#1{% + \csname if#1\endcsname + \g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1true\endcsname}% + \else + \g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1false\endcsname}% + \fi}% +\def\Gm@restore{}% +\def\Gm@save{% + \Gm@savelength{paperwidth}% + \Gm@savelength{paperheight}% + \Gm@savelength{textwidth}% + \Gm@savelength{textheight}% + \Gm@savelength{evensidemargin}% + \Gm@savelength{oddsidemargin}% + \Gm@savelength{topmargin}% + \Gm@savelength{headheight}% + \Gm@savelength{headsep}% + \Gm@savelength{topskip}% + \Gm@savelength{footskip}% + \Gm@savelength{baselineskip}% + \Gm@savelength{marginparwidth}% + \Gm@savelength{marginparsep}% + \Gm@savelength{columnsep}% + \Gm@savelength{hoffset}% + \Gm@savelength{voffset} + \Gm@savelength{Gm@layoutwidth}% + \Gm@savelength{Gm@layoutheight}% + \Gm@savelength{Gm@layouthoffset}% + \Gm@savelength{Gm@layoutvoffset}% + \Gm@saveboolean{@twocolumn}% + \Gm@saveboolean{@twoside}% + \Gm@saveboolean{@mparswitch}% + \Gm@saveboolean{@reversemargin}}% +\def\Gm@initnewgm{% + \Gm@passfalse + \Gm@swap@papersizefalse + \Gm@dimlist={} + \Gm@hbodyfalse + \Gm@vbodyfalse + \Gm@heightroundedfalse + \Gm@includeheadfalse + \Gm@includefootfalse + \Gm@includempfalse + \let\Gm@width\@undefined + \let\Gm@height\@undefined + \let\Gm@textwidth\@undefined + \let\Gm@textheight\@undefined + \let\Gm@lines\@undefined + \let\Gm@hscale\@undefined + \let\Gm@vscale\@undefined + \let\Gm@hmarginratio\@undefined + \let\Gm@vmarginratio\@undefined + \let\Gm@lmargin\@undefined + \let\Gm@rmargin\@undefined + \let\Gm@tmargin\@undefined + \let\Gm@bmargin\@undefined + \Gm@layoutfalse + \Gm@layouthoffset\z@ + \Gm@layoutvoffset\z@ + \Gm@bindingoffset\z@}% +\def\Gm@initall{% + \let\Gm@driver\@empty + \let\Gm@truedimen\@empty + \let\Gm@paper\@undefined + \Gm@resetpaperfalse + \Gm@landscapefalse + \Gm@verbosefalse + \Gm@showframefalse + \Gm@showcropfalse + \Gm@newgmfalse + \Gm@initnewgm}% +\def\Gm@setdriver#1{% + \expandafter\let\expandafter\Gm@driver\csname Gm@#1\endcsname}% +\def\Gm@unsetdriver#1{% + \expandafter\ifx\csname Gm@#1\endcsname\Gm@driver\let\Gm@driver\@empty\fi}% +\def\Gm@setbool{\@dblarg\Gm@@setbool}% +\def\Gm@setboolrev{\@dblarg\Gm@@setboolrev}% +\def\Gm@@setbool[#1]#2#3{\Gm@doif{#1}{#3}{\csname Gm@#2\Gm@bool\endcsname}}% +\def\Gm@@setboolrev[#1]#2#3{\Gm@doifelse{#1}{#3}% + {\csname Gm@#2\Gm@false\endcsname}{\csname Gm@#2\Gm@true\endcsname}}% +\def\Gm@doif#1#2#3{% + \lowercase{\def\Gm@bool{#2}}% + \ifx\Gm@bool\@empty + \let\Gm@bool\Gm@true + \fi + \ifx\Gm@bool\Gm@true + \else + \ifx\Gm@bool\Gm@false + \else + \let\Gm@bool\relax + \fi + \fi + \ifx\Gm@bool\relax + \Gm@warning{`#1' should be set to `true' or `false'}% + \else + #3 + \fi}% +\def\Gm@doifelse#1#2#3#4{% + \Gm@doif{#1}{#2}{\ifx\Gm@bool\Gm@true #3\else #4\fi}}% +\def\Gm@reverse#1{% + \csname ifGm@#1\endcsname + \csname Gm@#1false\endcsname\else\csname Gm@#1true\endcsname\fi}% +\def\Gm@defbylen#1#2{% + \begingroup\setlength\@tempdima{#2}% + \expandafter\xdef\csname Gm@#1\endcsname{\the\@tempdima}\endgroup}% +\def\Gm@defbycnt#1#2{% + \begingroup\setcounter{Gm@tempcnt}{#2}% + \expandafter\xdef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}\endgroup}% +\def\Gm@sep@ratio#1:#2{\@tempcnta=#1\@tempcntb=#2}% +\def\Gm@setbyratio[#1]#2#3#4{% determine #4 by ratio + \expandafter\Gm@sep@ratio\Gm@mratio\relax + \if#1b + \edef\@@tempa{\the\@tempcnta}% + \@tempcnta=\@tempcntb + \@tempcntb=\@@tempa\relax + \fi + \expandafter\setlength\expandafter\@tempdimb\expandafter + {\csname Gm@#3\endcsname}% + \ifnum\@tempcntb>\z@ + \multiply\@tempdimb\@tempcnta + \divide\@tempdimb\@tempcntb + \fi + \expandafter\edef\csname Gm@#4\endcsname{\the\@tempdimb}}% +\def\Gm@detiv#1#2#3#4{% determine #4. + \expandafter\setlength\expandafter\@tempdima\expandafter + {\csname Gm@layout#1\endcsname}% + \expandafter\setlength\expandafter\@tempdimb\expandafter + {\csname Gm@#2\endcsname}% + \addtolength\@tempdima{-\@tempdimb}% + \expandafter\setlength\expandafter\@tempdimb\expandafter + {\csname Gm@#3\endcsname}% + \addtolength\@tempdima{-\@tempdimb}% + \ifdim\@tempdima<\z@ + \Gm@warning{`#4' results in NEGATIVE (\the\@tempdima).% + ^^J\@spaces `#2' or `#3' should be shortened in length}% + \fi + \expandafter\edef\csname Gm@#4\endcsname{\the\@tempdima}}% +\def\Gm@detiiandiii#1#2#3{% determine #2 and #3. + \expandafter\setlength\expandafter\@tempdima\expandafter + {\csname Gm@layout#1\endcsname}% + \expandafter\setlength\expandafter\@tempdimb\expandafter + {\csname Gm@#1\endcsname}% + \addtolength\@tempdima{-\@tempdimb}% + \ifdim\@tempdima<\z@ + \Gm@warning{`#2' and `#3' result in NEGATIVE (\the\@tempdima).% + ^^J\@spaces `#1' should be shortened in length}% + \fi + \ifx\Gm@mratio\@undefined + \expandafter\Gm@sep@ratio\Gm@Dmratio\relax + \else + \expandafter\Gm@sep@ratio\Gm@mratio\relax + \ifnum\@tempcntb>\z@\else + \Gm@warning{margin ratio a:b should be non-zero; default used}% + \expandafter\Gm@sep@ratio\Gm@Dmratio\relax + \fi + \fi + \@tempdimb=\@tempdima + \advance\@tempcntb\@tempcnta + \divide\@tempdima\@tempcntb + \multiply\@tempdima\@tempcnta + \advance\@tempdimb-\@tempdima + \expandafter\edef\csname Gm@#2\endcsname{\the\@tempdima}% + \expandafter\edef\csname Gm@#3\endcsname{\the\@tempdimb}}% +\def\Gm@detall#1#2#3#4{% + \@tempcnta\z@ + \if#1h + \let\Gm@mratio\Gm@hmarginratio + \edef\Gm@Dmratio{\if@twoside\Gm@Dhratiotwo\else\Gm@Dhratio\fi}% + \else + \let\Gm@mratio\Gm@vmarginratio + \edef\Gm@Dmratio{\Gm@Dvratio}% + \fi + \if#1h + \ifx\Gm@lmargin\@undefined\else\advance\@tempcnta4\relax\fi + \ifGm@hbody\advance\@tempcnta2\relax\fi + \ifx\Gm@rmargin\@undefined\else\advance\@tempcnta1\relax\fi + \Gm@cnth\@tempcnta + \else + \ifx\Gm@tmargin\@undefined\else\advance\@tempcnta4\relax\fi + \ifGm@vbody\advance\@tempcnta2\relax\fi + \ifx\Gm@bmargin\@undefined\else\advance\@tempcnta1\relax\fi + \Gm@cntv\@tempcnta + \fi + \ifcase\@tempcnta + \if#1h + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \fi + \Gm@detiiandiii{#2}{#3}{#4}% + \or + \ifx\Gm@mratio\@undefined + \if#1h + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \fi + \setlength\@tempdimc{\@nameuse{Gm@#4}}% + \Gm@detiiandiii{#2}{#3}{#4}% + \expandafter\let\csname Gm@#2\endcsname\@undefined + \Gm@defbylen{#4}{\@tempdimc}% + \else + \Gm@setbyratio[f]{#1}{#4}{#3}% + \fi + \Gm@detiv{#2}{#3}{#4}{#2}% + \or\Gm@detiiandiii{#2}{#3}{#4}% + \or\Gm@detiv{#2}{#2}{#4}{#3}% + \or + \ifx\Gm@mratio\@undefined + \if#1h + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \fi + \setlength\@tempdimc{\@nameuse{Gm@#3}}% + \Gm@detiiandiii{#2}{#4}{#3}% + \expandafter\let\csname Gm@#2\endcsname\@undefined + \Gm@defbylen{#3}{\@tempdimc}% + \else + \Gm@setbyratio[b]{#1}{#3}{#4}% + \fi + \Gm@detiv{#2}{#3}{#4}{#2}% + \or\Gm@detiv{#2}{#3}{#4}{#2}% + \or\Gm@detiv{#2}{#2}{#3}{#4}% + \or\Gm@warning{Over-specification in `#1'-direction.% + ^^J\@spaces `#2' (\@nameuse{Gm@#2}) is ignored}% + \Gm@detiv{#2}{#3}{#4}{#2}% + \else\fi}% +\def\Gm@clean{% + \ifnum\Gm@cnth<4\let\Gm@lmargin\@undefined\fi + \ifodd\Gm@cnth\else\let\Gm@rmargin\@undefined\fi + \ifnum\Gm@cntv<4\let\Gm@tmargin\@undefined\fi + \ifodd\Gm@cntv\else\let\Gm@bmargin\@undefined\fi + \ifGm@hbody\else + \let\Gm@hscale\@undefined + \let\Gm@width\@undefined + \let\Gm@textwidth\@undefined + \fi + \ifGm@vbody\else + \let\Gm@vscale\@undefined + \let\Gm@height\@undefined + \let\Gm@textheight\@undefined + \fi + }% +\def\Gm@parse@divide#1#2#3#4{% + \def\Gm@star{*}% + \@tempcnta\z@ + \@for\Gm@tmp:=#1\do{% + \expandafter\KV@@sp@def\expandafter\Gm@frag\expandafter{\Gm@tmp}% + \edef\Gm@value{\Gm@frag}% + \ifcase\@tempcnta\relax\edef\Gm@key{#2}% + \or\edef\Gm@key{#3}% + \else\edef\Gm@key{#4}% + \fi + \@nameuse{Gm@set\Gm@key false}% + \ifx\empty\Gm@value\else + \ifx\Gm@star\Gm@value\else + \setkeys{Gm}{\Gm@key=\Gm@value}% + \fi\fi + \advance\@tempcnta\@ne}% + \let\Gm@star\relax}% +\def\Gm@branch#1#2#3{% + \@tempcnta\z@ + \@for\Gm@tmp:=#1\do{% + \KV@@sp@def\Gm@frag{\Gm@tmp}% + \edef\Gm@value{\Gm@frag}% + \ifcase\@tempcnta\relax% cnta == 0 + \setkeys{Gm}{#2=\Gm@value}% + \or% cnta == 1 + \setkeys{Gm}{#3=\Gm@value}% + \else\fi + \advance\@tempcnta\@ne}% + \ifnum\@tempcnta=\@ne + \setkeys{Gm}{#3=\Gm@value}% + \fi}% +\def\Gm@magtooffset{% + \@tempdima=\mag\Gm@truedimen sp% + \@tempdimb=1\Gm@truedimen in% + \divide\@tempdimb\@tempdima + \multiply\@tempdimb\@m + \addtolength{\hoffset}{1\Gm@truedimen in}% + \addtolength{\voffset}{1\Gm@truedimen in}% + \addtolength{\hoffset}{-\the\@tempdimb}% + \addtolength{\voffset}{-\the\@tempdimb}}% +\def\Gm@setlength#1#2{% + \let\Gm@len=\relax\let\Gm@td=\relax + \edef\addtolist{\noexpand\Gm@dimlist=% + {\the\Gm@dimlist \Gm@len{#1}{#2}}}\addtolist}% +\def\Gm@expandlengths{% + \def\Gm@td{\Gm@truedimen}% + \def\Gm@len##1##2{\setlength{##1}{##2}}% + \the\Gm@dimlist}% +\def\Gm@setsize#1(#2,#3)#4{% + \let\Gm@td\relax + \expandafter\Gm@setlength\csname #1width\endcsname{#2\Gm@td #4}% + \expandafter\Gm@setlength\csname #1height\endcsname{#3\Gm@td #4}% + \ifGm@landscape\Gm@swap@papersizetrue\else\Gm@swap@papersizefalse\fi}% +\def\Gm@setpaper@ifpre#1{% + \ifGm@preamble{#1}{\def\Gm@paper{#1}\@nameuse{Gm@#1}{paper}}}% +\@namedef{Gm@a0paper}#1{\Gm@setsize{#1}(841,1189){mm}}% ISO A0 +\@namedef{Gm@a1paper}#1{\Gm@setsize{#1}(594,841){mm}}% ISO A1 +\@namedef{Gm@a2paper}#1{\Gm@setsize{#1}(420,594){mm}}% ISO A2 +\@namedef{Gm@a3paper}#1{\Gm@setsize{#1}(297,420){mm}}% ISO A3 +\@namedef{Gm@a4paper}#1{\Gm@setsize{#1}(210,297){mm}}% ISO A4 +\@namedef{Gm@a5paper}#1{\Gm@setsize{#1}(148,210){mm}}% ISO A5 +\@namedef{Gm@a6paper}#1{\Gm@setsize{#1}(105,148){mm}}% ISO A6 +\@namedef{Gm@b0paper}#1{\Gm@setsize{#1}(1000,1414){mm}}% ISO B0 +\@namedef{Gm@b1paper}#1{\Gm@setsize{#1}(707,1000){mm}}% ISO B1 +\@namedef{Gm@b2paper}#1{\Gm@setsize{#1}(500,707){mm}}% ISO B2 +\@namedef{Gm@b3paper}#1{\Gm@setsize{#1}(353,500){mm}}% ISO B3 +\@namedef{Gm@b4paper}#1{\Gm@setsize{#1}(250,353){mm}}% ISO B4 +\@namedef{Gm@b5paper}#1{\Gm@setsize{#1}(176,250){mm}}% ISO B5 +\@namedef{Gm@b6paper}#1{\Gm@setsize{#1}(125,176){mm}}% ISO B6 +\@namedef{Gm@c0paper}#1{\Gm@setsize{#1}(917,1297){mm}}% ISO C0 +\@namedef{Gm@c1paper}#1{\Gm@setsize{#1}(648,917){mm}}% ISO C1 +\@namedef{Gm@c2paper}#1{\Gm@setsize{#1}(458,648){mm}}% ISO C2 +\@namedef{Gm@c3paper}#1{\Gm@setsize{#1}(324,458){mm}}% ISO C3 +\@namedef{Gm@c4paper}#1{\Gm@setsize{#1}(229,324){mm}}% ISO C4 +\@namedef{Gm@c5paper}#1{\Gm@setsize{#1}(162,229){mm}}% ISO C5 +\@namedef{Gm@c6paper}#1{\Gm@setsize{#1}(114,162){mm}}% ISO C6 +\@namedef{Gm@b0j}#1{\Gm@setsize{#1}(1030,1456){mm}}% JIS B0 +\@namedef{Gm@b1j}#1{\Gm@setsize{#1}(728,1030){mm}}% JIS B1 +\@namedef{Gm@b2j}#1{\Gm@setsize{#1}(515,728){mm}}% JIS B2 +\@namedef{Gm@b3j}#1{\Gm@setsize{#1}(364,515){mm}}% JIS B3 +\@namedef{Gm@b4j}#1{\Gm@setsize{#1}(257,364){mm}}% JIS B4 +\@namedef{Gm@b5j}#1{\Gm@setsize{#1}(182,257){mm}}% JIS B5 +\@namedef{Gm@b6j}#1{\Gm@setsize{#1}(128,182){mm}}% JIS B6 +\@namedef{Gm@ansiapaper}#1{\Gm@setsize{#1}(8.5,11){in}}% +\@namedef{Gm@ansibpaper}#1{\Gm@setsize{#1}(11,17){in}}% +\@namedef{Gm@ansicpaper}#1{\Gm@setsize{#1}(17,22){in}}% +\@namedef{Gm@ansidpaper}#1{\Gm@setsize{#1}(22,34){in}}% +\@namedef{Gm@ansiepaper}#1{\Gm@setsize{#1}(34,44){in}}% +\@namedef{Gm@letterpaper}#1{\Gm@setsize{#1}(8.5,11){in}}% +\@namedef{Gm@legalpaper}#1{\Gm@setsize{#1}(8.5,14){in}}% +\@namedef{Gm@executivepaper}#1{\Gm@setsize{#1}(7.25,10.5){in}}% +\@namedef{Gm@screen}#1{\Gm@setsize{#1}(225,180){mm}}% +\define@key{Gm}{paper}{\setkeys{Gm}{#1}}% +\let\KV@Gm@papername\KV@Gm@paper +\define@key{Gm}{a0paper}[true]{\Gm@setpaper@ifpre{a0paper}}% +\define@key{Gm}{a1paper}[true]{\Gm@setpaper@ifpre{a1paper}}% +\define@key{Gm}{a2paper}[true]{\Gm@setpaper@ifpre{a2paper}}% +\define@key{Gm}{a3paper}[true]{\Gm@setpaper@ifpre{a3paper}}% +\define@key{Gm}{a4paper}[true]{\Gm@setpaper@ifpre{a4paper}}% +\define@key{Gm}{a5paper}[true]{\Gm@setpaper@ifpre{a5paper}}% +\define@key{Gm}{a6paper}[true]{\Gm@setpaper@ifpre{a6paper}}% +\define@key{Gm}{b0paper}[true]{\Gm@setpaper@ifpre{b0paper}}% +\define@key{Gm}{b1paper}[true]{\Gm@setpaper@ifpre{b1paper}}% +\define@key{Gm}{b2paper}[true]{\Gm@setpaper@ifpre{b2paper}}% +\define@key{Gm}{b3paper}[true]{\Gm@setpaper@ifpre{b3paper}}% +\define@key{Gm}{b4paper}[true]{\Gm@setpaper@ifpre{b4paper}}% +\define@key{Gm}{b5paper}[true]{\Gm@setpaper@ifpre{b5paper}}% +\define@key{Gm}{b6paper}[true]{\Gm@setpaper@ifpre{b6paper}}% +\define@key{Gm}{c0paper}[true]{\Gm@setpaper@ifpre{c0paper}}% +\define@key{Gm}{c1paper}[true]{\Gm@setpaper@ifpre{c1paper}}% +\define@key{Gm}{c2paper}[true]{\Gm@setpaper@ifpre{c2paper}}% +\define@key{Gm}{c3paper}[true]{\Gm@setpaper@ifpre{c3paper}}% +\define@key{Gm}{c4paper}[true]{\Gm@setpaper@ifpre{c4paper}}% +\define@key{Gm}{c5paper}[true]{\Gm@setpaper@ifpre{c5paper}}% +\define@key{Gm}{c6paper}[true]{\Gm@setpaper@ifpre{c6paper}}% +\define@key{Gm}{b0j}[true]{\Gm@setpaper@ifpre{b0j}}% +\define@key{Gm}{b1j}[true]{\Gm@setpaper@ifpre{b1j}}% +\define@key{Gm}{b2j}[true]{\Gm@setpaper@ifpre{b2j}}% +\define@key{Gm}{b3j}[true]{\Gm@setpaper@ifpre{b3j}}% +\define@key{Gm}{b4j}[true]{\Gm@setpaper@ifpre{b4j}}% +\define@key{Gm}{b5j}[true]{\Gm@setpaper@ifpre{b5j}}% +\define@key{Gm}{b6j}[true]{\Gm@setpaper@ifpre{b6j}}% +\define@key{Gm}{ansiapaper}[true]{\Gm@setpaper@ifpre{ansiapaper}}% +\define@key{Gm}{ansibpaper}[true]{\Gm@setpaper@ifpre{ansibpaper}}% +\define@key{Gm}{ansicpaper}[true]{\Gm@setpaper@ifpre{ansicpaper}}% +\define@key{Gm}{ansidpaper}[true]{\Gm@setpaper@ifpre{ansidpaper}}% +\define@key{Gm}{ansiepaper}[true]{\Gm@setpaper@ifpre{ansiepaper}}% +\define@key{Gm}{letterpaper}[true]{\Gm@setpaper@ifpre{letterpaper}}% +\define@key{Gm}{legalpaper}[true]{\Gm@setpaper@ifpre{legalpaper}}% +\define@key{Gm}{executivepaper}[true]{\Gm@setpaper@ifpre{executivepaper}}% +\define@key{Gm}{screen}[true]{\Gm@setpaper@ifpre{screen}}% +\define@key{Gm}{paperwidth}{\ifGm@preamble{paperwidth}{% + \def\Gm@paper{custom}\Gm@setlength\paperwidth{#1}}}% +\define@key{Gm}{paperheight}{\ifGm@preamble{paperheight}{% + \def\Gm@paper{custom}\Gm@setlength\paperheight{#1}}}% +\define@key{Gm}{papersize}{\ifGm@preamble{papersize}{% + \def\Gm@paper{custom}\Gm@branch{#1}{paperwidth}{paperheight}}}% +\define@key{Gm}{layout}{\Gm@layouttrue\@nameuse{Gm@#1}{Gm@layout}}% +\let\KV@Gm@layoutname\KV@Gm@layout +\define@key{Gm}{layoutwidth}{\Gm@layouttrue\Gm@setlength\Gm@layoutwidth{#1}}% +\define@key{Gm}{layoutheight}{\Gm@layouttrue\Gm@setlength\Gm@layoutheight{#1}}% +\define@key{Gm}{layoutsize}{\Gm@branch{#1}{layoutwidth}{layoutheight}}% +\define@key{Gm}{landscape}[true]{\ifGm@preamble{landscape}{% + \Gm@doifelse{landscape}{#1}% + {\ifGm@landscape\else\Gm@landscapetrue\Gm@reverse{swap@papersize}\fi}% + {\ifGm@landscape\Gm@landscapefalse\Gm@reverse{swap@papersize}\fi}}}% +\define@key{Gm}{portrait}[true]{\ifGm@preamble{portrait}{% + \Gm@doifelse{portrait}{#1}% + {\ifGm@landscape\Gm@landscapefalse\Gm@reverse{swap@papersize}\fi}% + {\ifGm@landscape\else\Gm@landscapetrue\Gm@reverse{swap@papersize}\fi}}}% +\define@key{Gm}{hscale}{\Gm@hbodytrue\edef\Gm@hscale{#1}}% +\define@key{Gm}{vscale}{\Gm@vbodytrue\edef\Gm@vscale{#1}}% +\define@key{Gm}{scale}{\Gm@branch{#1}{hscale}{vscale}}% +\define@key{Gm}{width}{\Gm@hbodytrue\Gm@defbylen{width}{#1}}% +\define@key{Gm}{height}{\Gm@vbodytrue\Gm@defbylen{height}{#1}}% +\define@key{Gm}{total}{\Gm@branch{#1}{width}{height}}% +\let\KV@Gm@totalwidth\KV@Gm@width +\let\KV@Gm@totalheight\KV@Gm@height +\define@key{Gm}{textwidth}{\Gm@hbodytrue\Gm@defbylen{textwidth}{#1}}% +\define@key{Gm}{textheight}{\Gm@vbodytrue\Gm@defbylen{textheight}{#1}}% +\define@key{Gm}{text}{\Gm@branch{#1}{textwidth}{textheight}}% +\let\KV@Gm@body\KV@Gm@text +\define@key{Gm}{lines}{\Gm@vbodytrue\Gm@defbycnt{lines}{#1}}% +\define@key{Gm}{includehead}[true]{\Gm@setbool{includehead}{#1}}% +\define@key{Gm}{includefoot}[true]{\Gm@setbool{includefoot}{#1}}% +\define@key{Gm}{includeheadfoot}[true]{\Gm@doifelse{includeheadfoot}{#1}% + {\Gm@includeheadtrue\Gm@includefoottrue}% + {\Gm@includeheadfalse\Gm@includefootfalse}}% +\define@key{Gm}{includemp}[true]{\Gm@setbool{includemp}{#1}}% +\define@key{Gm}{includeall}[true]{\Gm@doifelse{includeall}{#1}% + {\Gm@includeheadtrue\Gm@includefoottrue\Gm@includemptrue}% + {\Gm@includeheadfalse\Gm@includefootfalse\Gm@includempfalse}}% +\define@key{Gm}{ignorehead}[true]{% + \Gm@setboolrev[ignorehead]{includehead}{#1}}% +\define@key{Gm}{ignorefoot}[true]{% + \Gm@setboolrev[ignorefoot]{includefoot}{#1}}% +\define@key{Gm}{ignoreheadfoot}[true]{\Gm@doifelse{ignoreheadfoot}{#1}% + {\Gm@includeheadfalse\Gm@includefootfalse}% + {\Gm@includeheadtrue\Gm@includefoottrue}}% +\define@key{Gm}{ignoremp}[true]{% + \Gm@setboolrev[ignoremp]{includemp}{#1}}% +\define@key{Gm}{ignoreall}[true]{\Gm@doifelse{ignoreall}{#1}% + {\Gm@includeheadfalse\Gm@includefootfalse\Gm@includempfalse}% + {\Gm@includeheadtrue\Gm@includefoottrue\Gm@includemptrue}}% +\define@key{Gm}{heightrounded}[true]{\Gm@setbool{heightrounded}{#1}}% +\define@key{Gm}{hdivide}{\Gm@parse@divide{#1}{lmargin}{width}{rmargin}}% +\define@key{Gm}{vdivide}{\Gm@parse@divide{#1}{tmargin}{height}{bmargin}}% +\define@key{Gm}{divide}{\Gm@parse@divide{#1}{lmargin}{width}{rmargin}% + \Gm@parse@divide{#1}{tmargin}{height}{bmargin}}% +\define@key{Gm}{lmargin}{\Gm@defbylen{lmargin}{#1}}% +\define@key{Gm}{rmargin}{\Gm@defbylen{rmargin}{#1}}% +\let\KV@Gm@left\KV@Gm@lmargin +\let\KV@Gm@inner\KV@Gm@lmargin +\let\KV@Gm@innermargin\KV@Gm@lmargin +\let\KV@Gm@right\KV@Gm@rmargin +\let\KV@Gm@outer\KV@Gm@rmargin +\let\KV@Gm@outermargin\KV@Gm@rmargin +\define@key{Gm}{tmargin}{\Gm@defbylen{tmargin}{#1}}% +\define@key{Gm}{bmargin}{\Gm@defbylen{bmargin}{#1}}% +\let\KV@Gm@top\KV@Gm@tmargin +\let\KV@Gm@bottom\KV@Gm@bmargin +\define@key{Gm}{hmargin}{\Gm@branch{#1}{lmargin}{rmargin}}% +\define@key{Gm}{vmargin}{\Gm@branch{#1}{tmargin}{bmargin}}% +\define@key{Gm}{margin}{\Gm@branch{#1}{lmargin}{tmargin}% + \Gm@branch{#1}{rmargin}{bmargin}}% +\define@key{Gm}{hmarginratio}{\edef\Gm@hmarginratio{#1}}% +\define@key{Gm}{vmarginratio}{\edef\Gm@vmarginratio{#1}}% +\define@key{Gm}{marginratio}{\Gm@branch{#1}{hmarginratio}{vmarginratio}}% +\let\KV@Gm@hratio\KV@Gm@hmarginratio +\let\KV@Gm@vratio\KV@Gm@vmarginratio +\let\KV@Gm@ratio\KV@Gm@marginratio +\define@key{Gm}{hcentering}[true]{\Gm@doifelse{hcentering}{#1}% + {\def\Gm@hmarginratio{1:1}}{}}% +\define@key{Gm}{vcentering}[true]{\Gm@doifelse{vcentering}{#1}% + {\def\Gm@vmarginratio{1:1}}{}}% +\define@key{Gm}{centering}[true]{\Gm@doifelse{centering}{#1}% + {\def\Gm@hmarginratio{1:1}\def\Gm@vmarginratio{1:1}}{}}% +\define@key{Gm}{twoside}[true]{\Gm@doifelse{twoside}{#1}% + {\@twosidetrue\@mparswitchtrue}{\@twosidefalse\@mparswitchfalse}}% +\define@key{Gm}{asymmetric}[true]{\Gm@doifelse{asymmetric}{#1}% + {\@twosidetrue\@mparswitchfalse}{}}% +\define@key{Gm}{bindingoffset}{\Gm@setlength\Gm@bindingoffset{#1}}% +\define@key{Gm}{headheight}{\Gm@setlength\headheight{#1}}% +\define@key{Gm}{headsep}{\Gm@setlength\headsep{#1}}% +\define@key{Gm}{footskip}{\Gm@setlength\footskip{#1}}% +\let\KV@Gm@head\KV@Gm@headheight +\let\KV@Gm@foot\KV@Gm@footskip +\define@key{Gm}{nohead}[true]{\Gm@doifelse{nohead}{#1}% + {\Gm@setlength\headheight\z@\Gm@setlength\headsep\z@}{}}% +\define@key{Gm}{nofoot}[true]{\Gm@doifelse{nofoot}{#1}% + {\Gm@setlength\footskip\z@}{}}% +\define@key{Gm}{noheadfoot}[true]{\Gm@doifelse{noheadfoot}{#1}% + {\Gm@setlength\headheight\z@\Gm@setlength\headsep + \z@\Gm@setlength\footskip\z@}{}}% +\define@key{Gm}{footnotesep}{\Gm@setlength{\skip\footins}{#1}}% +\define@key{Gm}{marginparwidth}{\Gm@setlength\marginparwidth{#1}}% +\let\KV@Gm@marginpar\KV@Gm@marginparwidth +\define@key{Gm}{marginparsep}{\Gm@setlength\marginparsep{#1}}% +\define@key{Gm}{nomarginpar}[true]{\Gm@doifelse{nomarginpar}{#1}% + {\Gm@setlength\marginparwidth\z@\Gm@setlength\marginparsep\z@}{}}% +\define@key{Gm}{columnsep}{\Gm@setlength\columnsep{#1}}% +\define@key{Gm}{hoffset}{\Gm@setlength\hoffset{#1}}% +\define@key{Gm}{voffset}{\Gm@setlength\voffset{#1}}% +\define@key{Gm}{offset}{\Gm@branch{#1}{hoffset}{voffset}}% +\define@key{Gm}{layouthoffset}{\Gm@setlength\Gm@layouthoffset{#1}}% +\define@key{Gm}{layoutvoffset}{\Gm@setlength\Gm@layoutvoffset{#1}}% +\define@key{Gm}{layoutoffset}{\Gm@branch{#1}{layouthoffset}{layoutvoffset}}% +\define@key{Gm}{twocolumn}[true]{% + \Gm@doif{twocolumn}{#1}{\csname @twocolumn\Gm@bool\endcsname}}% +\define@key{Gm}{onecolumn}[true]{% + \Gm@doifelse{onecolumn}{#1}{\@twocolumnfalse}{\@twocolumntrue}}% +\define@key{Gm}{reversemp}[true]{% + \Gm@doif{reversemp}{#1}{\csname @reversemargin\Gm@bool\endcsname}}% +\define@key{Gm}{reversemarginpar}[true]{% + \Gm@doif{reversemarginpar}{#1}{\csname @reversemargin\Gm@bool\endcsname}}% +\define@key{Gm}{driver}{\ifGm@preamble{driver}{% + \edef\@@tempa{#1}\edef\@@auto{auto}\edef\@@none{none}% + \ifx\@@tempa\@empty\let\Gm@driver\relax\else + \ifx\@@tempa\@@none\let\Gm@driver\relax\else + \ifx\@@tempa\@@auto\let\Gm@driver\@empty\else + \setkeys{Gm}{#1}\fi\fi\fi\let\@@auto\relax\let\@@none\relax}}% +\define@key{Gm}{dvips}[true]{\ifGm@preamble{dvips}{% + \Gm@doifelse{dvips}{#1}{\Gm@setdriver{dvips}}{\Gm@unsetdriver{dvips}}}}% +\define@key{Gm}{dvipdfm}[true]{\ifGm@preamble{dvipdfm}{% + \Gm@doifelse{dvipdfm}{#1}{\Gm@setdriver{dvipdfm}}{\Gm@unsetdriver{dvipdfm}}}}% +\define@key{Gm}{pdftex}[true]{\ifGm@preamble{pdftex}{% + \Gm@doifelse{pdftex}{#1}{\Gm@setdriver{pdftex}}{\Gm@unsetdriver{pdftex}}}}% +\define@key{Gm}{xetex}[true]{\ifGm@preamble{xetex}{% + \Gm@doifelse{xetex}{#1}{\Gm@setdriver{xetex}}{\Gm@unsetdriver{xetex}}}}% +\define@key{Gm}{vtex}[true]{\ifGm@preamble{vtex}{% + \Gm@doifelse{vtex}{#1}{\Gm@setdriver{vtex}}{\Gm@unsetdriver{vtex}}}}% +\define@key{Gm}{verbose}[true]{\ifGm@preamble{verbose}{\Gm@setbool{verbose}{#1}}}% +\define@key{Gm}{reset}[true]{\ifGm@preamble{reset}{% + \Gm@doifelse{reset}{#1}{\Gm@restore@org\Gm@initall + \ProcessOptionsKV[c]{Gm}\Gm@setdefaultpaper}{}}}% +\define@key{Gm}{resetpaper}[true]{\ifGm@preamble{resetpaper}{% + \Gm@setbool{resetpaper}{#1}}}% +\define@key{Gm}{mag}{\ifGm@preamble{mag}{\mag=#1}}% +\define@key{Gm}{truedimen}[true]{\ifGm@preamble{truedimen}{% + \Gm@doifelse{truedimen}{#1}{\let\Gm@truedimen\Gm@true}% + {\let\Gm@truedimen\@empty}}}% +\define@key{Gm}{pass}[true]{\ifGm@preamble{pass}{\Gm@setbool{pass}{#1}}}% +\define@key{Gm}{showframe}[true]{\Gm@setbool{showframe}{#1}}% +\define@key{Gm}{showcrop}[true]{\Gm@setbool{showcrop}{#1}}% +\def\Gm@setdefaultpaper{% + \ifx\Gm@paper\@undefined + \Gm@setsize{paper}(\strip@pt\paperwidth,\strip@pt\paperheight){pt}% + \Gm@setsize{Gm@layout}(\strip@pt\paperwidth,\strip@pt\paperheight){pt}% + \Gm@swap@papersizefalse + \fi}% +\def\Gm@adjustpaper{% + \ifdim\paperwidth>\p@\else + \PackageError{geometry}{% + \string\paperwidth\space(\the\paperwidth) too short}{% + Set a paper type (e.g., `a4paper').}% + \fi + \ifdim\paperheight>\p@\else + \PackageError{geometry}{% + \string\paperheight\space(\the\paperheight) too short}{% + Set a paper type (e.g., `a4paper').}% + \fi + \ifGm@swap@papersize + \setlength\@tempdima{\paperwidth}% + \setlength\paperwidth{\paperheight}% + \setlength\paperheight{\@tempdima}% + \fi + \ifGm@layout\else + \setlength\Gm@layoutwidth{\paperwidth}% + \setlength\Gm@layoutheight{\paperheight}% + \fi}% +\def\Gm@checkmp{% + \ifGm@includemp\else + \@tempcnta\z@\@tempcntb\@ne + \if@twocolumn + \@tempcnta\@ne + \else + \if@reversemargin + \@tempcnta\@ne\@tempcntb\z@ + \fi + \fi + \@tempdima\marginparwidth + \advance\@tempdima\marginparsep + \ifnum\@tempcnta=\@ne + \@tempdimc\@tempdima + \setlength\@tempdimb{\Gm@lmargin}% + \advance\@tempdimc-\@tempdimb + \ifdim\@tempdimc>\z@ + \Gm@warning{The marginal notes overrun the paper edge.^^J + \@spaces Add \the\@tempdimc\space and more to the left margin}% + \fi + \fi + \ifnum\@tempcntb=\@ne + \@tempdimc\@tempdima + \setlength\@tempdimb{\Gm@rmargin}% + \advance\@tempdimc-\@tempdimb + \ifdim\@tempdimc>\z@ + \Gm@warning{The marginal notes overrun the paper.^^J + \@spaces Add \the\@tempdimc\space and more to the right margin}% + \fi + \fi + \fi}% +\def\Gm@adjustmp{% + \ifGm@includemp + \@tempdimb\marginparwidth + \advance\@tempdimb\marginparsep + \Gm@wd@mp\@tempdimb + \Gm@odd@mp\z@ + \Gm@even@mp\z@ + \if@twocolumn + \Gm@wd@mp2\@tempdimb + \Gm@odd@mp\@tempdimb + \Gm@even@mp\@tempdimb + \else + \if@reversemargin + \Gm@odd@mp\@tempdimb + \if@mparswitch\else + \Gm@even@mp\@tempdimb + \fi + \else + \if@mparswitch + \Gm@even@mp\@tempdimb + \fi + \fi + \fi + \fi}% +\def\Gm@adjustbody{ + \ifGm@hbody + \ifx\Gm@width\@undefined + \ifx\Gm@hscale\@undefined + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{width}{\Gm@hscale\Gm@layoutwidth}% + \fi + \fi + \ifx\Gm@textwidth\@undefined\else + \setlength\@tempdima{\Gm@textwidth}% + \ifGm@includemp + \advance\@tempdima\Gm@wd@mp + \fi + \edef\Gm@width{\the\@tempdima}% + \fi + \fi + \ifGm@vbody + \ifx\Gm@height\@undefined + \ifx\Gm@vscale\@undefined + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \else + \Gm@defbylen{height}{\Gm@vscale\Gm@layoutheight}% + \fi + \fi + \ifx\Gm@lines\@undefined\else + \ifdim\topskip<\ht\strutbox + \setlength\@tempdima{\topskip}% + \setlength\topskip{\ht\strutbox}% + \Gm@warning{\noexpand\topskip was changed from \the\@tempdima\space + to \the\topskip}% + \fi + \setlength\@tempdima{\baselineskip}% + \multiply\@tempdima\Gm@lines + \addtolength\@tempdima{\topskip}% + \addtolength\@tempdima{-\baselineskip}% + \edef\Gm@textheight{\the\@tempdima}% + \fi + \ifx\Gm@textheight\@undefined\else + \setlength\@tempdima{\Gm@textheight}% + \ifGm@includehead + \addtolength\@tempdima{\headheight}% + \addtolength\@tempdima{\headsep}% + \fi + \ifGm@includefoot + \addtolength\@tempdima{\footskip}% + \fi + \edef\Gm@height{\the\@tempdima}% + \fi + \fi}% +\def\Gm@process{% + \ifGm@pass + \Gm@restore@org + \else + \Gm@@process + \fi}% +\def\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{lmargin}{rmargin}% + \Gm@detall{v}{height}{tmargin}{bmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \advance\oddsidemargin\Gm@odd@mp + \fi + \if@mparswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\evensidemargin\Gm@even@mp + \fi + \else + \evensidemargin\oddsidemargin + \fi + \advance\oddsidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textheight{-\headheight}% + \addtolength\textheight{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textheight{-\footskip}% + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layouthoffset% + \advance\evensidemargin\Gm@layouthoffset% + \advance\topmargin\Gm@layoutvoffset% + \addtolength\Gm@layoutwidth{\Gm@bindingoffset}% + }% end of \Gm@@process +\def\Gm@detectdriver{% + \ifx\Gm@driver\@empty + \typeout{*geometry* driver: auto-detecting}% + \ifpdf + \Gm@setdriver{pdftex}% + \else + \Gm@setdriver{dvips}% + \fi + \ifvtex + \Gm@setdriver{vtex}% + \fi + \ifxetex + \Gm@setdriver{xetex} + \fi + \else + \ifx\Gm@driver\Gm@xetex %% + \ifxetex\else + \Gm@warning{Wrong driver setting: `xetex'; trying `pdftex' driver}% + \Gm@setdriver{pdftex} + \fi + \fi + \ifx\Gm@driver\Gm@vtex + \ifvtex\else + \Gm@warning{Wrong driver setting: `vtex'; trying `dvips' driver}% + \Gm@setdriver{dvips}% + \fi + \fi + \fi + \ifx\Gm@driver\relax + \typeout{*geometry* detected driver: }% + \else + \typeout{*geometry* detected driver: \Gm@driver}% + \fi}% +\def\Gm@showparams#1{% + \ifGm@verbose\expandafter\typeout\else\expandafter\wlog\fi + {\Gm@logcontent{#1}}}% +\def\Gm@showdim#1{* \string#1=\the#1^^J}% +\def\Gm@showbool#1{\@nameuse{ifGm@#1}#1\space\fi}% +\def\Gm@logcontent#1{% + *geometry* verbose mode - [ #1 ] result:^^J% + \ifGm@pass * pass: disregarded the geometry package!^^J% + \else + * driver: \if\Gm@driver\else\Gm@driver\fi^^J% + * paper: \ifx\Gm@paper\@undefined\else\Gm@paper\fi^^J% + * layout: \ifGm@layout\else\fi^^J% + \ifGm@layout + * layout(width,height): (\the\Gm@layoutwidth,\the\Gm@layoutheight)^^J% + \fi + * layoutoffset:(h,v)=(\the\Gm@layouthoffset,\the\Gm@layoutvoffset)^^J% + \@ifundefined{Gm@lines}{}{* lines: \Gm@lines^^J}% + \@ifundefined{Gm@hmarginratio}{}{* hratio: \Gm@hmarginratio^^J}% + \@ifundefined{Gm@vmarginratio}{}{* vratio: \Gm@vmarginratio^^J}% + \ifdim\Gm@bindingoffset=\z@\else + * bindingoffset: \the\Gm@bindingoffset^^J\fi + * modes: % + \Gm@showbool{landscape}% + \Gm@showbool{includehead}% + \Gm@showbool{includefoot}% + \Gm@showbool{includemp}% + \if@twoside twoside\space\fi% + \if@mparswitch\else\if@twoside asymmetric\space\fi\fi% + \Gm@showbool{heightrounded}% + \ifx\Gm@truedimen\@empty\else truedimen\space\fi% + \Gm@showbool{showframe}% + \Gm@showbool{showcrop}% + ^^J% + * h-part:(L,W,R)=(\Gm@lmargin, \Gm@width, \Gm@rmargin)^^J% + * v-part:(T,H,B)=(\Gm@tmargin, \Gm@height, \Gm@bmargin)^^J% + \fi + \Gm@showdim{\paperwidth}% + \Gm@showdim{\paperheight}% + \Gm@showdim{\textwidth}% + \Gm@showdim{\textheight}% + \Gm@showdim{\oddsidemargin}% + \Gm@showdim{\evensidemargin}% + \Gm@showdim{\topmargin}% + \Gm@showdim{\headheight}% + \Gm@showdim{\headsep}% + \Gm@showdim{\topskip}% + \Gm@showdim{\footskip}% + \Gm@showdim{\marginparwidth}% + \Gm@showdim{\marginparsep}% + \Gm@showdim{\columnsep}% + * \string\skip\string\footins=\the\skip\footins^^J% + \Gm@showdim{\hoffset}% + \Gm@showdim{\voffset}% + \Gm@showdim{\mag}% + * \string\@twocolumn\if@twocolumn true\else false\fi^^J% + * \string\@twoside\if@twoside true\else false\fi^^J% + * \string\@mparswitch\if@mparswitch true\else false\fi^^J% + * \string\@reversemargin\if@reversemargin true\else false\fi^^J% + * (1in=72.27pt=25.4mm, 1cm=28.453pt)^^J}% +\def\Gm@cropmark(#1,#2,#3,#4){% + \begin{picture}(0,0) + \setlength\unitlength{1truemm}% + \linethickness{0.25pt}% + \put(#3,0){\line(#1,0){17}}% + \put(0,#4){\line(0,#2){17}}% + \end{picture}}% +\providecommand*\vb@xt@{\vbox to}% +\def\Gm@vrule{\vrule width 0.2pt height\textheight depth\z@}% +\def\Gm@hrule{\hrule height 0.2pt depth\z@ width\textwidth}% +\def\Gm@hruled{\hrule height\z@ depth0.2pt width\textwidth}% +\newcommand*{\Gm@vrules@mpi}{% + \hb@xt@\@tempdima{\llap{\Gm@vrule}\ignorespaces + \hskip \textwidth\Gm@vrule\hskip \marginparsep + \llap{\Gm@vrule}\hfil\Gm@vrule}}% +\newcommand*{\Gm@vrules@mpii}{% + \hb@xt@\@tempdima{\hskip-\marginparwidth\hskip-\marginparsep + \llap{\Gm@vrule}\ignorespaces + \hskip \marginparwidth\rlap{\Gm@vrule}\hskip \marginparsep + \llap{\Gm@vrule}\hskip\textwidth\rlap{\Gm@vrule}\hss}}% +\newcommand*{\Gm@pageframes}{% + \vb@xt@\z@{% + \ifGm@showcrop + \vb@xt@\z@{\vskip-1\Gm@truedimen in\vskip\Gm@layoutvoffset% + \hb@xt@\z@{\hskip-1\Gm@truedimen in\hskip\Gm@layouthoffset% + \vb@xt@\Gm@layoutheight{% + \let\protect\relax + \hb@xt@\Gm@layoutwidth{\Gm@cropmark(-1,1,-3,3)\hfil\Gm@cropmark(1,1,3,3)}% + \vfil + \hb@xt@\Gm@layoutwidth{\Gm@cropmark(-1,-1,-3,-3)\hfil\Gm@cropmark(1,-1,3,-3)}}% + \hss}% + \vss}% + \fi% + \ifGm@showframe + \if@twoside + \ifodd\count\z@ + \let\@themargin\oddsidemargin + \else + \let\@themargin\evensidemargin + \fi + \fi + \moveright\@themargin% + \vb@xt@\z@{% + \vskip\topmargin\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\headheight\vb@xt@\z@{\vss\Gm@hruled}% + \vskip\headsep\vb@xt@\z@{\vss\Gm@hrule}% + \@tempdima\textwidth + \advance\@tempdima by \marginparsep + \advance\@tempdima by \marginparwidth + \if@mparswitch + \ifodd\count\z@ + \Gm@vrules@mpi + \else + \Gm@vrules@mpii + \fi + \else + \Gm@vrules@mpi + \fi + \vb@xt@\z@{\vss\Gm@hrule}% + \vskip\footskip\vb@xt@\z@{\vss\Gm@hruled}% + \vss}% + \fi% + }}% +\def\ProcessOptionsKV{\@ifnextchar[%] + {\@ProcessOptionsKV}{\@ProcessOptionsKV[]}}% +\def\@ProcessOptionsKV[#1]#2{% + \let\@tempa\@empty + \@tempcnta\z@ + \if#1p\@tempcnta\@ne\else\if#1c\@tempcnta\tw@\fi\fi + \ifodd\@tempcnta + \edef\@tempa{\@ptionlist{\@currname.\@currext}}% + \else + \@for\CurrentOption:=\@classoptionslist\do{% + \@ifundefined{KV@#2@\CurrentOption}% + {}{\edef\@tempa{\@tempa,\CurrentOption,}}}% + \ifnum\@tempcnta=\z@ + \edef\@tempa{\@tempa,\@ptionlist{\@currname.\@currext}}% + \fi + \fi + \edef\@tempa{\noexpand\setkeys{#2}{\@tempa}}% + \@tempa + \AtEndOfPackage{\let\@unprocessedoptions\relax}}% +\def\Gm@setkeys{\setkeys{Gm}}% +\def\Gm@processconfig{% + \let\Gm@origExecuteOptions\ExecuteOptions + \let\ExecuteOptions\Gm@setkeys + \InputIfFileExists{geometry.cfg}{}{} + \let\ExecuteOptions\Gm@origExecuteOptions}% +\Gm@save +\edef\Gm@restore@org{\Gm@restore}% +\Gm@initall +\Gm@processconfig +\ProcessOptionsKV[c]{Gm}% +\Gm@setdefaultpaper +\ProcessOptionsKV[p]{Gm}% +\Gm@process +\AtBeginDocument{% + \Gm@savelength{paperwidth}% + \Gm@savelength{paperheight}% + \edef\Gm@restore@org{\Gm@restore}% + \ifGm@resetpaper + \edef\Gm@pw{\Gm@orgpw}% + \edef\Gm@ph{\Gm@orgph}% + \else + \edef\Gm@pw{\the\paperwidth}% + \edef\Gm@ph{\the\paperheight}% + \fi + \ifGm@pass\else + \ifnum\mag=\@m\else + \Gm@magtooffset + \divide\paperwidth\@m + \multiply\paperwidth\the\mag + \divide\paperheight\@m + \multiply\paperheight\the\mag + \fi + \fi + \Gm@detectdriver + \ifx\Gm@driver\Gm@xetex + \@ifundefined{pdfpagewidth}{}{% + \setlength\pdfpagewidth{\Gm@pw}% + \setlength\pdfpageheight{\Gm@ph}}% + \ifnum\mag=\@m\else + \ifx\Gm@truedimen\Gm@true + \setlength\paperwidth{\Gm@pw}% + \setlength\paperheight{\Gm@ph}% + \fi + \fi + \fi + \ifx\Gm@driver\Gm@pdftex + \@ifundefined{pdfpagewidth}{}{% + \setlength\pdfpagewidth{\Gm@pw}% + \setlength\pdfpageheight{\Gm@ph}}% + \ifnum\mag=\@m\else + \@tempdima=\mag sp% + \@ifundefined{pdfhorigin}{}{% + \divide\pdfhorigin\@tempdima + \multiply\pdfhorigin\@m + \divide\pdfvorigin\@tempdima + \multiply\pdfvorigin\@m}% + \ifx\Gm@truedimen\Gm@true + \setlength\paperwidth{\Gm@pw}% + \setlength\paperheight{\Gm@ph}% + \fi + \fi + \fi + \ifx\Gm@driver\Gm@vtex + \@ifundefined{mediawidth}{}{% + \mediawidth=\paperwidth + \mediaheight=\paperheight}% + \ifvtexdvi + \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}% + \fi + \fi + \ifx\Gm@driver\Gm@dvips + \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}% + \ifx\Gm@driver\Gm@dvips\ifGm@landscape + \AtBeginDvi{\special{! /landplus90 true store}}% + \fi\fi + \else\ifx\Gm@driver\Gm@dvipdfm + \ifcase\ifx\AtBeginShipoutFirst\relax\@ne\else + \ifx\AtBeginShipoutFirst\@undefined\@ne\else\z@\fi\fi + \AtBeginShipoutFirst{\special{papersize=\the\paperwidth,\the\paperheight}}% + \or + \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}% + \fi + \fi\fi + \@tempswafalse + \ifGm@showframe + \@tempswatrue + \else\ifGm@showcrop + \@tempswatrue + \fi\fi + \if@tempswa + \RequirePackage{atbegshi}% + \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{% + \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@ + \Gm@pageframes\box\AtBeginShipoutBox}}% + \fi + \Gm@save + \edef\Gm@restore@pkg{\Gm@restore}% + \ifGm@verbose\ifGm@pass\else\Gm@checkmp\fi\fi + \Gm@showparams{preamble}% + \let\Gm@pw\relax + \let\Gm@ph\relax + }% end of \AtBeginDocument +\newcommand{\geometry}[1]{% + \Gm@clean + \setkeys{Gm}{#1}% + \Gm@process}% +\@onlypreamble\geometry +\DeclareRobustCommand\Gm@changelayout{% + \setlength{\@colht}{\textheight} + \setlength{\@colroom}{\textheight}% + \setlength{\vsize}{\textheight} + \setlength{\columnwidth}{\textwidth}% + \if@twocolumn% + \advance\columnwidth-\columnsep + \divide\columnwidth\tw@% + \@firstcolumntrue% + \fi% + \setlength{\hsize}{\columnwidth}% + \setlength{\linewidth}{\hsize}}% +\newcommand{\newgeometry}[1]{% + \clearpage + \Gm@restore@org + \Gm@initnewgm + \Gm@newgmtrue + \setkeys{Gm}{#1}% + \Gm@newgmfalse + \Gm@process + \ifnum\mag=\@m\else\Gm@magtooffset\fi + \Gm@changelayout + \Gm@showparams{newgeometry}}% +\newcommand{\restoregeometry}{% + \clearpage + \Gm@restore@pkg + \Gm@changelayout}% +\newcommand*{\savegeometry}[1]{% + \Gm@save + \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}}% +\newcommand*{\loadgeometry}[1]{% + \clearpage + \@ifundefined{Gm@restore@@#1}{% + \PackageError{geometry}{% + \string\loadgeometry : name `#1' undefined}{% + The name `#1' should be predefined with \string\savegeometry}% + }{\@nameuse{Gm@restore@@#1}% + \Gm@changelayout}}% +\endinput +%% +%% End of file `geometry.sty'. diff --git a/presentations/taler-mdb-36c3/.template/sty/handoutWithNotes.sty b/presentations/taler-mdb-36c3/.template/sty/handoutWithNotes.sty new file mode 100644 index 0000000..535b72d --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/handoutWithNotes.sty @@ -0,0 +1,604 @@ +% Copyright 2009 by Guido Diepen +% Parts provided by Edson Valle +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% Changelog +% 20091202 - Added "1 on 1 with notes" layout, provided by Harald Welte +% 20091108 - Added "2 on 1 with notes landscape" layout, provided by Edson Valle +% 20091104 - Added "3 on 1 with notes" layout +% 20091104 - Added "2 on 1 with notes" layout +% 20091104 - Added "1 on 1 with notes landscape" layout, provided by Edson Valle +% 20090101 - Initial Version + +\RequirePackage{eso-pic,tikz} +\RequirePackage[framemethod=tikz]{mdframed} +\RequirePackage{pgfpages} + +% Grids mit Tikz +\tikzset{grid internal/.style={step=0.5cm,lightgray,line width=0.2pt}} + +\tikzset{grid border/.style={step=0.5cm,lightgray,line width=0.5pt}} + +%% ---------------------------------------------------- MODE 1_to_1-notes-ls + \pgfpagesdeclarelayout{1 on 1 with notes landscape} { + \edef\pgfpageoptionheight{\the\paperwidth} + \edef\pgfpageoptionwidth{\the\paperheight} + \edef\pgfpageoptionborder{0pt} + } + { + \setkeys{pgfpagesuselayoutoption}{landscape} + \pgfpagesphysicalpageoptions + {% + logical pages=2,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=1% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=1.2, + center=\pgfpoint{.3\pgfphysicalwidth}{.5\pgfphysicalheight}% + }% + + + + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=.45\pgfphysicalwidth,% + resized height=.45\pgfphysicalheight,% + center=\pgfpoint{.78\pgfphysicalwidth}{.6\pgfphysicalheight},% + copy from=2 + }% + + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth} + } + \pgfpagesshipoutlogicalpage{2}\copy\notesbox + + + } + } + +%% ---------------------------------------------------- MODE 1_to_1-ls + \pgfpagesdeclarelayout{1 on 1 without notes landscape} { + \edef\pgfpageoptionheight{\the\paperwidth} + \edef\pgfpageoptionwidth{\the\paperheight} + \edef\pgfpageoptionborder{0pt} + } + { + \setkeys{pgfpagesuselayoutoption}{landscape} + \pgfpagesphysicalpageoptions + {% + logical pages=1,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% + last logical shipout=1% + } + \pgfpageslogicalpageoptions{1} + {% + scale=1, + center=\pgfpoint{.5\pgfphysicalwidth}{.65\pgfphysicalheight}% + }% + + } + + %% ---------------------------------------------------- MODE 2_to_1-ls + \pgfpagesdeclarelayout{2 on 1 without notes landscape} { + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} + } + { + \setkeys{pgfpagesuselayoutoption}{landscape} + \pgfpagesphysicalpageoptions + {% + logical pages=2,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=2% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=1, + center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + scale=1, + center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% +} + +%% ---------------------------------------------------- MODE 1_to_1-ls + \pgfpagesdeclarelayout{1 on 1 without notes} { + \edef\pgfpageoptionheight{\the\paperwidth} + \edef\pgfpageoptionwidth{\the\paperheight} + \edef\pgfpageoptionborder{3pt} + } + { + \pgfpagesphysicalpageoptions + {% + logical pages=1,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% + last logical shipout=1% + } + \pgfpageslogicalpageoptions{1} + {% + scale=1.5, + center=\pgfpoint{.5\pgfphysicalwidth}{.65\pgfphysicalheight}% + }% + + } + +%% ---------------------------------------------------- MODE 4_to_1-notes +\pgfpagesdeclarelayout{4 on 1 with notes} { + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} + } + { + \pgfpagesphysicalpageoptions + {% + logical pages=8,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=4% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + + \pgfpageslogicalpageoptions{3} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + + \pgfpageslogicalpageoptions{4} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{5} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.3333\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.875\pgfphysicalheight},% + copy from=5 + }% + \pgfpageslogicalpageoptions{6} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.3333\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.625\pgfphysicalheight},% + copy from=6 + }% + \pgfpageslogicalpageoptions{7} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.3333\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.375\pgfphysicalheight},% + copy from=7 + }% + \pgfpageslogicalpageoptions{8} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.3333\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.125\pgfphysicalheight},% + copy from=8 + }% + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth} + } + \pgfpagesshipoutlogicalpage{5}\copy\notesbox + \pgfpagesshipoutlogicalpage{6}\copy\notesbox + \pgfpagesshipoutlogicalpage{7}\copy\notesbox + \pgfpagesshipoutlogicalpage{8}\copy\notesbox + } +} + +%% ---------------------------------------------------- MODE 2_to_1-notes + \pgfpagesdeclarelayout{2 on 1 with notes} { + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} + } + { + \pgfpagesphysicalpageoptions + {% + logical pages=4,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=2% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.67\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.33\pgfphysicalheight}% + }% + + + \pgfpageslogicalpageoptions{3} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.67\pgfphysicalheight},% + copy from=3 + }% + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.33\pgfphysicalheight},% + copy from=4 + }% + + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth} + } + \pgfpagesshipoutlogicalpage{3}\copy\notesbox + \pgfpagesshipoutlogicalpage{4}\copy\notesbox + } + } + +%% ---------------------------------------------------- MODE 3_to_1-notes + \pgfpagesdeclarelayout{3 on 1 with notes} { + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} + } + { + \pgfpagesphysicalpageoptions + {% + logical pages=6,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=3% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.82\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.50\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{3} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.18\pgfphysicalheight}% + }% + + + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.82\pgfphysicalheight},% + copy from=4 + }% + \pgfpageslogicalpageoptions{5} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.50\pgfphysicalheight},% + copy from=5 + }% + \pgfpageslogicalpageoptions{6} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.18\pgfphysicalheight},% + copy from=6 + }% + + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth} + } + \pgfpagesshipoutlogicalpage{4}\copy\notesbox + \pgfpagesshipoutlogicalpage{5}\copy\notesbox + \pgfpagesshipoutlogicalpage{6}\copy\notesbox + } + } +%% ---------------------------------------------------- MODE 2_to_1-notes_ls + \pgfpagesdeclarelayout{2 on 1 with notes landscape} { + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} + } + { + \setkeys{pgfpagesuselayoutoption}{landscape} + \pgfpagesphysicalpageoptions + {% + logical pages=4,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=2% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=1, + center=\pgfpoint{.3\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + scale=1, + center=\pgfpoint{.3\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + + + + \pgfpageslogicalpageoptions{3} + {% + border shrink=\pgfpageoptionborder,% + resized width=.7\pgfphysicalwidth,% + resized height=.4\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.3\pgfphysicalheight},% + copy from=3 + }% + + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.7\pgfphysicalwidth,% + resized height=.4\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.8\pgfphysicalheight},% + copy from=4 + }% + + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + %\hrule width\paperwidth\vskip1cm + %\hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth\vskip1cm + \hrule width\paperwidth} + } + \pgfpagesshipoutlogicalpage{3}\copy\notesbox + \pgfpagesshipoutlogicalpage{4}\copy\notesbox + + + } + } + +%% ---------------------------------------------------- MODE 1_to_1-notes + \pgfpagesdeclarelayout{1 on 1 with notes} { + \edef\pgfpageoptionheight{\the\paperwidth} + \edef\pgfpageoptionwidth{\the\paperheight} + \edef\pgfpageoptionborder{0pt} + } + { + \setkeys{pgfpagesuselayoutoption}{portrait} + \pgfpagesphysicalpageoptions + {% + logical pages=2,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=1% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=1.5, + center=\pgfpoint{.5\pgfphysicalwidth}{.73\pgfphysicalheight}% + }% + + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=\pgfphysicalwidth,% + resized height=\pgfphysicalheight,% + center=\pgfpoint{.5\pgfphysicalwidth}{.25\pgfphysicalheight},% + copy from=2 + }% + + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=.85\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth\vskip5mm + \hrule width\paperwidth} + } + \pgfpagesshipoutlogicalpage{2}\copy\notesbox + + + } + } + +%% ---------------------------------------------------- MODE 1_to_1 + \pgfpagesdeclarelayout{3 on 1 with diamonds} { + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} + } + { + \pgfpagesphysicalpageoptions + {% + logical pages=6,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% +% last logical shipout=3% + last logical shipout=3% + } + + \pgfpageslogicalpageoptions{1} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.82\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.50\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{3} + {% + scale=.70, + center=\pgfpoint{.25\pgfphysicalwidth}{.18\pgfphysicalheight}% + }% + + + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.82\pgfphysicalheight},% + copy from=4 + }% + \pgfpageslogicalpageoptions{5} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.50\pgfphysicalheight},% + copy from=5 + }% + \pgfpageslogicalpageoptions{6} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.18\pgfphysicalheight},% + copy from=6 + }% + \AtBeginDocument{ + \newbox\notesbox + \setbox\notesbox=\vbox{ + \hsize=\paperwidth + \vskip-1in\hskip-1in\vbox{ + \vskip1cm + Notes\vskip3mm + \begin{tikzpicture} + \draw[grid internal] (0,0) grid (125mm,75mm); + \end{tikzpicture} + } + } + \pgfpagesshipoutlogicalpage{4}\copy\notesbox + \pgfpagesshipoutlogicalpage{5}\copy\notesbox + \pgfpagesshipoutlogicalpage{6}\copy\notesbox + } + } diff --git a/presentations/taler-mdb-36c3/.template/sty/lecture-article.tex b/presentations/taler-mdb-36c3/.template/sty/lecture-article.tex new file mode 100644 index 0000000..6118e0b --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/lecture-article.tex @@ -0,0 +1,53 @@ +% Copyright 2014 HuCE-microLab +% Modified by Andreas Habegger +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/licenses/LICENSE for more details. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\mode
{ +%--------------------------------------------------------------------------- +% PDF reference settings +%--------------------------------------------------------------------------- +\hypersetup{ + bookmarks=true +% ,unicode=true + ,plainpages=false + ,pdfpagelabels + ,backref = {false}, % No index backreference + ,colorlinks = {false}, % Color links in a PDF + ,pdfborder={0 0 0} + ,hypertexnames = {true}, % no failures "same page(i)" + ,bookmarksopen = {true}, % opens the bar on the left side + ,bookmarksopenlevel = {0} % depth of opened bookmarks + ,pdftitle = {\departmentname} % PDF-property + ,pdfauthor = {\lecturername} % PDF-property + ,pdfsubject = {\coursename} % PDF-property + ,linkcolor = {BFHlink} % Color of Links + ,citecolor = {BFHlink} % Color of Cite-Links + ,urlcolor = {BFHlink} % Color of URLs +} +%--------------------------------------------------------------------------- + +%--------------------------------------------------------------------------- +% Set up header and footer +%--------------------------------------------------------------------------- +\fancyhf{} +\fancypagestyle{plain}{ + \fancyhead[L]{\universityname} + \fancyhead[C]{} + \fancyhead[R]{\coursename} + \fancyfoot[L]{\departmentname} + \fancyfoot[C]{Last change: \today } + \fancyfoot[R]{Page \thepage ~ of \pageref*{LastPage}} +} +\renewcommand{\headrulewidth}{0pt} % no header stripline +\renewcommand{\footrulewidth}{0pt} % no bottom stripline +\pagestyle{plain} +%--------------------------------------------------------------------------- + + +} diff --git a/presentations/taler-mdb-36c3/.template/sty/lecture-style.tex b/presentations/taler-mdb-36c3/.template/sty/lecture-style.tex new file mode 100644 index 0000000..8448c3e --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/lecture-style.tex @@ -0,0 +1,441 @@ +% Copyright 2007 by Till Tantau +% Modified by Roman Makarov +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/licenses/LICENSE for more details. + +\input{variables} + +% Common packages +\usepackage{etex} + +\usepackage[utf8]{inputenc} +\usepackage{times} + +\usepackage{multicol}\columnseprule 0.4pt\raggedcolumns + + +\mode
+{ +% Load Standard Packages: +%--------------------------------------------------------------------------- + \usepackage[standard-baselineskips]{cmbright} + \usepackage[utf8]{inputenc} % load charset UTF8 + \usepackage[T1]{fontenc} % hyphenation of words with , and +% \usepackage{textcomp} % additional symbols + \usepackage{colortbl} + \usepackage{ae} % better resolution of Type1-Fonts + \usepackage{fancyhdr} % simple manipulation of header and footer + \usepackage{times} + \usepackage{mathptmx} + \usepackage{bookman} + \usepackage{lmodern} % use modern font + \usepackage[footnote,draft,silent,nomargin]{fixme} % allow fixme sections + \usepackage{cite} % use bibtex + \usepackage[export]{adjustbox} + \usepackage{lastpage} + \usepackage[ngerman, num]{isodate} + \usepackage{xstring,etoolbox} + \usepackage{tabularx} + \usepackage{xxcolor} + \usepackage{caption} + \usepackage{graphicx} + \usepackage{subcaption} +%--------------------------------------------------------------------------- + +% \usepackage[left=1.5cm,right=6cm,top=1.5cm,bottom=3cm]{geometry} + +% Set up page dimension for title page +%--------------------------------------------------------------------------- +\usepackage[ + a4paper +% ,showframe +% ,bindingoffset=15mm +% ,verbose + ,left=30mm + ,right=15mm + ,top=25mm + ,headheight=20mm + ,headsep=10mm + ,footskip=15mm + ]{geometry} +%--------------------------------------------------------------------------- + +} + +\usepackage{textcomp} % additional symbols +\usepackage[T1]{fontenc} +\usepackage{yfonts} +\usepackage{colortbl} +\usepackage{translator} % comment this, if not available +\usepackage{dsfont,mathbbol} +\usepackage{array} +\usepackage{amscd} +\usepackage{tabularx} +\usepackage{xcolor} + +\usepackage{tikz} +\usetikzlibrary{trees} +\usetikzlibrary{mindmap} + +\usepackage{listings} +\usepackage{import} +\usepackage{termcal} + +\usepackage[absolute,overlay]{textpos} +\setlength{\TPHorizModule}{1mm} +\setlength{\TPVertModule}{1mm} + +\def\E{{\mathbf{E}}} +\def\P{{\mathbf{P}}} +\def\R{{\mathds{R}}} +\def\C{{\mathds{C}}} +\def\mes{{\rm mes}\:\!} +\def\Var{{\rm Var}\:\!} +\def\Cov{{\rm Cov}\:\!} +\usepackage{graphicx} +\graphicspath{{pictures/}} + +\usepackage{amsmath,amssymb,amsthm} +\usepackage{xxcolor} + +\definecolor{BFHGray}{rgb}{0.412,0.49,0.569} +\definecolor{BFHGray1}{rgb}{0.392,0.471,0.545} +\definecolor{BFHGray2}{rgb}{0.635,0.682,0.725} +\definecolor{BFHGray3}{rgb}{0.757,0.788,0.82} +\definecolor{BFHGray4}{rgb}{0.878,0.894,0.91} +\definecolor{BFHGray5}{rgb}{0.937,0.945,0.953} +\definecolor{BFHOrange}{rgb}{0.98,0.647,0} +\definecolor{BFHArrow}{rgb}{0.98,0.647,0} +\definecolor{BFHLogoGray}{rgb}{0.254,0.454,0.549} +\definecolor{BFHLogoOrange}{rgb}{0.988,0.78,0} +\definecolor{BFHwhite}{rgb}{1,1,1} +\definecolor{BFHblak}{rgb}{0,0,0} +\definecolor{white}{rgb}{1,1,1} +\definecolor{BFHlink}{rgb}{0,0,0} + +\usepackage{bfh-cli} +\usepackage{bfh-graphicref} +\usepackage{bfh-colortabular} + +\usepackage{tcolorbox} +\definecolor{mycolor}{rgb}{0.122, 0.435, 0.698} +\makeatletter +\newcommand{\mybox}[1]{% + \setbox0=\hbox{#1}% + \setlength{\@tempdima}{\dimexpr\wd0+13pt}% + \begin{tcolorbox}[colframe=mycolor,boxrule=0.5pt,arc=4pt, + left=6pt,right=6pt,top=6pt,bottom=6pt,boxsep=0pt,width=\@tempdima] + #1 + \end{tcolorbox} +} +\makeatother +%-------------------------------------------------------------- +% Hyperref Package (Create links in a pdf) +%--------------------------------------------------------------------------- +\usepackage{hyperref} + +\newcommand{\solutionwithspace}[1]{ \noindent\parbox[h][#1][t]{\linewidth}{\begin{flushleft}\textbf{Solution.}\end{flushleft}} } +\newcommand{\proofwithspace}[1]{ \noindent\parbox[h][#1][t]{\linewidth}{\begin{flushleft}\textbf{Proof.}\end{flushleft}} } +\newcommand{\emptyspace}[1]{ \parbox[h][#1][t]{\linewidth}{ } } + +% Common settings for all lectures in this course +\title{\insertlecture} + +\author{\lecturername} + +\institute{\universityname} + +\subject{Course: \coursename} + +% Beamer version theme settings + +\useoutertheme[height=0pt,width=20mm,right]{sidebar} +\usecolortheme{rose,sidebartab} + +\useinnertheme{rounded} +%\useinnertheme[shadow]{rounded} + +\usefonttheme[only large]{structurebold} + +\setbeamerfont{title}{series=\normalfont,size=\LARGE} +\setbeamerfont{title in sidebar}{series=\bfseries} +\setbeamerfont{author in sidebar}{series=\bfseries} +\setbeamerfont*{item}{series=} +\setbeamerfont{frametitle}{size=} +\setbeamerfont{block title}{size=\small} +\setbeamerfont{block body}{size=\small} +\setbeamerfont{block title example}{size=\small} +\setbeamerfont{block body example}{size=\small} +\setbeamerfont{block title alerted}{size=\small} +\setbeamerfont{block body alerted}{size=\small} + +\setbeamerfont{section in toc}{size=\normalsize} +\setbeamerfont{subsection in toc}{size=\small} +\setbeamerfont{caption}{size=\scriptsize} +\setbeamerfont*{itemize/enumerate body}{size=\footnotesize} +\setbeamerfont*{itemize/enumerate subbody}{parent=itemize/enumerate body} +\setbeamerfont*{itemize/enumerate subsubbody}{parent=itemize/enumerate body} + +\setbeamercolor{sidebar right}{bg=BFHwhite} +\setbeamercolor{structure}{fg=BFHGray} +\setbeamercolor{author}{parent=structure} +\setbeamercolor{section in sidebar}{fg=BFHLogoGray} +\setbeamercolor{author in sidebar}{fg=BFHLogoGray} +\setbeamercolor{title in sidebar}{fg=BFHLogoGray} +\setbeamercolor{sidebar}{bg=BFHOrange,fg=BFHOrange} +\setbeamercolor{section in sidebar shaded}{fg=BFHLogoGray} +\setbeamercolor{subsection in sidebar shaded}{fg=BFHLogoGray} +\setbeamercolor{section in sidebar}{bg=BFHOrange} +\setbeamercolor{frametitle}{fg=BFHOrange} +\setbeamercolor{framesubtitle}{fg=BFHGray1} +\setbeamercolor{item projected}{fg=black} +\setbeamercolor{title}{fg=BFHOrange} +\setbeamercolor{subsection in toc}{fg=BFHGray1} +\setbeamercolor{separation line}{bg=BFHGray} + +\setbeamertemplate{section in toc}{{\normalsize\color{BFHOrange}$\blacktriangleright$}~\inserttocsection} +\setbeamertemplate{subsection in toc}{\hskip5pt{\small\color{BFHOrange}$\blacktriangleright$}~~\inserttocsubsection\\} +\setbeamertemplate{itemize items}{{\footnotesize\color{BFHOrange}$\blacktriangleright$}~} +\setbeamertemplate{enumerate items}[default] + +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{bibliography item}[text] + +\setbeamercolor{titlePageColor}{bg=BFHGray} + +\newcommand{\logoLine}{% + \begin{beamercolorbox}[wd=\paperwidth]{headline} + \smash{\hskip13.5pt\vrule height 0pt depth \paperheight width 1.5pt} + \end{beamercolorbox} +} + +\setbeamertemplate{sidebar right} +{ + \logoLine + {\usebeamerfont{title in sidebar}% + \vskip1.5em% + \hskip3pt% + \usebeamercolor[fg]{title in sidebar}% + \insertshortlecture[width=18mm,center,respectlinebreaks]\par% + \vskip1.25em% + }% + {% + \hskip3pt% + \usebeamercolor[fg]{author in sidebar}% + \usebeamerfont{author in sidebar}% + \insertshortauthor[width=18mm,center,respectlinebreaks]\par% + \vskip1.25em% + }% + \hbox to15mm{\hss\insertlogo\hss} + \vskip20pt% + \insertverticalnavigation{15mm}% + \vfill + \hskip3pt% + \hbox to20mm{\hfill\usebeamerfont{subsection in + sidebar}\strut\usebeamercolor[fg]{subsection in + sidebar}Rev.~\revision\hskip4pt -- \hskip4pt\insertframenumber\hskip5pt}% + \vskip3pt% +}% + +\newcommand{\topline}{% + \tikz[remember picture,overlay] {% + \draw[BFHOrange,line width=3pt]([yshift=-46pt]current page.north west) + -- ([yshift=-46pt,xshift=\paperwidth-20mm]current page.north west);}} +\newcommand{\bottomline}{% + \tikz[remember picture,overlay] {% + \draw[BFHOrange,line width=3pt]([yshift=-190pt]current page.north west) + -- ([yshift=-190pt,xshift=\paperwidth-20mm]current page.north west);}} + +\setbeamertemplate{title page} +{ + \vskip3.6em + + \topline + \ifdefined\beamerTitlepageMode + %% mode handout + \put(-14.2,-150){\tikz[remember picture,overlay]\fill[BFHGray] + (0mm,50mm)rectangle(\paperwidth-20mm,0mm); + } + \vskip-12.5em + \else + %% mode slide + \put(-14.3,-153.5){\tikz[remember picture,overlay]\fill[BFHGray] + (0mm,50mm)rectangle(\paperwidth-20mm,0mm); + } + \vskip-13em + \fi + + {\textcolor{BFHwhite}{\usebeamerfont{title}\inserttitle}\par}% + \vskip1em + \ifx\insertsubtitle\@empty% + \else% + \vskip0.5em% + {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}% + \fi% + \vskip0pt plus1filll + \emph{\textcolor{BFHwhite}{\coursename \\ \insertdate} }\par + \vskip0pt plus1filll + \bottomline + + \leftskip=0pt plus1fill\insertauthor\par + \insertinstitute\vskip1em +} + + +\newcommand{\sectiontopline}{% + \tikz[remember picture,overlay] {% + \draw[BFHGray,line width=3pt]([yshift=-46pt]current page.north west) + -- ([yshift=-46pt,xshift=\paperwidth-20.25mm]current page.north west);}} +\newcommand{\sectionbottomline}{% + \tikz[remember picture,overlay] {% + \draw[BFHGray,line width=3pt]([yshift=-190pt]current page.north west) + -- ([yshift=-190pt,xshift=\paperwidth-20.25mm]current page.north west);}} + +\setbeamertemplate{section page} +{ + \vskip3.6em + + \sectiontopline + \ifdefined\beamerTitlepageMode + %% mode handout + \put(-14.2,-178.5){\tikz[remember picture,overlay]\fill[BFHOrange] + (0mm,50mm)rectangle(\paperwidth-20mm,0mm); + } + \vskip-12.5em + \else + %% mode slide + \put(-14.3,-179.5){\tikz[remember picture,overlay]\fill[BFHOrange] + (0mm,50mm)rectangle(\paperwidth-20mm,0mm); + } + \vskip-13em + \fi + + {\textcolor{BFHwhite}{\usebeamerfont{title}\insertsection}\par}% + + \sectionbottomline +} + + +\logo{\includegraphics[width=10mm]{BFH_logo}} + +% Article version layout settings + +\mode
+ +\newif\ifshowonlynotes +\showonlynotestrue + + + +\makeatletter +\def\@listI{\leftmargin\leftmargini + \parsep 0pt + \topsep 5\p@ \@plus3\p@ \@minus5\p@ + \itemsep0pt} +\let\@listi=\@listI + + + +\newif\ifbeamer@inlecture\beamer@inlecturetrue +\def\beamer@currentmode{beamer} +\input{beamerbasenotes.sty} +\def\beamer@currentmode{article} + +\renewcommand\beamer@outsideframenote[2][]{% + \def\beamer@noteenvstart{}% + \def\beamer@noteenvend{}% + \setkeys{beamernotes}{#1}% + \par + \beamer@noteenvstart#2\beamer@noteenvend% + \par +} + +% itemize style redefinition +%--------------------------------------------------------------------------- +\renewcommand{\labelitemi}{\small\color{BFHOrange}$\blacktriangleright$} +\renewcommand{\labelitemii}{\scriptsize\color{BFHOrange}$\blacktriangleright$} +\renewcommand{\labelitemiii}{\tiny\color{BFHOrange}$\blacktriangleright$} +%--------------------------------------------------------------------------- + + +% Table definitions +%--------------------------------------------------------------------------- +\let\oldtable\table +\let\endoldtable\endtable +\renewenvironment{table}{\rowcolors{2}{BFHGray3}{BFHGray5}\oldtable}{\endoldtable} +%--------------------------------------------------------------------------- + +% Set up header and footer +%--------------------------------------------------------------------------- +\patchcmd{\@fancyhead}{\rlap}{\color{BFHGray}\rlap}{}{} % new color of header +\patchcmd{\@fancyfoot}{\rlap}{\color{BFHGray}\rlap}{}{} % new color of footer + + +\setbeamertemplate{frametitle}{\paragraph*{\insertframetitle\ + \ \small\insertframesubtitle}\ \par +} + +\setbeamertemplate{frame begin}{\beamer@framenotesbegin} + +\setbeamertemplate{frame end}{% +\beamer@setupnote\beamer@notesactions + \marginpar{\scriptsize\hbox to 1cm{\sffamily% + \hfill\strut\insertshortlecture.\insertframenumber}\hrule height .2pt}} + + +\setlength{\marginparwidth}{10mm} +\setlength{\marginparsep}{45mm} + +\def\@maketitle{\makechapter} + +\def\makechapter{ + \newpage + \null + \vskip 2em% + {% + \parindent=0pt + \raggedright + \sffamily + \vskip8pt + {\fontsize{36pt}{36pt}\selectfont \color{BFHLogoOrange} Lecture \insertshortlecture \par\vskip10pt} + {\fontsize{24pt}{28pt}\selectfont \color{BFHLogoGray} \insertlecture\par\vskip4pt} + {\Large\selectfont \color{BFHblak} \insertsubtitle\par} + \vskip10pt + + \normalsize\selectfont Print version of the lecture in \emph{\coursename} \par\vskip1em + Presented on \@date \par + Document Revision~\revision\par\vskip1em + } + \begin{minipage}{\textwidth} + by \lecturername ~ \lectureremail ~ from \departmentname\\ at \universityname \par + \vskip1em + \end{minipage} + \vskip 1.5em% +} + +\let\origstartsection=\@startsection +\def\@startsection#1#2#3#4#5#6{% + \origstartsection{#1}{#2}{#3}{#4}{#5}{#6\normalfont\sffamily\color{BFHLogoGray}\selectfont}} + +\makeatother + + + +\mode + + + +% Common theorem-like environments + +\theoremstyle{definition} +\newtheorem{exercise}[theorem]{\translate{Exercise}} + + +% Typesetting Listings +\input{listings-bfh} + diff --git a/presentations/taler-mdb-36c3/.template/sty/listings-bfh.tex b/presentations/taler-mdb-36c3/.template/sty/listings-bfh.tex new file mode 100644 index 0000000..b56f054 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/listings-bfh.tex @@ -0,0 +1,104 @@ +\usepackage{listings} +\usepackage{xcolor,colortbl} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolor}{rgb}{0.95,0.95,0.92} + +\definecolor{datatype}{rgb}{0.58,0,0.82} +\definecolor{decision}{rgb}{0.5,0.5,0.5} +\definecolor{memory}{rgb}{0,0.6,0} +\definecolor{special}{rgb}{0,0.6,0.6} + + +%\lstloadlanguages{[ANSI]C,C++} +\lstloadlanguages{[ANSI]C,C++,Matlab,[LaTeX]TeX} + +\lstdefinelanguage{VHDL}{ + morekeywords={ + library,use,all,entity,is,port,in,out,end,architecture,of, + begin,and,type,when,else,select,with,others,else,if,elsif, + signal,variable,std_logic,std_logic_vector,after, + }, + morecomment=[l]-- +} + +% Fixed width typewriter font for code and sans-serif font for +% comments in listings +\lstset{% + basicstyle=\ttfamily\selectfont, + commentstyle=\sffamily\itshape\selectfont\color{codegreen}, + keywordstyle=\bfseries\selectfont, + stringstyle=\color{codepurple}, + directivestyle={\color{red}}, + extendedchars=true, + showstringspaces=true, +% columns=fullflexible, % columns in the source code are not respected +% % saving space + columns=fixed, % columns in the source code are respected + aboveskip=\smallskipamount, + belowskip=\smallskipamount + } + +\lstdefinestyle{linebreaks}{% + breaklines, + breakatwhitespace, +% prebreak={\Pisymbol{psy}{'277}}, + numbers=none + } + +\lstdefinestyle{frame}{% + style=linebreaks, + basicstyle=\footnotesize\ttfamily\selectfont, + numbers=left, + numberstyle=\tiny\color{BFHGray}, + xleftmargin={4pt}, + % frame=tb, + frame=trbl, + frameround=tttt, + framesep=0.5mm, + framerule=1pt, + backgroundcolor=\color{backcolor}, + rulecolor=\color{black}, + rulesep=\smallskipamount, + abovecaptionskip=\medskipamount, + belowcaptionskip=\medskipamount + } + +\lstdefinestyle{float}{% + style=frame, + float=tp + } + +%% language specific pre-defines + +\lstdefinestyle{bfh-c}{% + language=C, + style=frame, + emph={printf,srand,scanf}, + emphstyle=\bfseries\selectfont, + } + +\lstdefinestyle{bfh-cpp}{% + language=C++, + style=frame, +% emph={}, + emphstyle=\bfseries\selectfont, + } + + +\lstdefinestyle{bfh-vhdl}{% + style=frame, + language=VHDL, +} + +%% default +\lstset{ + style=float, + } + +\mode +{ + \lstset{basicstyle=\ttfamily\tiny} +} diff --git a/presentations/taler-mdb-36c3/.template/sty/pdfpc-commands.sty b/presentations/taler-mdb-36c3/.template/sty/pdfpc-commands.sty new file mode 100644 index 0000000..0bb1410 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/pdfpc-commands.sty @@ -0,0 +1,163 @@ +% Package: textpos is required for textblock* +\usepackage[absolute,overlay]{textpos} + + +% fullFrameMovie +% +% Arguments: +% +% [optional]: movie-options, seperated by & +% Supported options: loop, start=N, end=N, autostart +% Default: autostart&loop +% +% 1. Movie file +% 2. Poster image +% 3. Any text on the slide, or nothing (e.g. {}) +% +% Example: +% \fullFrameMovie[loop&autostart]{apollo17.avi}{apollo17.jpg}{\copyrightText{Apollo 17, NASA}} +% +\newcommand{\fullFrameMovie}[4][autostart&loop] +{ + { + \setbeamercolor{background canvas}{bg=black} + + + % to make this work for both horizontally filled and vertically filled images, we create an absolutely + % positioned textblock* that we force to be the width of the slide. + % we then place it at (0,0), and then create a box inside of it to ensure that it's always 95% of the vertical + % height of the frame. Once we have created an absolutely positioned and sized box, it doesn't matter what + % goes inside -- it will always be vertically and horizontally centered + \frame[plain] + { + \begin{textblock*}{\paperwidth}(0\paperwidth,0\paperheight) + \centering + \vbox to 0.95\paperheight { + \vfil{ + \href{run:#2?autostart}{\includegraphics[width=\paperwidth,height=0.95\paperheight,keepaspectratio]{#3}} + } + \vfil + } + \end{textblock*} + #4 + } + } +} + +% inlineMovie +% +% Arguments: +% +% [optional]: movie-options, seperated by & +% Supported options: loop, start=N, end=N, autostart +% Default: autostart&loop +% +% 1. Movie file +% 2. Poster image +% 3. size command, such as width=\textwidth +% +% Example: +% \inlineMovie[loop&autostart&start=5&stop=12]{apollo17.avi}{apollo17.jpg}{height=0.7\textheight} +% +\newcommand{\inlineMovie}[4][autostart&loop] +{ + \href{run:#2?#1}{\includegraphics[#4]{#3}} +} + + +% copyrightText +% +% Produces small text on the right side of the screen, useful for +% stating copyright or other small notes in movies or images +% +% Arguments: +% +% [optional]: text color +% Default: white +% +% 1. Text to be displayed +% +% Example: +% \copyrightText{Full frame image of: Apollo 17, NASA} +% +\newcommand\copyrightText[2][white]{% + \begin{textblock*}{\paperwidth}(0\paperwidth,.97\paperheight)% + \hfill\textcolor{#1}{\tiny#2}\hspace{20pt} + \end{textblock*} +} + +% fullFrameImageZoomed +% +% Produces a slide that contains a full frame image. Scales down the image +% to fit if the aspect ratio of the slide does not match the image. +% +% Arguments: +% +% [optional]: color of text on page +% Default: white +% +% 1. Path to image file +% 2. Any additional content on the frame +% +% Example: +% \fullFrameImageZoomed{apollo17.jpg}{\copyrightText{Full frame image of: Apollo 17, NASA}} +% +\newcommand{\fullFrameImage}[3][white] +{ + { + \setbeamercolor{normal text}{bg=black,fg=#1} + + + % to make this work for both horizontally filled and vertically filled images, we create an absolutely + % positioned textblock* that we force to be the width of the slide. + % we then place it at (0,0), and then create a box inside of it to ensure that it's always 95% of the vertical + % height of the frame. Once we have created an absolutely positioned and sized box, it doesn't matter what + % goes inside -- it will always be vertically and horizontally centered + \frame + { + \begin{textblock*}{\paperwidth}(0\paperwidth,0\paperheight) + \centering + \vbox to 0.95\paperheight { + \vfil{ + \includegraphics[width=\paperwidth,height=0.95\paperheight,keepaspectratio]{#2} + } + \vfil + } + \end{textblock*} + #3 + } + } +} + +% fullFrameImageZoomed +% +% Produces a slide that contains a full frame image. If the aspect ratio +% of the image does not match the slide, it crops the image. +% +% Arguments: +% +% [optional]: color of text on page +% Default: black +% +% 1. Path to image file +% 2. Any additional content on the frame +% +% Example: +% \fullFrameImageZoomed{apollo17.jpg}{\copyrightText{Full frame image of: Apollo 17, NASA}} +% +\newcommand{\fullFrameImageZoomed}[3][black] +{ + { + \usebackgroundtemplate{\includegraphics[height=\paperheight]{#2}} + \setbeamercolor{normal text}{bg=black,fg=#1} + \frame + { + #3 + } + } +} + + + + + diff --git a/presentations/taler-mdb-36c3/.template/sty/tc-dvips.def b/presentations/taler-mdb-36c3/.template/sty/tc-dvips.def new file mode 100644 index 0000000..b643bf5 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/tc-dvips.def @@ -0,0 +1,45 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesFile{tc-dvips.def}[2012/05/13 v1.0 Clipping driver for dvips] +\def\@cliptoboxdim#1{% + \setbox#1=\hbox{% + \adjsetlength\@tempdima{\ht#1+\dp#1}% + \edef\TOTALHEIGHT{-\strip@pt\@tempdima\space}% + \edef\DEPTH{\strip@pt\dp#1\space}% + \edef\WIDTH{\strip@pt\wd#1\space}% + \special{% + ps: + /mtrxc matrix currentmatrix def + currentpoint gsave + translate + Resolution 72 div VResolution 72 div + scale + newpath + 0 \DEPTH \WIDTH \TOTALHEIGHT rectclip + newpath + mtrxc setmatrix + }% + \box#1% + \special{ps: grestore }% + }% +} +\endinput +%% +%% End of file `tc-dvips.def'. diff --git a/presentations/taler-mdb-36c3/.template/sty/tc-pdftex.def b/presentations/taler-mdb-36c3/.template/sty/tc-pdftex.def new file mode 100644 index 0000000..e18f090 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/tc-pdftex.def @@ -0,0 +1,39 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesFile{tc-pdftex.def}[2012/05/13 v1.0 Clipping driver for pdftex] +\def\@cliptoboxdim#1{% + \setbox#1=\hbox{% + \Gin@defaultbp\WIDTH{\wd#1}% + \Gin@defaultbp\DEPTH{\dp#1}% + \@tempdima\ht#1% + \advance\@tempdima\dp#1% + \Gin@defaultbp\TOTALHEIGHT{\@tempdima}% + \pdfsave + \pdfliteral direct {% + 0 -\DEPTH\space \WIDTH\space \TOTALHEIGHT\space re W n + }% + \hbox to 0pt{\copy#1\hss}% + \pdfrestore + \hskip \wd#1 + }% +} +\endinput +%% +%% End of file `tc-pdftex.def'. diff --git a/presentations/taler-mdb-36c3/.template/sty/tc-pgf.def b/presentations/taler-mdb-36c3/.template/sty/tc-pgf.def new file mode 100644 index 0000000..0b32c59 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/tc-pgf.def @@ -0,0 +1,37 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesFile{tc-pgf.def}[2012/05/13 v1.0 trimclip fall-back clipping driver using PGF] +\RequirePackage{pgf} +\def\@cliptoboxdim#1{% + \setbox#1\hbox{\begin{pgfpicture}% + \pgfpathmoveto{\pgfqpoint\z@{-\dp#1}}% + \pgfpathlineto{\pgfqpoint\z@{\ht#1}}% + \pgfpathlineto{\pgfqpoint{\wd#1}{\ht#1}}% + \pgfpathlineto{\pgfqpoint{\wd#1}{-\dp#1}}% + \pgfpathclose + \pgfusepathqclip + \pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}% + \pgfnode{rectangle}{base west}{\usebox#1}{}{}% + \pgfsetbaselinepointnow{\pgfpoint\z@\z@}% + \end{pgfpicture}}% +} +\endinput +%% +%% End of file `tc-pgf.def'. diff --git a/presentations/taler-mdb-36c3/.template/sty/tc-xetex.def b/presentations/taler-mdb-36c3/.template/sty/tc-xetex.def new file mode 100644 index 0000000..2aa3dc0 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/tc-xetex.def @@ -0,0 +1,41 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesFile{tc-xetex.def}[2012/05/13 v1.0 Clipping driver for xetex] +\def\@cliptoboxdim#1{% + \setbox#1=\hbox{% + \Gin@defaultbp\WIDTH{\wd#1}% + \Gin@defaultbp\DEPTH{\dp#1}% + \@tempdima\ht#1% + \advance\@tempdima\dp#1% + \Gin@defaultbp\TOTALHEIGHT{\@tempdima}% + \special{pdf:bcontent }% + \special{% + pdf:literal direct + 0 -\DEPTH\space \WIDTH\space \TOTALHEIGHT\space re + }% + \special{pdf:literal direct W }% + \special{pdf:literal direct n }% + \box#1% + \special{pdf:econtent }% + }% +} +\endinput +%% +%% End of file `tc-xetex.def'. diff --git a/presentations/taler-mdb-36c3/.template/sty/trimclip.sty b/presentations/taler-mdb-36c3/.template/sty/trimclip.sty new file mode 100644 index 0000000..d0dcb81 --- /dev/null +++ b/presentations/taler-mdb-36c3/.template/sty/trimclip.sty @@ -0,0 +1,260 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesPackage{trimclip}[% + 2012/05/16 + v1.0 + Trim and clip general TeX material] +\def\tc@driver{tc-\Gin@driver} +\DeclareOption{pgf}{\def\tc@driver{tc-pgf.def}\PassOptionsToPackage{pgf}{graphicx}} +\DeclareOption{pdftex}{\def\tc@driver{tc-pdftex.def}\PassOptionsToPackage{pdftex}{graphicx}} +\DeclareOption{xetex}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} +\DeclareOption{dvips}{\def\tc@driver{tc-dvips.def}\PassOptionsToPackage{dvips}{graphicx}} +\DeclareOption{dvipdfm}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} +\DeclareOption{dvipdf}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} +\DeclareOption*{% + \@ifpackageloaded{graphics}{% + \edef\tc@driver{tc-\CurrentOption.def}% + \begingroup + \edef\@tempa{\CurrentOption.def}% + \ifx\@tempa\Gin@driver\else + \let\on@line\@gobble + \PackageWarning{trimclip}{% + A different clipping driver was requested than the\MessageBreak + one used for 'graphics/x'! This is not recommended\MessageBreak + and can lead to defect output files.% + }% + \fi + \endgroup + }{% + \def\tc@driver{tc-\Gin@driver}% + \PassOptionsToPackage\CurrentOption{graphicx}% + }% +} +\ProcessOptions*\relax +\RequirePackage{graphicx}[1999/02/16] +\RequirePackage{collectbox}[2011/08/22] +\RequirePackage{adjcalc} +\def\tc@readvalues#1{% + \tc@@readvalues#1 {} {} {} \\% +} +\def\tc@@readvalues#1 #2 #3 #4 #5\\{% + \adjsetlengthdefault\tc@llx{#1}% + \ifx\@nnil#2\@nnil + \tc@lly\tc@llx + \tc@urx\tc@llx + \tc@ury\tc@llx + \else + \adjsetlengthdefault\tc@lly{#2}% + \ifx\@nnil#3\@nnil + \tc@urx\tc@llx + \tc@ury\tc@lly + \else + \adjsetlengthdefault\tc@urx{#3}% + \adjsetlengthdefault\tc@ury{#4}% + \fi + \fi +}% +\newdimen\tc@llx +\newdimen\tc@lly +\newdimen\tc@urx +\newdimen\tc@ury +\newcommand\trimbox{% + \collectboxcheckenv{trimbox}% + \@ifstar + \trimbox@s + \trimbox@ +} +\def\trimbox@#1{% + \collectbox{\@trimclip\@trimbox{#1}}% +} +\def\trimbox@s#1{% + \collectbox{\@trimclip\@viewportbox{#1}}% +} +\expandafter\newcommand\expandafter*\csname trimbox*\endcsname{% + \@collectboxisenv{trimbox*}% + \trimbox@s +} +\newcommand\clipbox{% + \collectboxcheckenv{clipbox}% + \@ifstar + \clipbox@s + \clipbox@ +} +\def\clipbox@#1{% + \collectbox{\@trimclip\@clipbox{#1}}% +} +\def\clipbox@s#1{% + \collectbox{\@trimclip\@clipvpbox{#1}}% +} +\expandafter\newcommand\expandafter*\csname clipbox*\endcsname{% + \@collectboxisenv{clipbox*}% + \clipbox@s +} +\newcommand\marginbox{% + \collectboxcheckenv{marginbox}% + \@ifstar + \marginbox@s + \marginbox@ +} +\def\marginbox@#1{% + \@collectbox{\@trimclip\@marginbox{#1}}% +} +\def\marginbox@s#1{% + \@collectbox{\@trimclip\@marginraisebox{#1}}% +} +\expandafter\newcommand\expandafter*\csname marginbox*\endcsname{% + \@collectboxisenv{marginbox*}% + \marginbox@s +} +\def\@trimclip#1#2{% + \tc@readvalues{#2}% + #1% + \collectedbox + \tc@llx + \tc@lly + \tc@urx + \tc@ury + \usebox\collectedbox +} +\def\tc@correctbaseline#1{% + \ifdim\dp#1<\z@ + \raise\dp#1% + \else + \ifdim\ht#1<\z@ + \lower\ht#1% + \fi\fi + \box#1% +}% +\def\tc@correctdims#1{% + \ifdim\dp#1<\z@ \dp#1=\z@ \fi + \ifdim\wd#1<\z@ \wd#1=\z@ \fi + \ifdim\ht#1<\z@ \ht#1=\z@ \fi +} +\def\@trimbox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + \tc@llx=#2\relax + \tc@lly=#3\relax + \advance\tc@lly-\dp#1% + \tc@urx=#4\relax + \advance\tc@urx-\wd#1% + \tc@ury=#5\relax + \advance\tc@ury-\ht#1% + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip-\tc@llx + \dp#1-\tc@lly + \wd#1-\tc@urx + \ht#1-\tc@ury + % + \tc@correctbaseline{#1}% + }% + \tc@correctdims{#1}% +} +\def\@marginbox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + \tc@llx=#2\relax + \tc@lly=#3\relax + \advance\tc@lly\dp#1% + \tc@urx=#4\relax + \advance\tc@urx\wd#1% + \tc@ury=#5\relax + \advance\tc@ury\ht#1% + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip\tc@llx + \dp#1\tc@lly + \wd#1\tc@urx + \ht#1\tc@ury + % + \box#1% + }% + \tc@correctdims{#1}% +} +\def\@marginraisebox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + \tc@llx=#2\relax + \tc@lly=#3\relax + \tc@urx=#4\relax + \advance\tc@urx\wd#1% + \tc@ury=#5\relax + \advance\tc@ury\ht#1% + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip\tc@llx + \wd#1\tc@urx + \ht#1\tc@ury + % Copy original tty values (ury is taken as temp dimension) + \tc@ury=\tc@lly + \advance\tc@lly\dp#1% + \dp#1\tc@lly + % Raise bu original tty value (now in ury) + \raise\tc@ury\box#1% + }% + \tc@correctdims{#1}% +} +\def\@viewportbox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + % Assign values + \tc@llx=#2\relax + \tc@lly=#3\relax + \tc@urx=#4\relax + \tc@ury=#5\relax + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip-\tc@llx + \dp#1-\tc@lly + \wd#1\tc@urx + \ht#1\tc@ury + % + \tc@correctbaseline{#1}% + }% + \tc@correctdims{#1}% +} +\def\@clipbox#1#2#3#4#5{% + \@trimbox{#1}{#2}{#3}{#4}{#5}% + \@cliptoboxdim{#1}% +} +\def\@clipvpbox#1#2#3#4#5{% + \@viewportbox{#1}{#2}{#3}{#4}{#5}% + \@cliptoboxdim{#1}% +} +\InputIfFileExists{\tc@driver}{% + {\let\on@line\@gobble + \PackageInfo{trimclip}{Using driver '\tc@driver'.}}% +}{% + \input{tc-pgf.def}% + {\let\on@line\@gobble + \PackageInfo{trimclip}{No clipping driver '\tc@driver' available.\MessageBreak Using fall-back PGF driver.}}% +} +\endinput +%% +%% End of file `trimclip.sty'. diff --git a/presentations/taler-mdb-36c3/Makefile b/presentations/taler-mdb-36c3/Makefile new file mode 120000 index 0000000..1caabb0 --- /dev/null +++ b/presentations/taler-mdb-36c3/Makefile @@ -0,0 +1 @@ +.template/Makefile \ No newline at end of file diff --git a/presentations/taler-mdb-36c3/README.md b/presentations/taler-mdb-36c3/README.md new file mode 100644 index 0000000..c69e631 --- /dev/null +++ b/presentations/taler-mdb-36c3/README.md @@ -0,0 +1,91 @@ +# Description - Presentation 36C3 + +Presentation for the Taler Snack Machine talk at the 36C3. + +#### Author +Dominik Hofer +Marco Boss + +### Linux Prerequisites (Debian/Ubuntu) +Follow the procedure below to install 3rd party package (Debian/Ubuntu). + +Install used LaTex packages: +```bash +apt-get install texlive-base texlive-extra-utils texlive-generic-recommended texlive-latex-base texlive-latex-extra +``` + +Install used fonts packages: +```bash +apt-get install texlive-fonts-extra texlive-fonts-recommended +``` +Install used build environment packages +```bash +apt-get install latexmk make git +``` +Install used converter packages +```bash +apt-get install inkscape libcanberra-gtk-module +``` + +### Build Slides + +Export LECTURE +```bash +export LECTURE=presentation-36C3.tex +``` + +Convert svg +```bash +make convert +``` + +Make slides +```bash +make slides +``` + +### Did You Know!? +#### List Lectures +Get an overview of available lectures +```bash +make list +``` + +#### LECTURE Environment Variable Support +If you do lots of builds when developing a specific "lecture", export the variable **LECTURE** +```bash +export LECTURE=lecture_sample +``` +Having the variable "LECTURE" in the bash environment allows shorter build command. +```bash +make slide +``` +#### Increase Verbosity Level +The variable DEBUG controls the verbosity level + * [0] As quiet as possible + * [1] Get more details to build steps (latexmk still in batch mode) + * [2] Build in interactive mode + +Set a verbosity level other than zero +```bash +DEBUG=2 +``` +#### Get List of Available Lectures +To get an overview about lectures available in the "lectures" folder use the **list** target +```bash +make list +``` + +#### Convert XFIGs and SVGs +To convert fig and svg files use the **convert** target. Did you know the location for such files is fig or svg, respectively. +```bash +make convert +``` +#### Compress Your Work +```bash +make archive +``` +or +```bash +git archive --format zip --prefix --output ../.zip master +``` diff --git a/presentations/taler-mdb-36c3/cf_handouts.tex b/presentations/taler-mdb-36c3/cf_handouts.tex new file mode 120000 index 0000000..f6eb4d1 --- /dev/null +++ b/presentations/taler-mdb-36c3/cf_handouts.tex @@ -0,0 +1 @@ +.template/cf_handouts.tex \ No newline at end of file diff --git a/presentations/taler-mdb-36c3/cf_notes.tex b/presentations/taler-mdb-36c3/cf_notes.tex new file mode 100644 index 0000000..b5c6a4d --- /dev/null +++ b/presentations/taler-mdb-36c3/cf_notes.tex @@ -0,0 +1,5 @@ +\documentclass[11pt]{extarticle} +\usepackage{beamerarticle} +\input{lecture-style.tex} +\input{env.tex} +\input{\lectureToBuild} diff --git a/presentations/taler-mdb-36c3/cf_slides.tex b/presentations/taler-mdb-36c3/cf_slides.tex new file mode 120000 index 0000000..24b46da --- /dev/null +++ b/presentations/taler-mdb-36c3/cf_slides.tex @@ -0,0 +1 @@ +.template/cf_slides.tex \ No newline at end of file diff --git a/presentations/taler-mdb-36c3/cf_tablet.tex b/presentations/taler-mdb-36c3/cf_tablet.tex new file mode 120000 index 0000000..e5fac64 --- /dev/null +++ b/presentations/taler-mdb-36c3/cf_tablet.tex @@ -0,0 +1 @@ +.template/cf_tablet.tex \ No newline at end of file diff --git a/presentations/taler-mdb-36c3/database/sample-theRefs.bib b/presentations/taler-mdb-36c3/database/sample-theRefs.bib new file mode 100644 index 0000000..1862ad0 --- /dev/null +++ b/presentations/taler-mdb-36c3/database/sample-theRefs.bib @@ -0,0 +1,8 @@ + +@online{learnProgLang, + author = {wikiHow, Chris Hadley}, + title = {{WikiHow} Learn a Programming Language}, + year = 2016, + url = {http://www.wikihow.com/Learn-a-Programming-Language}, + urldate = {2016-08-30} +} diff --git a/presentations/taler-mdb-36c3/exsrc/sample-helloWorld.c b/presentations/taler-mdb-36c3/exsrc/sample-helloWorld.c new file mode 100644 index 0000000..5edd67e --- /dev/null +++ b/presentations/taler-mdb-36c3/exsrc/sample-helloWorld.c @@ -0,0 +1,7 @@ +#include +int main() +{ + printf("Hello, World!\n"); + getchar(); + return 0; +} diff --git a/presentations/taler-mdb-36c3/exsrc/sample-helloWorld.cpp b/presentations/taler-mdb-36c3/exsrc/sample-helloWorld.cpp new file mode 100644 index 0000000..91c4409 --- /dev/null +++ b/presentations/taler-mdb-36c3/exsrc/sample-helloWorld.cpp @@ -0,0 +1,6 @@ +#include +int main() +{ + std::cout << "Hello, World!" << std::endl; + return 0; +} diff --git a/presentations/taler-mdb-36c3/lectures/presentation_36C3.tex b/presentations/taler-mdb-36c3/lectures/presentation_36C3.tex new file mode 100644 index 0000000..96ac947 --- /dev/null +++ b/presentations/taler-mdb-36c3/lectures/presentation_36C3.tex @@ -0,0 +1,312 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Lecture specific settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\lecture[36C3]{Buying Snacks via NFC with GNU Taler} + +\subtitle{Short overview GNU Taler\\ + Payment system prototype\\ + Support of MDB communication protocol\\ + \vspace{-2em} + } + +\date{Dec. 27, 2019} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Do not modify the following lines untile section : +%% -> "Add your presentation content" +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} +\input{lecture-article} +\setlength{\columnseprule}{0pt} + +\lstset{style=bfh-c} + +\begin{frame}[plain] + \includegraphics[width=1.2\textwidth]{hungry_dude} +\end{frame} + +\begin{frame}[plain] + \maketitle +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Add your presentation contetn below +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} +%%%--------------------------------------- +\frame[t]{\frametitle{Introduction} + \only<1>{ + \begin{itemize} + \item Marco Boss, BSc Computer Science, BUAS + \item Dominik Hofer, BSc Micro- and Medical Technology, BUAS + \end{itemize} + + \begin{figure} + \centering + \includegraphics[width=.4\textwidth]{students} + \end{figure} + + \begin{itemize} + \item Project Supervisors + \begin{itemize} + \item Prof. Dr. Christian Grothoff + \item Prof. Andreas Habegger + \end{itemize} + \end{itemize} + } + +} +\note{} + +\section{GNU Taler} +\sectionpage +%%%--------------------------------------- +\frame[c]{\frametitle{GNU Taler} + \only<1->{ + \begin{figure} + \includegraphics[width=.7\textwidth]{taler-logo-2018} + \end{figure} + \vspace{3mm} + \begin{itemize} + \setlength\itemsep{2em} + \item <2-> Privacy-preserving\\ + \quad Spend money anonymously + \item <3-> Practical\\ + \quad Comfort of digital payments, privacy of cash + \item <4> Legally compliant\\ + \quad Income visible to the state + \end{itemize} + } +} +\frame[c]{\frametitle{GNU Taler} + \only<1>{ + \begin{figure} + \includegraphics[width=1.0\textwidth]{taler-arch-new} + \end{figure} + } + \only<2>{ + \begin{block}{Further information} + https://taler.net\\ + \end{block} + \begin{block}{Further information} + Youtube + \end{block} + } +}\note{ +} + +\section{The Project} +\sectionpage +%%%--------------------------------------- +\frame[c]{\frametitle{The Project} + \framesubtitle{Implementation of a Taler based vending machine} + + \begin{itemize} %% item sep set!! 2em + \setlength\itemsep{2em} + \item <1-> Motivation + \begin{itemize} %% item sep set!! 1em + \setlength\itemsep{1em} + \item Easy to use Taler demonstrator + \item Give the customer the ability to buy goods using Taler + \item Doing a cool project with a real use case + \end{itemize} + \item <2-> Goals + \begin{itemize} %% item sep set!! 1em + \setlength\itemsep{1em} + \item Integration of Taler API in Embedded Linux environment + \item Integration of communication protocol supported by vending machines (MDB/ICP) + \item Building a prototype based on Taler payment system + \end{itemize} + \item <3-> Vision + \begin{itemize} + \setlength\itemsep{1em} + \item Increase awarness of Taler project worldwide + \item Industrialisation of prototype + \end{itemize} + \end{itemize} + +} + +\subsection[System concept]{} +\frame[c]{\frametitle{System concept} + \framesubtitle{Integration of a MDB/ICP to Taler gateway.\\Implementation of a NFC or QR-Code to Taler wallet interface.} + \vfill + \begin{figure} + \centering + \includegraphics[width=1.0\textwidth]{design} + \end{figure} + } + +\subsection[Hardware]{} +\frame[c]{\frametitle{Hardware} + \begin{figure} + \includegraphics[width=1\textwidth]{hardware_bunch.png} + \end{figure} + +} +\frame[c]{\frametitle{Hardware} + \uncover<1->{ + \begin{multicols}{2} + \begin{figure} + \includegraphics[width=0.3\textwidth]{pi.png} + \end{figure} + \columnbreak + \begin{itemize} + \item Raspberry Pi 3B+ + \end{itemize} + \end{multicols} + } + \uncover<2->{ + \begin{multicols}{2} + \begin{figure} + \includegraphics[width=0.3\textwidth]{mdb_hat_opt_used.png} + \end{figure} + \columnbreak + \begin{itemize} + \item MDB/ICP Converter from Shanghai Wafer Microelectronics + \end{itemize} + \end{multicols} + } + \uncover<3->{ + \begin{multicols}{2} + \begin{figure} + \includegraphics[width=0.3\textwidth]{testbed.png} + \end{figure} + \columnbreak + \begin{itemize} + \item Testbed for mdb communication from Braumann AG Sugiez + \end{itemize} + \end{multicols} + } +} +\frame[c]{\frametitle{Hardware} + \uncover<1->{ + \begin{multicols}{2} + \begin{figure} + \includegraphics[width=0.3\textwidth]{nfc_reader.png} + \end{figure} + \columnbreak + \begin{itemize} + \item ACR122U USB NFC Reader + \end{itemize} + \end{multicols} + } + \uncover<2->{ + \begin{multicols}{2} + \begin{figure} + \includegraphics[width=0.3\textwidth]{pitft.png} + \end{figure} + \columnbreak + \begin{itemize} + \item Adafruit PiTFT 3.5" + \end{itemize} + \end{multicols} + } + +} + +\subsection[Software]{} +\frame[t]{\frametitle{Software} + \only<1->{ + \begin{figure} + \centering + \includegraphics[width=.9\textwidth]{software_stack} + \end{figure} + } + + \only<2->{ + \vfill + + \begin{block}{Source Code} + https://git.taler.net/taler-mdb.git/ + \end{block} + + } +} + +\subsection[Snack Machine]{} +\frame[t]{\frametitle{Snack machine} + \only<1>{ + \vfill + \begin{figure} + \centering + \includegraphics[width=0.7\textwidth]{creation.png} + \end{figure} + } +} + +\subsection[Challenges]{} +\frame[c]{\frametitle{Challenges} + \only<1>{ + \begin{itemize} + \setlength\itemsep{2em} + \item MDB converters not open source + \item Software of snack machine not open source + \item Implementation of MDB standard differ + \end{itemize} + } +} + +\subsection[Project outlook]{} +\frame[c]{\frametitle{Project outlook} + + \only<1>{ + \begin{itemize} + \setlength\itemsep{2em} + \item Offer internet over NFC + \item Bachelor Thesis + \item World Economic Forum (WEF) 2020 + \item Installation at the BUAS + \end{itemize} + } +} + +\section[36C3]{} +\sectionpage +\frame[c]{\frametitle{How to use at 36C3} + \only<1>{ + \begin{figure} + \includegraphics[width=1\textwidth]{download_wallet.png} + \end{figure} + } +} +\frame[c]{\frametitle{How to use at 36C3} + \only<1>{ + \begin{figure} + \includegraphics[width=1\textwidth]{visit_us.png} + \end{figure} + } +} +\frame[c]{\frametitle{How to use at 36C3} + \only<1>{ + \begin{figure} + \includegraphics[width=1\textwidth]{get_taler_coins.png} + \end{figure} + } +} +\frame[c]{\frametitle{How to use at 36C3} + \only<1>{ + \begin{figure} + \includegraphics[width=1\textwidth]{get_snacks.png} + \end{figure} + } +} + + +%\begin{frame}[plain] +% \includegraphics[width=1.2\textwidth]{hungry_dude} +%\end{frame} + +\begin{frame}[plain] + \includegraphics[width=1.2\textwidth]{hungry_dude_not_anymore} +\end{frame} + + +%%%--------------------------------------- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Do not modify below +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setbeameroption{show notes} + +\end{document} diff --git a/presentations/taler-mdb-36c3/pictures/built_with.png b/presentations/taler-mdb-36c3/pictures/built_with.png new file mode 100644 index 0000000..95f0a4d Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/built_with.png differ diff --git a/presentations/taler-mdb-36c3/pictures/creation.png b/presentations/taler-mdb-36c3/pictures/creation.png new file mode 100644 index 0000000..9ac0cb2 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/creation.png differ diff --git a/presentations/taler-mdb-36c3/pictures/download_wallet.png b/presentations/taler-mdb-36c3/pictures/download_wallet.png new file mode 100644 index 0000000..026b72c Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/download_wallet.png differ diff --git a/presentations/taler-mdb-36c3/pictures/dude_handy.jpg b/presentations/taler-mdb-36c3/pictures/dude_handy.jpg new file mode 100644 index 0000000..34c0d22 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/dude_handy.jpg differ diff --git a/presentations/taler-mdb-36c3/pictures/get_snacks.png b/presentations/taler-mdb-36c3/pictures/get_snacks.png new file mode 100644 index 0000000..3f0bfdb Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/get_snacks.png differ diff --git a/presentations/taler-mdb-36c3/pictures/get_taler_coins.png b/presentations/taler-mdb-36c3/pictures/get_taler_coins.png new file mode 100644 index 0000000..c2f21a6 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/get_taler_coins.png differ diff --git a/presentations/taler-mdb-36c3/pictures/hardware_bunch.png b/presentations/taler-mdb-36c3/pictures/hardware_bunch.png new file mode 100644 index 0000000..8d66ddc Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/hardware_bunch.png differ diff --git a/presentations/taler-mdb-36c3/pictures/hungry_dude.jpg b/presentations/taler-mdb-36c3/pictures/hungry_dude.jpg new file mode 100644 index 0000000..635d632 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/hungry_dude.jpg differ diff --git a/presentations/taler-mdb-36c3/pictures/hungry_dude_not_anymore.png b/presentations/taler-mdb-36c3/pictures/hungry_dude_not_anymore.png new file mode 100644 index 0000000..dea270a Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/hungry_dude_not_anymore.png differ diff --git a/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_1.png b/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_1.png new file mode 100644 index 0000000..af6839f Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_1.png differ diff --git a/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_2.png b/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_2.png new file mode 100644 index 0000000..dea55a7 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_2.png differ diff --git a/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_used.png b/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_used.png new file mode 100644 index 0000000..c80030f Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/mdb_hat_opt_used.png differ diff --git a/presentations/taler-mdb-36c3/pictures/nfc_reader.png b/presentations/taler-mdb-36c3/pictures/nfc_reader.png new file mode 100644 index 0000000..4047e42 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/nfc_reader.png differ diff --git a/presentations/taler-mdb-36c3/pictures/pi.png b/presentations/taler-mdb-36c3/pictures/pi.png new file mode 100644 index 0000000..e1d7b75 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/pi.png differ diff --git a/presentations/taler-mdb-36c3/pictures/pitft.png b/presentations/taler-mdb-36c3/pictures/pitft.png new file mode 100644 index 0000000..4d3a7ca Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/pitft.png differ diff --git a/presentations/taler-mdb-36c3/pictures/sample-learnProgLang.jpg b/presentations/taler-mdb-36c3/pictures/sample-learnProgLang.jpg new file mode 100644 index 0000000..2d6cf28 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/sample-learnProgLang.jpg differ diff --git a/presentations/taler-mdb-36c3/pictures/snackmachine.jpg b/presentations/taler-mdb-36c3/pictures/snackmachine.jpg new file mode 100644 index 0000000..9065a97 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/snackmachine.jpg differ diff --git a/presentations/taler-mdb-36c3/pictures/students.jpg b/presentations/taler-mdb-36c3/pictures/students.jpg new file mode 100644 index 0000000..8ab38aa Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/students.jpg differ diff --git a/presentations/taler-mdb-36c3/pictures/testbed.png b/presentations/taler-mdb-36c3/pictures/testbed.png new file mode 100644 index 0000000..e923d21 Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/testbed.png differ diff --git a/presentations/taler-mdb-36c3/pictures/visit_us.png b/presentations/taler-mdb-36c3/pictures/visit_us.png new file mode 100644 index 0000000..7c3648d Binary files /dev/null and b/presentations/taler-mdb-36c3/pictures/visit_us.png differ diff --git a/presentations/taler-mdb-36c3/svg/BFH_logo.svg b/presentations/taler-mdb-36c3/svg/BFH_logo.svg new file mode 100644 index 0000000..4270339 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/BFH_logo.svg @@ -0,0 +1,290 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + +Taler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/svg/design.svg b/presentations/taler-mdb-36c3/svg/design.svg new file mode 100644 index 0000000..316682b --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/design.svg @@ -0,0 +1,16987 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + +Taler + + + Backend + + + + + + + Rest API + + + + + + USB + + + + + + + NFC + + + MDB/ICP + + + + + + + + + + + + + + + + + + + Wallet + + + + diff --git a/presentations/taler-mdb-36c3/svg/sample-flowChartSwitch.svg b/presentations/taler-mdb-36c3/svg/sample-flowChartSwitch.svg new file mode 100644 index 0000000..2f46218 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/sample-flowChartSwitch.svg @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Statements_C + + + + DefaultStatements + + + + Statements_A + + + + Done + + + + Start + + + + ConditionA + + + + ConditionB + + + + ConditionC + + T + F + + + Default + + + + Statements_B + + + + + + + + + + + + + + T + T + T + F + F + + diff --git a/presentations/taler-mdb-36c3/svg/software_stack.svg b/presentations/taler-mdb-36c3/svg/software_stack.svg new file mode 100644 index 0000000..a331e48 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/software_stack.svg @@ -0,0 +1,1051 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Raspberry Pi + + + + + + + + gnu:net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + libnfc + + + + libqrencode + + + + + + + + + + + + + + + + + Application + + + + + Raspbian + + + + + + + + MDB + + + + + + + + + + + NFC + + + + + + + + + + + TFT + + + + + + + + + + + + + + + TCP/IP + + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/svg/students_1.svg b/presentations/taler-mdb-36c3/svg/students_1.svg new file mode 100644 index 0000000..fbad596 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/students_1.svg @@ -0,0 +1,2012 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/svg/students_2.svg b/presentations/taler-mdb-36c3/svg/students_2.svg new file mode 100644 index 0000000..1beebba --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/students_2.svg @@ -0,0 +1,5205 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/svg/students_3.svg b/presentations/taler-mdb-36c3/svg/students_3.svg new file mode 100644 index 0000000..802da07 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/students_3.svg @@ -0,0 +1,7396 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/svg/taler-arch-full.svg b/presentations/taler-mdb-36c3/svg/taler-arch-full.svg new file mode 100644 index 0000000..be2db87 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/taler-arch-full.svg @@ -0,0 +1,19620 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + Customer'sBank + + + + + + + + + + + + + + + + + Customer + + + + Walletextension + + + + + + + + + Browser + + + + + + + + + + + + + + + 1. pay exchange + + + + + + + + + + + + + + + + + + + Merchant'sBank + + + + + + + + SDK + + + + + + Frontend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + www + + + + + Businesslogic + + + + + Backend + + + + + + + + + + + + + + + + + + + + + + + + Merchant + + + + 7. view balance + + + + + 2. wire transfer + + + + 3. withdraw coins + + + + + + 6. wire transfer + + + + 5. deposit coins + + + + + 4. spend coins + + + + Exchange'sBank + + + + + + + + + + + + + + + + + + Exchange + + + + + Database + + + + + + + + + + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/svg/taler-arch-new.svg b/presentations/taler-mdb-36c3/svg/taler-arch-new.svg new file mode 100644 index 0000000..6ae5999 --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/taler-arch-new.svg @@ -0,0 +1,19619 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1. pay exchange + + 7. view balance + + + Customer'sBank + + Merchant'sBank + + + 2. wire transfer + 6. wire transfer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + www + Merchant + 3. withdraw coins + + 5. deposit coins + + 4. spend coins + + Exchange'sBank + + Exchange + + + Database + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wallet + + + + + + + + + + + + Customer + + diff --git a/presentations/taler-mdb-36c3/svg/taler-logo-2018.svg b/presentations/taler-mdb-36c3/svg/taler-logo-2018.svg new file mode 100644 index 0000000..d94191b --- /dev/null +++ b/presentations/taler-mdb-36c3/svg/taler-logo-2018.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + +Taler + + + + + + + + + diff --git a/presentations/taler-mdb-36c3/variables.tex b/presentations/taler-mdb-36c3/variables.tex new file mode 100644 index 0000000..47d4b6e --- /dev/null +++ b/presentations/taler-mdb-36c3/variables.tex @@ -0,0 +1,19 @@ + +%% Replace COURSE_TITLE by the appropriate course title +\def\coursename{36C3 - Messe Leipzig} + +%% Replace NAME with first and last file of the author +\def\lecturername{Marco Boss / Dominik Hofer} + +%% Replace EMAIL NAME by author email address +\def\lectureremail{} + +%% Modify company name +\def\universityname{Bern University of Applied Sciences} + +%% Modify division name +\def\departmentname{Micro- and Medicaltechnology} + +%% Modify revison +\def\revision{1.0} + -- cgit v1.2.3