Author Archive

Slides for my „Adventures in LaTeX Land“ presentation, Gießen 2013

These are the German slides for my presentation at the 2013 Gießen German TeX Users Conference. It shows examples for the following packages.

PDF, German

  • arara
  • censor
  • menukeys
  • ocgx
  • progressbar
  • pgfgantt
  • romanbar
  • parnotes
  • smartdiagram
  • tikzsymbols

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Neue Version der Herleitung der Linearen Regression verfügbar

Nach Hinweisen auf einen kleinen Fehler (danke Axel!) in meiner Herleitung der Gleichung für die lineare Regression habe eben eine neue Version hochgeladen: linreg.pdf.

Zusätzlich zur Fehlerbeseitigung habe ich mehr erläuternde Kommentare und Formeln hinzugefügt. Selbstredend wurde das Dokument in LaTeX gesetzt; es ist auch ein schönes Beispiel, was mit LaTeX & Co geht:

– die Grafik wurde in Metapost erstellt (heute würde ich sicher TikZ nehmen)
– alle Quelldateien sind im PDF-Container hinterlegt und verlinkt.

Wenn ich mal passenden R-Code finde (Hinweise werden gern entgegen genommen) werde ich noch mehr Beispiele für die Auswirkungen von Anstieg und Achsenabschnitt der Regressionsgeraden auf die Quadratsumme einfügen.

Update 24.06.2018: Ich bin mit den Dateien nach Github umgezogen: https://github.com/UweZiegenhagen/Introduction_Linear_Regression

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

BibLaTeX & biber workflow example

Here a simple example to illustrate the workflow with biblatex and biber (on TeX Live 2012). It also prints a second bibliography just for the books (one in this case)

literaturvz.bib contains:

@Article{lit1,
author = {Nabuurs, S.B. and Spronk, C.A.E.M.},
title = {Biomolecular Structure Determination by NMR Spectroscopy Allows for Major Errors},
year ={2006},
volume = {2},
journal = {PLoS Comput. Biology}}

@Article{lit2,
author = {Exner, T. E. and Mezey, P. G.},
title = {The Field-Adapted ADMA Approach: Introducing Point Charges},
year ={2004},
volume ={108},
journal = {J. Phys. Chem. A}}

@Article{lit3,
author = {Exner, T. E. and Mezey, P. G.},
title = {Ab Initio Quality Properties for Macromolecules Using the ADMA Approach},
year ={2003},
volume ={24},
journal = {J. Comp. Chem.}}

@Article{lit4,
author = {Barua, B. and Lin, J.C. and Williams, V.D.},
title = {The Trp-cage: optimizing the stability of a globular miniprotein},
year ={2008},
volume = {21},
journal = {Protein Engineering, Design \& Selection}}

@Article{weinhold,
author = {F. Weinhold and C.R. Landis},
title = {Natural Bond Orbitals and Extensions of Localized Bonding Concept},
year ={2001},
journal = {Chemistry in Europe: Research and Practice in Europe},
volume = {2},
number = {2},
pages = {91-104}}

@Manual{weinhold1,
author = {F. Weinhold},
title ={NBO 5.0 Program Manual; Natural Bond Orbital Analysis Programs}}

@Book{test1,
type = book,
author = {some author},
year = {2012},
title ={Some arbitrary book title},
publisher = {Some publisher}
}

