Ich habe zwei Linien mit Pfeilen der Form |<->|, die aneinander stoßen. Dadurch ist der mittlere kurze Strich doppelt so breit, wie die beiden äußeren. Gibt es in PSTricks eine Option oder eine andere Möglichkeit, mit der ich die beiden Linien an der Stelle jeweils um eine halbe Linienbreite, also 0.5\pslinewidth, verlängern lassen kann, so dass die beiden kurzen Striche aufeinander statt nebeneinander liegen?

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}[showgrid=true](5,3)
  \psline{|<->|}(0,0)(2,1)
  \psline{|<->|}(2,1)(4,2)
\end{pspicture}
\end{document}

Derzeitiges Resultat mit PSTricks:

alt text

Mit tikz kann ich das gewünschte Ergebnis über die Optionen shorten > und shorten < erreichen:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[thick]
  \draw[lightgray,dotted] grid(5,3);
  \draw[|<->|,shorten >=-0.5\pgflinewidth](0,0)--(2,1);
  \draw[|<->|,shorten <=-0.5\pgflinewidth](2,1)--(4,2);
\end{tikzpicture}
\end{document}

Gewünschtes Ergebnis, allerdings mit tikz statt PSTricks:

alt text

Allerdings suche ich in diesem Fall eine Lösung für PSTricks.

gefragt 29 Aug '13, 13:41

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

1

Ich habe auf TeX.sx für die TikZ-Pfeilenden |, [ und ] sowie die spezielle Kombination |< und |> mal neue Pfeilenden definiert, die ohne die shorten *-Option auskommen.

(30 Aug '13, 04:23) Qrrbrbirlbel

PSTricks bietet in diesem Fall die Pfeilenden |<* und >|* an. In deinem Fall bedeutet das also |<->|* bei der ersten und |<*->| bei der zweiten Linie:

\psline{|<->|*}(0,0)(2,1)
\psline{|<*->|}(2,1)(4,2)

Das Pfeilende | besitzt mit |* die gleiche Alternative.

Bei den Kreispfeilarten sieht das etwas anders aus, während o und oo für einen unausgefüllten Kreis steht, wird * und ** für einen ausgefüllten Kreis verwendet. Hierbei stehen die einfachen Versionen o und * für einen Kreis, dessen Zentrum auf dem Linienendpunkt liegt. Die doppelte Version oo bzw. ** wiederum berührt das Linienende nur.
Ähnliches gilt für das „Pfeilende“ c und cc (als Ersatz für eine Line-Cap-Einstellung). Außerdem gibt es noch C das die Linie schlicht um die halbe Liniendicke verlängert.

Im PSTricks-Manual ist das im Kapitel 15 „Arrowheads and such” auf den Seiten 27f. beschrieben. Man beachte hier allerdings, dass die Beschreibung für |<->| lückenhaft und |<*->|* fehlerhaft ist, da letzteres als „flush“ bezeichnet wird.

Auf semibyte.de gibt es dazu noch eine deutsche Übersicht („Pfeile und andere Linienendpunkte“), die sich an dem Manual orientiert (aber |<*->|* nicht erwähnt).

Code

\documentclass[pstricks, border=.5cm, convert=false]{standalone}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}[showgrid=true,linewidth=4pt](5,3)
  \psline{|<->|*}(0,0)(2,1)
  \psline{|<*->|}(2,1)(4,2)
\end{pspicture}

\begin{pspicture}[showgrid=true,linewidth=4pt](-1,-1)(6,6)
  % Linke Spalte
  \psline{|<->|}(0,5)(2,5)
  \psline  {|-|}(0,4)(2,4)
  \psline{**-**}(0,3)(2,3)
  \psline{oo-oo}(0,2)(2,2)
  \psline{cc-cc}(0,1)(2,1)
  \psline    {-}(0,0)(2,0)

  % Rechte Spalte
  \psline{|<*->|*}(3,5)(5,5)
  \psline  {|*-|*}(3,4)(5,4)
  \psline    {*-*}(3,3)(5,3)
  \psline    {o-o}(3,2)(5,2)
  \psline    {c-c}(3,1)(5,1)
  \psline    {C-C}(3,0)(5,0)
\end{pspicture}
\end{document}

Resultat

alt text

alt text

Permanenter link

beantwortet 30 Aug '13, 04:11

Qrrbrbirlbel's gravatar image

Qrrbrbirlbel
2.9k2815
Akzeptiert-Rate: 53%

bearbeitet 30 Aug '13, 11:37

Mache einfach eine der Linien länger:

 \psline[unit=1.01]{|<->|}(0,0)(2,1)
 \psline{|<->|}(2,1)(4,2)
Permanenter link

beantwortet 29 Aug '13, 20:41

Herbert's gravatar image

Herbert
5.1k34
Akzeptiert-Rate: 31%

@Herbert: Dann könnte ich auch besser bei einem der Pfeile den | weg lassen, aber das möchte ich nicht.

(30 Aug '13, 10:25) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×35
×30
×10

gestellte Frage: 29 Aug '13, 13:41

Frage wurde gesehen: 11,591 Mal

zuletzt geändert: 30 Aug '13, 11:37