Ich möchte gerne die node anwendung mit der node glibc und syscall verbinden. Wenn ich outer sep in der node anwendung verwende, dann reichen die Linien nicht an den Rand der node anwendung. wenn ich aber outer sep weg lasse, ist die node nicht mehr innerhalb des grünen Vierecks. Wie kann ich das Problem lösen? Öffne in Overleaf
\documentclass[tikz,border=5pt]{standalone} \usetikzlibrary{shapes, arrows,snakes,backgrounds,fit,positioning} \begin{document} \tikzset{block/.style ={ rectangle, draw, text width=19em, text centered, rounded corners, minimum height=2em,fill=blue!30}} \tikzset{blockBig/.style ={rectangle, draw, text width=19em, text centered, rounded corners, minimum height=2em, outer sep=0.5cm,fill=blue!30,node distance=0.0cm}} \tikzset{scope/.style ={rectangle, draw, text width=19em, text centered, rounded corners, minimum height=2em, inner sep=0.5cm,fill=blue!30}} \tikzset{dottedline/.style ={draw,dotted, very thick}} \tikzset{line/.style ={draw, very thick}} \begin{tikzpicture}[node distance = 0.5cm, auto] \node [blockBig,](anwendung) {Benutzeranwendungen}; \node [block,text width=12em, xshift=1cm,below=of anwendung] (glibc) {C-Standard-Bibliothek (glibc)}; \node [block, yshift=-1cm,xshift=-1cm,below=of glibc] (syscall) {Systemaufrufschnittstelle}; \node [block, below=of syscall] (kernel) {Kernel}; \node [block, below=of kernel] (code) {architekturspezifischer Kernel-Code}; \begin{scope}[on background layer] \node [scope](eins)[ fit=(anwendung) (glibc) (syscall) (kernel) (code), label={[anchor=south,shade=none]below:Hardware Plattform}, yshift=-2.3em,fill=green!30, draw=black] (hardware) {}; \end{scope} \begin{scope}[on background layer] \node [scope](zwei)[ fit=(syscall) (kernel) (code), fill=blue!10, draw=black] (kernelspace) {}; \end{scope} \draw[dottedline] (-5,-2.9) -- (5,-2.9); \draw[line] (anwendung.south) -- (anwendung|-glibc.north); \draw[line] (anwendung.200) -- (anwendung.200|-syscall.north); \draw[line] (syscall.south) -- (kernel.north); \draw[line] (kernel.south) -- (code.north); \draw[line] (glibc.209) -- (glibc.209|-syscall.north); \end{tikzpicture} \end{document} gefragt 11 Feb '19, 11:10 Blitz |
Auf die Gefahr nicht alles verstanden zu haben: wenn ich Öffne in Overleaf
\documentclass[tikz,border=5pt]{standalone} \usetikzlibrary{shapes, arrows,snakes,backgrounds,fit,positioning} \begin{document} \tikzset{block/.style ={ rectangle, draw, text width=19em, text centered, rounded corners, minimum height=2em,fill=blue!30}} \tikzset{blockBig/.style ={rectangle, draw, text width=19em, text centered, rounded corners, minimum height=2em, outer sep=0.5cm,fill=blue!30,node distance=0.0cm}} \tikzset{scope/.style ={rectangle, draw, text width=19em, text centered, rounded corners, minimum height=2em, inner sep=0.5cm,fill=blue!30}} \tikzset{dottedline/.style ={draw,dotted, very thick}} \tikzset{line/.style ={draw, very thick}} \begin{tikzpicture}[node distance = 0.5cm, auto] \node [blockBig,](anwendung) {Benutzer Anwendungen}; \node [block,text width=12em, xshift=1cm,below=of anwendung] (glibc) {C Standard Bibliothek (glibc)}; \node [block, yshift=-1cm,xshift=-1cm,below=of glibc] (syscall) {Systemaufruf Schnittstelle}; \node [block, below=of syscall] (kernel) {Kernel}; \node [block, below=of kernel] (code) {Architektur abhängiger Kernel Code}; \begin{scope}[on background layer] \node [scope](eins)[ fit=(anwendung) (glibc) (syscall) (kernel) (code), label={[anchor=south,shade=none]below:Hardware Plattform}, yshift=-2.3em,fill=green!30, draw=black] (hardware) {}; \end{scope} \begin{scope}[on background layer] \node [scope](zwei)[ fit=(syscall) (kernel) (code), fill=blue!10, draw=black] (kernelspace) {}; \end{scope} \draw[dottedline] (-5,-2.9) -- (5,-2.9); % \draw[line, red] (anwendung.south) -- (anwendung|-glibc.north); % \draw[line, red] (anwendung.200) -- (anwendung.200|-syscall.north); \draw[line] (syscall.south) -- (kernel.north); \draw[line] (kernel.south) -- (code.north); \draw[line] (glibc.209) -- (glibc.209|-syscall.north); \begin{scope}[on background layer] \draw[line, red] (anwendung.center) -- (anwendung|-glibc.north); \draw[line, red] (anwendung.200|-anwendung.center) -- (anwendung.200|-syscall.north); \end{scope} \end{tikzpicture} \end{document} beantwortet 11 Feb '19, 18:54 cis |
Benutzer Anwendungen → Benutzeranwendungen
C Standard Bibliothek → C-Standard-Bibliothek
Systemaufruf Schnittstelle → Systemaufrufschnittstelle
Architektur abhängiger Kernel Code → architekturabhängiger Kernel-Code
https://deppenleerzeichen.de/
@Henri Vom englischsprachigen Lesen kann man so ein Gefühl für die Sprache kriegen, Bindestriche wegzulassen. Passiert, würde ich aber nicht so anprangern wie die sensationslüsterne Webseite es macht. Das nachlässige Kleinschreiben in der Publikation (dieser Frage) finde ich eher nicht gut.