Wie kann ich bei
auch Sachen wie Öffne in Overleaf
\documentclass[border=3mm, varwidth]{standalone} \usepackage{tikz, amsmath} \usepgflibrary{fpu} % Das braucht man scheints: \pgfkeys{/pgf/fpu/handlers/invalid number/.code={% % \pgfmathfloatparsenumber{3Y0.0e0]}% \pgfmathresult } } \begin{document} 12.3: \pgfmathfloatparsenumber{12.3} \pgfmathfloatifflags{\pgfmathresult}{3}{string}{kein string} abc: \pgfmathfloatparsenumber{abc} \pgfmathfloatifflags{\pgfmathresult}{3}{string}{kein string} \verb+$\frac32$+ geht: \pgfmathfloatparsenumber{$\frac32$} \pgfmathfloatifflags{\pgfmathresult}{3}{string}{kein string} \verb+\frac32+ geht nicht: %\pgfmathfloatparsenumber{\frac32} %error %\pgfmathfloatifflags{\pgfmathresult}{3}{string}{kein string} \bigskip \tiny\verb+\pgfmathfloatifflags{<floating point number>}{<flag>}{<true-code>}{<false-code>}+ \\ $\begin{array}{c | c} \text{Flag} & \text{Meaning} \\ \hline 0 & 0 \\ 1 & \text{positive} \\ 2 & \text{negative} \\ 3 & \text{NaN} \\ 4 & \infty \\ 5 & -\infty \\ \end{array}$ \end{document} gefragt 21 Okt '18, 16:36 cis |
Hier eine Umsetzung eines solchen Test mit expl3. Über den regulären Ausdruck kann man ggfs. anpassen, was als Zahl gilt und was nicht. Öffne in Overleaf
\documentclass{article} \usepackage{xparse} \begin{document} \ExplSyntaxOn \regex_new:N \l_cis_isnumber_regex \regex_set:Nn \l_cis_isnumber_regex {\A[\+\-\ ]*(\d+|\d*\.\d+)\ *\Z} \cs_new_protected:Nn \cis_testnumber:n { \regex_match:NnTF \l_cis_isnumber_regex { #1 } { \fp_compare:nTF { #1 < 0 } { negative ~ number} { \fp_compare:nTF { #1 = 0 } { zero } { positive ~ number} } } { string } } \NewDocumentCommand \cistestnumber { m } { \cis_testnumber:n { #1 } } \ExplSyntaxOff \noindent \cistestnumber { 12345 } \\ \cistestnumber {123.45} \\ \cistestnumber {x12345} \\ \cistestnumber {12345.} %derzeit string \\ \cistestnumber {\frac{123}{45}} \\ \cistestnumber{$\frac{123}{435}$} \\ \cistestnumber {-12.345} \\ \cistestnumber {.1} \\ \cistestnumber {0} \\ \cistestnumber {0.0} \end{document} beantwortet 22 Okt '18, 08:55 Ulrike Fischer Ja, das berüchtigte cis-Kommando - das hat es in sich :()
(22 Okt '18, 16:28)
cis
|
wieso verbeißt du dich bloß so in pgf-Lösungen? Die Mathematik-Bibliothek ist nicht total schlecht, aber doch objektiv schlechter als l3fp. Siehe z.B. https://tex.stackexchange.com/a/417717/2388. Und was deine Tests angeht: in expl3 sind reguläre Ausdrücke möglich. Damit ist dein Test mehr oder weniger ein trivial.
"wieso verbeißt du dich bloß so in pgf-Lösungen"
. Weil es geil ist, weil es elegant ist im Paket zu bleiben und aus Gründen, die ich nicht verrate; aber primär die ersten beiden Gründe.Wenn es so elegant ist, warum beklagst du dich dann in jeder zweiten Frage über nötige low-level Hacks? Und warum versuchst du einen math-Befehl dazu zu bringen mit Argumenten umzugehen, für die er nicht geschrieben wurde?
Hier
https://texwelt.de/wissen/fragen/23415/pgfmath-funktion-gesucht-die-strings-und-zahlen-verarbeiten-kann
funktioniert es ja an sich, man darf bloß nicht\frac32
, sondern nur$\frac32$
reingeben (und dort ist es auch kein Hack, sondern normale Benutzung einer Paketfunktion). Diese Frage hier, weil ich dachte, da fehlt irgendein Beisatz, wieexpandafter
oder sowas...expl3
kann ich nicht, abgesehen davon ist die Syntax davon für mich -leider- alles andere als selbsterklärend. Jene vonpgfmath
dagegen schon und wenn es damit prinzipiell geht, warum nicht auch verwenden...