PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pstricks: circlenode durchstreichen



Spindoctor
17-05-2008, 00:05
Hallo!

Dank Herberts Hilfe (http://www.mrunix.de/forums/showthread.php?t=58682), hab ich es letztendlich geschafft, mir kleine Makros für pstricks-Objekte zu definieren, die ich immer wieder brauche.

Jetzt fehlt mir nur noch ein Befehl für durchgestrichene Knoten.

Hier das Problem als Minimalbeispiel dargestellt
Minimalbeispiel

%
% Durchgestrichener circlenode
%

\documentclass[a4paper,oneside]{scrartcl}

\usepackage{pstricks-add}
\usepackage{pst-pdf}

\begin{document}

\begin{pspicture}(0,0)(10,8)

\rput(5,6){So sieht mein circlenode aus ~\circlenode[linewidth=2pt]{A}{A}}

\rput(5,4){Erster Versuch des durchgestrichenen circlenodes ~\psset{linewidth=2pt,unit=1em}\pspicture(1,1)\cir clenode[linewidth=2pt]{B}{B}\psline(0,0)(1,1)\psline(0,1)(1,0)\endpspict ure}

\rput(5,2){Deshalb anders ~\psset{linewidth=2pt,unit=1em}\pspicture(1,1)\cno deput[linewidth=2pt](0.5,0.5){C}{C}\psline(0,0)(1,1)\psline(0,1)(1,0)\ endpspicture}

\end{pspicture}

\end{document}Beim letzten Beispiel stimmt die Grundlinie allerdings nicht mehr überein. Das "C" ist etwas zu hoch.

Nachdem man mit pstricks ja fast alles machen kann, sollte das doch auch in den Griff zu bekommen sein, oder? :D

Danke schon jetzt,

Spin

Spindoctor
17-05-2008, 00:23
eine Lösung ist die Korrektur mit raisebox, wie ich herausgefunden habe. Ist es die beste?

voss
17-05-2008, 08:04
Jetzt fehlt mir nur noch ein Befehl für durchgestrichene Knoten.

Hier das Problem als Minimalbeispiel dargestellt
Minimalbeispiel

%
% Durchgestrichener circlenode
%
\documentclass[a4paper,oneside]{scrartcl}
\usepackage{pstricks-add}
\usepackage{pst-pdf}

\begin{document}
\begin{pspicture}(0,0)(10,8)
\rput(5,6){So sieht mein circlenode aus ~\circlenode[linewidth=2pt]{A}{A}}
\psdot[dotstyle=BoldMul,dotscale=4](A)
\rput(5,4){Erster Versuch des durchgestrichenen circlenodes ~\psset{linewidth=2pt,unit=1em}\pspicture(1,1)\cir clenode[linewidth=2pt]{B}{B}\psline(0,0)(1,1)\psline(0,1)(1,0)\endpspict ure}
\rput(5,2){Deshalb anders ~\psset{linewidth=2pt,unit=1em}\pspicture(1,1)\cno deput[linewidth=2pt](0.5,0.5){C}{C}\psline(0,0)(1,1)\psline(0,1)(1,0)\ endpspicture}
\end{pspicture}

\end{document}

Für sowas einfach mit \psdot arbeiten.

Herbert

Spindoctor
17-05-2008, 11:54
Wow.

Das ist Programmier-technisch ganz schön elegant.

Man muss nur mal drauf kommen!

Spindoctor
17-05-2008, 12:37
Gibt es eigentlich eine Möglichkeit, das daraus resultierende Kreuz über dem Kreis etwas schmaler zu machen?

Man kann nämlich den Buchstaben kaum noch lesen...

Am besten wäre es, wenn die "linewidth" vom psdot genauso dick ist wie die Aussenwand des Kreises.

Danke...

[edit]
Natürlich kann ich statt Boldmul einfach Mul verwenden.
Aber kann ich auch irgendwie zugriff auf die linewidth des Punktes bekommen?
[\edit]

Spindoctor
17-05-2008, 15:10
Habs anders gelöst:

\makeatletter
\def\KrDnode(#1,#2)#3{%
\begingroup{%
\SpecialCoor
\begin{psclip}{\cnodeput[linewidth=2pt](#1,#2){#3}{\huge{\textbf{#3}}}}
\psline[linewidth=2pt]([angle=45]#3)([angle=-135]#3)
\psline[linewidth=2pt]([angle=-45]#3)([angle=135]#3)
\end{psclip}
}\endgroup%
}
\makeatother