ooze
09-07-2010, 17:41
Hallo,
ich habe neulich erst mit PSTricks begonnen und habe jetzt ein Problem, welches sich zwar mit ensprechendem Aufwand manuell lösen ließe, ich aber glaube, dass es dafür vielleicht eine elegantere Methode gibt. Zunächst das Minimalbeispiel:
\documentclass[fontsize=12pt,%
a4paper]%
{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{microtype} %besserer Blocksatz
\usepackage[on]{auto-pst-pdf}
\usepackage{pst-slpe}
\usepackage{pstricks-add}%
\usepackage{amssymb,amsmath,amsthm,amstext}
\begin{document}
\begin{figure}[htbp]
\centering
\framebox[\textwidth]
{
\scalebox{1}
{
\begin{pspicture}(13,5)
%\psgrid[subgriddiv=1,griddots=10]
% Elementarzelle (2D)
\dotnode(9,4){fusspunkt}
\pnode(11,4){spitze a}
\dotnode(11,4){}
\dotnode(8.8,3){spitze b}
\dotnode(10.8,3){diagonalpunkt}
% Elementarzelle: Verbindung b
\ncline[linewidth=2pt,arrowinset=0]{->}{fusspunkt}{spitze a}
\naput{$b$}
% Elementarzelle: Verbindung a
\ncline[linewidth=2pt,arrowinset=0]{->}{fusspunkt}{spitze b}
\nbput{$a$}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{spitze a}{diagonalpunkt}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{spitze b}{diagonalpunkt}
%\rnode[0]{A}{\pscircle[fillstyle=solid](10,4){2mm}}
%\rnode[0]{B}{\pscircle[fillstyle=solid](11,3.7){1.5mm}}
%\rnode[0]{C}{\pscircle[fillstyle=solid](11.2,3.2){1mm}}
\cnode[fillstyle=solid,linewidth=1.5pt](9,4){2mm}{A}
\cnode[fillstyle=solid](10,3.7){1.5mm}{B}
\cnode[fillstyle=solid,fillcolor=black](10.2,3.2){1mm}{C}
\ncline[linewidth=.5pt]{-}{A}{B}
\ncline[linewidth=.5pt]{-}{B}{C}
% Elementarzelle: Legende
\cnode[fillstyle=solid,linewidth=1.5pt](12.5,4){1.85mm}{}
\uput[0](12.5,4){A}
\cnode[fillstyle=solid](12.5,3.5){1.45mm}{}
\uput[0](12.5,3.5){B}
\cnode[fillstyle=solid,fillcolor=black](12.5,3){1mm}{}
\uput[0](12.5,3){C}
% Beschriftung
\uput[u](3.5,1){Gitter}
\uput[u](10,1){Elementarzelle und Basis}
% Gittergeraden
%\psline[linestyle=dashed,linecolor=gray](-1,3)(10,3)
%\psline[linestyle=dashed,linecolor=gray](6,0)(7.2,6)
% Beschriftung Gittergeraden
\pnode(9.5,3){horizontal}
\pnode(6.1,0.5){vertikal}
%Reihe 1 (oben)
\pnode(1,5){Punkt 11}
\dotnode(1,5){Punkt 11not}
\uput[135](1,5){0}
\dotnode(3,5){Punkt 12}
\dotnode(5,5){Punkt 13}
\dotnode(7,5){Punkt 14}
%Reihe 2
\dotnode(0.8,4){Punkt 21}
\dotnode(2.8,4){Punkt 22}
\dotnode(4.8,4){Punkt 23}
\dotnode(6.8,4){Punkt 24}
%Reihe 3
\dotnode(0.6,3){Punkt 31}
\dotnode(2.6,3){Punkt 32}
\dotnode(4.6,3){Punkt 33}
\dotnode(6.6,3){Punkt 34}
%Reihe 4
\dotnode(0.4,2){Punkt 41}
\dotnode(2.4,2){Punkt 42}
\dotnode(4.4,2){Punkt 43}
\dotnode(6.4,2){Punkt 44}
%Reihe 5
% Gitterlinien
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 41}{Punkt 44}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 31}{Punkt 34}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 21}{Punkt 24}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 11}{Punkt 14}
%
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 41}{Punkt 11}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 42}{Punkt 12}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 43}{Punkt 13}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 44}{Punkt 14}
%Verbinung a
\ncline[linewidth=2pt,arrowinset=0]{->}{Punkt 11}{Punkt 21}
\nbput{$a$}
%Verbindung b
\ncline[linewidth=2pt,arrowinset=0]{->}{Punkt 11}{Punkt 12}
\naput{$b$}
\end{pspicture}
} %framebox zu
} %scalebox zu
\caption{Raumgitter, Elementarzelle und Basis (zweidimensionale Darstelleung)}
\label{fig:kristallstruktur}
\end{figure}
\end{document}
Was ich nun möchte ist, dass die "Basis" (das sind die drei Kreise innerhalb der "Elementarzelle") sich entlang der Gitterstruktur wiederholen. Also im Prinzip nochmal das "Gitter" wie links, nur eben mit den drei Kreisen in jedem Feld. Das könnte ich natürlich händisch machen, der Aufwand wär aber recht groß, und bevor ich damit anfange wollte ich mal wissen ob man das nicht irgendwie schlauer angehen könnte.
Freue mich über alle Antworten.
PS: Das Minimalbeispiel ist bei mir so wie's da steht lauffähig und sollte eine Abbildung produzieren.
Grooze,
ooze
ich habe neulich erst mit PSTricks begonnen und habe jetzt ein Problem, welches sich zwar mit ensprechendem Aufwand manuell lösen ließe, ich aber glaube, dass es dafür vielleicht eine elegantere Methode gibt. Zunächst das Minimalbeispiel:
\documentclass[fontsize=12pt,%
a4paper]%
{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{microtype} %besserer Blocksatz
\usepackage[on]{auto-pst-pdf}
\usepackage{pst-slpe}
\usepackage{pstricks-add}%
\usepackage{amssymb,amsmath,amsthm,amstext}
\begin{document}
\begin{figure}[htbp]
\centering
\framebox[\textwidth]
{
\scalebox{1}
{
\begin{pspicture}(13,5)
%\psgrid[subgriddiv=1,griddots=10]
% Elementarzelle (2D)
\dotnode(9,4){fusspunkt}
\pnode(11,4){spitze a}
\dotnode(11,4){}
\dotnode(8.8,3){spitze b}
\dotnode(10.8,3){diagonalpunkt}
% Elementarzelle: Verbindung b
\ncline[linewidth=2pt,arrowinset=0]{->}{fusspunkt}{spitze a}
\naput{$b$}
% Elementarzelle: Verbindung a
\ncline[linewidth=2pt,arrowinset=0]{->}{fusspunkt}{spitze b}
\nbput{$a$}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{spitze a}{diagonalpunkt}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{spitze b}{diagonalpunkt}
%\rnode[0]{A}{\pscircle[fillstyle=solid](10,4){2mm}}
%\rnode[0]{B}{\pscircle[fillstyle=solid](11,3.7){1.5mm}}
%\rnode[0]{C}{\pscircle[fillstyle=solid](11.2,3.2){1mm}}
\cnode[fillstyle=solid,linewidth=1.5pt](9,4){2mm}{A}
\cnode[fillstyle=solid](10,3.7){1.5mm}{B}
\cnode[fillstyle=solid,fillcolor=black](10.2,3.2){1mm}{C}
\ncline[linewidth=.5pt]{-}{A}{B}
\ncline[linewidth=.5pt]{-}{B}{C}
% Elementarzelle: Legende
\cnode[fillstyle=solid,linewidth=1.5pt](12.5,4){1.85mm}{}
\uput[0](12.5,4){A}
\cnode[fillstyle=solid](12.5,3.5){1.45mm}{}
\uput[0](12.5,3.5){B}
\cnode[fillstyle=solid,fillcolor=black](12.5,3){1mm}{}
\uput[0](12.5,3){C}
% Beschriftung
\uput[u](3.5,1){Gitter}
\uput[u](10,1){Elementarzelle und Basis}
% Gittergeraden
%\psline[linestyle=dashed,linecolor=gray](-1,3)(10,3)
%\psline[linestyle=dashed,linecolor=gray](6,0)(7.2,6)
% Beschriftung Gittergeraden
\pnode(9.5,3){horizontal}
\pnode(6.1,0.5){vertikal}
%Reihe 1 (oben)
\pnode(1,5){Punkt 11}
\dotnode(1,5){Punkt 11not}
\uput[135](1,5){0}
\dotnode(3,5){Punkt 12}
\dotnode(5,5){Punkt 13}
\dotnode(7,5){Punkt 14}
%Reihe 2
\dotnode(0.8,4){Punkt 21}
\dotnode(2.8,4){Punkt 22}
\dotnode(4.8,4){Punkt 23}
\dotnode(6.8,4){Punkt 24}
%Reihe 3
\dotnode(0.6,3){Punkt 31}
\dotnode(2.6,3){Punkt 32}
\dotnode(4.6,3){Punkt 33}
\dotnode(6.6,3){Punkt 34}
%Reihe 4
\dotnode(0.4,2){Punkt 41}
\dotnode(2.4,2){Punkt 42}
\dotnode(4.4,2){Punkt 43}
\dotnode(6.4,2){Punkt 44}
%Reihe 5
% Gitterlinien
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 41}{Punkt 44}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 31}{Punkt 34}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 21}{Punkt 24}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 11}{Punkt 14}
%
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 41}{Punkt 11}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 42}{Punkt 12}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 43}{Punkt 13}
\ncline[linewidth=.5pt,linestyle=dashed]{-}{Punkt 44}{Punkt 14}
%Verbinung a
\ncline[linewidth=2pt,arrowinset=0]{->}{Punkt 11}{Punkt 21}
\nbput{$a$}
%Verbindung b
\ncline[linewidth=2pt,arrowinset=0]{->}{Punkt 11}{Punkt 12}
\naput{$b$}
\end{pspicture}
} %framebox zu
} %scalebox zu
\caption{Raumgitter, Elementarzelle und Basis (zweidimensionale Darstelleung)}
\label{fig:kristallstruktur}
\end{figure}
\end{document}
Was ich nun möchte ist, dass die "Basis" (das sind die drei Kreise innerhalb der "Elementarzelle") sich entlang der Gitterstruktur wiederholen. Also im Prinzip nochmal das "Gitter" wie links, nur eben mit den drei Kreisen in jedem Feld. Das könnte ich natürlich händisch machen, der Aufwand wär aber recht groß, und bevor ich damit anfange wollte ich mal wissen ob man das nicht irgendwie schlauer angehen könnte.
Freue mich über alle Antworten.
PS: Das Minimalbeispiel ist bei mir so wie's da steht lauffähig und sollte eine Abbildung produzieren.
Grooze,
ooze