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?