Archive for the ‘LaTeX’ Category.

Plots mit pgfplots

Hier ein kleines Beispiel für pgfplots, das ich aus diversen TSX Beiträgen für einen Python Artikel zusammengebaut habe:

\documentclass[12pt,english]{standalone}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
 
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    domain=0:9,
    axis lines = center,
    xlabel = {$x$},
    ylabel = {$y = f(x)$},
    height=8cm, width=11cm, grid=major,grid style={dashed, gray!30},
    xmin=-1, xmax=10, ymin=-1, ymax=7,xtick={1,2,...,10},ytick={1,2,...,6}]
 
\addplot[draw=red,domain=0:8]{-0.5*x+4};
\addplot[draw=blue,domain=1:3]{-3*x+9};
\end{axis}
\end{tikzpicture}
\end{document}

pff

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Parallel LaTeXing with Python Threads

Based on an example from stackexchange I have created a small example on parallel TeX compilation.

# -*- coding: utf-8 -*-
"""
Created on 2016-07-06
Uwe Ziegenhagen
based on http://stackoverflow.com/questions/16181121/python-very-simple-multithreading-parallel-url-fetching-without-queue
"""
 
from multiprocessing.pool import ThreadPool
from time import time as timer
import os
 
files = ['test-01.tex','test-02.tex','test-03.tex','test-04.tex','test-05.tex',
'test-06.tex','test-07.tex','test-08.tex','test-09.tex','test-10.tex']
 
def compile_file(cfile):
	try:
		result = os.system('pdflatex -interaction=batchmode ' + cfile)
		return cfile, None
	except Exception as e:
		return cfile, e	
 
start = timer()
results = ThreadPool(8).imap_unordered(compile_file, files)
for cfile, error in results:
	if error is None:
		print("%r compiled in %ss" % (cfile, timer() - start))
	else:
		print("Error compiling %r: %s" % (cfile, error))
		print("Elapsed Time: %s" % (timer() - start,))
 
print('Gesamtzeit',timer() - start)

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Das “Currentfile” Paket

Hier ein Beispiel für das currentfile Paket. Während \jobname auch bei eingebundenen Dateien nur den Namen der Hauptdatei ausspuckt, kann man mit den Befehlen des currentfile Pakets auf die einzelnen Dateien zugreifen.

\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage{currfile}
 
\begin{filecontents}{curr02.tex}
 
Ich bin der Inhalt einer Datei, die eingebunden wird. \verb|\jobname| enthält: \jobname
 
	\begin{itemize}
		\item \verb|\currfilebase|: \currfilebase
		\item \verb|\currfilename|: \currfilename
		\item \verb|\currfileext|: \currfileext
		\item \verb|\currfiledir|: \currfiledir
		\item \verb|\currfilepath|: \currfilepath
	\end{itemize}
 
\end{filecontents}
 
\begin{document}
 
	\begin{itemize}
		\item \verb|\currfilebase|: \currfilebase
		\item \verb|\currfilename|: \currfilename
		\item \verb|\currfileext|: \currfileext
		\item \verb|\currfiledir|: \currfiledir
		\item \verb|\currfilepath|: \currfilepath
	\end{itemize}
 
\input{curr02}
 
\end{document}

currfile

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Vortragsfolien “Klausurerstellung mit LaTeX”, Dante-Frühjahrstagung in Wuppertal

Hier meine Folien zum Vortrag in Wuppertal, zusammen mit den entsprechenden Quellen (auch für die Beamer Folien)

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Schnittmarken mit LaTeX entfernen

Vor ein paar Tagen wollte ich die Schnittmarken in einer PDF Datei entfernen. Da ich kein Adobe Acrobat oder einen ähnlichen PDF Editor habe, habe ich LaTeX genutzt. Nützlich ist die Fähigkeit des pdfpages Pakets, direkt beim Import eines PDF festzulegen, wie jede Seite zu croppen ist. Der trim Parameter bekommt dabei vier Maße übergeben, die für links unten rechts oben (left bottom right top) stehen.

\documentclass{scrartcl}
\usepackage{pdfpages}
\begin{document}
 
\includepdf[scale=1,pages=1-48,clip,trim=50mm 55mm 45mm 55mm]{Booklet.pdf}
 
\end{document}

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

EPUBs erstellen mit tex4ebook

This entry is part 1 of 1 in the series EPUBs mit LaTeX

