Symboldatenbank für TIKZ

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: Symboldatenbank für TIKZ

von BlackDevil » So 20. Okt 2013, 13:30

Dann werde ich mich wohl da mal anmelden ;) Aber nicht jetzt, heute Abend oder morgen..
	%------------------------------------------------
	%		Pipe
	%------------------------------------------------
	%			\pipe{start}{end}[insulation][heated]
	%		
\def\pgfdecoratedcontourdistance{0pt}

\pgfkeys{/pgf/decoration/contour distance/.code={%
    \pgfmathparse{#1}%
    \let\pgfdecoratedcontourdistance=\pgfmathresult}%
}

\pgfdeclaredecoration{contour lineto}{start}
{
    \state{start}[next state=draw, width=0pt]{
        \pgfpathmoveto{\pgfpoint{0pt}{\pgfdecoratedcontourdistance}}%
    }
    \state{draw}[next state=draw, width=\pgfdecoratedinputsegmentlength]{       
        \pgfmathparse{-\pgfdecoratedcontourdistance*cot(-\pgfdecoratedangletonextinputsegment/2+90)}%
        \let\shorten=\pgfmathresult%
        \pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentlength+\shorten}{\pgfdecoratedcontourdistance}}%  
    }
    \state{final}{
        \pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentlength}{\pgfdecoratedcontourdistance}}%
    }   
}
		\newdimen\HelpVarA
		\newdimen\HelpVarB
		\newdimen\HelpVarC
		\newdimen\HelpVarD
		\newcommand*{\ExtractCoordinate}[3]{\path (#1); \pgfgetlastxy{#2}{#3};}%
		\newcommandx{\pipe}[4][3=0,4=0]
		{
%			\draw [ultra thick] (#1) -- (#2);
			\draw [ultra thick] (#1) |- (#2);
			\ifthenelse{\equal{#4}{1}}{		% Heated
%					\draw [thick,  dashdotted] ($(#1)-0.15*(0,1)$) |- ($(#2)-0.15*(0,1)$);
					\draw [thick, postaction={decoration={contour lineto, contour distance=-0.1cm},draw=black, dashdotted, decorate}] (#1) |- (#2);
			}{}
			\ifthenelse{\equal{#3}{1}}{			% Isolation
%				\draw [pattern = north east lines] ($(#1)+0.1*(1,0)-0.2*(0,1)$) rectangle ($(#2)-0.1*(1,0)+0.2*(0,1)$);
%				\draw [pattern = north east lines] let 	\p1=(#1),
%														\p2=(#2) in
%													($(\x1,\y1)+0.1*(1,0)-0.2*(0,1)$) rectangle ($(\x1,\y2)-0.1*(1,0)+0.2*(0,1)$);
%				\draw [pattern = north east lines] let 	\p1=(#1),
%														\p2=(#2) in
%													($(\x1,\y2)+0.1*(1,0)-0.2*(0,1)$) rectangle ($(\x2,\y2)-0.1*(1,0)+0.2*(0,1)$);

				\ExtractCoordinate{#1}{\HelpVarA}{\HelpVarB};
				\ExtractCoordinate{#2}{\HelpVarC}{\HelpVarD};
				
				\ifthenelse{\equal{\HelpVarB}{\HelpVarD}}
				{
						\draw [pattern = north east lines] let 	\p1=(#1),
																\p2=(#2) in
																($(\x1,\y2)+0.2*(1,0)-0.2*(0,1)$) rectangle ($(\x2,\y2)-0.2*(1,0)+0.2*(0,1)$);	
				}
				{
					\ifthenelse{\equal{\HelpVarA}{\HelpVarC}}
					{
					\draw [pattern = north east lines] let 	\p1=(#1),
																\p2=(#2) in
																($(\x1,\y1)-0.2*(1,0)+0.2*(0,1)$) rectangle ($(\x2,\y2)+0.2*(1,0)-0.2*(0,1)$);		
					}
					{
						\draw [pattern = north east lines] let 	\p1=(#1),
																\p2=(#2) in
															($(\x1,\y2)+0.1*(1,0)-0.2*(0,1)$) rectangle ($(\x2,\y2)-0.1*(1,0)-0.2*(0,1)$);
					
						\draw [pattern = north east lines] let 	\p1=(#1),
																\p2=(#2) in
															($(\x1,\y1)!0.2cm!(\x1,\y2)!-0.2cm!(\x2,\y1)$) rectangle ($(\x1,\y2)!0.2cm!(\x2,\y2)!0.2cm!(\x1,\y1)$);
						\draw [pattern = north east lines] let 	\p1=(#1),
																\p2=(#2) in
															($(\x1,\y2)+0.2*(1,0)-0.2*(0,1)$) rectangle ($(\x2,\y2)-0.2*(1,0)+0.2*(0,1)$);
					}
				}
			}{}
		}
		
Rohre gehen nun auch. Hab mir mit Google ein recht ... ansehnliches Konstrukt zusammen geschustert ^^[/code]

von Stefan Kottwitz » So 20. Okt 2013, 12:10

Hm, Dein Code sieht hier so aus, mit Symbol(en) drin - screenshot:

Bild

Da die flackernde Werbung, die mir früher nur auf den Keks ging, den Firefox-Browser zum Absturz bringt (flash-plugin m.E.), bin ich eher mit dem iPad kürzere Zeiten hier. Für schwierigere Probleme findest Du mich halt auf der TeXwelt. ;-)

Stefan

von BlackDevil » So 20. Okt 2013, 09:53

Ich denke mal darüber nach. Die Frage ist auch wie viel Zeit ich tatsächlich neben meiner eigentlichen Thesis habe, die darf ich nicht vernachlässigen. Und das Problem was ich gerade habe frisst Zeit :/


Ich poste es noch mal, vielleicht hast du eine Idee ;)

Problem 1:
Bei den Pumpen, Kompressoren und Ventilatoren habe ich eine Koordinate "MotorBead" (MotorFlansch) festgelegt. Hieran soll ein Motor mit der Funktion "\motor{MotorBead}" "angeschlossen" werden.

Jetzt möchte ich die Pumpe (den Kompressor ...) drehen. Dabei dreht sich die Koordinate mit. Folglich soll der Motor sich mitdrehen.

Grafisch:
         o
         |
         |
         |
o---O    O    O---o
Dabei ist O die Pumpe und o der Motor.

Edit: Gelöst. Ich weiß nur nicht ob es nicht schlampig ist. Ich habe der Pumpe einfach eine Hilfskoordinate mitgegeben, die dreht sich logischerweise fröhlich mit ...
	%------------------------------------------------
	%		Pumps
	%------------------------------------------------
	%			\pump{type}{insertion point}{number}[rotation][motor]
	%	
		\newcommandx{\pump}[5][4=0,5=0]
		{
			\ifthenelse{\equal{#1}{1}}{		% Pump general
				\begin{scope}[rotate around={#4:(#2)}]
					\draw [ultra thick] (#2) circle [radius=0.5];
					\draw [thick] ($(#2)-0.5*(1,0)$) -- ($(#2)+0.5*(0,1)$) -- ($(#2)+0.5*(1,0)$);
					\draw [thick] ($(#2)+0.5*(0,1)$) -- ($(#2)+0.7*(0,1)$);
					\draw [thick] ($(#2)-0.5*(0,1)$) -- ($(#2)-0.7*(0,1)$);
					
					\coordinate (PumpIn#3) at ($(#2)-0.7*(0,1)$);
					\coordinate (PumpOut#3) at ($(#2)+0.7*(0,1)$);
					\coordinate (PumpMotorBead#3) at ($(#2)-0.5*(1,0)$);

%NEW:
					\coordinate (Temp) at($(#2)-1.35*(1,0)$);
					
				\end{scope}
					\node [below] at ($(#2)+0.5*(1,-1)$) {P-$#3$};
			}
		}
Den Motor zeichne ich dann wie folgt
	\newcommandx{\motor}[1]
	{ % Motor
				\draw [ultra thick] (Temp) circle [radius=0.35];
				\draw [thick] (#1) -- ($(#1)!0.6!(Temp)$);
				\node at (Temp)  {M};
	}
Ergebnis:
Bild

Was noch nicht passt ist die Positionierung des Textes. P-4 passt. Der Rest muss so gedreht werden, das die Spitze des M jeweils zur Verbindungslinie Motor-Pumpe zeigt...



Problem 2:
Rohrleitungen sind einfache Linien. Hierfür gibt es aber auch eine Funktion "\pipe" da Rohre beheizt und/oder isoliert sein können. Eine Heizung ist dabei durch eine gestrichpunktete Linie, eine Isolierung durch eine Schraffur gekennzeichnet.
Das funktioniert soweit. Aber nur wenn das Rohr Horizontal verläuft. Verläuft es anders, passen die Koordinaten nicht mehr (wie oben).
Aber wie mach ich, das die Koordinaten immer die gleichen sind?
Code des Rohrs:
	%			\pipe{start}{end}[insulation][heated]
		\newcommandx{\pipe}[4][3=0,4=0]
		{
%			\draw [ultra thick] (#1) -- (#2);
			\draw [ultra thick] (#1) |- (#2);
			\ifthenelse{\equal{#4}{1}}{		% Heated
					\draw [thick,  dashdotted] ($(#1)-0.15*(0,1)$) -- ($(#2)-0.15*(0,1)$);
				}{}
			\ifthenelse{\equal{#3}{1}}{			% Insulation
				\draw [pattern = north east lines] ($(#1)+0.1*(1,0)-0.2*(0,1)$) rectangle ($(#2)-0.1*(1,0)+0.2*(0,1)$);
			}{}
		}
Edit: Ich hab den Rohrleitungen nun mit |- beigebracht um die Ecke zu gehen. Bleibt aber das Problem mit der gestrichpunkteten und dem Rechteck :D



Für Sachdienliche Hinweise bin ich wie immer dankbar :)

von Stefan Kottwitz » So 20. Okt 2013, 00:28

BlackDevil hat geschrieben:Hat jemand Lust mit dran zu entwickeln?
An TikZ bin ich sehr interessiert. Ich komme allerdings eher aus der mathematischen Ecke, und habe nicht direkt Anwendung für Symbole für Pumpen, Ventilatoren, Kompressoren und sowas, daher keinen Ansatz, selbst sowas zu zeichnen. Wenn es um das Lösen TikZ-spezifischer Probleme geht, dann schon eher. In der Art "wie platziere ich einen Node genau in der Mitte" oder "wie beschrifte ich relativ zu" usw.
BlackDevil hat geschrieben:Dann würd ich das irgendwo online stellen und jeder kann basteln
Bei online-stellen und publik-machen für Interessierte kann ich helfen.
  • Interessante Beispiele stelle ich gern in die TikZ Beispiel-Galerie, auf texample.net auch gern einen Artikel oder Blog-Post.
  • Wenn Du darüber einen Artikel schreiben willst, stelle ich ihn gern auf [url=lttp://latex-community.org]LaTeX-Community.org[/url] oder mache Dir einen Autor-Account.
  • Deutschsprachig sind auch Artikel bzw. Blogposts im TeXwelt.de Community-Blog willkommen, ich kann Dir gern einen Account da einrichten.
Falls Du es außer hier auch noch woanders diskutieren willst, TeXwelt.de ist ein sehr guter Platz, um konkrete Teilaufgaben zu lösen. Da antworten Leute, die sich auch mit TikZ sehr gut auskennen, wie Johannes schon erwähnte. Ich sah z.B. Felix komplexe TikZ-Zeichnungen wie zum Zitronensäurezyklus entwickeln, wobei er bei Teilproblemen jeweils dort eine spezifische Frage postete und beantwortet bekam. Siehe die TikZ-Rubrik, die wir gern erweitern. Wenn ein Projekt, oder auch nur eine Zeichnung, über mehrere konkrete Fragen hinaus entsteht, die so im Wissens-Archiv Lösungen generieren, ist das sehr gern gesehen.

Es ist auch ein Erfolgsprinzip, um gemeinsam auf ein Ziel hinzuarbeiten: Teilschritte, ganz konkrete spezifische Aufgaben, in den Raum zu stellen. TikZ-Kenner tragen da gern was bei, eine einzelne Lösung ist ja schnell gemacht. Das ist viel einfacher, als einem Aufruf zur Mitarbeit an einem Projekt zu folgen.

Viele Grüße,

Stefan

von BlackDevil » Sa 19. Okt 2013, 19:32

Hmm, weiß nicht ob so viel Aufwand für die Doku nötig ist. So viel kanns ja nicht ;)

Wärmetauscher, Pumpen und Ventilatoren und Kompressoren hab ich fertig. Die Rohre wehren sich noch:
	%------------------------------------------------
	%		Pipe
	%------------------------------------------------
	%			\pipe{start}{end}[insulation][heated]
	%		

		\newcommandx{\pipe}[4][3=0,4=0]
		{
			\draw [ultra thick] (#1) -- (#2);
			\ifthenelse{\equal{#4}{1}}{		% Heated
					\draw [thick,  dashdotted] ($(#1)-0.15*(0,1)$) -- ($(#2)-0.15*(0,1)$);
				}{}
			\ifthenelse{\equal{#3}{1}}{			% Insulation
				\draw [pattern = north east lines] ($(#1)+0.1*(1,0)-0.2*(0,1)$) rectangle ($(#2)-0.1*(1,0)+0.2*(0,1)$);
			}{}
		}
Horizontal funktioniert alles: Um das "Rohr" herum ist eine schraffierte Linie, unten dran eine gestrichpunktete (wenn die Optionen "Isolated" und "Heated" eingeschaltet sind). Nur wenn das Rohr in eine andere Richtung geht passt das nicht mehr ... ich weiß nur nicht wie ich das beheben kann.

Bei den Pumpen (und Ventilatoren ...) hätte ich es gerne noch das bei der Option "Motor" das M immer in die gleiche Richtung schaut, nämlich wie ohne Rotation (da ist es Horizontal).
		\newcommandx{\pump}[5][4=0,5=0]
		{
			\ifthenelse{\equal{#1}{1}}{		% Pump general
				\begin{scope}[rotate around={#4:(#2)}]
					\draw [ultra thick] (#2) circle [radius=0.5];
					\draw [thick] ($(#2)-0.5*(1,0)$) -- ($(#2)+0.5*(0,1)$) -- ($(#2)+0.5*(1,0)$);
					\draw [thick] ($(#2)+0.5*(0,1)$) -- ($(#2)+0.7*(0,1)$);
					\draw [thick] ($(#2)-0.5*(0,1)$) -- ($(#2)-0.7*(0,1)$);
					
					\coordinate (PumpIn#3) at ($(#2)-0.7*(0,1)$);
					\coordinate (PumpOut#3) at ($(#2)+0.7*(0,1)$);
					
					\ifthenelse{\equal{#5}{1}}{ % Motor
						\ifthenelse{#4<0}{
							\draw [ultra thick] ($(#2)-1.25*(1,0)$) circle [radius=0.35];
							\draw [thick] ($(#2)-0.9*(1,0)$) -- ($(#2)-0.5*(1,0)$);
							\node at ($(#2)-1.25*(1,0)$) {M};
						}
						{
							\draw [ultra thick] ($(#2)+1.25*(1,0)$) circle [radius=0.35];
							\draw [thick] ($(#2)+0.9*(1,0)$) -- ($(#2)+0.5*(1,0)$);
							\node [rotate=#4] at ($(#2)+1.25*(1,0)$) {M};
						}
					}{}
				\end{scope}
					\node [below] at ($(#2)+0.5*(1,-1)$) {P-$#3$};
			}{}
		}

Ich schau das ich morgen noch was mach. Ventile schaff ich wohl noch. Ob ich dann noch mehr schaffe, weiß ich nicht. Dazu gehören auch die Antriebe der Ventile. Auf der anderen Seite steht die Frage, wie detailliert das ganze sein muss.

Ich habe auch das Problem, das ich nicht weiß wie ich die Koordinate einer sich rotierenden Node (wie bei "Motor") so definiere, das wenn ich dort etwas anbastel es immer in die gleiche Richtung schaut. Deshalb ist "Motor" nicht extra sondern bei jedem einzelnen Teil dabei ...


Hat jemand Lust mit dran zu entwickeln? Dann würd ich das irgendwo online stellen und jeder kann basteln ;)

Grüße

literate programming

von Johannes_B » Fr 18. Okt 2013, 16:22

Wenn du deinen Code auch für Anwender dokumentieren willst, empfehle ich dir die Erstellung einer dtx-Datei. Diese enthält dann Dokumentation und code zusammen, ein extra Schritt erstellt dir sty-Datei und Dokumentation. Vorteil: Nur eine Datei muss bei Updates geändert werden, Doku und Code passen zusammen.

Es gibt ähnliche Pakete, die machen was du vor hast, blätter einfach mal auf CTAN rum. Du kannst dort nach topic sortieren.

Von tikz habe ich persönlich noch recht wenig ahnung, kann deinen Code alsi nicht wirklich bewerten, geschweige denn best-practice-tipps geben.
Vielleicht schaust du auch mal auf TeXwelt vorbei. Da sind auch einige »TikZperten«.

von BlackDevil » Fr 18. Okt 2013, 14:17

Hallöchen zusammen!

Ich habe einen ersten Schritt in Tikz gemacht. Genauer gesagt habe ich das Basis Symbol für einen Wärmetauscher gebaut. Nun würde ich mich über Unterstützung aus der Community freuen, die .sty werde ich am Ende auch jedem zur Verfügung stellen (dafür mache ich den Aufwand :) )


Ich habe mich hieran TikZ Library for Structural Analysis orientiert. Das funktioniert soweit auch gut. Die aktuelle .sty ist unten angefügt.

Was mir jetzt noch fehlt ist eine Intelligente Verknüpfung der Symbole.


Nehmen wir an, der Wärmetauscher ist auf (0,0) platziert. Dann sind die Anschlüsse des Wärmetauschers bei
  • - Zu kühlendes Medium Eingang InHot (0,0.7)
    - Zu kühlendes Medium Ausgang OutCold (0,-0.7)
    - Kühlwasser Eingang CoolWaterIn (0,0.3)
    - Kühlwasser Ausgang CoolWaterOut (0,-0.3)
Jetzt würde ich den Aufruf und die Verknüpfung gerne so machen
\point{heaxa}(0,0);
\point{heaxb}(0,3);

\heax{heaxa}{1};
\heax{heaxa}{2};

\pipe{heaxa{OutCold},{heaxb{InHot}};
% In Zukunft soll pipe sein \pipe{from, to}{type}[dämmung, medium] wobei Type bedeutet "mit elektrischer Begleitheizung", oder "mit Dampfbegleitheizung"; dämmung ist nur ja oder nein
Wie stelle ich das an? Jürgen Hackl definiert Punkte, sowohl für Lager als auch für die Start- und Zielpunkte zwischen denen die Balken verlaufen sollen. Ich müsste diese Punkte ja innerhalb des Wärmetauschers (oder Reaktors oder ...) definieren und von außen darauf zugreifen. Ich denke vermutlich zu sehr in C/C++, weshalb ich einen Knoten im hirn habe ... Edit: Oder geht das nur wenn ich eigene Shapes erstelle? (siehe Tikz Manual 75.5) Das wäre ärgerlich, weil viel viel komplexer ...

Und liese sich der lange Pfad im Wärmetauscher vereinfachen?

Danke euch :)

Edit: Hab noch die Rotation des Wärmetauschers eingebaut.

Edit: Und noch eine Änderung: Ich habe nun die Verbindung der Wärmetauscher hinbekommen (auch unten im sty):
				\coordinate (InHot#2) at ($(#1)+0.7*(0,1)$);
				\coordinate (OutHot#2) at ($(#1)-0.7*(0,1)$);
Ich kann im Text darauf zugreifen mit
	\point{heax1}{0}{0};
	\point{heax2}{0}{3};

	\heax{heax1}{1};
	\heax{heax2}{2};
	\draw [thick] (InHot1) -- (OutHot2);
:idea:
Stellt sich mir nur die Frage: Ist das so sauber oder pfusch?



---------------------------------------------

pidtikz.sty:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Title     : TikZ Library for Piping and
%			  Instrumentation Diagrams(P&ID)
% Version   : 1.0 (2013/10/17)
%
% Author    : Marc GRAF
% Engine    : PDFLaTeX
% 
%  						
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%================================================
%		use Package
%================================================

	\NeedsTeXFormat{LaTeX2e}
	\ProvidesPackage{pidtikz}


%================================================
%		use Package
%================================================

	\RequirePackage{ifthen}
	\RequirePackage{tikz}
	\RequirePackage{xargs}
	\usetikzlibrary{shapes,arrows}
	\usetikzlibrary{positioning}
	\usepackage{verbatim}
	\usetikzlibrary{automata}
	\usetikzlibrary{arrows}
	\usetikzlibrary{calc}
	\usetikzlibrary{%
		decorations.pathreplacing,%
		decorations.pathmorphing%
	}
	\usetikzlibrary{patterns}

	
%
%================================================
%		variables
%================================================
%
		%------------------------------------------------
		%		construction parameters
		%------------------------------------------------

			\newcommand{\scalingParameter}{1}
	
%
%================================================
%		library elements
%================================================
%

	%------------------------------------------------
	%		scaling
	%------------------------------------------------
	%			\scaling{scaling value}
	%	

	\newcommandx{\scaling}[1]{
		\renewcommand{\scalingParameter}{#1}
	}

	%------------------------------------------------
	%		point
	%------------------------------------------------
	%			\point{name}{x-coordiante}{y-coordiante}
	%			

		\newcommandx{\point}[3]{
			\node[coordinate][
				shift={(#2*\scalingParameter,#3*\scalingParameter)}](#1){};
		}

	%------------------------------------------------
	%		heat exchanger
	%------------------------------------------------
	%			\heax{insertion point}{number}[rotation]
	%	ToDo:	\heax{type}{insertion point}{number}[rotation] (counter??)
	
		\newcommandx{\heax}[3][3=0]
		{
			\begin{scope}[rotate around={#3:(#1)}]
				\draw [ultra thick] (#1) circle [radius=0.5];
				\draw [thick] ($(#1)+0.7*(1,0)-0.3*(0,1)$) -- ($(#1)-0.2*(1,0)-0.3*(0,1)$) -- ($(#1)+0.2*(1,0)+(0,0)$) -- ($(#1)-0.2*(1,0)+0.3*(0,1)$) -- ($(#1)+0.7*(1,0)+0.3*(0,1)$);
				\draw [thick] ($(#1)-0.5*(0,1)$) -- ($(#1)-0.7*(0,1)$);
				\draw [thick] ($(#1)+0.5*(0,1)$) -- ($(#1)+0.7*(0,1)$);
				\coordinate (InHot#2) at ($(#1)+0.7*(0,1)$);
				\coordinate (OutHot#2) at ($(#1)-0.7*(0,1)$);
			\end{scope}
				\node [right] at ($(#1)+0.2*(1,0)-0.6*(0,1)$) {E-$#2$};
			
		}

	

von BlackDevil » Di 15. Okt 2013, 09:47

Dann werde ich mal sehen ob ich etwas gebastelt bekomme. Eigentlich habe ich nicht die Zeit dafür, aber eventuell lässt sich ja ein gutes Grundgerüst bauen (ggf. mit Hilfe eines (dem) Tikz Editors) welches sich mit Unterstützung des Forums zu etwas ausbauen lässt das viele Leute im Internet suchen... jedenfalls ist das meine Motivation :) Ich melde wieder wenn ich ein erstes Ergebnis habe. Tikz läuft schon mal ;)

von Stefan Kottwitz » Mo 14. Okt 2013, 22:25

Es geht beides. .sty für Laden mit \usepackage in LaTeX, .tex für Laden via \input, was außer mit LaTeX auch mit TeX geht.

Evtl. schau Dir Beispiele im TikZ-Quellcode oder existenten Bibliotheken an.

Stefan

von BlackDevil » Mo 14. Okt 2013, 22:03

In der Zwischenzeit hat man das auch runter geschrieben oder per Editor gezeichnet.

Wie sähe so eine Bib aus? .sty oder .tex?

Nach oben