@Misc{strassner,
author = {Th. Stra{\ss}ner},
year = {2007},
howpublished = {http://www.chm.tu-dresden.de/oc3/documents/oc3/populationsanalyse.pdf}}

@Booklet{gaussian03,
author = {{\AE}. Frisch and M.J. Frisch and G.W. Trucks},
title = {\textit{Gaussian 03}, User`s Reference},
year = {2003}}

@Manual{gaussian,
author = {M.J. Frisch and G.W. Trucks and H.B. Schlegel and G.E. Scuseria and M.A. Robb and J.R. Cheeseman and J.A. Montgomery Jr. and T. Vreven and K.N. Kudin and J.C. Burant and J.M. Millam and S.S. Iyengar and J. Tomasi and V. Barone and B. Mennucci and M. Cossi and G. Scalmani and N. Rega and G.A. Petersson and H. Nakatsuji and M. Hada and M. Ehara and K. Toyota and R. Fukuda and J. Hasegawa and M. Ishida and T. Nakajima and Y. Honda and O. Kitao and H. Nakai and M. Klene and X. Li and J.E. Knox and H.P. Hratchian and J.B. Cross and C. Adamo and J. Jaramillo and R. Gomperts and R.E. Stratmann and O. Yazyev and A.J. Austin and R. Cammi and C. Pomelli and J.W. Ochterski and P.Y. Ayala and K. Morokuma and G.A. Voth and P. Salvador and J.J. Dannenberg and V.G. Zakrzewski and S. Dapprich and A.D. Daniels and M.C. Strain and O. Farkas and D.K. Malick and A.D. Rabuck and K. Raghavachari and J.B. Foresman and J.V. Ortiz and Q. Cui and A.G. Baboul and S. Clifford and J. Cioslowski and B.B. Stefanov and G. Liu and A. Liashenko and P. Piskorz and I. Komaromi and R.L. Martin and D.J. Fox and T. Keith and M.A. Al-Laham and C.Y. Peng and A. Nanayakkara and M. Challacombe and P.M.W. Gill and B. Johnson and W. Chen and M.W. Wong and C. Gonzalez and J.A. Pople},
title ={Gaussian 03, Revison C.02},
year = {Gaussian, Inc., Wallingford CT, USA, 2004}}

The TeX document (filename is biblatex-test-biber.tex) contains:

\documentclass[11pt]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}

%\usepackage[style=authortitle-dw,backend=bibtex8]{biblatex}%authortitle-icomp
\usepackage[style=authortitle-icomp,backend=biber]{biblatex}%
\usepackage[babel,german=quotes]{csquotes}%guillemets

\addbibresource{literaturvz.bib}

\begin{document}

\cite{weinhold}

\clearpage

\parencite{weinhold}

\clearpage

\footcite[12]{weinhold}

\clearpage

\smartcite[12, smart]{weinhold}

\clearpage

\citeauthor{weinhold}

\clearpage

\citetitle{weinhold}

\clearpage

\citeyear{weinhold}

\nocite{*}

\printbibliography 

\printbibliography[title={Book references},type=book]

\end{document}

To create the final PDF run:

  1. pdflatex biblatex-test-biber
  2. biber biblatex-test-biber
  3. pdflatex biblatex-test-biber

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Modifying selected text with Autohotkey

Autohotkey is an amazing tool to define hotkeys such as s# that get automatically expanded to \section{}. On earlier occasions I had already written some blog posts on this topic. Today (encouraged by a question on tex.stackexchange) I managed to compile a short script, which takes some selected text, inserts a specific command and pastes the selected text again. Quite helpful if one want’s to define a shortcut to e.g. make the selected text bold.

F4::
Send ^c
Send \command{{}{}}{LEFT}
Send ^v
Return

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Creating an Overview of BABOK Knowledge Areas with LaTeX

Last week I attended a CBAP preparation course (materials from http://www.watermarklearning.com/cbap, held by http://www.masventa.eu). To prepare myself for the exam I created an overview of all knowledge areas using TikZ’s magnificient graphics functions. Together with a little ifdraft magic I got a nice file.

Area_Summary_landscape (PDF, DIN A4 landscape)

\documentclass[fontsize=10pt]{scrartcl}
\usepackage[a4paper,landscape,left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
 
\usepackage[]{ifdraft}
\usepackage[]{attachfile}
\usepackage[]{eso-pic}
 
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
 
\renewcommand{\familydefault}{\sfdefault}
\RequirePackage[scaled=0.9]{helvet}
\usepackage{tikz}
\usepackage[right]{showlabels}
\usetikzlibrary{positioning}
\pagestyle{empty}
 
\usepackage{xcolor}
 
\ifdraft{
\definecolor{mycol}{RGB}{255,255,255}
}{%
\definecolor{mycol}{RGB}{0,0,0}
}
 
\usepackage{hyperref}
\usepackage[]{url}
 
\hypersetup{% 
  pdftitle={CBAP Knowledge Areas},
  pdfauthor={Uwe Ziegenhagen, uwe.ziegenhagen@db.com	},
  pdfsubject={Babok Knowledge Areas},
  pdfkeywords={Babok, CBAP, Knowledge Areas}
}
 
\newcommand{\file}[1]{\textattachfile{#1}{\textcolor{blue}{\LaTeX\ Sourcecode}}}
 
\begin{document}  
 
\AddToShipoutPictureFG*{
  \put(35,25){\footnotesize Uwe Ziegenhagen, uwe.ziegenhagen@db.com, \file{\jobname.tex}	
}
}
 
\begin{center}
\begin{tikzpicture}
[
    x=40mm,y=25mm,
    mybox/.style={rectangle,rounded corners,xshift=1cm,yshift=1cm,minimum width=35mm, minimum height=22.5mm},
    topline/.style={mybox,mycol,align=center,draw=red,very thick,font=\bfseries},
    botline/.style={mybox,mycol,align=center,draw=orange,very thick,font=\bfseries},
    yelline/.style={mybox,mycol,align=center,draw=cyan,very thick,font=\bfseries},
    pinkline/.style={mybox,mycol,align=center,draw=violet,very thick,font=\bfseries}
]
\node at (0,0) [topline] {Business Analysis \\ Planning  \& \\ Monitoring};
\node at (1,0) [topline] {Elicitation};
\node at (2,0) [topline] {Requirements \\ Management \&  \\ Communications};
\node at (3,0) [topline] {Enterprise Analysis};
\node at (4,0) [topline] {Requirements \\ Analysis};
\node at (5,0) [topline] {Solution Assessment \\ \& Validation};
\node at (6,0) [topline] {Underlying  \\ Competencies};
 
\node at (0,-1) [botline] {Plan BA Approach};
\node at (0,-2) [botline] {Conduct \\ Stakeholder \\ Analysis};
\node at (0,-3) [botline] {Plan BA Activities};
\node at (0,-4) [botline] {Plan BA \\ Communication};
\node at (0,-5) [botline] {Plan Requirements \\ Management \\ Process};
\node at (0,-6) [botline] {Manage BA \\ Performance};
 
\node at (1,-1) [yelline] {Prepare for \\ Elicitation};
\node at (1,-2) [yelline] {Conduct \\ Elicitation \\ Activity};
\node at (1,-3) [yelline] {Document \\ Elicitation \\ Results};
\node at (1,-4) [yelline] {Confirm \\ Elicitation \\ Results};
 
\node at (2,-1) [botline] {Manage Solution \\ Scope \& \\ Requirements};
\node at (2,-2) [botline] {Manage \\ Requirements \\ Traceability};
\node at (2,-3) [botline] {Maintain \\ Requirements \\ for Re-Use};
\node at (2,-4) [botline] {Prepare \\ Requirements \\ Package};
\node at (2,-5) [botline] {Communicate \\ Requirements};
 
\node at (3,-1) [yelline] {Define \\ Business \\ Need};
\node at (3,-2) [yelline] {Assess \\ Capability \\ Gaps};
\node at (3,-3) [yelline] {Determine \\ Solution \\ Approach};
\node at (3,-4) [yelline] {Define \\ Solution \\ Scope};
\node at (3,-5) [yelline] {Define \\ Business \\ Case};
 
\node at (4,-1) [botline] {Prioritize \\ Requirements};
\node at (4,-2) [botline] {Organize \\ Requirements};
\node at (4,-3) [botline] {Specify \& \\ Model \\ Requirements};
\node at (4,-4) [botline] {Define \\ Assumption \& \\ Constraints};
\node at (4,-5) [botline] {Verify \\ Requirements };
\node at (4,-6) [botline] {Validate \\ Requirements};
 
\node at (5,-1) [yelline] {Assess \\ Proposed \\ Solution};
\node at (5,-2) [yelline] {Allocate \\ Requirements};
\node at (5,-3) [yelline] {Assess \\ Organizational \\ Readiness};
\node at (5,-4) [yelline] {Define \\ Transition \\ Requirements};
\node at (5,-5) [yelline] {Validate \\ Solution};
\node at (5,-6) [yelline] {Evaluate \\ Solution \\ Performance};
 
\node at (6,-1) [pinkline] {Analytical \\ Thinking \& Problem \\ Solving };
\node at (6,-2) [pinkline] {Behavioral \\ Characteristics};
\node at (6,-3) [pinkline] {Business \\ Knowledge};
\node at (6,-4) [pinkline] {Communication \\ Skills};
\node at (6,-5) [pinkline] {Interaction \\ Skills};
\node at (6,-6) [pinkline] {Software \\ Applications};
\end{tikzpicture}
\end{center}
 
\ifdraft{%
}{%
\definecolor{mycol}{RGB}{255,255,255}
\begin{center}
\begin{tikzpicture}
[
    x=40mm,y=25mm,
    mybox/.style={rectangle,rounded corners,xshift=1cm,yshift=1cm,minimum width=35mm, minimum height=22.5mm},
    topline/.style={mybox,mycol,align=center,draw=red,very thick,font=\bfseries},
    botline/.style={mybox,mycol,align=center,draw=orange,very thick,font=\bfseries},
    yelline/.style={mybox,mycol,align=center,draw=cyan,very thick,font=\bfseries},
    pinkline/.style={mybox,mycol,align=center,draw=violet,very thick,font=\bfseries}
]
\node at (0,0) [topline] {Business Analysis \\ Planning  \& \\ Monitoring};
\node at (1,0) [topline] {Elicitation};
\node at (2,0) [topline] {Requirements \\ Management \&  \\ Communications};
\node at (3,0) [topline] {Enterprise Analysis};
\node at (4,0) [topline] {Requirements \\ Analysis};
\node at (5,0) [topline] {Solution Assessment \\ \& Validation};
\node at (6,0) [topline] {Underlying  \\ Competencies};
 
\node at (0,-1) [botline] {Plan BA Approach};
\node at (0,-2) [botline] {Conduct \\ Stakeholder \\ Analysis};
\node at (0,-3) [botline] {Plan BA Activities};
\node at (0,-4) [botline] {Plan BA \\ Communication};
\node at (0,-5) [botline] {Plan Requirements \\ Management \\ Process};
\node at (0,-6) [botline] {Manage BA \\ Performance};
 
\node at (1,-1) [yelline] {Prepare for \\ Elicitation};
\node at (1,-2) [yelline] {Conduct \\ Elicitation \\ Activity};
\node at (1,-3) [yelline] {Document \\ Elicitation \\ Results};
\node at (1,-4) [yelline] {Confirm \\ Elicitation \\ Results};
 
\node at (2,-1) [botline] {Manage Solution \\ Scope \& \\ Requirements};
\node at (2,-2) [botline] {Manage \\ Requirements \\ Traceability};
\node at (2,-3) [botline] {Maintain \\ Requirements \\ for Re-Use};
\node at (2,-4) [botline] {Prepare \\ Requirements \\ Package};
\node at (2,-5) [botline] {Communicate \\ Requirements};
 
\node at (3,-1) [yelline] {Define \\ Business \\ Need};
\node at (3,-2) [yelline] {Assess \\ Capability \\ Gaps};
\node at (3,-3) [yelline] {Determine \\ Solution \\ Approach};
\node at (3,-4) [yelline] {Define \\ Solution \\ Scope};
\node at (3,-5) [yelline] {Define \\ Business \\ Case};
 
\node at (4,-1) [botline] {Prioritize \\ Requirements};
\node at (4,-2) [botline] {Organize \\ Requirements};
\node at (4,-3) [botline] {Specify \& \\ Model \\ Requirements};
\node at (4,-4) [botline] {Define \\ Assumption \& \\ Constraints};
\node at (4,-5) [botline] {Verify \\ Requirements };
\node at (4,-6) [botline] {Validate \\ Requirements};
 
\node at (5,-1) [yelline] {Assess \\ Proposed \\ Solution};
\node at (5,-2) [yelline] {Allocate \\ Requirements};
\node at (5,-3) [yelline] {Assess \\ Organizational \\ Readiness};
\node at (5,-4) [yelline] {Define \\ Transition \\ Requirements};
\node at (5,-5) [yelline] {Validate \\ Solution};
\node at (5,-6) [yelline] {Evaluate \\ Solution \\ Performance};
 
\node at (6,-1) [pinkline] {Analytical \\ Thinking \& Problem \\ Solving };
\node at (6,-2) [pinkline] {Behavioral \\ Characteristics};
\node at (6,-3) [pinkline] {Business \\ Knowledge};
\node at (6,-4) [pinkline] {Communication \\ Skills};
\node at (6,-5) [pinkline] {Interaction \\ Skills};
\node at (6,-6) [pinkline] {Software \\ Applications};
\end{tikzpicture}
\end{center}}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

A simple homework template for LaTeX

Here’s a simple homework template I compiled today for my friend. I guess, it’s useful for rather short homeworks without any need to prepare a table of contents or long bibliography.

\documentclass[10pt,english]{article}
\usepackage[a4paper,left=2cm,top=2cm,right=2cm,bottom=2.5cm]{geometry}
\usepackage[utf8]{inputenc} % input coding stuff
\usepackage[T1]{fontenc} % font coding stuff
\usepackage{babel} % hyphenation
\usepackage{csquotes} % to \enquote{}
\usepackage{xcolor} % color stuff
 
\definecolor{chamois}{RGB}{255,255,240}
%\pagecolor{chamois} % for nice background color
 
\usepackage{palatino} % Font
\usepackage{blindtext} % some useless text
 
\usepackage{setspace} % 1,5-line spacing
 
\setlength{\parindent}{0pt} % just skips, no indent
\setlength{\parskip}{6pt}
 
\usepackage{titling} % defines \theauthor, \thetitle, etc.
 
\usepackage{scrpage2} % living column titles
\pagestyle{scrheadings}
 
\ohead{}
\ihead{}
 
\ofoot{\pagemark}
\ifoot{}
 
\cfoot{}
\chead{}
 
\author{Jane Doe, student ID 1234\,5678}
\title{Homework}
 
\begin{document}
{\theauthor} \\[-0.5em]
 
{\Large \bfseries \thetitle}
 
\today
 
\onehalfspacing
 
\subsubsection*{This is the first question.}
 
\blindtext[3]
 
\subsubsection*{This is the second question.}
 
\blindtext[4]
 
 
\subsubsection*{This is the third question.}
 
\blindtext[3]
 
\end{document}

03.02

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Normpages with stdpage

Translators and correctors are usually paid on the number of standard pages, commonly having 60 characters per line and 30 lines per page. The stdpage package helps you generate those normpages. Here is a short example for the use of this package:

\documentclass[12pt,ngerman]{scrartcl}
 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{blindtext}
 
\usepackage{stdpage}
 
\begin{document}
 
\blindtext[5]
 
\end{document}

24.01

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Calendars with Excel and pgfgantt, Part II

Since the last example of my pgfgantt-calendar generated a PDF with 1,60m width I decided to switch to a quarterly calendar. It took me quite a while to figure out the necessary Excel formulas (one may even find easier ways) but it works.

The green part contains some basic variables, e.g. when a quarter starts and ends. In the red part you just enter your dates. The violet part generates the entries for pgfgantt, the red box holds the copy&paste-ready entries for the TeX code. The code is able to handle events exceeding a single quarter.

23.01

Excel Code

final PDF

\documentclass{article}
\usepackage[landscape,a3paper,left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfgantt}
\usetikzlibrary{calendar}
 
\protected\def\aaa#1{%
\pgfcalendarifdate{2012-12-31+#1}{weekend}% Test if it's a weekend
{\textcolor{red}{\pgfcalendarifdateday}}% Typeset with red color
{\pgfcalendarifdateday}% Or just the number
}
 
\protected\def\bbb#1{%
\pgfcalendarifdate{2013-03-31+#1}{weekend}% Test if it's a weekend
{\textcolor{red}{\pgfcalendarifdateday}}% Typeset with red color
{\pgfcalendarifdateday}% Or just the number
}
 
\protected\def\ccc#1{%
\pgfcalendarifdate{2013-06-30+#1}{weekend}% Test if it's a weekend
{\textcolor{red}{\pgfcalendarifdateday}}% Typeset with red color
{\pgfcalendarifdateday}% Or just the number
}
 
\protected\def\ddd#1{%
\pgfcalendarifdate{2013-09-30+#1}{weekend}% Test if it's a weekend
{\textcolor{red}{\pgfcalendarifdateday}}% Typeset with red color
{\pgfcalendarifdateday}% Or just the number
}
 
 
\begin{document}
\begin{flushright}
%\begin{tikzpicture}[scale=0.5, every node/.style={scale=0.25}]
\begin{ganttchart}[hgrid, vgrid, x unit=0.4cm]{90}
\gantttitle{1. Quartal}{90} \\
\gantttitlelist[
title list options={var=\y, evaluate=\y as \x using {"\aaa{\y}"}}
]{1,...,90}{1} \\
\ganttbar[bar/.style={fill=red}]{Neujahr}{1}{1}\\
\ganttbar[bar/.style={fill=yellow}]{Feiertag}{42}{42}\\
\ganttbar[bar/.style={fill=red}]{Feiertag}{88}{88}\\
\ganttbar[bar/.style={fill=green}]{Frühling}{79}{90}\\
\end{ganttchart}\vspace*{1cm}
 
\begin{ganttchart}[hgrid, vgrid, x unit=0.4cm]{91}
\gantttitle{2. Quartal}{91} \\
\gantttitlelist[
title list options={var=\y, evaluate=\y as \x using {"\bbb{\y}"}}
]{1,...,91}{1} \\
\ganttbar[bar/.style={fill=yellow}]{Feiertag}{1}{1}\\
\ganttbar[bar/.style={fill=red}]{Tag der Arbeit}{31}{31}\\
\ganttbar[bar/.style={fill=yellow}]{Herrentag}{39}{39}\\
\ganttbar[bar/.style={fill=green}]{Frühling}{1}{81}\\
\ganttbar[bar/.style={fill=yellow}]{Sommer}{82}{91}\\
\end{ganttchart}\vspace*{1cm}
 
\clearpage
 
\begin{ganttchart}[hgrid, vgrid, x unit=0.4cm]{92}
\gantttitle{3. Quartal}{92} \\
\gantttitlelist[
title list options={var=\y, evaluate=\y as \x using {"\aaa{\y}"}}
]{1,...,92}{1} \\
\ganttbar[bar/.style={fill=yellow}]{Sommer}{1}{83}\\
\ganttbar[bar/.style={fill=brown}]{Herbst}{84}{92}\\
\end{ganttchart}\vspace*{1cm}
 
\begin{ganttchart}[hgrid, vgrid, x unit=0.4cm]{92}
\gantttitle{4. Quartal}{92} \\
\gantttitlelist[
title list options={var=\y, evaluate=\y as \x using {"\aaa{\y}"}}
]{1,...,92}{1} \\
\ganttbar[bar/.style={fill=brown}]{Herbst}{1}{81}\\
\end{ganttchart}
 
\end{flushright}
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Buchkritik „Arduino Praxiseinstieg“ von Thomas Brühlmann (2. Auflage)

Vor ein paar Wochen hat mir der mitp Verlag freundlicherweise ein Rezensionsexemplar für die 2. Auflage von Thomas Brühlmanns Buch „Arduino Praxiseinstieg“ zukommen lassen. Nach dem Weihnachtsstress der vergangenen Wochen möchte ich es jetzt gern vorstellen. Gegenüber der 1. Auflage hat sich einiges getan, auf fast 530 Seiten (fast 200 mehr als bei der Erstauflage) stellt der Autor Version 1.0 der Arduino-Umgebung vor. Erfreulich ist, dass trotz des beträchtlichen Seitenzuwachses der Preis nur auf 29,95 Euro gestiegen ist.

Ein Hinweis nebenbei: Version 1.0 heißt im OpenSource-Umfeld nicht, dass es die erste Version ist, die nix taugt. OpenSource Software ist dafür bekannt, Versionsnummern nur sehr zögerlich zu inkrementieren. BibTeX von Leslie Lamport und Oren Patashnik wird seit 1985 entwickelt und ist immer noch nicht in Version 1.0 angekommen…

Zurück zum Thema: Nach der Einleitung und Vorstellung von Software und den verschiedenen Arduino-Boards stellt der Autor im dritten Kapitel die grundlegenden Elektronik-Bauteile wie Widerstand, LED, etc. vor. Hardcore-Elektroniker können dies sicher überspringen, für Fachfremde wie mich ist das aber sicher sinnvoll.

Kapitel 4 behandelt die verschiedenen Ein- und Ausgänge des Arduinos und zeigt, wie man Werte ein- und auslesen kann. Thomas Brühlmann geht dabei auch auf die serielle Schnittstelle und I2C ein (Das erinnert mich dran, mal meine MAX232 Chips ausprobieren zu wollen). Um Sensoren (Licht, Temperatur), Aktoren (Relais, Servos, Motoren) und Anzeigen (LEDs, LC-Displays, etc.) geht es in Kapitel 5. Kapitel 6 zeigt, wie man die gesammelten Daten im EEPROM des Arduinos speichern oder auf eine SD-Karte schreiben kann. Dieses Kapitel geht auch auf Processing, die „Künstler-Programmiersprache“ ein. Dieser Teil ist insbesondere deshalb spannend, weil ich schon seit Monaten mal Processing-Programme mit dem Arduino ansprechen will. Da muss ich mal einen genaueren Blick raufwerfen.

Kapitel 7 stellt einige der vielen Soft- und Hardware-Erweiterungen vor, darunter TinyGPS, Ethernet Lib, LCD, MIDI auf der Software-Seite, Ethernet-, Motorshield und viele andere auf der Hardware-Seite.

Das achte Kapitel zeigt einige Praxisbeispiele wie die Verwendung des Arduino als Webserver (hab ich auch schon gemacht), das Twittern per Arduino und verschiedene andere Web-getriebene Themen. Sehr spannend auf den ersten Blick!

In den restlichen Kapiteln geht es dann um DIY-Boards (DYI = Do-It-Yourself also selbsterstellte Controller-Platinen), die Suche nach Fehlern und nützliche Tools für die Arbeit mit Elektronik (Lötkolben, Oszilloskop, Multimeter); außerdem enthält das Buch noch eine knapp 30-seitige Codereferenz sowie technische Listen der Boards sowie Bezugsquellen.

Fazit: Schönes Buch, das mich reizt, mal wieder die Arduino-Kiste unter dem Tisch hervorzuholen. Für das Jahr 2013 habe ich mir vorgenommen, wieder mehr mit dem Arduino zu machen (IKEA LED Streifen ansteuern, Kameraauslöser bauen, usw.), dabei wird mir das Buch sicher helfen.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Printing from iOS via Raspberry Pi

Today I successfully managed to configure my Rapsberry Pi in such way, that I can print on my HP LaserJet 4100 from my iOS devices. I followed the instructions from http://rohankapoor.com/2012/06/configuring-the-raspberry-pi-as-an-airprint-server/. Be aware that for iOS 6 some adjustments need to be made, see the end of the instructions.

Besides the configuration instructions on the above mentioned page I had to enable the IPv6 privacy extensions, since cups gave me the following errors in /var/log/cups/error_log:


E [05/Jan/2013:19:23:40 +0100] Unable to open listen socket for address [v1.::1]
:631 - Address family not supported by protocol.
E [05/Jan/2013:19:24:57 +0100] Avahi client failed, closing client to allow a cl
ean restart
E [05/Jan/2013:19:26:24 +0100] Unable to open listen socket for address [v1.::1]
:631 - Address family not supported by protocol.

To configure these extensions I added the following lines to /etc/sysctl.conf:


net.ipv6.conf.default.use_tempaddr=2
net.ipv6.conf.eth0.use_tempaddr = 2

The last step was then to change the IP address to static (should not be necessary, since iOS should be able to find the printserver anyway, but one never knows…) following the instructions from http://www.penguintutor.com/blog/viewblog.php?blog=6306

German summary: Um mit meinem alten HP Laserjet 4100 vom iPad drucken zu können, habe ich einen Raspberry Pi nach einer Anleitung im Internet konfiguriert.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website