Anzeige:
Ergebnis 1 bis 7 von 7

Thema: PSTricks - aneinander grezende Linien vereinen

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.05.2010
    Beiträge
    50

    PSTricks - aneinander grezende Linien vereinen

    Hallo,

    wie verhindert man, dass zum Beispiel in diesem Fall

    Code:
    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage{pstricks}
    \begin{document}
    
    \begin{pspicture}[showgrid=true](3,2)
      \psline{|<->|}(0,1)(1,1)
      \psline{|<->|}(1,1)(2,1)
    \end{pspicture}
    
    \end{document}
    bei (1,1) eine scheinbar doppelt so dicke Linie entsteht? Ich möchte dort eine zentrierte Linie, derselben Stärke, wie die Linien bei (0,1) und (2,1).

    Dasselbe Problem tritt bei angrenzenden Rechtecken, etc auf. Wäre an einer globalen Lösung sehr interessiert.

    Danke & Peace

    Frink
    Geändert von Prof. Frink (27-08-2013 um 18:03 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,

    für Rechtecke und andere geschlossene Pfade gibt es die Option dimen, mit der man einstellen kann, ob die angegebenen Koordinaten innen, außen oder in der Mitte der Linie liegen:

    Code:
    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage{pstricks}
    \begin{document}
    \begin{pspicture}[showgrid=true,dimen=middle](5,6)
      \psframe(0,1)(3,3)
      \psframe(3,2)(4,5)
    \end{pspicture}
    \end{document}
    Wie man das Problem mit den Strichen an den Pfeilenden lösen kann, weiß ich aber leider nicht. Die Linien müssten an dem Punkt jeweils um 0.5\pslinewidth verlängert werden, damit die kurzen Striche übereinander statt nebeneinander liegen.

    Gruß
    Elke

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.05.2010
    Beiträge
    50
    Hey,

    danke schon mal, für geschlossene Linienzüge funktioniert es, aber für mein Arrows-Beispiel ist wohl doch noch eine andere Lösung notwendig.

    Die Linien müssten an dem Punkt jeweils um 0.5\pslinewidth verlängert werden, damit die kurzen Striche übereinander statt nebeneinander liegen.
    Genau, im Prinzip will ich im unteren Code Bild 1 + Option soll Bild 2 ergeben, allerdings unabhängig von irgendwelchen konkreten Liniendicken etc., wie es hier noch der Fall ist.

    Code:
    \documentclass{minimal}
    \usepackage[utf8]{inputenc}
    \usepackage{pstricks}
    \begin{document}
    
    
    \begin{pspicture}[showgrid=true](2,2)
      \psset{linewidth=2pt}
      \psline{|<->|}(0,1)(1,1)
      \psline{|<->|}(1,1)(2,1)
    \end{pspicture}
    \\
    \begin{pspicture}[showgrid=true](2,2)
      \psset{linewidth=2pt}
      \psline{|<->|}(0,1)(1.03528 ,1)
      \psline{|<->|}(0.96472 ,1)(2,1)
    \end{pspicture}
    
    \end{document}
    Ich habe ein bisschen versucht, das intern ausrechnen zu lassen, aber soetwas ist in LaTeX ja meist ziemlich nervig und hat auch nicht funktioniert.

    Vielleicht kennt ja noch jemand eine einfachere Lösung...

    Danke & Grüße

    Frink
    Geändert von Prof. Frink (29-08-2013 um 14:06 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Falls du tikz verwenden kannst, dort gibt es eine solche Option:

    Code:
    \documentclass{minimal}
    \usepackage[utf8]{inputenc}
    \usepackage{tikz}
    \begin{document}
    \begin{tikzpicture}[line width=2pt]
      \draw[lightgray,dotted] grid(2,2);
      \draw[|<->|,shorten >=-0.5\pgflinewidth](0,1)--(1,1);
      \draw[|<->|,shorten <=-0.5\pgflinewidth](1,1)--(2,1);
    \end{tikzpicture}
    
    \vspace{1cm}
    \begin{tikzpicture}[line width=2pt]
      \draw[lightgray,dotted] grid(4,5);
      \draw(0,0)rectangle(3,3);
      \draw(3,2)rectangle(4,5);
    \end{tikzpicture}
    \end{document}
    Bezüglich PSTricks habe ich jetzt eine ähnliche Frage, allerdings mit schrägen Pfeilen, auf www.texwelt.de gestellt.
    Gruß
    Elke

  5. #5
    Registrierter Benutzer
    Registriert seit
    01.05.2010
    Beiträge
    50
    Hey,

    danke für den Hinweis, aber die Abbildung ist schon fertig in PSTricks, ich will sie jetzt nicht nur deswegen übersetzen und dann vielleicht noch festellen, dass es andere Probleme gibt. Es stört mich auch nicht so sehr, bzw. ich gebe dann einfach von Hand die errechneten, gewünschten Werte, wie oben an. Im konkreten Fall ist das für mich hinlänglich, aber für die Zukunft und für andere ist die Frage natürlich weiterhin von Interesse.

    Viele Grüße

    Frink

  6. #6
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Auf www.texwelt.de wurde die Frage jetzt von Qrbrrbirlbel beantwortet. Es geht ganz einfach mit |<* bzw. >|*

    Code:
    \begin{pspicture}[showgrid=true](2,2)
      \psset{linewidth=2pt}
      \psline{|<->|*}(0,1)(1 ,1)
      \psline{|<*->|}(1 ,1)(2,1)
    \end{pspicture}
    Gruß
    Elke

  7. #7
    Registrierter Benutzer
    Registriert seit
    01.05.2010
    Beiträge
    50
    Super, danke. Das ist einer dieser Fälle, bei denen man genau weiß, dass es so eine Option einfach geben muss (aber sie erstmal nicht findet).
    Vielen Dank jedenfalls für deine Hilfe.

    Grüße

    Frink

Lesezeichen

Berechtigungen

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