Archive for the ‘LaTeX’ Category.

Drumpatterns mit TikZ zeichnen

Hier ein wenig TikZ-Code, um Drumpatterns für einen Drumcomputer mit TikZ zu zeichnen. Das Beispiel ist für eine Spur, es lassen sich aber beliebig viele Spuren untereinandersetzen.

%!TEX TS-program = Arara
% arara: lualatex: {shell: no}
\documentclass{scrartcl}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz}
 
\begin{document}
 
\begin{tikzpicture}
    % Define the pattern as a comma-separated list
    \def\pattern{x,-,x,x,-,x,x,-,-,-,x,x,-,-,-,x}
    \def\cellsizex{1cm}
    \def\cellsizey{0.5cm}
 
    %\draw (0,0) rectangle ++ (\cellsizex-1, \cellsizey);
    \node[draw, rectangle,minimum width = \cellsizex, align=left,minimum height=\cellsizey] (a) at (\cellsizex/2,\cellsizey/2){1}; 
 
    % Loop through each character in the pattern
    \foreach \cell [count=\index from 1] in \pattern {
        % If 'x' fill the cell, otherwise leave it empty
        \if\cell x
            \fill[gray,draw=black] ({\index*\cellsizex}, 0) rectangle ++(\cellsizex, \cellsizey);
        \else
            \draw ({\index*\cellsizex}, 0) rectangle ++(\cellsizex, \cellsizey);
        \fi
    }
\end{tikzpicture}
 
\end{document}

drumbrute_pattern2.pdf

„Unscharfe“ Kreise mit TikZ

Ausgehend von einer Frage im LaTeX Reddit-Forum hier die Antwort, wie man mit Tikz „unscharfe“ Kreise zeichnen kann.

\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{tikz}
 
\begin{document}
 
\begin{tikzpicture}
\shade[inner color = gray, outer color = white] (0,0) circle [radius = 1];
\end{tikzpicture}
 
\end{document}

Ulam Spiralen mit TikZ und Lualatex

Hier der preprint meines neuen Artikels für die TeXnische Komödie.

UweZiegenhagen-Ulam.pdf

ulam_500.pdf (16 MB)

Mit einer Batch-Datei alle PDF Dateien nach PNG umwandeln

Mit dem folgenden Skript kann man alle PDFs eines Verzeichnisses nach PNG wandeln. Poppler muss dazu installiert und im Pfad sein.


@echo off
setlocal enabledelayedexpansion

REM Set the output image format (e.g., png, jpeg, or ppm)
set FORMAT=png

REM Loop through all PDF files in the current directory
for %%F in (pg*.pdf) do (
echo Converting %%F...
pdftoppm -%FORMAT% "%%F" "%%~nF"
)

echo Done!
pause

Iso-Papier mit LaTeX und dem gridpapers Paket

Hier ein Beispiel aus der gridpapers Doku, wie man mit LaTeX isometrische Papiere gestalten kann.

\documentclass{article}
\usepackage[pattern=iso, %tri für senkrecht
patternsize=0.5cm,
textarea,
bgcolor=white,
%majorcolor={green},
minorcolor={lightgray},
geometry={a4paper, margin=1cm}]{gridpapers}
\begin{document}
\thispagestyle{empty}
~
\end{document}

gridpapers-iso

gridpapers-tri

Drum Patterns mit LaTeX

Hier ein erster Entwurf, wie man mit LaTeX Drum Patters setzen kann.

\documentclass[12pt,ngerman]{scrartcl}
\usepackage[margin=1cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{tikz}
 
\begin{document}
 
\begin{tikzpicture}
    % Define the pattern as a comma-separated list
    \def\pattern{x,-,-,-,-,x,x,-,-,-,x,x,-,-,-,x}
    \def\cellsizex{1cm}
    \def\cellsizey{0.5cm}
 
    \node[draw, rectangle,minimum width = \cellsizex, align=left,minimum height=\cellsizey] (a) at (\cellsizex/2,\cellsizey/2){\tiny 1}; 
 
    % Loop through each character in the pattern
    \foreach \cell [count=\index from 1] in \pattern {
        % If 'x' fill the cell, otherwise leave it empty
        \if\cell x
            \fill[gray,draw=black] ({\index*\cellsizex}, 0) rectangle ++(\cellsizex, \cellsizey);
        \else
            \draw ({\index*\cellsizex}, 0) rectangle ++(\cellsizex, \cellsizey);
        \fi
    }
\end{tikzpicture}

drumbrute_pattern

Pre-Print meines neuen TikZ-Artikels, Teil 2

In Pre-Print meines neuen TikZ-Artikels hatte ich den Folgeteil versprochen, der ist jetzt auch soweit gediegen, dass ich ihn präsentieren kann.

Uwe-TikZ_II (PDF)

Uwe-TikZ_II (LaTeX)

Pre-Print meines neuen TikZ-Artikels

Für die DTK habe ich einen neuen Artikel zum Thema TikZ geschrieben, hier das Pre-Print PDF und der LaTeX-Quelltext.

Ein Folgeartikel ist bereits in der Entstehung.

Uwe-TikZ (PDF)

Uwe-TikZ (Quellcode)

ADSR Hüllkurve mit TikZ

Hier die Darstellung einer ADSR Hüllkurve (Quelle: Wikipedia) mit TikZ:

\begin{tikzpicture}
%\draw[step=0.5cm,lightgray,thin] (0,0) grid (10,7);
\draw[very thick, black,->](1,1) -- (9.5,1);
\draw[very thick, black,->](1,1) -- (1,6.5);
\draw[very thick, green,](3,1) -- (3,6);
\draw[very thick, orange,](5,1) -- (5,6);
\draw[very thick, black](7,1) -- (7,6);
\draw[very thick, magenta](9,1) -- (9,6);
 
\draw[very thick, gray,](1,1) -- (3,5.5) -- (5,4) -- (7,4)--(9,1);
% max amp line
\draw[thick, gray,dotted](0.8,5.5) -- (9.5,5.5);
 
\draw[very thick, blue,->](6,1.1) -- (6,3.9);
 
\draw[very thick, green,->](1.1,5.65) -- (2.9,5.65);
\draw[very thick, orange,->](3.1,5.65) -- (4.9,5.65);
 
\draw[very thick, blue](5.1,4) -- (6.9,4);
 
\draw[very thick, magenta,->](7.1,5.65) -- (8.9,5.65);
 
\node[label=left:0] (A) at (1,1) {};
\node[label=below:t] (B) at (9.5,1) {};
\node[label=left:{{\scriptsize Amp\textsubscript{max}}}] (C) at (1,5.5) {};
 
\node[label=above:A] (D) at (2,5.5) {};
\node[label=above:D] (E) at (4,5.5) {};
\node[label=left:S] (F) at (6,2.5) {};
\node[label=above:R] (G) at (8,5.5) {};
 
\draw[very thick, black,->](1,0.5) -- (1,0.9);
\draw[very thick, black,->](7,0.5) -- (7,0.9);
 
\node[label=above:{Key press}] (D) at (1.1,-0.2) {};
\node[label=above:{Key release}] (D) at (7.2,-0.2) {};
 
\end{tikzpicture}

Das thematicpuzzle Paket

Es gibt ein neues Paket auf CTAN, thematicpuzzle. Damit gehen dann TikZ-basiert Dinge wie die folgenden (der Anleitung entnommen):