Es gibt ein relativ neues LaTeX-Paket zum Erzeugen von EPUBs aus LaTeX heraus, hier ein kurzes Beispiel:

\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{xcolor}
 
\title{Testdokument für tex4ebook}
\author{Uwe Ziegenhagen}
 
\begin{document}
\maketitle
\tableofcontents
 
\section{Hallo}
 
Hallo Welt
 
\section{Welt}
 
\end{document}

In diesem einfachen Beispiel hat das generierte EPUB noch Probleme:

  • Umlaute sind kaputt
  • Das Inhaltsverzeichnis befindet sich hinter dem eigentlichen Text

In den nächsten Artikeln werde ich schauen, was mit dem Paket geht und wo seine Grenzen liegen.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Satzspiegel konstruieren mit Geogebra

Hier ein Beispiel, wie man mit Geogebra Satzspiegel entwerfen kann.

Satzspiegel

satz

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Eine neue Briefvorlage mit scrlttr2

Es war mal wieder Zeit, meine auf KOMA-Scripts SCRLTTR2 Klasse basierende Briefvorlage zu aktualisieren. Die Vorgaben war:

  1. Nutzung mit pdfLaTeX und XeLaTeX
  2. wenn xeLaTeX genutzt wird: Nutzung eines OpenType Fonts (hier Source Sans Pro)
  3. Einbetten des LaTeX Codes in die PDF-Datei (via navigator)
  4. Das Datum soll aus den einzelnen Komponenten des Dateinamens gezogen werden (via getvarsfromjobname)
  5. Die PDF Meta-sollen direkt aus den gesetzten Variablen befüllt werden (z.B. um sie später mit pdfinfo auszuwerten)
  6. Optional: Einbetten eines QRCode, der wichtige Informationen optisch auslesbar macht. Ob und wie ich das mal auswerte, weiß ich aber noch nicht. (via qrcode Paket)

Um den Code in den einzelnen Briefen noch ein wenig sauber zu gestalten, werde ich später alle Definitionen in eine separate LCO Datei übernehmen.

Update vom 15.11.2015 Das navigator Paket läuft auch mit xelatex, wenn man es vor dem Laden der Polyglossia-Sprache lädt. IBAN und BIC stehen jetzt in der Fußzeile. Den qrcode habe ich mangels Anwendung erst einmal deaktiviert. Mittels lastpage wird angezeigt, wieviele Seiten der Brief hat.

%!TEX TS-program = XeLaTeX
% 2015-10-31
\documentclass[DIN,parskip=half,fontsize=11pt,fromalign=right,fromrule=afteraddress,ngerman,enlargefirstpage=true]{scrlttr2}
 
\usepackage{varsfromjobname}
\usepackage{qrcode}
\usepackage{blindtext}
\usepackage{eso-pic}
\usepackage{lastpage}
 
\usepackage{ifxetex}
\ifxetex
   \usepackage{fontspec}%
   \usepackage{polyglossia}%
   \usepackage{navigator}
   \setmainlanguage[spelling=new]{german}%
	\setmainfont[ItalicFont={Source Sans Pro Italic},BoldFont={Source Sans Pro Bold},BoldItalicFont={Source Sans Pro Bold Italic}]{Source Sans Pro}%
\else
   \usepackage{babel}
   \usepackage{navigator}
\fi
 
\embeddedfile[TeX code]{\jobname}{\jobname.tex}
 
\renewcommand{\familydefault}{\sfdefault}
 
\firsthead{
\textsc{Dr.~\usekomavar{fromname} \hfill \thepage/\pageref{LastPage}} 
\vspace*{1em}
\hrule
}
 
\setkomafont{pageheadfoot}{}
 
\newkomavar{fromplace}
\newkomavar{keywords}
\newkomavar{IBAN}
\newkomavar{BIC}
 
\setkomavar{IBAN}[IBAN]{DE12\,3456\,0123\,1234\,1234\,99}
\setkomavar{BIC}[BIC]{ABCDEFGHEI}
 
 
\setkomavar{yourref}{xyz-203052}
\setkomavar{yourmail}{\today}
\setkomavar{myref}[Mein Zeichen]{1929424487}
\setkomavar{fromname}{Max Mustermann}
\setkomavar{fromplace}{Hamburg}
\setkomavar{fromemail}{mustermann@gmail.com}
\setkomavar{frommobilephone}[Mobil:]{+49 (0) 123\,456\,7890}
\setkomavar{fromaddress}{Musterweg 19, 12345 Hamburg}
\setkomavar{subject}{Betreff}
\setkomavar{keywords}{Finanzamt}
 
 
\usepackage{hyperref}
\hypersetup{colorlinks,linkcolor={black},pdftitle={\usekomavar{subject}},pdfauthor={\usekomavar{fromname}}, % 
    pdfsubject={\usekomavar{subject}},pdfkeywords={\usekomavar{keywords}}
}
 
