Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20

Thema: fp, xstring

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62

    fp, xstring

    % Beispiel (Packages welche geladen werden müssen ist xstring und fp
    Code:
    % Angabe für eine Funktion beispielsweise \newcommand{\meincommando}[2]{\StrRight{#1}{128}[\bsA]\StrRight{#2}{128}[\CsA]}
    % Dient als Test ohne Command...
    % Angabe zweier Variablen....
    \StrRight{A|B|C}{128}[\bsA]
    \StrRight{-0.004|-0.005|0.006}{128}[\csA]
    % 
    \StrCount{\csA}{|}[\argcount] % Zähle Anzahl der Trennstriche (+1 = Anzahl der Variablen)
    \argcount \\ % Ausgabe
    
    \StrPosition{\csA}{|}[\first] % Finde den ersten Trennstrich
    \StrSplit{\csA}{\first}{\csA}{\csB} % Splitte die Variable
    \StrLen{\csA}[\cal] % Ermittle die Länge
       \FPupn{cal}{cal 1 - neg}    % Subtrahiere den Trennstrich
    \FPclip\cal\cal % Entferne unnötige Nullen (Ohne gehts nicht)
    \StrLeft{\csA}{\cal}[\csA] % Gebe den Variablenwert aus....
    
    \StrPosition{\bsA}{|}[\first] % Finde den ersten Trennstrich
    \StrSplit{\bsA}{\first}{\bsA}{\bsB}
    \StrLen{\bsA}[\bal]  
       \FPupn{bal}{bal 1 - neg}  
    \FPclip\bal\bal
        \StrLeft{\bsA}{\bal}[\bsA] % Gebe den Variablennamen aus....
    
    \bsA \ \csA  \\    % Test des Outputs....
    \FPupn{\bsA}{\csA} % Zuweisung von Variablennamen zu Wert....
    
    \A    % Ausgabe und Test
    Resultat: Null, die Frage ist wieso?

    LG Goldnas

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Bitte liefere uns das nächste Mal ein lauffähiges Minimalbeispiel und nicht eine Anleitung, wie wir eins bauen sollen.
    Wenn ich nach deiner Anleitung vorgehe
    Code:
    \documentclass[]{scrartcl}
    \usepackage{fp}
    \usepackage{xstring}
    \begin{document}
    \StrRight{A|B|C}{128}[\bsA]
    \StrRight{-0.004|-0.005|0.006}{128}[\csA]
    % 
    \StrCount{\csA}{|}[\argcount] % Zähle Anzahl der Trennstriche (+1 = Anzahl der Variablen)
    \argcount \\ % Ausgabe
    
    \StrPosition{\csA}{|}[\first] % Finde den ersten Trennstrich
    \StrSplit{\csA}{\first}{\csA}{\csB} % Splitte die Variable
    \StrLen{\csA}[\cal] % Ermittle die Länge
       \FPupn{cal}{cal 1 - neg}    % Subtrahiere den Trennstrich
    \FPclip\cal\cal % Entferne unnötige Nullen (Ohne gehts nicht)
    \StrLeft{\csA}{\cal}[\csA] % Gebe den Variablenwert aus....
    
    \StrPosition{\bsA}{|}[\first] % Finde den ersten Trennstrich
    \StrSplit{\bsA}{\first}{\bsA}{\bsB}
    \StrLen{\bsA}[\bal]  
       \FPupn{bal}{bal 1 - neg}  
    \FPclip\bal\bal
        \StrLeft{\bsA}{\bal}[\bsA] % Gebe den Variablennamen aus....
    
    \bsA \ \csA  \\    % Test des Outputs....
    \FPupn{\bsA}{\csA} % Zuweisung von Variablennamen zu Wert....
    
    \A    % Ausgabe und Test
    \end{document}
    bekomme ich nämlich nicht das "Resultat Null", sondern eine Fehlermeldung:
    Code:
    Undefined control sequence \A

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Code:
    \documentclass[
    	12pt,						% Schriftgröße
    	DIV10,
    	paper=A4,					% Papierformat
    	final						% Status des Dokuments (final/draft)
    ]{scrreprt}
    
    \usepackage{scrpage2}
    \usepackage[ansinew]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage{datatool}
    \usepackage{xstring}
    \begin{document}
    
    % Angabe für eine Funktion beispielsweise \newcommand{\meincommando}[2]{\StrRight{#1}{128}[\bsA]\StrRight{#2}{128}[\CsA]}
    % Dient als Test ohne Command...
    % Angabe zweier Variablen....
    \StrRight{AA|B|C}{128}[\bsA]
    \StrRight{-0.004|-0.005|0.006}{128}[\csA]
    % 
    \StrCount{\csA}{|}[\argcount] % Zähle Anzahl der Trennstriche (+1 = Anzahl der Variablen)
    \argcount \\ % Ausgabe
    
    \StrPosition{\csA}{|}[\first] % Finde den ersten Trennstrich
    \StrSplit{\csA}{\first}{\csA}{\csB} % Splitte die Variable
    \StrLen{\csA}[\cal] % Ermittle die Länge
       \FPupn{cal}{cal 1 - neg}    % Subtrahiere den Trennstrich
    \FPclip\cal\cal % Entferne unnötige Nullen (Ohne gehts nicht)
    \StrLeft{\csA}{\cal}[\csA] % Gebe den Variablenwert aus....
    
    \StrPosition{\bsA}{|}[\first] % Finde den ersten Trennstrich
    \StrSplit{\bsA}{\first}{\bsA}{\bsB}
    \StrLen{\bsA}[\bal]  
       \FPupn{bal}{bal 1 - neg}  
    \FPclip\bal\bal
        \StrLeft{\bsA}{\bal}[\bsA] % Gebe den Variablennamen aus....
    
    \bsA \ \csA  \\    % Test des Outputs....
    \FPupn{\bsA}{\csA} % Zuweisung von Variablennamen zu Wert....
    
    \AA    % Ausgabe und Test
    %\numprint{\AA}
    
    \end{document}
    Jetzt aber... keine Fehlermeldung, kein Nulll

  4. #4
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Verstehe ich richtig, dass Du aus der Ausgabe aus Sequenz eins einen Befehl machen möchtest, der die entsprechende Position aus Sequenz zwei enthält?

    Ich würde vorschlagen, Dir mal die Möglichkeiten von expl3 anzuschauen. Damit ist es nämlich wirklich leicht:

    Code:
    \documentclass{article}
    
    \usepackage{expl3,xparse}
    \ExplSyntaxOn
    \NewDocumentCommand\newlist{m>{\SplitList{|}}m}
      {
        \seq_new:c { l_goldnas_#1_seq }
        \tl_map_inline:nn { #2 }
          { \seq_put_right:cn { l_goldnas_#1_seq } { ##1 } }
      }
    
    \NewDocumentCommand\assignlists{mm}
      { \goldnas_assignlists:nn { #1 } { #2 } }
    
    \cs_new:Npn \goldnas_assignlists:nn #1#2
      {
        \int_compare:nTF
          { \seq_count:c { l_goldnas_#1_seq } = \seq_count:c { l_goldnas_#2_seq }  }
          {
            \seq_set_eq:Nc \l_tmpa_seq { l_goldnas_#1_seq }
            \seq_set_eq:Nc \l_tmpb_seq { l_goldnas_#2_seq }
            \seq_map_inline:Nn \l_tmpa_seq
              {
                \seq_pop_left:NN \l_tmpb_seq \l_tmpa_tl
                \cs_if_exist:cTF { ##1 }
                  {
                    Sorry!~Command~\texttt{\textbackslash##1}~already~exists!~
                    Doing~nothing!
                    % oder ueberschreiben:
                    % \cs_set:cpx { ##1 } { \l_tmpa_tl }
                  }
                  { \cs_new:cpx { ##1 } { \l_tmpa_tl } }
              }
          }
          { Lists~don't~match!~Aborting... }
      }
    \ExplSyntaxOff
    
    \begin{document}
    
    \newlist{A}{A|B|C}
    \newlist{B}{-0.004|-0.005|0.006}
    \newlist{C}{w|x|y|z}
    \newlist{D}{1|2|3|4}
    
    \assignlists{A}{C}
    
    \assignlists{A}{B}
    A: $\A$, B: $\B$, C: $\C$
    
    \assignlists{C}{D}
    w: \w, x: \x, y: \y, z: \z
    
    \end{document}
    Grüße
    Clemens

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Ich bin unsicher, ob wir uns richtig verstehen.

    Ich möchte praktisch 2 Variablen haben, die als "Container" sowohl variablennamen als auch die dazugehörigen Werte transportiert...

    ich schicke also in die funktion die ich schreibe (x-beliebige)

    meinefunktion{A|B|C}{1|2|3} rein



    innerhalb dieser funktion kann ich dann mit dem zu verwendenden code

    \A aufrufen und erhalte 1
    \B aufrufen und erhalte 2
    \C aufrufen und erhalte 3

    ich habe also insgesamt in 2 variablen 3 variablen verpackt, wobei die anzahl variabel sein soll.

    es bleiben IMMER 2 inputvariablen, da mit variablennamen und dazugehörigen wert alles ausreichend definiert ist.

    darüberhinaus arbeite ich unter anderem mit pstricks, das da ebenfalls vorhanden ist... ich kann mich also nur noch sehr begrenzt bewegen, da auch keine writestreams mehr möglich zu sein scheinen.

    mein script, dass ich verwende meldet jetzt schon im ersten kompiliervorgang fehler, obwohl das script keine fehler aufweist, im zweiten rutsch geht der compilevorgang problemlos......

    ich gebe allerdings zu, dass schon exzessiv viel latex verwendet worden ist....

    konkret geht es mir darum, dass ich eine funktion geschrieben habe, die mir durch input einer csvdatei ein diagramm erstellt und es automatisch skaliert und berechnet, so dass es schön dargestellt werden. Derzeit habe ich in einer funktion 3 verscheidene diagramme, Warscheinlichkeits PLots und Screenplots, die sich automatisiert mit FP package anpassen.....


    ich hoffe, dass soweit klar ist, dass ich also diese funktion nur als hilfsfunktion brauche, um bestimmte varialbennamen eben an die Diagrammvariablen zu übergeben....

    Aufgrund der limitierungen kann ich leider das script nicht ausführen....

    lg Goldnas

  6. #6
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Wenn ich Dich richtig verstanden habe, dann sollte eine leicht modifizierte Variante das gewünschte sein:

    Code:
    \documentclass{article}
    
    \usepackage{expl3,xparse}
    \ExplSyntaxOn
    
    \cs_new:Npn \goldnas_assignlists:nn #1#2
      {
        \seq_set_split:Nno \l_tmpa_seq { | } { #1 }
        \seq_set_split:Nno \l_tmpb_seq { | } { #2 }
        \int_compare:nTF
          { \seq_count:N \l_tmpa_seq = \seq_count:N \l_tmpb_seq }
          {
            \seq_map_inline:Nn \l_tmpa_seq
              {
                \seq_pop_left:NN \l_tmpb_seq \l_tmpa_tl
                \cs_if_exist:cTF { ##1 }
                  {
                    Sorry!~Command~\texttt{\textbackslash##1}~already~exists!~
                    Doing~nothing!
                    % oder ueberschreiben:
                    % \cs_set:cpx { ##1 } { \l_tmpa_tl }
                  }
                  { \cs_new:cpx { ##1 } { \l_tmpa_tl } }
              }
          }
          { Lists~don't~match!~Aborting... }
        \seq_clear:N \l_tmpa_seq
        \seq_clear:N \l_tmpb_seq
      }
    \cs_generate_variant:Nn \seq_set_split:Nnn { Nno }
    
    \NewDocumentCommand\assignvalues{mm}
      { \goldnas_assignlists:nn { #1 } { #2 } }
    \ExplSyntaxOff
    
    \begin{document}
    
    \assignvalues{A|B|C}{-0.004|-0.005|0.006}
    A: $\A$, B: $\B$, C: $\C$
    
    \def\varA{w|x|y|z}
    \def\varB{1|2|3|4}
    \assignvalues{\varA}{\varB}
    w: \w, x: \x, y: \y, z: \z
    
    \end{document}


    Grüße
    Clemens

  7. #7
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Zitat Zitat von cgnieder Beitrag anzeigen
    Wenn ich Dich richtig verstanden habe, dann sollte eine leicht modifizierte Variante das gewünschte sein:

    Code:
    \documentclass{article}
    
    \usepackage{expl3,xparse}
    \ExplSyntaxOn
    
    \cs_new:Npn \goldnas_assignlists:nn #1#2
      {
        \seq_set_split:Nno \l_tmpa_seq { | } { #1 }
        \seq_set_split:Nno \l_tmpb_seq { | } { #2 }
        \int_compare:nTF
          { \seq_count:N \l_tmpa_seq = \seq_count:N \l_tmpb_seq }
          {
            \seq_map_inline:Nn \l_tmpa_seq
              {
                \seq_pop_left:NN \l_tmpb_seq \l_tmpa_tl
                \cs_if_exist:cTF { ##1 }
                  {
                    Sorry!~Command~\texttt{\textbackslash##1}~already~exists!~
                    Doing~nothing!
                    % oder ueberschreiben:
                    % \cs_set:cpx { ##1 } { \l_tmpa_tl }
                  }
                  { \cs_new:cpx { ##1 } { \l_tmpa_tl } }
              }
          }
          { Lists~don't~match!~Aborting... }
        \seq_clear:N \l_tmpa_seq
        \seq_clear:N \l_tmpb_seq
      }
    \cs_generate_variant:Nn \seq_set_split:Nnn { Nno }
    
    \NewDocumentCommand\assignvalues{mm}
      { \goldnas_assignlists:nn { #1 } { #2 } }
    \ExplSyntaxOff
    
    \begin{document}
    
    \assignvalues{A|B|C}{-0.004|-0.005|0.006}
    A: $\A$, B: $\B$, C: $\C$
    
    \def\varA{w|x|y|z}
    \def\varB{1|2|3|4}
    \assignvalues{\varA}{\varB}
    w: \w, x: \x, y: \y, z: \z
    
    \end{document}


    Grüße

    Prinzipiell hast du richtig verstanden, das Problem ist, er tut trotzdem nicht. Er bricht ab mit

    Code:
    ! Undefined control sequence.
    l.1342 \msg_kernel_new:nnnn
                                { xparse } { bad-arg-spec }
    The control sequence at the end of the top line
    of your error message was never \def'ed. If you have
    misspelled it (e.g., `\hobx'), type `I' and the correct
    spelling (e.g., `I\hbox'). Otherwise just continue,
    and I'll forget about whatever was undefined.
    LG Goldnas

  8. #8
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Dann ist wahrscheinlich Deine TeX-Distribution nicht aktuell. Wenn Du aktuelle Versionen von l3kernel und l3packages installierst, sollte alles glatt gehen.

    Hier als Alternative eine Variante, die ohne expl3 auskommt:

    Code:
    \documentclass{article}
    \usepackage{etoolbox}
    
    \makeatletter
    \def\ifinstr#1#2{%
      \def\@ifinstr##1#2##2\@nil{%
        \ifstrempty{##2}{\@secondoftwo}{\@firstoftwo}}%
      \@ifinstr#1\@@nil#2\@nil
    }
    
    \def\popleft#1#2{%
      \edef\@tmpa{#1}%
      \expandafter\@popleft\expandafter{\@tmpa}{#1}{#2}}
    \def\@popleft#1#2#3{%
      \ifinstr{#1}{|}
        {\@@popleft{#2}{#3}\q@nil#1\q@stop}
        {\@@popleft{#2}{#3}\q@nil#1|\q@stop}}
    \def\@@popleft#1#2\q@nil#3|#4\q@stop{\edef#1{#4}\edef#2{#3}}
    
    \newcommand*\assignvalues[2]{\@assignvalues{#1}{#2}}
    \def\@assignvalues#1#2{%
      \edef\@tmpb{#1}\edef\@tmpc{#2}%
      \popleft\@tmpb\currentvalueA
      \popleft\@tmpc\currentvalueB
      \csedef{\currentvalueA}{\currentvalueB}%
      \ifdefempty\@tmpb{}{\assignvalues\@tmpb\@tmpc}%
    }
    \makeatother
    
    \begin{document}
    
    \assignvalues{A|B|C}{-0.004|-0.005|0.006}
    A: $\A$, B: $\B$, C: $\C$
    
    \def\varA{w|x|y|z}
    \def\varB{1|2|3|4}
    \assignvalues{\varA}{\varB}
    w: \w, x: \x, y: \y, z: \z
    
    \end{document}
    Grüße
    Geändert von cgnieder (29-07-2012 um 00:26 Uhr)
    Clemens

  9. #9
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Hallo Clemens,

    funktioniert wunderbar, leider versteh ich den Code noch nicht so, wie ich möchte, denn ich hätte es jetzt noch erweitern wollen. (Du hast übrigens recht gehabt mit den Updates....)

    Ich hab die zweite Variante gewählt und das ist die, von der ich jetzt spreche...

    Beispielsweise das, was jetzt gemacht worden ist funktioniert perfekt. Kann man das erweitern, dass auch strings akzeptiert werden?


    Beispiel 1:

    \assignvalues{A|B|C}{1|2|3}

    Ergibt \A \B \C jeweils die werte, wie schon die funktion tut.

    Auf strings erweitert würde das so ausschaun....

    \assignvalues{A|B|C|D|E}{1|2|3|foo|bar}

    \D ergibt foo
    \E ergibt bar

    Leere strings sollen akzeptiert werden, damit ich dann innerhalb der Funktion abfragen kann, ob \D stringlength = 0 hat, je nachdem, obs null ist oder nicht kann ich damit sachen deaktiviern oder nicht,


    erlaubt ist daher auch
    \assignvalues{A|B|C|D|E}{1|2|3||}
    oder
    \assignvalues{A|B|C|D|E|F}{1|2|3||Messdaten/statistik/mfrout.dat}


    jetzt sind D und E leer.

    damit ich das machen kann müßte ich aber den code verstehen, kannst du mir das noch ein wenig kommentieren?

    LG Peter

    PS.: Da deine Funktion teil meiner Diagramme ist, die ich gern veröffentlichen würde, also die Makros, gebe ich deinen vollständigen Namen und die Quelle an, falls das ok für dich ist..

  10. #10
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Zitat Zitat von Goldnas Beitrag anzeigen
    funktioniert wunderbar, leider versteh ich den Code noch nicht so, wie ich möchte, denn ich hätte es jetzt noch erweitern wollen. (Du hast übrigens recht gehabt mit den Updates....)

    [...]

    Beispielsweise das, was jetzt gemacht worden ist funktioniert perfekt. Kann man das erweitern, dass auch strings akzeptiert werden?
    Hast Du's ausprobiert? Die Beispiele, die Du gebracht hast funktionieren nämlich mit dem jetzigen Code. Hier ist er nochmal, mit Kommentaren versehen, die Dir hoffentlich weiterhelfen.

    Code:
    \documentclass{article}
    \usepackage{etoolbox}
    
    \makeatletter
    % \ifinstr{#1}{#2}{}{}
    % testet, ob #2 in #1 enthalten ist, verwendet etoolbox's \ifstrempty
    \def\ifinstr#1#2{%
      \def\@ifinstr##1#2##2\@nil{%
        \ifstrempty{##2}{\@secondoftwo}{\@firstoftwo}}%
      \@ifinstr#1\@@nil#2\@nil
    }
    
    % den linken Eintrag einer mit | getrennten Liste erhalten:
    % Liste ist in #1 gespeichert, Eintrag wird in #2 gespeichert
    \def\popleft#1#2{%
      \edef\@tmpa{#1}%
      % den Umweg über \edef machen, damit später an \assignvalues
      % auch macros gefüttert werden können. Caveat: dürfen nur expandierbares
      % Material enthalten;
      \expandafter\@popleft\expandafter{\@tmpa}{#1}{#2}}
    
    % Zwischenstop: der letzte Eintrag ist in einer Liste ohne |:
    \def\@popleft#1#2#3{%
      \ifinstr{#1}{|}% wenn in eins ein | enthalten ist
        {\@@popleft{#2}{#3}\q@nil#1\q@stop}
        {\@@popleft{#2}{#3}\q@nil#1|\q@stop}}
    
    % das eigentliche wegpoppen:
    % #1: Name der ursprünglichen Liste, arg #1 von \popleft
    % #2: Name des Macros in das der das gepoppte Element gespeichert werden soll
    % #3: das linke Element der Liste
    % #4: der Rest der Liste
    %     #3|#4 werden mit arg #1 bzw #1| gefüttert in \@popleft 
    \def\@@popleft#1#2\q@nil#3|#4\q@stop{\edef#1{#4}\edef#2{#3}}
    
    % User-Befehl
    \newcommand*\assignvalues[2]{\@assignvalues{#1}{#2}}
    
    % interner Befehl:
    \def\@assignvalues#1#2{%
      % Beide Argumente in temporären Macros speichern:
      \edef\@tmpb{#1}\edef\@tmpc{#2}%
      % aus beiden Listen jeweils den linken Eintrag entfernen und speichern:
      \popleft\@tmpb\currentvalueA
      \popleft\@tmpc\currentvalueB
      % den Eintrag der ersten Liste in ein Macro umwandeln und den Wert der zweiten
      % Liste zuweisen, verwendet etoolbox's \csedef
      \csedef{\currentvalueA}{\currentvalueB}%
      % wenn die Liste jetzt leer ist, aufhören, ansonsten das ganze wiederholen,
      % verwendet etoolbox's \ifdefempty:
      \ifdefempty\@tmpb{}{\assignvalues\@tmpb\@tmpc}%
    }
    \makeatother
    
    \begin{document}
    
    \assignvalues{A|B|C|D|E}{1|2|3|foo|bar}
    A: \A, B: \B, C: \C, D: \D, E: \E
    
    \assignvalues{A|B|C|D|E}{1|2|3||}
    A: \A, B: \B, C: \C, D: \D, E: \E
    
    \assignvalues{A|B|C|D|E|F}{1|2|3||Messdaten/statistik/mfrout.dat}
    A: \A, B: \B, C: \C, D: \D, E: \E, F: \F
    
    \def\varA{w|x|y|z}
    \def\varB{1|2|3|4}
    \assignvalues{\varA}{\varB}
    w: \w, x: \x, y: \y, z: \z
    
    \end{document}
    Zitat Zitat von Goldnas Beitrag anzeigen
    Da deine Funktion teil meiner Diagramme ist, die ich gern veröffentlichen würde, also die Makros, gebe ich deinen vollständigen Namen und die Quelle an, falls das ok für dich ist..
    Wie Du möchtest. Wenn Dir wohler damit ist, würde ich den Code auch unter CC0 (d.h. public domain) stellen.


    Grüße
    Clemens

  11. #11
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Zitat Zitat von Goldnas Beitrag anzeigen
    Leere strings sollen akzeptiert werden, damit ich dann innerhalb der Funktion abfragen kann, ob \D stringlength = 0 hat, je nachdem, obs null ist oder nicht kann ich damit sachen deaktiviern oder nicht
    Da der Code sowieso schon etoolbox lädt: das stellt übrigens auch Makros zum Testen von Strings bereit, etwa \ifblank.

    Gruß
    Clemens

  12. #12
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Zitat Zitat von cgnieder Beitrag anzeigen
    Hast Du's ausprobiert? Die Beispiele, die Du gebracht hast funktionieren nämlich mit dem jetzigen Code. Hier ist er nochmal, mit Kommentaren versehen, die Dir hoffentlich weiterhelfen.
    Ich bin ein Depp, ich hab die Variable nicht aufgerufen...;( DU hast absolut recht....
    danke für die Kommentare...



    Zitat Zitat von cgnieder Beitrag anzeigen
    Wie Du möchtest. Wenn Dir wohler damit ist, würde ich den Code auch unter CC0 (d.h. public domain) stellen.

    Grüße

    Das wäre schön, ja danke.

    LG Goldnas

  13. #13
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Zitat Zitat von Goldnas Beitrag anzeigen
    Zitat Zitat von cgnieder
    Wenn Dir wohler damit ist, würde ich den Code auch unter CC0 (d.h. public domain) stellen.
    Das wäre schön, ja danke.
    Dann sei das hiermit geschehen.
    Clemens

  14. #14
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Zitat Zitat von cgnieder Beitrag anzeigen
    Dann sei das hiermit geschehen.
    Magst du dann mein fertiges Script für Diagramme haben?

    Es erfordert eben halt fp, datatool und etoolbox.

    Derzeit umfasst das Script:

    Die automatische Skalierung von Daten, welche als CSV File eingelesen wird. Einige Parameter müssen angegeben werden.

    • Anazhl der Gitternetzlinien horizontal
    • Anzahl der Gitteretzlinien vertikal
    • Beschriftungen
    • X-Wertebereich
    • Y-Wertebereich
    • Diagrammart
    • Ob die Regressionsgerade gerechnet werden soll oder nicht
    • Skalierungsfaktor optional.
    • Das Script ist unvollständig
    • Es wird eine kleine Doku dazu geben müssen
    • Ersatzbild
    • Leerdummy, damit nicht gerechnet wird, sondern nur der Platz "verbaut" fürs spätere setzen, welches dann deutlich länger dauert....


    Auf Basis dieser Daten wird das Diagramm automatisiert erstellt. Ein lästiges Umrechnen fällt flach.

    Aufgerufen wird das Zeug beispielsweise so....

    Code:
    \trfz{5}{Messdaten/statistik/wassergehaltaL.dat}{Messdaten/statistik/wassergehaltaout.dat}{Wassergehalt Rohstoff A}{nvlines|nhlines|lab|mbstartx|mbstepx|hilfsgitterlinien|altscale|yend|xend|yistart|sflag|rgg|bcaption|bottomdesc|leftdesc}{8|14|fig:WGnvA|75|25|15|1000|4.9|9|0|1|1|Wassergehalt Rohstoff A|Wassergehalt Rohstoff A|Prozent}{}{}{Bilder/minitab/WGnvA}
    Das Resultat sieht dann so aus....

    Ein Problem besteht in den Berechnungen noch, da ich aber derzeit nicht weiß, wie ich das manuell hinbekomme, muß ich bei statischen Daten 2 Inputfiles verwenden, leider...



    Die im Excel formulierte Funktion NORMINV(N12;MEAN;SD) schaffe ich nicht....
    Ich müßte zwar ebenfalls eine Liste an diese Funktion übergeben um die entsprechenden Werte zu ermitteln.... aber ich hab nicht mal ansatzweise einen Schimmer wie ich das bewerkstelligen soll....



    LG Goldnas
    Geändert von Goldnas (02-08-2012 um 22:08 Uhr) Grund: NORMINV

  15. #15
    Registrierter Benutzer
    Registriert seit
    26.08.2011
    Beiträge
    62
    Clemens? Dein Befehl ist super. Leider kommt er mit Text nicht zurecht, wenn ich folgendes mache....


    ...{bcaption}{Äußere}


    und später dann

    in einem Bild....


    \end{pspicture}
    \caption[Warscheinlichkeitsverteilung \protect\bcaption]{\space\protect\bcaption\space (AD)}
    \label{\lab}


    Er meldet dann immer....

    im lof file....

    \contentsline {figure}{\numberline {1.6}{\ignorespaces Wahrscheinlichkeitsplot Äu\T 1\ss ere Restfeuchte Rohstoff A}}{5}{figure.caption.9}

    er schreibt immer \T 1\ss ....(((

    Hast du da eine Idee?
    Beschäftigt sich mit hochdynamische Dokumente.
    * Automatische Skalierung verschiedener Diagramme
    * Automatische Umsetzung von iterativen Berechnungen.
    * Automatische Generierung von Content für Diagramme

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •