Archive for the ‘Artikel’ Category.

Liste aller Beamer Themes in TeX Live

Unter https://github.com/UweZiegenhagen/LaTeX-Beamer-Theme-Overview habe ich ein Projekt begonnen, das alle in einem TeX Live vorhandenen Beamer-Themes anhand von Beispielbildern vorstellt.

Direkter Link zur Übersicht: https://github.com/UweZiegenhagen/LaTeX-Beamer-Theme-Overview/blob/main/OVERVIEW.md

Technisch funktioniert es so, dass der Name des Themes aus dem Dateinamen extrahiert wird, dazu nutze ich mein Varsfromjobname-Paket. Die einzelnen PDFs werden dann über ein Python-Skript mit LaTeX erzeugt, mittels imagemagick in einzelne PNGs zerlegt und in der Overview.md verlinkt.

Hinweis: Nicht bei allen in TeX Live vorhandenen Themes funktioniert dieser Weg, die Autoren der nicht funktionierenden Themes werde ich anschreiben.

XCharter – Der passende Mathematik-Font zur Charter

Hier ein Beispiel für das XCharter Paket, das einen passenden Mathe-Font für die Charter bereitstellt.

%!TEX TS-program = LuaLaTeX
\documentclass[12pt,ngerman]{scrartcl}
 
\usepackage{fontspec}
\usepackage{babel}
\usepackage{unicode-math}
\setmathfont{XCharter-Math.otf} % Call by file name or
\setmathfont{XCharter Math} % Call by font name
 
\setmainfont{XCharter}
\setsansfont{Cabin}[Scale=MatchLowercase] % sf
\setmonofont{Inconsolatazi4}[Scale=MatchLowercase] % tt
 
\usepackage{blindtext}
 
\begin{document}
 
\blindtext
 
\begin{equation}
\int_{x=1}^{\infty} -\frac{p}{2} \pm \sqrt{ \left(\frac{p}{2}  \right)^2 -q   } 
\end{equation}
 
\blindtext
 
\end{document}

Pocketmod – TODO Listen in A3

