Anzeige:
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 41

Thema: Das cross aus den Laws of Form (Zeichen/Operator)

  1. #1
    Registrierter Benutzer Avatar von Phylax
    Registriert seit
    09.06.2008
    Beiträge
    26

    Das cross aus den Laws of Form (Zeichen/Operator)

    Servus miteinander,

    Ich verfasse derzeit meine Magisterarbeit (Philosophie) in LaTeX und benötige für die Darstellung eines meiner Hauptautoren ein ganz bestimmtes "Zeichen", das in keinem mir bekannten Paket vordefiniert zu sein scheint: Das sogenannte "cross" aus den "Laws of Form" von George Spencer Brown

    Dabei handelt es sich um eine Art linksgerichteten "haken", der die unter ihm befindlichen Objekte überspannen muss (siehe Grafik im Anhang).

    Ich habe folgendes Skript gefunden, kenne mich aber mit den darin vorkommenden TeX-Primitiven nicht aus:

    Code:
     
    \newcommand{\cross}[1]{
    \mbox{\vbox{\kern 1pt\hbox{\vbox{\hrule
    \kern 2pt\hbox{#1\kern 2pt}}\vrule\kern 1pt}}}}
    Außerdem habe ich mir ein leeres cross ganz einfach mit TikZ zusammengebastelt:

    Code:
    \newcommand{\crosse}{\mbox{\tikz \draw (0em,0em) -- (0em,1em) -- (-1em,1em);}}
    Damit lassen sich Konstrukte wie im angehängten PDF erkennbar erzeugen. In der Sache kann ich damit zwar alles ausdrücken, was zur Theorie gehört, nur ist das Erscheinungsbild im Detail nicht unbedingt berauschend:

    1. Die horizontalen Linien enden nicht bündig
    2. Die Höhe der horizontalen Linien orientiert sich ausschließlich an dem, was unter ihr enthalten ist. Schöner wäre eine Art "Normierung", die sich am jeweils höchsten Inhalt der selben Ebene misst (Was ich meine wird wohl am besten durch die Differenz zwischen dem Original und dem LaTeX-PDF erkennbar. Der horizontale Strich sollte über einem a nicht niedriger sein als über einem b)


    Ich kann mit dem bisherigen Ergebnis leben, aber LaTeX macht einen nunmal sehr schnell zum Ästheten. Daher bin ich für jeden Verbesserungvorschlag dankbar. (Vielleicht kann man das ganze ja mit TikZ automatisieren?)


    beste Grüße und Dank im Voraus

    Phylax
    Geändert von Phylax (08-12-2009 um 02:34 Uhr)

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Phylax Beitrag anzeigen
    1. Die horizontalen Linien enden nicht bündig
    2. Die Höhe der horizontalen Linien orientiert sich ausschließlich an dem, was unter ihr enthalten ist. Schöner wäre eine Art "Normierung", die sich am jeweils höchsten Inhalt der selben Ebene misst (Was ich meine wird wohl am besten durch die Differenz zwischen dem Original und dem LaTeX-PDF erkennbar. Der horizontale Strich sollte über einem a nicht niedriger sein als über einem b)
    zu 1)
    Code:
     
    \newcommand{\cross}[1]{
    \mbox{\vbox{\kern 1pt\hbox{\vbox{\hrule
    \kern 2pt\hbox{#1\kern 2pt}}\vrule\kern 1pt}}}}
    an der hier rot hervorgehobenen Klammer fügst Du durch den Beginn einer neuen Zeile ein Leerzeichen ein, ein % sollte hier Wunder wirken.

    zu 2)
    \vphantom{b} vor #1

    also etwa
    Code:
    \documentclass{article}
    \usepackage{amsmath}
    \newcommand{\cross}[1]{%
    \mbox{\vbox{\kern 1pt\hbox{\vbox{\hrule
    \kern 2pt\hbox{\ensuremath{\vphantom{b}#1}\kern 2pt}}\vrule\kern 1pt}}}\,}
    \begin{document}
    \begin{align*}
    &\cross{\cross{\cross{a}b}c}\\
    &=\cross{\cross{\cross{a}\cross{\cross{b}}}c}\\
    &=\cross{\cross{\cross{ac}\cross{\cross{b}c}}}\\
    &=\cross{ac} \cross{\cross{b}c}
    \end{align*}
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    kallimalli
    Gast

    Spencer Brown im Mediawiki

    Hi Rais und Phylax,

    das sieht wirklich super aus, leider bestehen die Crosses aus Konstrukten, die mimeTex nicht erkennt und die m.E. wegen \newcommand für die Verwendung im mediaWiki nicht zu verwenden sind.

    Hättet Ihr da einen Tip, wie man mediaWiki und die Brownsche Notation in TeX kombinieren kann?

    Schönen Gruß!

    Karl
    Geändert von kallimalli (11-12-2009 um 21:56 Uhr)

  4. #4
    Registrierter Benutzer Avatar von Phylax
    Registriert seit
    09.06.2008
    Beiträge
    26
    Hier ist mal ein riesen Dankeschön fällig! Dank Deiner Lösung, rais, schaut es nun wunderbar aus, und ich habe sogar einen weiteren Befehl (\vphantom) kennen gelernt, der auch in anderen Zusammenhängen nützlich sein mag.

    Vielen Dank nochmal

    @kallimalli

    Ich meinerseits habe da leider keine besondere Idee. Wenn ausschließlich \newcommand das Problem ist, könntest du versuchen, den Befehl jedes Mal auszuschreiben. Allerdings scheint es mir da einfacher, Vektorgrafiken mit einem anderen Programm zu erzeugen.


    beste Grüße

    Phylax

  5. #5
    kallimalli
    Gast
    Hi Phylax und Rais,

    auf meiner Suche nach einer Umsetzung der Spencer Brownschen Notation in TeX habe ich unter anderem Prof. Michael Kohlhase von der Jakobs Universität Bremen (http://de.wikipedia.org/wiki/Michael_Kohlhase) angeschrieben, der selbst passen musste, sich aber für die Lösung interessierte. Eure Version habe ich ihm mit Quellenangabe geschickt und er meinte, man sollte dies doch auf CTAN verfügbar machen, hat falls notwendig seine Unterstützung angeboten.

    Da das Interesse an Spencer Brown doch größer ist, als man so denkt, wäre es wirklich schön, wenn man den Interessierten die Möglichkeit bieten würde, die Brownschen Crosses auf komfortablere Weise als mit einem Graphikprogramm zu erzeugen.

    Wenn einer von Euch Lust dazu hat, dann wäre das super, ich bemühe mich um eine praktikable Lösung die Notation im mediaWiki zu realisieren, wenn´s zum umständlich ist (mit mimeTex geht es nicht, mit mathTex werde ich´s noch versuchen), dann kann ich eine Tabelle in TeX mit den Ausdrücken der LoF liefern, inklusive Zip-File mit mehr oder weniger liebevoll ausgeschnittenen PNGs, für diejenigen, die kein TeX installieren wollen. Auch an der Ausarbeitung der Doku würde ich mich beteiligen, bzw. sie übernehmen.

    Wenn keiner von Euch Lust und Zeit dafür hat, dann würde ich die Veröffentlichung übernehmen, Ihr müsst mir nur schreiben, in welcher Form Ihr erwähnt werden wollt (oder auf keinen Fall, um nicht ständig mit TeX-Problemen belästigt zu werden).

    mfG

    Karl Prinz alias kallimalli

  6. #6
    Registrierter Benutzer
    Registriert seit
    28.02.2011
    Beiträge
    2

    Re-Entry

    Hallo zusammen,

    die Darstellung des Cross funktioniert wunderbar. Allerdings suche ich jetzt nach einer Möglichkeit auch den Reentry darzustellen.

    Gibt es da schon Ideen?

    VG

    Torsten

  7. #7
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo und Herzlich Willkommen
    Zitat Zitat von LoF Beitrag anzeigen
    die Darstellung des Cross funktioniert wunderbar. Allerdings suche ich jetzt nach einer Möglichkeit auch den Reentry darzustellen.

    Gibt es da schon Ideen?
    meinst Du sowas:
    Code:
    \documentclass{article}
    \newcommand*\cross[1]{%
    \mbox{\vbox{\kern 1pt\hbox{\vbox{\hrule
    \kern 2pt\hbox{\ensuremath{\vphantom{b}#1}\kern 2pt}}\vrule\kern 1pt}}}\,}
    \newcommand*\reentry{%
      \cross{\kern0.5em\rule{0.4pt}{1ex}\rule{0.5em}{0.4pt}\kern-2pt}%
    }
    \newcommand*\bigreentry{%
      \cross{\cross{\cross{\cross{\cross{\cross{\cdots}}}}}}%
    }
    \begin{document}
    \bigreentry, \reentry
    \end{document}
    ?

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  8. #8
    Registrierter Benutzer Avatar von Phylax
    Registriert seit
    09.06.2008
    Beiträge
    26

    Tikz als Lückenbüßer

    Servus,

    es freut mich sehr, dass die hier entwickelte Lösung auch anderen nützt. Für das Problem des re-entry habe ich bislang auch keine Lösung gefunden die eben so flexibel wäre wie das cross-script. In meiner Magisterarbeit habe ich mir für die wenigen (!) Fälle, in denen ich einen re-entry schreiben musste, mit Tikz beholfen. Das ist zwar umständlich, für mich aber im Ergebnis zufriedenstellend. Folgendes Minimalbeispiel sollte lauffähig sein (funktioniert aufgrund der Verwendung von Tikz freilich nur mit pdftex; fertiges PDF ist angehängt) :

    Code:
    	\documentclass[pdftex]{scrartcl}
    	\usepackage[utf8]{inputenc}
    	\usepackage[T1]{fontenc}
    
            \usepackage{tikz}%PGF Format benutzen
      
    
    
            \newcommand{\cross}[1]{%
    \mbox{\vbox{\kern 1pt\hbox{\vbox{\hrule
    \kern 2pt\hbox{\ensuremath{\vphantom{b}#1}\kern 2pt}}\vrule\kern 1pt}}}\,}
    
    
    \begin{document}
    
    
    
    So wie in
        einer Arithmetik der komplexen Zahlen $i$ für $\sqrt{-1}$ steht, so
        schreibt Spencer Brown an Stelle von \arrangement{\cross{\cross{\ldots}}}
        den Ausdruck \tikz[scale=.4] \draw (0,0) -- (1,0) -- (1,-1) -- (0,-1) --
        (0,-0.3);; Dieser aber ist nicht etwa nur ein unflexibles Etikett, sondern
        erlaubt es, Selbstbezüglichkeiten ganz verschiedener Art zu
        beschreiben. So kann etwa das unendliche Echelon, dessen Variablen noch nicht mit konkreten
        Werten belegt wurden, durch folgendes Konstrukt beschrieben werden:  
    \raisebox{-.3em}{\begin{tikzpicture}[scale=.4] \path (0.5,-.6) node (Ida)
            {a}; \path (1.5,-.5) node (Eda) {b}; \draw (0,0) -- (2,0) -- (2,-1) --
            (.1,-1) -- (.1,-0.4) (0,-.2) -- (1,-.2) -- (1,-.8);
    \end{tikzpicture}}.
    
    \end{document}
    Hoffe, das hilft fürs erste. Grundlegendere Lösungen wären allerdings herzlich willkommen.


    @ Rais

    Falls Du Dich näher mit der Materie beschäftigen willst (du scheinst dich ja mit der Kinstruktion solcher Skripte ganz gut auszukennen): Man müsste bei einer "flexiblen" Lösung bestimmen können, wo genau der "Haken" von unten wieder in die Formel eintritt (siehe den letzten Ausdruck im PDF). Ich vermute, dass das doch um einiges komplizierter wäre als das cross-script. Wenn Du aber eine Idee hast, dann immer her damit. Wäre eine feine Sache.

    Grüße an Alle

  9. #9
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Phylax Beitrag anzeigen
    Folgendes Minimalbeispiel sollte lauffähig sein
    nicht ganz, dazu fehlt die Definition von `\arrangement'
    Zitat Zitat von Phylax Beitrag anzeigen
    Man müsste bei einer "flexiblen" Lösung bestimmen können, wo genau der "Haken" von unten wieder in die Formel eintritt (siehe den letzten Ausdruck im PDF). Ich vermute, dass das doch um einiges komplizierter wäre als das cross-script. Wenn Du aber eine Idee hast, dann immer her damit. Wäre eine feine Sache.
    Idee:
    Code:
    \documentclass{article}
    \parskip=3ex
    \newcommand*\crosstr[1]{%
      \mbox{%
        \vbox{%
          \kern 1pt
          \hbox{%
            \vbox{%
              \hrule
              \kern 2pt
              \hbox{%
                \ensuremath{\vphantom{b}#1}%
                \kern 2pt
              }%
            }%
            \vrule
            \kern 1pt
          }%
        }%
      }%
    }
    \newcommand*\crossstr[1]{%
      \mbox{%
        \vbox{%
          \kern 1pt
          \hbox{%
            \vbox{%
              \hrule
              \kern 2pt
              \hbox{%
                \ensuremath{\vphantom{b}#1}%
              }%
            }%
            \vrule
            \kern 1pt
          }%
        }%
      }%
    }
    \newcommand*\crosssbl[1]{%
      \mbox{%
        \vbox{%
          \kern 1pt
          \hbox{%
            \vrule
            \vbox{%
              \hbox{%
                \ensuremath{\vphantom{b}#1}%
              }%
              \kern 2pt
              \hrule
            }%
          }%
        }%
      }%
    }
    \newcommand*\crosswbl[1]{%
      \mbox{%
        \vbox{%
          \hbox{%
            \vrule
            \vbox{%
              \hbox{%
                \kern 2pt
                \ensuremath{\vphantom{b}#1}%
                \kern 2pt
              }%
              \kern 2pt
              \hrule
            }%
          }%
        }%
      }%
    }
    \newcommand*\reentry[2]{%
      \crossstr{%
        \ifx\relax#1\relax
        \else
          #1\,
        \fi
        \crosswbl{#2}%
      }%
    }
    \begin{document}
    \reentry{}{a}
    
    \reentry{}{ab}
    
    \reentry{a}{b}
    
    \reentry{\crosstr{a}}{b}
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  10. #10
    Registrierter Benutzer
    Registriert seit
    28.02.2011
    Beiträge
    2

    Danke

    Guten Morgen Rais und Phylax!

    Eure Ideen haben mir sehr geholfen und das Ergebnis ist vollkommen ausreichend für meine Arbeit.

    Vielleicht sollte man ein LoF-Package anregen ;-)

    VG

    Torsten

  11. #11
    Registrierter Benutzer
    Registriert seit
    24.11.2011
    Beiträge
    8
    Liebe Diskutierende,

    vielen Dank für die umfangreiche Vorarbeit. Ich verfolge diesen Thread auch schon seit geraumer Zeit stumm. Es steht aber eine größere Arbeit an und ich habe bisher keine angemessene Alternative zu Euren Vorschlägen entdecken können; um genau zu sein habe ich gar keine Alternative zu LaTeX gefunden (und werde mich dementsprechend wohl in den Code einlesen müssen).

    Der oben von Rais angeführte Vorschlag sieht sehr gut aus. Das Problem: Der Re-Entry müsste die gesamte Unterscheidung umfassen (also auch das erste Cross). Ist das irgendwie möglich?

  12. #12
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo und Herzlich Willkommen unter den Aktiven
    Zitat Zitat von Jacobo Belbo Beitrag anzeigen
    Der Re-Entry müsste die gesamte Unterscheidung umfassen (also auch das erste Cross). Ist das irgendwie möglich?
    so ich Dich richtig verstehe, brauchst Du das Cross nur mit in die zweite Klammer zu schieben, vergleiche dazu auch in der Ausgabe \reentry{a}{b} mit \reentry{}{ab} und vllt auch gleich \reentry{\phantom{ab}}{ab}, falls Du den Haken unten eher mittig haben willst.

    Ansonsten skizziere vllt, was genau Du zu erreichen versuchst.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  13. #13
    Registrierter Benutzer
    Registriert seit
    24.11.2011
    Beiträge
    8
    @Rais:

    Danke für die Nachfrage. Ich dachte an sowas:

  14. #14
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Jacobo Belbo Beitrag anzeigen
    @Rais:

    Danke für die Nachfrage. Ich dachte an sowas:
    ah, dann soll die horizontale Linie vom Cross mit der vom Reentry linksbündig (über dem `Haken') sein?
    Neuer Ansatz -- hier hab ich auch gleich versucht, den Inhalt vom \ReEntry auf der Grundlinie zu lassen;-)
    Code:
    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[ngerman]{babel}
    \usepackage{amsmath}
    \parskip=3ex
    \newcommand*\crosstr[1]{%
      \mbox{%
        \vbox{%
          \kern 1pt
          \hbox{%
            \vbox{%
              \hrule
              \kern 2pt
              \hbox{%
                \ensuremath{\vphantom{b}#1}%
                \kern 2pt
              }%
            }%
            \vrule
            \kern 1pt
          }%
        }%
      }%
    }
    \newcommand*\ReEntry[1]{%
      \raisebox{-2pt}{%
        \mbox{%
          \hbox{%
            \vrule height 5pt
            \kern-0.4pt
            \vbox{%
              \hrule
              \kern2pt
              \hbox{%
                \ensuremath{#1}%
                \kern2pt
              }%
              \kern 2pt
              \hrule height 0pt depth 0.4pt
            }%
            \vrule
          }%
        }%
      }%
    }
    \begin{document}
    a\ReEntry{\crosstr{\kern2pt\text{Referenzierbarkeit}}\,\text{Arbitrarität}}b
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  15. #15
    Registrierter Benutzer
    Registriert seit
    24.11.2011
    Beiträge
    8
    Zitat Zitat von rais Beitrag anzeigen
    Neuer Ansatz -- hier hab ich auch gleich versucht, den Inhalt vom \ReEntry auf der Grundlinie zu lassen;-)
    Klasse! Vielen Dank!

Lesezeichen

Berechtigungen

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