Wie muss ich die Parameter baseline, line width und \Radius einstellen, damit das Symbol konsistent gegenüber Änderungen bleibt und in den Textsatz hineinpasst?

Die Länge der beiden Striche

\draw[double, double distance=0.175*\Radius, shorten <=-0.5*\Radius, shorten >=1.3*\Radius ] (M.west)--(M.center);

bleibt leider auch nicht konsistent gegenüber verschiedenen Radien.

alt text

PS: Ursprünglich wollte ich das normale 'C' verwenden, da hatte ich aber auch keinen großen Erfolg, was diese beiden Striche angeht.

Öffne in Overleaf
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{tikz}

\begin{document}

\newcommand{\EURO}{\mathord{
\def\Radius{0.75em}  %<- bewirkt Inkonsistenzen, z.B. bei 0.25em
\begin{tikzpicture}[baseline=0ex, %<- Wie am besten einstellen?
outer sep=0pt,
line width =0.090065*\Radius, %<- Wie am besten einstellen?
%scale=0.5, transform shape
]
%
\pgfmathsetmacro\StartAngle{30}
\pgfmathsetmacro\EndAngle{330}
%
\node[] (M) at (0,0){};
%\node at (M.west){w}; % zum Testen
%\fill (M.center) circle(1pt); % zum Testen
% Striche
\draw[double, 
double distance=0.175*\Radius, 
shorten <=-0.5*\Radius,
shorten >=1.3*\Radius ] (M.west)--(M.center);
% Bogen
\draw[] ([shift={(\StartAngle : \Radius)}]M)  arc[start angle=\StartAngle, end angle=\EndAngle, radius=\Radius];
\end{tikzpicture}
}}

Test:~  $\EURO$ C (Vergleichs-C)

{\Huge Test:~  $\EURO$ C}

{\tiny Test:~  $\EURO$ C}

\end{document}

gefragt 11 Apr '18, 05:58

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 11 Apr '18, 06:00