Zum Thema Pocketmod hatte ich schon früher etwas geschrieben (https://www.uweziegenhagen.de/?p=1294), hier nun ein Template für ein TODO-Listen Pocket in DIN A3.

Das fertige PDF sieht dann so aus: PocketMod_for_A3

\documentclass[21pt]{scrartcl}
\usepackage[left=2cm,right=2cm, top=2cm,bottom=2cm,a3paper]{geometry}
 
\usepackage{forloop}
\setlength{\parindent}{0pt}
\usepackage{tikz}
 
\newcounter{ct} 
\usepackage{pgfpages}
 
\def\pgfpageoptionheight{\the\paperwidth} % landscaped by default
\def\pgfpageoptionwidth{\the\paperheight}
\def\pgfpageoptionborder{0pt}
\def\pgfpageoptionfirstshipout{1}
 
\pgfpagesphysicalpageoptions{%
    logical pages=8,%
    physical height=\pgfpageoptionheight,%
    physical width=\pgfpageoptionwidth,%
    current logical shipout=\pgfpageoptionfirstshipout%
}
 
    \pgfpageslogicalpageoptions{1}{%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.875\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{2}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      rotation=180,%      
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.875\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
 
    \pgfpageslogicalpageoptions{3}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      rotation=180,%      
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.625\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{4}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      rotation=180,%      
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.375\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
 
    \pgfpageslogicalpageoptions{5}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      rotation=180,%
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.125\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{6}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.125\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
 
    \pgfpageslogicalpageoptions{7}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.375\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{8}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.25\pgfphysicalwidth,%
      border code=\pgfusepath{stroke},%
      resized height=0.5\pgfphysicalheight,%
      center=\pgfpoint{.625\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
 
 
\begin{document}%
 
\forloop{ct}{1}{\value{ct} < 9}{%
\begin{tikzpicture}
\foreach \i in {0,...,-17}{%
\draw[very thick] (0,\i*2) -- ++(0,1.5) -- ++(1.5,0) -- ++(0,-1.5)--cycle; 
\draw[very thick] (2.5,\i*2) -- (22,\i*2);
\draw[very thick] (23,\i*2) -- ++(0,1.5) -- ++(1.5,0) -- ++(0,-1.5)--cycle; 
}
\end{tikzpicture}
\clearpage
}
 
\end{document}

CTAN-Pakete per REST-API hochladen

Vermutlich ist es nicht so bekannt, dass man LaTeX-Pakete auch per REST-API auf CTAN hochladen kann. Das ist insbesondere dann praktisch, wenn man öfter Pakete aktualisieren muss, wie ich es beispielsweise mit der DTK Bibliografie mehrmals im Jahr mache.

Manfred Lotz vom CTAN-Team hat dazu ein Python-Skript geschrieben (https://gitlab.com/Lotz/pkgcheck/blob/master/ctan_upload.py), das diese API befüttert.

Ich habe sein Skript noch ein wenig angepasst (ich erstelle auch die ZIP-Datei damit und kopiere die richtigen Dateien an ihren Platz), mein Skript findet ihr im Github unter https://github.com/dante-ev/dtk-bibliography/blob/master/pack_and_upload_to_ctan.py. Für den Upload selbst benötigt man noch eine TOML-Datei, in der die Upload-Informationen als Key-Value-Paare stehen. Ein Beispiel für eine solche TOML-Datei findet ihr bei Manfred unter https://gitlab.com/Lotz/pkgcheck/-/blob/master/pkgcheck.toml.

Meiner TUGboat-Artikel zur TUG 2019 in Palo Alto

Nachdem ich meine Präsentationen zur TUG 2019 bereits hochgeladen habe (LINK) folgen nun die Artikel, die in der TUGboat erscheinen werden.

Vortragsfolien „Briefvorlagen erstellen mit LaTeX und scrlttr2“

Hier die Folien von meinem Vortrag zum Thema „Briefvorlagen erstellen mit LaTeX und scrlttr2“, gehalten auf der Dante e.V. Vereinstagung in Darmstadt.

Alle Code-Beispiele sowie der Quelltext der Folien selbst sind Teil des PDF, dazu nutze ich das attachfile-Paket. Mit einem einfachen \newcommand Befehl baue ich dann den \ta Befehl, der als Parameter nur den Dateinamen entgegennimmt und im PDF dann ein rotes klickbares Paragraph-Symbol setzt.

\usepackage{attachfile}
\newcommand{\ta}[1]{\textattachfile[color=1 0 0]{#1}{\textparagraph}}

Vortragsfolien

Das github-Repository liegt unter https://github.com/UweZiegenhagen/scrlttr2_darmstadt

Ordner beschriften mit LaTeX

Hier ein Beispiel, wie man mit LaTeX einfach Ordnerrücken beschriften kann. Es nutzt das Paket ticket.sty, das ich auch schon für Wahlkarten im Verein oder Namensschilder genutzt habe.

Hinweise:

  • Beim ersten Kompilieren gibt es eine Fehlermeldung, da die Datei Ordner.tdf noch geschrieben werden muss.
  • Nach Anpassungen innerhalb von filecontents* muss zweimal übersetzt werden. Das erste Übersetzen schreibt die TDF Datei, das zweite Übersetzen nutzt dann diese Datei.
  • Als Schriftart nutze ich die IBM Plex Sans, die in TeX Live 2018 standardmäßig dabei ist,
    in TeX Live 2017 nicht. Die Datei wird aber auch so übersetzt, nutzt dann aber die Palatino.
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[total={210mm,297mm},top=0mm,left=0mm,bottom=0mm,includefoot,landscape]{geometry}
\usepackage[Ordner]{ticket}
\usepackage{graphicx}
\usepackage{filecontents}
 
\IfFileExists{plex-sans.sty}{%
\usepackage[sfdefault]{plex-sans}%
}{
\usepackage{palatino}%
}
 
\begin{filecontents*}{Ordner.tdf}
\unitlength=1mm
\hoffset=10mm
\voffset=-15mm
\ticketNumbers{1}{3}
\ticketSize{190}{58} % Breite und Höhe der Labels in mm
\ticketDistance{0}{0} % Abstand der Labels
\end{filecontents*}
 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{xcolor}
 
\renewcommand{\ticketdefault}{}%
\makeatletter
\@boxedtrue % Rahmen um Ticket
\@emptycrossmarkfalse % Falzmarken
\@cutmarktrue % Schnittmarken
\makeatother
 
\newcommand{\mylabel}[1]{
\ticket{%
\put(15,15){\scalebox{7}{\bfseries #1}}
}}
 
\begin{document}
\mylabel{Ausbildung}
\mylabel{Steuern}
\mylabel{Rente}
\end{document}

Beispiel Ordnerrücken

Presentation on „LaTeX and EPUB“

This entry is Teil 3 von 3 in the series LWARP

Last weekend I gave a presentation (in German) on „LaTeX and EPUB“ on the Dante Autumn Conference in Mönchengladbach. You can find the slides and examples in my github repository: https://github.com/UweZiegenhagen/TalksAndArticles/tree/master/2017-Dante-Herbst-LaTeX-ePub.

Folien vom Informatiktag 2017 in Wuppertal

Hier meine Folien vom 16. Informatiktag in Wuppertal sowie ein Beispiel für die Erstellung von Klausurblättern mit LaTeX.

Wuppertal Folien (PDF)

exam Beispiel (TeX)

exam Beispiel (PDF)

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)