von Jaffet » Di 16. Feb 2021, 12:45
			
			
			Mein Latex-Code erstellt einen Switch mit 12 Ports. In jedem Port ist die Zeichenkette F1 enthalten.
Vorbildlich, wie ich bin, habe ich euch mal ein lauffähiges Minimalbeispiel mitgebracht.
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage{tikz}
\usepackage[a4paper,hmargin={2cm,2cm}]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr} %Kopf und Fußzeile
\usepackage{varwidth} %Zeilenumbruch in TikZ-Node
\usetikzlibrary{positioning}
\tikzset{
	ports/.style={
		line width=0.3pt,
		top color=gray!20,
		bottom color=gray!80
	},
	rack switch/.style={
		fill=white, draw,
		minimum width=18cm,
		minimum height=3cm,
		xscale=-1,
		path picture={
			%Gehäuse des Switch
			\draw[top color=gray!5,bottom color=gray!40]
			(path picture bounding box.south west) rectangle 
			(path picture bounding box.north east);
			%
			\coordinate (A-west) at ([xshift=-0.2cm]path picture bounding box.west);
			\coordinate (A-center) at ($(path picture bounding box.center)!0!(path picture bounding box.south)$);
			\coordinate (A-east) at (path picture bounding box.east);			
			%Zeichnet die übereinanderliegenden Boxen
			\foreach \x in {0.275,0.525}{
				%Von westen beginnend zwei Rechtecke nebeneinander
				\draw[ports]([yshift=0cm]$(A-west)!\x!(A-center)$) rectangle + (1,0.5);
				%-0.5cm darunter erneut zwei Rechtecke
				\draw[ports]([yshift=-0.8cm]$(A-west)!\x!(A-center)$) rectangle +(1,0.5);
			} 		
			\foreach \x in {0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9}{
					 \draw[ports]([yshift=-0.5cm]$(A-west)!\x!(A-east)$)
					 rectangle +(0.7,0.7)node[midway,blue]{F1};
	
		}
		%\renewcommand*{\ergebnis}{0}%
		%\foreach \t in {A2,B9,F3,C5,A3,11,EA,AC,69,13,CF,12}{
			%\draw[ports]([yshift=-0.5cm]$(A-west)!\ergebnis!(A-east)$)rectangle %+(0.7,0.7)node[midway,blue]{\t};
			%\pgfmathsetmacro{\ergebnis}{\ergebnis+0.3}	
		%}	
	}
}
}
\usetikzlibrary{calc, shadings, shadows, shapes.arrows}
\begin{document}
\begin{figure}
	\begin{tikzpicture}	
	\node(switch 1) at (0,0) [rack switch]{};
	\end{tikzpicture}
	\caption{Switch}
\end{figure}
\end{document}
 
Mit der lustigen Foreach-Schleife erzeuge ich die Ports
\foreach \x in {0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9}{
	\draw[ports]([yshift=-0.5cm]$(A-west)!\x!(A-east)$)
	rectangle +(0.7,0.7)node[midway,blue]{F1};
	
}
 
Dumm nur, dass in jedem Port F1 steht. Eigentlich wollte ich ja in jedem Port eine indviudelle 2 Ziffern lange MAC-Adresse reinschreiben.
Darum würde ich gern den auskommentierten Teil verwenden. Der sieht so aus:
\renewcommand*{\ergebnis}{0}%
\foreach \t in {A2,B9,F3,C5,A3,11,EA,AC,69,13,CF,12}{
	\draw[ports]([yshift=-0.5cm]$(A-west)!\ergebnis!(A-east)$)rectangle 		+(0.7,0.7)node[midway,blue]{\t};
	\pgfmathsetmacro{\ergebnis}{\ergebnis+0.3}	
}
 
Der will aber einfach nicht funktionieren. Hat jemand einen Tipp?
 
			
			
							Mein Latex-Code erstellt einen Switch mit 12 Ports. In jedem Port ist die Zeichenkette F1 enthalten.
Vorbildlich, wie ich bin, habe ich euch mal ein lauffähiges Minimalbeispiel mitgebracht.
[code]
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage{tikz}
\usepackage[a4paper,hmargin={2cm,2cm}]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr} %Kopf und Fußzeile
\usepackage{varwidth} %Zeilenumbruch in TikZ-Node
\usetikzlibrary{positioning}
\tikzset{
	ports/.style={
		line width=0.3pt,
		top color=gray!20,
		bottom color=gray!80
	},
	rack switch/.style={
		fill=white, draw,
		minimum width=18cm,
		minimum height=3cm,
		xscale=-1,
		path picture={
			%Gehäuse des Switch
			\draw[top color=gray!5,bottom color=gray!40]
			(path picture bounding box.south west) rectangle 
			(path picture bounding box.north east);
			%
			\coordinate (A-west) at ([xshift=-0.2cm]path picture bounding box.west);
			\coordinate (A-center) at ($(path picture bounding box.center)!0!(path picture bounding box.south)$);
			\coordinate (A-east) at (path picture bounding box.east);			
			%Zeichnet die übereinanderliegenden Boxen
			\foreach \x in {0.275,0.525}{
				%Von westen beginnend zwei Rechtecke nebeneinander
				\draw[ports]([yshift=0cm]$(A-west)!\x!(A-center)$) rectangle + (1,0.5);
				%-0.5cm darunter erneut zwei Rechtecke
				\draw[ports]([yshift=-0.8cm]$(A-west)!\x!(A-center)$) rectangle +(1,0.5);
			} 		
			\foreach \x in {0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9}{
					 \draw[ports]([yshift=-0.5cm]$(A-west)!\x!(A-east)$)
					 rectangle +(0.7,0.7)node[midway,blue]{F1};
	
			}
			%\renewcommand*{\ergebnis}{0}%
			%\foreach \t in {A2,B9,F3,C5,A3,11,EA,AC,69,13,CF,12}{
				%\draw[ports]([yshift=-0.5cm]$(A-west)!\ergebnis!(A-east)$)rectangle %+(0.7,0.7)node[midway,blue]{\t};
				%\pgfmathsetmacro{\ergebnis}{\ergebnis+0.3}	
			%}	
		}
	}
}
\usetikzlibrary{calc, shadings, shadows, shapes.arrows}
\begin{document}
\begin{figure}
	\begin{tikzpicture}	
	\node(switch 1) at (0,0) [rack switch]{};
	\end{tikzpicture}
	\caption{Switch}
\end{figure}
\end{document}
[/code]
Mit der lustigen Foreach-Schleife erzeuge ich die Ports
[code]
\foreach \x in {0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9}{
	\draw[ports]([yshift=-0.5cm]$(A-west)!\x!(A-east)$)
	rectangle +(0.7,0.7)node[midway,blue]{F1};
	
}
[/code]
Dumm nur, dass in jedem Port F1 steht. Eigentlich wollte ich ja in jedem Port eine indviudelle 2 Ziffern lange MAC-Adresse reinschreiben.
Darum würde ich gern den auskommentierten Teil verwenden. Der sieht so aus:
[code]
\renewcommand*{\ergebnis}{0}%
\foreach \t in {A2,B9,F3,C5,A3,11,EA,AC,69,13,CF,12}{
	\draw[ports]([yshift=-0.5cm]$(A-west)!\ergebnis!(A-east)$)rectangle 		+(0.7,0.7)node[midway,blue]{\t};
	\pgfmathsetmacro{\ergebnis}{\ergebnis+0.3}	
}
[/code]
Der will aber einfach nicht funktionieren. Hat jemand einen Tipp?