(11 Apr '18, 06:49) Henri

Achso, der obere Strich muss da teilweise rausfutzeln. Achja, das ist jetzt mal gut genug.

(11 Apr '18, 08:04) cis

Die Idee, einen Vergleichsbuchstaben zu benutzen ist richtig. Ich verwende ein O und benutze \settowidth, um daraus eine Basislänge zu bestimmen. Den Euro zeichne ich dann in ein path picture von einer node mit Inhalt gleich einem phantom. Das löst dann auch die Frage nach der baseline.

Öffne in Overleaf
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{tikz}
\newlength{\Radius}
\begin{document}

\newcommand{\EURO}{\settowidth{\Radius}{O}% Vergleichsbuchstabe
\begin{tikzpicture}[baseline=(EURO.base), %<- eingestellt
inner sep=0pt,
line width =0.090065*\Radius, %<- Wie am besten einstellen? -- Liegt bei Dir.
]
\node[path picture={
\draw (0.1\Radius,0.35\Radius)--+(0.7\Radius,0);
\draw (0.1\Radius,0.55\Radius)--+(0.7\Radius,0);
\draw[] ([xshift=0.6\Radius,yshift=0.45\Radius]30 :0.4\Radius)  arc(30:330:0.4\Radius);
}](EURO){\phantom{$\overline{O}$}}; 
\end{tikzpicture}
}

Test:~  $\EURO$ C (Vergleichs-C)
X$\EURO$X
{\Huge Test:~  $\EURO$ C}

{\footnotesize Test:~  $\EURO$ C}

\end{document}

alt text

ADDENDUM: Zum Spass eine Version die fett wird in \textbf{} Umgebung.

Öffne in Overleaf
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{tikz}
\newlength{\Radius}
\newlength{\LW}
\newcommand{\EURO}{\settowidth{\Radius}{O}% Vergleichsbuchstabe
\settowidth{\LW}{I}%
\pgfmathsetmacro{\Ratio}{\LW/\Radius}%
\begin{tikzpicture}[baseline=(EURO.base), %<- eingestellt
inner sep=0pt,
line width =0.090065*\Radius*\Ratio/0.46, %<- Wie am besten einstellen? -- Liegt bei Dir.
]
\node[path picture={
\draw (0.1\Radius,0.35\Radius)--+(0.7\Radius,0);
\draw (0.1\Radius,0.55\Radius)--+(0.7\Radius,0);
\draw[] ([xshift=0.6\Radius,yshift=0.45\Radius]30 :0.4\Radius)  arc(30:330:0.4\Radius);
}](EURO){\phantom{$\overline{O}$}}; 
\end{tikzpicture}
}
\begin{document}
X$\EURO$X
\textbf{X\EURO}X
\end{document}

alt text

Permanenter link

beantwortet 11 Apr '18, 06:42

Community's gravatar image

Community
21
Akzeptiert-Rate: 56%

bearbeitet 11 Apr '18, 08:02

Gel%C3%B6scht's gravatar image

Gelöscht
(ausgesetzt)

Ah, sehr gut. Jetzt muss ich nur noch dafür sorgen, dass die Striche auch leicht nach links rausragen.

(11 Apr '18, 06:54) cis

@cis OK, ich hab das selber schnell gemacht. Mir ist klar, dass der Euro nicht perfekt aussieht. Ich fand nur die Frage interessant, wie man mit TikZ Textbausteine basteln kann, die sich vernünftig verhalten. Im Prinzip kann man das verfeinern, so dass der EURO beispielsweise fett wird in einer \textbf{} Umgebung, aber das ist erheblich mehr Aufwand.

(11 Apr '18, 07:02) Community

Aha, kurz kapieren, was Du jetzt geändert hast. Ich habe das gerade mit inner xsep=0.1\Radius, und dann \draw (-0.1\Radius, ... realisiert. Für Fettdruck, Farben usw. (was auf normale TeX-Mittel nicht anspringen wird) war meine Überlegung, noch ein optionales Argument einzubauen, was per Default leer ist. Dann kann man z.B. sowas machen:

$\EURO[% background rectangle/.style={fill=yellow},% show background rectangle% ]$

mit \usetikzlibrary{backgrounds}.

(11 Apr '18, 07:11) cis

@cis Alternativ kann man die Breite von einem O in der Umgebung, in der \EURO aufgerufen wird, mit der Breite von einem O in \normalfont vergleichen, und daraus rückschliessen, ob man gerade in \textbf{}, \emph{} oder so ist, und dann die Strichdicke anpassen oder den Euro leicht kippen. Aber das ist extrem langwierig und vermutlich den Aufwand nicht wert. (Möglicherweise gibt es aber schon einen Befehl oder Package, der/das genau das tut.)

(11 Apr '18, 07:24) Community

Für ein selbstgemaltes Euro-Symbol, was normalen Formatierungsmitteln, wie \textbf{} gehorcht, habe ich als grob umrissene Idee. Normalen Buchstaben 'C' verwenden und die Striche mit dem (evtl. verkürzten) Zeichen '|' oder ähnlich zeichnen. Mal schauen, vll. bastel ich da mal etwas.

(11 Apr '18, 07:51) cis

@Murmeltier: Ich würde für das Erkennen von \textbf{…} und \bfseries schlicht auf \f@series (→ fntguide) zurückgreifen. Entweder nur mit \bfdefault vergleichen oder in umgekehrter Logik mit \mddefault (→ fntguide) vergleichen oder (wieder in normaler Logik) testen, ob der erste Buchstabe ein b ist. Allerdings würde ich gleichzeitig den Mathemodus weglassen. Das ist für mich ein Textzeichen.

(11 Apr '18, 08:01) saputello

@saputello Das klingt Alles höchstinteressant, aber ich denke, dass das eine separate Frage und dann Deine Antwort verdienen würde. Sprich, ich werde jetzt nicht weiter an der Antwort basteln.

(11 Apr '18, 08:10) Community

Ich frage mich, warum das textbf bei der 2. Lösung anspringt. Mmmhh...

(11 Apr '18, 13:44) cis
1

@cis Wenn sich die Strichdicke erhöht, gewinnt das I proportional viel mehr Breite als das O.

(11 Apr '18, 16:49) Community
Ergebnis 5 von 9 show 4 more comments
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:

×728

gestellte Frage: 11 Apr '18, 05:58

Frage wurde gesehen: 3,116 Mal

zuletzt geändert: 11 Apr '18, 16:49