Quantcast
Channel: Antworten auf: Färben bestimmter Zeilen in (automatisch erzeugter) tikz-Matrix
Viewing all articles
Browse latest Browse all 2

Antwort von cis

$
0
0

Hab es hinbekommen:

Öffne in Overleaf
%\documentclass[11pt]{scrartcl}\documentclass[border=3mm, varwidth]{standalone}\usepackage[ngerman]{babel}\usepackage{tikz, amsmath, amssymb}\usetikzlibrary{math, matrix}% Muss auf dem MP angegeben werden!\usetikzlibrary{matrix}\begin{document}$M(k,n)=(2k-1)\cdot2^n -1\text{ mit } k,n \in\mathbb{N}_{> 0}$\\%%%%%%%%%%%%%% EINGABEN! %%%%%%%%%%%%%%%%%%%% 1. Lege den Divisior der Divisormatrix fest.\pgfmathtruncatemacro{\Divisor}{7}% Divisor  der Divisormatrix%\newcommand\Einleitungstext{%
M_{\text{di}}(\Divisor) = M_{\text{M}}\cdot\dfrac{1}{\Divisor} =
}%  wahlweise leer lassen / auskommentieren...% 2a. Lege die Dimensionen der Divisormatrix fest. \def\nMaxZeile{7}% Länge der Mersenne Folge in Zeilen \def\nMaxSpalte{3}% Länge der Mersenne Folge in Spalten% 2b.   Passe die Syntax für die spätere tikz-Matrix an. \def\MatrixZeile{\&\&\\}% "nMaxSpalte minus 1"  \&-Zeichen setzen\def\MatrixZeilen{%         % "nMaxZeile" Stück eintragen\MatrixZeile\MatrixZeile\MatrixZeile\MatrixZeile\MatrixZeile\MatrixZeile\MatrixZeile}%%%%%%%%%%%%%%%%%    fertig!    %%%%%%%%%%%%%%%%%%% 3. Passe evtl. noch       row sep = ****em,   column sep = ****em,%     in der späteren tikz-Matrix optisch an. %%%%%%%%%%%%%%%%%%%%%%%%%%\tikzmath{% Berechnung der Folgenglieder
function Mersenne(\K, \N) {return int((2*\K-1)*2^\N-1);};
% Bestimmung des Reduzierten Bruches
function RedZaehler(\zaehler,\nenner) {return int(\zaehler/gcd(\zaehler,\nenner));};
function RedNenner(\zaehler,\nenner) {return int(\nenner/gcd(\zaehler,\nenner));};
% Bestimmung von Zähler und Nenner im MersenneBruch
function MersenneNenner(\K,\N,\divisor) {return int(RedNenner(Mersenne(\K,\N),\divisor) );};
function MersenneZaehler(\K,\N,\divisor) {return int(RedZaehler(Mersenne(\K,\N),\divisor) );};
}% Farbige Ausgabe des reduzierten Mersenne Bruches% \MersenneBruch{<k>}{<n>}\newcommand\MersenneBruch[2]{%%%%%%%%%%%%%%%%%%\begingroup\pgfmathsetmacro{\Eins}{1}% als Vergleichsoperator% Zähler und Nenner des Mersenne-Bruches festlegen\pgfmathtruncatemacro{\Nenner}{MersenneNenner(#1,#2,\Divisor)}%\pgfmathtruncatemacro{\Zaehler}{MersenneZaehler(#1,#2,\Divisor)}%%\pgfmathsetmacro{\y}{0}\foreach\Spalte in {1,...,\nMaxSpalte}{%\pgfmathtruncatemacro{\MNenner}{MersenneNenner(#1,\Spalte,\Divisor)}%\ifx\MNenner\Eins%Prüfen,ob in 1,...,\nMaxSpalte eine 1 im Nenner\global\let\y=\MNenner%  %\pgfmathsetmacro{\y}{\MNenner}\else\let\y=0%      \fi}%\ifx\y\Eins%         %Wenn in 1,...,\nMaxSpalte eine 1 im Nenner...      \ifx\Nenner\Eins%\textcolor{red}{\Zaehler}%\else$\frac{\Zaehler}{\Nenner}$%\fi\else$\textcolor{blue}{\frac{\Zaehler}{\Nenner}}$%\fi\endgroup}%%%%%%%%%%%%%%%%%%%%%%%%%%Test:  \MersenneBruch{1}{1}, \MersenneBruch{1}{4}, \MersenneBruch{6}{1},\MersenneBruch{2}{1}% Mersenne-Matrix setzen$\Einleitungstext\begin{matrix} % normale Matrix damit angepasst an Rest\begin{tikzpicture}\matrix(m)[% tikz-Matrixampersand replacement=\&,matrix of math nodes, nodes in empty cells,row sep =1.125em,      % Zeilenabstand optisch anpassen!column sep =1.25em,    % Spaletenabstand optisch anpassen! left delimiter  =(, right delimiter  =), % Klammern]{%\MatrixZeilen};% Matrixelemente hervorheben% \nennerode[fill=red!50, minimum width = 1.5em, minimum height = 1.25em, % rounded corners=1.5pt,% align=right] at (m-1-3) {};% Matrix füllen mit Zahlen\foreach\k in {1,...,\nMaxZeile}\foreach\n in {1,...,\nMaxSpalte}\node[align=center] at (m-\k-\n) {\MersenneBruch{\k}{\n}};% Test: %\node[align=right, text=blue] at (m-2-1) {};\end{tikzpicture}\end{matrix}$\end{document}

Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images