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 10 Apr, 23:58

cis's gravatar image

cis
7.8k15161257
Akzeptiert: 71%

bearbeitet 11 Apr, 00:00

(11 Apr, 00:49) Henri

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

(11 Apr, 02: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, 00:42

Murmeltier's gravatar image

Murmeltier
1.6k64

bearbeitet 11 Apr, 02:02

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

(11 Apr, 00: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, 01:02) Murmeltier

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, 01: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, 01:24) Murmeltier

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, 01: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, 02: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, 02:10) Murmeltier

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

(11 Apr, 07:44) cis
1

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

(11 Apr, 10:49) Murmeltier
Ergebnis 5 von 9 Alle anzeigen
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

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:

×608

Frage gestellt: 10 Apr, 23:58

Frage wurde angeschaut: 351 Mal

Zuletzt aktualisiert: 11 Apr, 10:49