5
1

Zu meiner Frage nach einem Kreis durch einen bestimmten Punkt, wo das Zentrum bekannt war, gab es ja eine elegante Lösung mit der through library.

Nun möchte ich nun einen Kreisbogen zwischen zwei vorgegebenen Punkten zeichnen, also von einem Punkt zum nächsten, mit vorgegebenem Radius. Wie kann man das machen? Im Handbuch fand ich die arc-Pfadoperation mit Vorgabe von Winkeln: Startwinkel, Endwinkel und Differenzwinkel (x- und y-Radius bekannt).

gefragt 27 Aug '13, 09:26

Felix's gravatar image

Felix
1.3k225366
Akzeptiert: 89%

bearbeitet 21 Jun, 11:44

saputello's gravatar image

saputello
18.4k22352


arc

Der arc-Path-Operator von TikZ ist bekanntermaßen etwas unflexibel, da er – abgesehen von den Radien – nur mit Start-, End- und Delta-Winkeln etwas anfangen kann.

\pgfpatharcto

PGF selbst bietet da noch etwas mehr, hier passt das Macro \pgfpatharcto, das im PGF manual auf Seite 892 geklärt wird. Neben den Radien (#1, #2) benötigt man noch die Rotation #3 sowie zwei Flags (#4, #5) und den Zielpunkt #6. Die Rotation ist nur relevant, falls man unterschiedliche Radien verwendet (nicht am Rad drehen ;)).

Flags und Rotation

Die Flags sind aber selbst im einfachen Fall relevant, da man für einen gegeben Radius vier Kreisbögen konstruieren kann, die an einem Punkt starten und an einem anderen Punkt enden, nämlich linksrum/rechtsrum (das ist der counterclockwise flag, #5) und innenrum/außenrum (large arc flac, #4). Da TikZ mathematisch positiv immer gegen den Uhrzeigersinn rechnet, habe ich dementsprechend auch den Key arc ccw mit 1 initialisiert; da man vermutlich eher an den inneren Kreisbogen denkt, wird arc large mit 0 initialisiert.

Ungenauigkeit

Eine kleine Warnung, die ich aus dem Manual zitieren möchte, vorweg (Überstzung von mir):

Warning: The internal computations necessary for this command are numerically very unstable. In particular, the arc will not always really end at the <target coordinate>, but may be off by up to several points. A more precise positioning is currently infeasible due to TeX’s numerical weaknesses. The only case it works quite nicely is when the resulting angle is a multiple of 90°.


Achtung: Die internen Berechnungen, die für diesen Befehl nötig sind, sind numerisch instabil. Im Besonderen wird der Bogen nicht immer wirklich am spezifierten Endpunkt enden, sondern um einige Punkte daneben liegen. Eine präzisere Positionierung ist derzeit aufgrund TeX’s numerischer Schwäche nicht erreichbar. Der einzige Fall, bei dem das sehr gut funktioniert, ist, wenn der Winkel ein Vielfaches von 90 Grad ist.

Implementation

Beachte auch bitte meine Implementierung eher als Proof-of-Concept.

Ich habe mich dazu entschlossen, nicht den bereits vorhandenen arc-Path-Operator neu zu definieren, weil der Code dann auch noch unterscheiden muss zwischen dem klassichen Bogen mit den * angle-Optionen und dem hier benutzten. (Ja, theoretisch sind natürlich Kombination wie „der Startwinkel, der Radius und der Endpunkt”, aber das kann eben keiner von beiden ausrechnen.)

Es ist quasi ein komplett unabhängiger Path-Operator, der statt arc eben arc to heißt (arcto ginge auch); er verwendet eben falls die Keys radius, x radius und y radius sowie den eventuell definierten every arc-Style.

Nodes als Ziel

Falls man eine Node als Endpunkt auswählt und von dort eine Linie weiter zeichnen will, also zum Beispiel

\node (B) {Bogen-Ziel};
\draw (a) arc to[] (B) -- (a);

startet die Linie nicht am Zentrum von B (wo der Bogen endet), sondern dort wo er auch bei (B) -- (a) starten würde. Dies ist durch die Zeilen

\iftikz@shapeborder
  \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\fi

sichergestellt. (Das ist in meinem Beispiel im Prinzip auch der Fall, aber da es eh eine coordinate ist, ist das nicht von Relevanz.)

Timer

In allen Version bis auf der 2.10-cvs-Version wird als Ersatz der Timer der Linie -- verwendet. Bei der CVS-Version wird auf den Timer des arcs zurückgegriffen, wobei ich hier aber ordentlich geschummelt habe und die notwendigen Werte aus dem Scratch-Macro \pgf@marshal herausgeholt, die zu meinem Glück auch noch die richtigen sind. :D

Koordinaten-Systeme

Des Weiteren wird in PGF/TikZ zwischen Canvas-Koordinaten (mit Einheiten) und xy-Koordinaten (ohne Einheiten) unterschieden. Wenn ich das richtig sehe, versteht \pgfpatharcto nur Canvas-Koordinaten.

Ich habe mir erlaubt, einheitslose Radiusangaben ins xy-System zu schmeißen und die Längen der Basisvektoren als Radien für \pgfpatharcto zu verwenden. Das wird so oder so ähnlich auch an anderen Stellen verwendet, wobei dann aber direkt auf passendere PGF-Macros zurückgegriffen wird. Solange du allerdings das xy-System nicht in Relation zum Canvas-System drehst, sollten keine allzu überraschende Ergebnisse herauskommen. (Ich garantiere aber sicherheitshalber für nichts.)

Download

Der Code ist in die tikzlibrary.qrr.arc.code.tex-Library ausgelagert, die entsprechend mit

\usetikzlibrary{qrr.arc}

geladen werden muss.

Code

\documentclass[tikz,convert,png={size=600}]{standalone}
\usetikzlibrary{qrr.arc}
\begin{document}
\begin{tikzpicture}[ultra thick,dot/.style={label={#1}}]
\coordinate[dot=below left:$a$] (a) at (0,0);
\coordinate[dot=above right:$b$] (b) at (2,3);
\tikzset{nodes={circle,fill=white, fill opacity=.9, text opacity=1, inner sep=+0pt, sloped, allow upside down}}
\draw[blue]    (a) arc to[radius = 3cm]                    node[near start] {.25} node {.5} node[near end] {.75} (b);
\draw[red]     (a) arc to[radius = 3cm,            arc cw] node[near start] {.25} node {.5} node[near end] {.75} (b);
\draw[blue!50] (a) arc to[radius = 3cm, arc large]         node[near start] {.25} node {.5} node[near end] {.75} (b);
\draw[red!50]  (a) arc to[radius = 3cm, arc large, arc cw] node[near start] {.25} node {.5} node[near end] {.75} (b);

\fill[radius=2pt] (a) circle[] (b) circle[];
\end{tikzpicture}
\end{document}

Resultat

alt text

Permanenter link

beantwortet 27 Aug '13, 15:25

Qrrbrbirlbel's gravatar image

Qrrbrbirlbel
2.9k1415

bearbeitet 30 Aug '13, 23:49

Excellent! +200 vergeben. Lehrreich und funktionierend!

(27 Aug '13, 16:44) Felix

@Felix Danke! Ich hoffe die angekündigten Präzisionseinbrüche treten in deinen Anwendungsfällen nicht ein (oder sind vernachlässigbar). Ich habe die Antwort sowie den Code gerade eben aktualisiert. Neben den Keys können jetzt auch nodes und coordinates zwischen den Option [] und der Ziel-Koordinate angegeben werden, die dann aber nur entlang der direkten Linie platziert werden. Diese entlang des Bogens zu platzieren erfordert doch etwas mehr Aufwand.

(27 Aug '13, 18:37) Qrrbrbirlbel

@Qrrbrbirlbel: Exzellente Antwort! Mit diesen Kenntnissen und Fähigkeiten solltest Du dich (meiner Meinung nach) aktiv an der Entwicklung von »PGF/TikZ« beteiligen. Solche Ideen würden dem Projekt sicher nicht schaden.

(28 Aug '13, 04:44) Thorsten

Vielleicht ein technischer Hinweis: die Praezision kann auf 100% stabilitaet gehoben werden, wenn die PGF funktion \pgfpatharctoprecomputed verwendet wird - die interpoliert naemlich zwischen einem start- und einem endpunkt. Es scheint, als ob das vom low-level standpunkt aus die gewuenschte Funktionalitaet hat...

(08 Dez '13, 12:28) cfeuersaenger

Meine ursprüngliche Antwort berechnet den Radius falsch aufgrund eines Denkfehlers meinerseits. Wo der Fehler passiert, bleibt dem Leser als Aufgabe überlassen. Da @QrrBrBirlbel in seiner Antwort mit einer neuen TikZ-Erweiterung schon die vermutlich beste TikZ-Antwort gegeben hat, nehme ich die Gelegenheit wahr, ein TikZ-Paket zu verwenden, das schon lange in meinem Hinterkopf spukte, mit dem ich mich aber erst seit kurzem näher beschäftige: Alain Matthes' tkz-euclide. (Da das Handbuch zu diesem Paket nur auf französisch vorhanden ist, mein Französich aber nur noch marginal vorhanden ist, ist das für mich ein durchaus mühseliges Unterfangen.)

tkz-euclide erlaubt es im Prinzip, den Bogen zu konstruieren, wie man es auf Papier mit Lineal und Zirkel machen würde:

  1. Um beide Punkte A und B einen Kreis mit dem gewünschten Radius schlagen.
  2. Die Schnittpunkte beider Kreise sind mögliche Mittelpunkte für den Bogen. => Den Zirkel in den gewünschten Punkt stechen und den Bogen zwischen A und B zeichnen.

Konstruktion


Um die Schnittpunkte zweier Kreise zu bestimmen, stellt tkz-euclide den Befehl \tkzInterCC[R](<M1>,<r1>)(<M2>,<r2>) bereit. Die Option R ist nötig, damit man die Kreise durch Mittelpunkt und Radius festlegen kann. Damit man danach beide Punkte einfach verwenden kann, bietet tkz-euclide nun drei Makros:

  • \tkzGetPoints{<name1>}{<name2>},
  • \tkzGetFirstPoint{<name1>} oder
  • \tkzGetSecondPoint{<name2>}

Für das Zeichen des Bogens um M von P nach Q zu schlagen, kommt nun noch ein letzter Befehl zum Einsatz: \tkzDrawArc(M,P)(Q).

Das alles zusammengesetzt führt dann zu folgendem Beispiel:

\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}

% Beispiele
\begin{tikzpicture}
  \tkzInit[xmin=2,xmax=7,ymax=3]
  \tkzGrid
  \tkzClip
  \tkzDefPoint(3,1){A}% entspricht \coordinate (A) at (3,1) ;
  \tkzDefPoint(6,2){B}
  % Radius: 3cm, erster Schnittpunkt (X) als Mittelpunkt für den Bogen:
  \def\r{3cm}
  \tkzInterCC[R](A,\r)(B,\r)\tkzGetFirstPoint{X}
  \tkzDrawArc[color=red](X,A)(B)
  % Radius: 5cm, erster Schnittpunkt (Y) als Mittelpunkt für den Bogen:
  \def\r{5cm}
  \tkzInterCC[R](A,\r)(B,\r)\tkzGetFirstPoint{Y}
  \tkzDrawArc[color=green](Y,A)(B)
  % Radius 2cm, zweiter Schnittpunkt (Z) als Mittelpunkt für den Bogen:
  \def\r{2cm}
  \tkzInterCC[R](A,\r)(B,\r)\tkzGetSecondPoint{Z}
  \tkzDrawArc[color=blue](Z,B)(A)
  % zur Anzeige der Punkte kann folgendes verwendet werden:
  % \tkzDrawPoints(A,B,X,Y,Z)
  % \tkzLabelPoint(A,B,X,Y,Z)
\end{tikzpicture}

\end{document}

alt text


Die folgende alte „Lösung“ berechnet den Radius falsch! Auch die Alternative, die im Kommentar vorgeschlagen wird, stimmt nicht! Bitte nicht verwenden.

Ursprüngliche Antwort:

Mit ein bisschen Geometrie, Mathematik und der Hilfe der calc und der through Bibliotheken lässt sich das machen. Die Erklärung der Syntax \coordinate (X) at ($(A)!.5!(B)!{sin(60)*2}!90:(B)$) ; findet man im pgfmanual im Tutorial: Euclid’s Amber Version of the Elements, Book I, Proposition II, Abschnitt Using Partway Calculations for the Construction of D.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,through}
\begin{document}
\begin{tikzpicture}
  % zur Bequemlichkeit:
  \tikzset{punkt/.style={fill,circle,inner sep=1pt,label=#1}}
  \draw[help lines] (-1,-1) grid (3,2) ;
  \node[punkt=A] (A) at (0,0) {} ;
  \node[punkt=B] (B) at (2,1) {} ;
  % Radius = Abstand AB:
  \coordinate (X) at ($(A)!.5!(B)!{sin(60)*2}!90:(B)$) ;
  \node (X') [draw,red,circle through=(A)] at (X) {};
  % Radius = 1.5 mal Abstand AB:
  \coordinate (Y) at ($(A)!.5!(B)!{sin(60)*-3}!90:(B)$) ;
  \node (Y') [draw,blue,circle through=(A)] at (Y) {};
  % Radius = \r:
  \def\r{1.5}
  \node[punkt=Z] (Z) at ($(A)!.5!(B)!{\r/(sin(60)*2)}!90:(B)$) {};
  \node (Z') [draw,green,circle through=(A)] at (Z) {};
\end{tikzpicture}
\end{document}

Ergebnis


Edit Erst nach Beantwortung der Frage, wurde mir klar, dass es nicht um Kreise, sondern um Kreisbögen geht. Damit meine Arbeit nicht umsonst war, folgt daher eine Modifikation, die die ungewünschten Teile der Kreise durch Clipping entfernt:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,through}
\begin{document}
\begin{tikzpicture}
  \tikzset{punkt/.style={fill,circle,inner sep=1pt,label=#1}}
  \draw[help lines] (-1,-2) grid (3,2) ;
  \node[punkt=A] (A) at (0,0) {} ;
  \node[punkt=B] (B) at (2,1) {} ;
  \begin{scope}
    \def\r{1.5}
    \node[punkt=M$_1$] (X) at ($(A)!.5!(B)!{\r/(sin(60)*2)}!90:(B)$) {};
    \clip (A)++(0,-1) rectangle (B) ;
    \node (X') [draw,green,circle through=(A)] at (X) {};
  \end{scope}
  \begin{scope}
    \def\r{-3}
    \node[punkt=M$_2$] (X) at ($(A)!.5!(B)!{\r/(sin(60)*2)}!90:(B)$) {};
    \clip (A)++(0,-1) rectangle (B) ;
    \node (X') [draw,red,circle through=(A)] at (X) {};
  \end{scope}
\end{tikzpicture}
\end{document}

Ergebnis 2

Permanenter link

beantwortet 27 Aug '13, 12:57

Clemens's gravatar image

Clemens
19.0k112960

bearbeitet 31 Aug '13, 12:41

Meine Berechnung stimmt nicht... vielleicht krieg ich das morgen gefixt, sonst lösch ich die Antwort wieder

(27 Aug '13, 17:26) Clemens

@Clemens Danke für die Info! Keine Eile, ich bin geduldig interessiert am Lernen und Verstehen. Insbesondere auch an Berechnung mit TikZ. Die zugrundeliegende Mathematik ist Beiwerk :-) hier sollte sich der Mittelpunkt z.B. als Schnitt vom Mittelsenkrechte zwischen den Punkten mit Kreis(en) durch einen der Punkte finden lassen, so ist es mir klar, nur nicht TikZ-Weise.

(27 Aug '13, 17:35) Felix

@Felix statt Berichtigung (die m.E. den Weg so umständlich gemacht hätte, dass es den Aufwand nicht lohnt) hab ich eine Alternative gebracht...

(28 Aug '13, 10:01) Clemens

@Clemens Ich fürchte ich verstehe nicht, warum du \r/(sin(60)*2) rechnest, anstatt \r*sin(60). Ich weiß, mein letzter Matheunterricht ist ca. ein Jahr her, aber es will mir einfach nicht in den Kopf.

(28 Aug '13, 11:27) Epllus

@Epllus Der Grund ist ein Denkfehler meinerseits. Es ist auch falsch! \r*sin(60) funktioniert aber auch nicht!

(28 Aug '13, 11:32) Clemens

@Clemens: Vielleicht ist es besser, die Antworten mit dem nicht richtig berechneten Radius doch zu löschen, da andere den Code sonst eventuell doch nutzen: siehe hier auf mrunix

(31 Aug '13, 12:26) esdd

@esdd Au wei! Ich mache auf jeden Fall mal eine deutlichere Warnung rein.

(31 Aug '13, 12:36) Clemens
Ergebnis 5 von 7 Alle anzeigen

Hier noch eine einfache calc-Umsetzung, die im Vergleich zur \pgfpatharcto-Lösung

  • nur Kreisbögen zeichnen kann (keine Ellipsen) und
  • nur Radien mit Einheiten verarbeiten kann.

Kurzfristiger Vorteil dieser Lösung ist allerdings, dass es den allseits bekannten arc-Path-Operator benutzt; das heißt, mit der CVS-Version sind auch Nodes/Coordinates entlang des Bogens platzierbar.

Eigentlich, denn mit der CVS-Version wird der Bogen statt zum relativen Punkt ( +x, +y) zum Punkt ( +y, +x) gezeichnet; dies lässt sich allerdings mit einer kleinen Korrektur an der Berechnung der Winkel korrigieren.

Code (2.10)

\documentclass[tikz,convert=false]{standalone}
\usetikzlibrary{calc}
\tikzset{
  arc/ccw/.initial=1,
  arc/large/.initial=0,
  arc ccw/.style={/tikz/arc/ccw=1},
  arc cw/.style={/tikz/arc/ccw=0},
  arc large/.style={/tikz/arc/large=1},
  arc small/.style={/tikz/arc/large=0}
}
\tikzset{
  arc to/.style={
    to path={
      let \p{arcto@1}=($(\tikztotarget)-(\tikztostart)$),
          \n{arcto@a}={acos(.5*veclen(\p{arcto@1})/(#1))},
          \n{arcto@s}={180 + atan2(\p{arcto@1}) - ifthenelse(\pgfkeysvalueof{/tikz/arc/large}==1,-1,1)*\n{arcto@a} + ifthenelse(\pgfkeysvalueof{/tikz/arc/ccw}==1,180,0)},
          \n{arcto@e}={      atan2(\p{arcto@1}) + ifthenelse(\pgfkeysvalueof{/tikz/arc/large}==1,-1,1)*\n{arcto@a} + ifthenelse(\pgfkeysvalueof{/tikz/arc/ccw}==1,180,0)}
      in
       \if\pgfkeysvalueof{/tikz/arc/ccw}0
         (\tikztostart) arc [start angle=\n{arcto@s}, end angle=\n{arcto@e}, radius={#1}] \tikztonodes
       \else
         (\tikztostart) arc [start angle=\n{arcto@e}, end angle=\n{arcto@s}, radius={#1}] \tikztonodes
       \fi
    }
  }
}
\begin{document}
\begin{tikzpicture}[ultra thick,dot/.style={label={#1}}]
\coordinate[dot=below left:$a$] (a) at (0,0);
\coordinate[dot=above right:$b$] (b) at (2,3);

\tikzset{nodes={circle,fill=white, fill opacity=.9, text opacity=1, inner sep=+0pt, text=black}}
\draw[blue]    (a) to[arc to=3cm]                    (b);
\draw[red]     (a) to[arc to=3cm,            arc cw] (b);
\draw[blue!50] (a) to[arc to=3cm, arc large]         (b);
\draw[red!50]  (a) to[arc to=3cm, arc large, arc cw] (b);

\fill[radius=2pt] (a) circle[] (b) circle[];
\end{tikzpicture}
\end{document}

Output (2.10)

alt text

Code (2.10-CVS)

\documentclass[tikz,convert=false]{standalone}
\usetikzlibrary{calc}
\tikzset{
  arc/ccw/.initial=1,
  arc/large/.initial=0,
  arc ccw/.style={/tikz/arc/ccw=1},
  arc cw/.style={/tikz/arc/ccw=0},
  arc large/.style={/tikz/arc/large=1},
  arc small/.style={/tikz/arc/large=0}
}
\tikzset{
  arc to/.style={
    to path={
      let \p{arcto@1}=($(\tikztotarget)-(\tikztostart)$),
          \n{arcto@a}={acos(.5*veclen(\p{arcto@1})/(#1))},
          \n{arcto@s}={180 + 90 - atan2(\p{arcto@1}) - ifthenelse(\pgfkeysvalueof{/tikz/arc/large}==1,-1,1)*\n{arcto@a} + ifthenelse(\pgfkeysvalueof{/tikz/arc/ccw}==1,180,0)},
          \n{arcto@e}={    + 90 - atan2(\p{arcto@1}) + ifthenelse(\pgfkeysvalueof{/tikz/arc/large}==1,-1,1)*\n{arcto@a} + ifthenelse(\pgfkeysvalueof{/tikz/arc/ccw}==1,180,0)}
      in
       \if\pgfkeysvalueof{/tikz/arc/ccw}0
         (\tikztostart) arc [start angle=\n{arcto@s}, end angle=\n{arcto@e}, radius={#1}] \tikztonodes
       \else
         (\tikztostart) arc [start angle=\n{arcto@e}, end angle=\n{arcto@s}, radius={#1}] \tikztonodes
       \fi
    }
  }
}
\begin{document}
\begin{tikzpicture}[ultra thick,dot/.style={label={#1}}]
\coordinate[dot=below left:$a$] (a) at (0,0);
\coordinate[dot=above right:$b$] (b) at (2,3);

\tikzset{nodes={circle,fill=white, fill opacity=.9, text opacity=1, inner sep=+0pt}}
\draw[blue]    (a) to[arc to=3cm]                    node[near start] {.25} node {.5} node[near end] {.75} (b);
\draw[red]     (a) to[arc to=3cm,            arc cw] node[near start] {.25} node {.5} node[near end] {.75} (b);
\draw[blue!50] (a) to[arc to=3cm, arc large]         node[near start] {.25} node {.5} node[near end] {.75} (b);
\draw[red!50]  (a) to[arc to=3cm, arc large, arc cw] node[near start] {.25} node {.5} node[near end] {.75} (b);

\fill[radius=2pt] (a) circle[] (b) circle[];
\end{tikzpicture}
\end{document}

Output (2.10-CVS)

alt text

Permanenter link

beantwortet 28 Aug '13, 13:22

Qrrbrbirlbel's gravatar image

Qrrbrbirlbel
2.9k1415

Die im letzten Absatz erwähnte notwendige Korrektur an der Berechnung der Winkel wurde notwendig, da die Reihefolge der Argumente zur atan2-Funktion in der kommenden Version von PGFmath geändert wurde. Bis einschl. 2.10 war es atan2(x,y), danach ist es nun atan2(y,x).

Man mag über diese Änderungen denken, was man will; die einfachste Lösung ist wohl die direkte Verwendung von \y und \x: atan(\y{arcto@1},\x{arcto@1}). Allerdings bin ich dazu übergegangen einfach zwei separate Funktionen atanXY und atanYX zu definieren.

(07 Dez '13, 23:38) Qrrbrbirlbel

@Qrrbrbirlbel heißt dass, ein Update von pgf auf CTAN steht vor der Tür?

(08 Dez '13, 04:16) Clemens

@Clemens Ich weiß das nicht, ich arbeite ja nicht an PGF/TikZ. Und ich weiß auch nicht, warum du darauf kommst.

Allerdings hat Christian Feuersänger in einem Kommentar zu einer anderen Frage von „demnächst voraussichtlich“ gesprochen. Irgendwo auf der SourceForge-Seite von PGF gibt es auch ein Link zum Manual der nächsten Version, das bereits mit der Versionsnummber 3.0.0 versehen ist. Eventuell ein weiteres Indiz, dass ein Release bald zu erwarten ist?

(08 Dez '13, 15:22) Qrrbrbirlbel

@Qrrbrbirlbel weil Du die Änderung von atan2 erwähnst, die »Bis einschl. 2.10« gilt. Seit ich TikZ verwende, war die einzige offizielle Version Version 2.10. Was nicht in TeX Live gelandet ist, ist für mich noch nicht verfügbar :)

(08 Dez '13, 15:52) Clemens
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×17

Frage gestellt: 27 Aug '13, 09:26

Frage wurde angeschaut: 14,281 Mal

Zuletzt aktualisiert: 21 Jun, 11:44