\date{\usekomavar{fromplace}, \getfourfromjobname.\getthreefromjobname.\gettwofromjobname}
 
\pagestyle{myheadings}
 
\setkomavar{nexthead}{Dr.~\usekomavar{fromname}, \getfourfromjobname.\getthreefromjobname.\gettwofromjobname \hfill\thepage/\pageref{LastPage}}
\setkomavar{nextfoot}{}
 
 
\setkomavar{firstfoot}{%
\hrule
E-Mail: \usekomavar{fromemail} \hfill \usekomavar*{frommobilephone}~\usekomavar{frommobilephone} \newline
\usekomavar*{IBAN}:~\usekomavar{IBAN}  \hfill \usekomavar*{BIC}:~\usekomavar{BIC}}
 
\begin{document}
\begin{letter}{Maria Mustermann \\ Musterweg 2 \\ 12345 Musterstadt}
\opening{Sehr geehrte Damen und Herren,} 
 
\blindtext[5]
 
\closing{Mit freundlichen Grüßen}
 
\encl{Kopie }
\end{letter}
\end{document}
 
% \put(10,450){\qrcode[height=1cm]{\jobname-1}}

blog

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Lebende Kolumnentitel mit scrlayer

Ausgehend von http://uweziegenhagen.de/?p=1615 habe ich mal testweise auf scrlayer umgestellt, hier der resultierende Quellcode:

\documentclass[a4paper,11pt]{scrbook}
\usepackage[headsepline=0.5pt,footsepline=0.5pt]{scrlayer-scrpage}
\usepackage[left=2cm,right=4cm]{geometry}
\KOMAoptions{headwidth=1.1\textwidth,footwidth=1.1\textwidth}
\usepackage{blindtext}
 
\pagestyle{scrheadings}
 
\ohead{\headmark}
\ofoot[\pagemark]{\pagemark}
 
\ifoot{ifoot} % inner foot
\ihead{ihead} % inner head
\cfoot{cfoot} % center foot
\chead{chead} % center head
 
\begin{document}
\chapter{Hello}
\section{World}
 
\blindtext[10]
 
\end{document}

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Eigene Zähler in LaTeX & Word 2013 definieren

Was ich an LaTeX so schätze, sind die Funktionen zum “Programmieren” eigener Strukturen. Möchte ich einen Befehl zum Erfassen von Business Requirements erstellen, nutze ich einfach eine Kombination aus \newcounter, \the”counter” und \addtocounter.

\documentclass[12pt,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
 
\newcounter{br}
\addtocounter{br}{1}
\newcommand{\br}[1]{BR--\thebr\stepcounter{br}: #1}
 
\begin{document}
 \br{Button einbauen}
 \br{Zweiten Button einbauen}
\end{document}

In Word geht das auch, ist aber ein wenig komplizierter. Die folgende Beschreibung habe ich auf tips.net gefunden:

1. Schritt: Geh an die Stelle im Dokument, wo das Feld hin soll und drücke Strg-F9. Die erzeugt die Feldklammern.

01

2. Schritt: Innerhalb der Feldklammern füge “seq br” ein, “br” steht dabei für den Namen des Zählers. Mit Alt-F9 kannst Du jetzt zwischen Code und Darstellung hin- und herwechseln.

02

03

3. Schritt: Markiere den gesamten Code-Bereich, der später eingefügt werden soll und drücke Alt-F3. Dies öffnet das Menü für die Codebausteine. Gib einen kurzen prägnanten Titel (“br”) ein und speichere den Baustein ab.

04

4. Schritt: Wenn Du jetzt irgendwo im Dokument den Zähler benutzen willst, drücke “br” und der Baustein wird eingefügt.

Solltest Du diese Bausteine auch mal zwischen bereits gesetzte Bausteine setzen, kann ein Refresh der Felder notwendig sein. Dann einfach Text markieren, rechte Maustaste und “Felder aktualisieren”.

05

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website