Dateibaum abbilden

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Dateibaum abbilden

von Beinschuss » Mo 19. Sep 2016, 00:08

Ohne wirklich Ahnung davon zu haben, habe ich aus der Diskussion http://tex.stackexchange.com/questions/ ... -alignment die \newcommand-Zeile genommen, etwas angepasst und in Dein Beispiel eingebaut - es ist mit Sicherheit noch nicht das Gelbe vom Ei, aber vielleicht ein Startpunkt:
\documentclass[border=5pt]{standalone} 
\usepackage{forest} 

\definecolor{folderbg}{RGB}{124,166,198} 
\definecolor{folderborder}{RGB}{110,144,169} 

\def\Size{4pt} 
\tikzset{ 
	folder/.pic={ 
		\filldraw[draw=folderborder,top color=folderbg!50,bottom color=folderbg] 
		(-1.05*\Size,0.2\Size+5pt) rectangle ++(.75*\Size,-0.2\Size-5pt);   
		\filldraw[draw=folderborder,top color=folderbg!50,bottom color=folderbg] 
		(-1.15*\Size,-\Size) rectangle (1.15*\Size,\Size); 
	} 
} 

\begin{document} 
	\newcommand\kap[2][2cm]{\draw () ++(#1,0) node{#2};}
	
	\begin{forest} 
		for tree={ 
			font=\ttfamily, 
			grow'=0, 
			child anchor=west, 
			parent anchor=south, 
			anchor=west, 
			calign=first, 
			inner xsep=7pt, 
			edge path={ 
				\noexpand\path [draw, \forestoption{edge}] 
				(!u.south west) +(7.5pt,0) |- (.child anchor) pic {folder} \forestoption{edge label}; 
			}, 
			before typesetting nodes={ 
				if n=1 
				{insert before={[,phantom]}} 
				{} 
			}, 
			fit=band, 
			before computing xy={l=15pt}, 
		}   
		[case    
		[system
		[fvSchemes 
		]{\kap{Kapitel 8}} 
		[fvSolution 
		]{\kap{Kapitel 9}} 
		[fvOptions 
		] 
		[effTable 
		] 
		[snappyHexMeshDict 
		] 
		[ControlDict 
		] 
		]
		{\kap{Kapitel 7}} 
		[constant 
		[polyMesh 
		[blockMesh 
		] 
		[boundary 
		] 
		] 
		[triSurface 
		] 
		[RASProperties 
		] 
		] 
		[time directory 
		[U 
		] 
		[p 
		] 
		[T 
		] 
		[mu 
		] 
		[alphat 
		] 
		[k 
		] 
		[omega 
		] 
		] 
		]
	\end{forest} 
	
\end{document}

von MoritzF » So 18. Sep 2016, 19:51

Hat hier noch jemand eine Idee wie ich hinter den Dateibaum noch etwas schreiben kann?

von MoritzF » Sa 17. Sep 2016, 20:07

Das habe ich jetzt bereits auch gemacht :-) Hast du mir vielleicht einen Tipp zu meiner Frage?

von Beinschuss » Sa 17. Sep 2016, 20:05

Funktioniert die Vorlage bei Euch?
Ja - wie Du selbst problemlos feststellen kannst, indem Du auf "Öffnen im Online-Editor" klickst. Ich erhalte genau den Dateibaum, wie er auf der angegebenen Webseite angezeigt wird.

von MoritzF » Sa 17. Sep 2016, 19:31

Nochmal eine Frage:

Ich habe nun einen Baum erstellt:
\documentclass[border=5pt]{standalone}
\usepackage{forest}

\definecolor{folderbg}{RGB}{124,166,198}
\definecolor{folderborder}{RGB}{110,144,169}

\def\Size{4pt}
\tikzset{
  folder/.pic={
    \filldraw[draw=folderborder,top color=folderbg!50,bottom color=folderbg]
      (-1.05*\Size,0.2\Size+5pt) rectangle ++(.75*\Size,-0.2\Size-5pt);  
    \filldraw[draw=folderborder,top color=folderbg!50,bottom color=folderbg]
      (-1.15*\Size,-\Size) rectangle (1.15*\Size,\Size);
  }
}

\begin{document}

\begin{forest}
  for tree={
    font=\ttfamily,
    grow'=0,
    child anchor=west,
    parent anchor=south,
    anchor=west,
    calign=first,
    inner xsep=7pt,
    edge path={
      \noexpand\path [draw, \forestoption{edge}]
      (!u.south west) +(7.5pt,0) |- (.child anchor) pic {folder} \forestoption{edge label};
    },
    before typesetting nodes={
      if n=1
        {insert before={[,phantom]}}
        {}
    },
    fit=band,
    before computing xy={l=15pt},
  }  
[case
  [system
		[fvSchemes
    ]
    [fvSolution
    ]
		[fvOptions
    ]
		[effTable
    ]
		[snappyHexMeshDict
    ]
		[ControlDict
    ]
  ]
  [constant
    [polyMesh
		  [blockMesh
      ]
			[boundary
      ]
    ]
    [triSurface
    ]
		[RASProperties
    ]
  ]
  [time directory
	  [U 
    ] 
		[p
    ]
		[T
    ]
		[mu
    ]
		[alphat
    ]
		[k
    ]
		[omega
    ]
  ]
]
\end{forest}

\end{document}
Ist es möglich hinter alle Einträge noch zu schreiben: siehe Kapitel xxx ? Und das in einem gleichmäßigen Abstand?

Grüße Moritz

von MoritzF » Sa 17. Sep 2016, 19:07

Das ist eine gute Idee mit dem "dirtree". Danke!

PS: Am TeX System kanns nich liegen :-/

Problem nicht nachvollziehbar

von Stamm- » Sa 17. Sep 2016, 14:25

Aktualisiere mal dein TeX-System. Im Online-Editor »Overleaf« läuft das Beispiel fehlerfrei durch. Das kannst Du auch selbst einfach durch Klick auf "Öffne in Online-Editor" direkt über dem Code-Block testen.

von Johannes_B » Sa 17. Sep 2016, 13:38

Deine Vorlage habe ich nicht getestet, vielleicht wäre Paket dirtree etwas für dich.

Dateibaum abbilden

von MoritzF » Sa 17. Sep 2016, 13:33

Hallo an diesem regnerischen Samstag,

ich möchte einen Dateibaum einbinden und habe dazu im Internet diese tolle Vorlage gefunden:
\documentclass[12pt,a4paper]{article}% Walter Schmidt
\usepackage[T1]{fontenc}\usepackage{textcomp}
\usepackage{mathpazo}
\usepackage{courier}
\usepackage{geometry,url,ngerman}

\usepackage[inactive]{pst-pdf}

\parindent0pt
\pagestyle{empty}

\usepackage{pstricks,pst-node}
\newcounter{leaves}
\newcounter{directories}

\newenvironment{directory}[2][\linewidth]%
% Startet neues Verzeichnis 
% und produziert eine Minipage der angeg. Breite.
% Syntax: \begin{directory}[width]{text}
% text muss in eine \parbox der angegebenen Breite passen;
% wenn keine Breite angegeben ist, wird \linewidth angenommen.
{%
\setcounter{leaves}{0}%
\addtocounter{directories}{1}
\edef\directoryname{D\thedirectories}
\begin{minipage}[t]{#1}% <-------- !!!
  \setlength{\parindent}{\linewidth}
  \addtolength{\parindent}{-\dirshrink\parindent}
  \parskip0pt%
  \noindent
  \Rnode[href=-\dirshrink]{\directoryname}{\parbox[tt]{#1}{#2}}%
  \par
}  
{\end{minipage}}

% !!! --> Problem:  
% Wegen [tt] stimmt der Zeilenabstand _nach_ der minipage nicht.
% Der Referenzpunkt eines Knoten muss aber in der _ersten_ Zeile 
% liegen, mehrzeilige Knoten, also Unterverzeichnisse, mit ihrer
% ersten Zeile im Dateibaum verankert weren.

\newcommand{\file}[2][]{%
% Fuer einen einzelnen Eintrag innerhalb der directory-Umgebung.
% Das Argument darf seinerseits eine directory-Umgebung sein.
  \addtocounter{leaves}{1}%
  \edef\leaflabel{L\theleaves\directoryname}%
  \par
  \Rnode{\leaflabel}{\parbox[tt]{\dirshrink\linewidth}{#2\hfill#1}}%
  \ncangle[angleA=270,angleB=180,armB=0,nodesep=1pt]
    {\directoryname}{\leaflabel}%
  % \typeout{\directoryname,\leaflabel}% Debugging
\par}

\newcommand{\dirshrink}{.95} 
% relative Verringerung der Breite der Verzeichniseintraege 
% pro Stufe


\begin{document}

The draft directory of \url{fontinst}:
\begin{verbatim}
doc/
  manual/
  fontinst.aux
  fontinst.log
  fontinst.pdf
  fontinst.tex
  fontinst.toc
  intro98.tex
  ltxguide.cfg
  roadmap.eps
encspecs.zip
examples.zip
inputs.zip
latex.zip
README
source.zip
test.zip
\end{verbatim}


\medskip

\dots\ and what can be with \verb+pst-tree+

\def\url#1{#1}

\begin{postscript}
\begin{directory}{\url{fontinst}}
\file{\begin{directory}{\url{doc/}}
  \file{\begin{directory}{\url{manual/}}
    \file[ auxiliary file]{\url{fontinst.aux}}
    \file{\url{fontinst.log}}
    \file{\url{fontinst.pdf}}
    \file{\url{fontinst.tex}}
    \file[ table of contents ]{\url{fontinst.toc}}
    \file{\url{intro98.tex }}
    \file{\url{ltxguide.cfg}}
    \file{\url{roadmap.eps }}
  \end{directory}}
\file{\url{encspecs.zip }}
\end{directory}}
\file{\url{examples.zip }}
\file{\url{inputs.zip   }}
\file{\url{latex.zip    }}
\file{\url{README       }}
\file{\url{source.zip   }}
\file{\url{test.zip     }}
\end{directory}
\end{postscript}

\end{document}

Leider spuckt er mir 68 Fehler aus, alle bei \file{\url{source.zip }} oder auch \file{\url{README }} mit "undefined control sequence".

Zudem erhalte ich auch nicht den Strich an den Ordnern wie er hier abgebildet ist: http://tug.org/PSTricks/main.cgi?file=pst-tree/pst-tree unter "Directory Tree"

Funktioniert die Vorlage bei Euch?

Grüße Moritz

Nach oben