Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 9

20 Apr '18, 16:19

cis's gravatar image

cis
9.6k104461491

**Neue, komplett überarbeite und stark vereinfachte Lösung.** Bei den Teilen oberhalb und unterhalb der Skala handelt es sich eigentlich nur um Annotationen, für die man feste Maße verwenden kann (zumindest was ihre Höhe angeht, die Breite muss sich zur gewählten Breite anpassen). Wichtig ist, dass sich die Skala den gewählten Höhenmaßen anpasst. [![alt text][1]][1] ___ [![alt text][1]][2] text][2]][3] Im folgenden Code kann man mit den Werten etwas rumspielen % Eingaben ====================== \pgfmathsetmacro{\HoeheSkala}{6.7} \pgfmathsetmacro{\Breite}{1.4} % 1.4 \pgfmathtruncatemacro{\TemperaturMin}{-274} \pgfmathtruncatemacro{\TemperaturMax}{107} \pgfmathsetmacro{\unterteilungstiefe}{5} % kleine Skala (minor ticks) \pgfmathsetmacro{\Unterteilungstiefe}{20}% große Skala (major ticks) % ============================ % Feste Werte anzeigen \def\List{% %-273.15/Absoluter\\ Temperatur-\\nullpunkt,% 0/Gefrierpunkt\\ von Wasser,% 37/K{\"o}rper-\\temperatur,%, 100/Siedepunkt\\ von Wasser% } % ============================ und dann \thermo{22} um die Skalen für `22°C` anzuzeigen. *Insb. wenn die Kelvin-Skala verwendet wird muss ein geeigneter Temperaturbereich gewählt werden. Die automatische Anpassung von `Tmax` (bzw. `Tmin`), falls kein geeigneter Bereich gewählt wurde, könnte man jetzt noch mit diversen if-Abfragen einstellen; ist mir aber gerade zu mühsam.* Mit entsprechendem Auskommentieren kann man auch nur zwei oder nur ein Thermometer anzeigen, z.B. [![alt text][3]][3] text][4]][5] % thermo v1.2a \documentclass[]{article} %\documentclass[margin=5pt, tikz]{standalone} \usepackage{tikz} \usetikzlibrary{calc, math} \usepackage{amssymb, mwe} \begin{document} % Eingaben ====================== \pgfmathsetmacro{\HoeheSkala}{5.0} \pgfmathsetmacro{\Breite}{0.9} % 1.4 \pgfmathtruncatemacro{\TemperaturMin}{-274} \pgfmathtruncatemacro{\TemperaturMax}{105} \pgfmathsetmacro{\unterteilungstiefe}{5} % kleine Skala (minor ticks) \pgfmathsetmacro{\Unterteilungstiefe}{20}% große Skala (major ticks) % ============================ % Feste Werte anzeigen \def\List{% %-273.15/Absoluter\\ Temperatur-\\nullpunkt,% 0/Gefrierpunkt\\ von Wasser,% 37/K{\"o}rper-\\temperatur,%, 100/Siedepunkt\\ von Wasser% } % ============================ % Temperaturfunktionen \tikzmath{ function TemperaturStand(\t) {return (\t+abs(\Tmin))*\skalenteilung;}; function Fahrenheit(\t) {return \t*1.8+32;}; function Kelvin(\t) {return \t+273.15;}; } % Zeichenebenen \pgfdeclarelayer{foreground layer} \pgfsetlayers{main,foreground layer} \newcommand\Skala[1]{%%%%%%%%%%%%%%%%% \def\Skalentyp{#1} \if\Skalentyp C % Celsius ===================== \pgfmathtruncatemacro{\Tmin}{\TemperaturMin} \pgfmathtruncatemacro{\Tmax}{\TemperaturMax} \def\Titel{$^\circ$#1} \else % Kelvin =========================== \if\Skalentyp K \pgfmathtruncatemacro{\Tmin}{Kelvin(\TemperaturMin)} \pgfmathtruncatemacro{\Tmax}{Kelvin(\TemperaturMax)} \def\Titel{#1} \else % Fahrenheit ========================= \pgfmathtruncatemacro{\Tmin}{Fahrenheit(\TemperaturMin)} \pgfmathtruncatemacro{\Tmax}{Fahrenheit(\TemperaturMax)} \def\Titel{$^\circ$#1} \fi \fi % \pgfmathsetmacro{\skalenweite}{\Tmax-\Tmin} \pgfmathsetmacro{\skalenteilung}{\HoeheSkala/\skalenweite} }%%%%%%%%%%%%%%%%% % Allgemein \pgfmathsetmacro{\Null}{0.0} % als Vergleichsoperator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Thermometer}[1]{%%%%%%%%%%%%%%% % Vertikale Maße \coordinate[] (H) at (0,\HoeheSkala); % Horizontale Maße \pgfmathsetmacro{\a}{0} % 0 \pgfmathsetmacro{\b}{\Breite*1/7} % 0.2 \pgfmathsetmacro{\c}{\Breite*2/7} % 0.4 \pgfmathsetmacro{\d}{\Breite*3/7} % 0.6 \pgfmathsetmacro{\e}{\Breite*4/7} % 0.8 \pgfmathsetmacro{\f}{\Breite*5/7} % 1.0 \pgfmathsetmacro{\g}{\Breite*6/7} % 1.2 \pgfmathsetmacro{\h}{\Breite} % 1.4 % \coordinate[] (a) at (\a,0); \coordinate[] (b) at (\b,0); \coordinate[] (c) at (\c,0); \coordinate[] (d) at (\d,0); \coordinate[] (e) at (\e,0); \coordinate[] (f) at (\f,0); \coordinate[] (g) at (\g,0); \coordinate[] (h) at (\h,0); %\begingroup \Skala{#1} \foreach[ evaluate={\T = (\t+abs(\Tmin))*\skalenteilung}, evaluate={\u = mod(\t,\unterteilungstiefe)}, evaluate={\U = mod(\t,\Unterteilungstiefe)}, ] \t in {\Tmin,...,\Tmax}{ \ifx\U\Null \draw([shift={(0,\T)}]a) -- ([shift={(0,\T)}]d); % große Skala \node[shift={(\f,\T)}]{~~\t}; % Zahlen \else \ifx\u\Null \draw ([shift={(0,\T)}]a) -- ([shift={(0,\T)}]c) node[right]{};%\t % kleine Skala \else \fi \fi } % %\endgroup % Annotationen %%%%%%%%%%%%%%%%%% % Thermometerkörper der Skala zeichnen \foreach \x in {a,d,e,h} \draw[] (\x) -- ($(\x)+(H)$); % Unteren Thermometerkörper zeichnen \coordinate[] (A) at (0,-0.3); \coordinate[] (B) at (0,-0.6); \coordinate[] (C) at (0,-1); \coordinate[] (D) at (0,-1.2); \coordinate[] (E) at (0,-1.5); \coordinate[] (F) at (0,-2.5); \coordinate[] (G) at (0,-2.7); \pgfmathsetmacro{\m}{0.5*\Breite} \coordinate[] (m) at (\m,0); \draw[rounded corners=\Breite] (a) -- ($(A) + (a)$) -- ($(B) + (c)$) -- ($(C) + (c)$) -- ($(D) + (b)$) -- ($(E) + (b)$);; \draw[rounded corners=\Breite] ($(E) + (g)$) -- ($(D) + (g)$) -- ($(C) + (f)$) -- ($(B) + (f)$) -- ($(A) + (h)$) -- (h); % Bogen \draw[rounded corners=10*\Breite] ($(E) + (b)$) -- ($(G) + (b)$) -- ($(G) + (g)$) -- ($(E) + (g)$); % Quecksilbertank \fill[rounded corners=6*\Breite] ($(F) + (c)$) rectangle ($(C) + (f)$); \filldraw[] ($(D) + (d)$) rectangle (e); % Oberen Thermometerkörper zeichnen \coordinate[] (P) at (0,\HoeheSkala+0.8); \coordinate[] (Q) at (0,\HoeheSkala+0.4); \draw[rounded corners=14*\Breite] (H) -- (P) -- ($(P)+(h)$) -- ($(H)+(h)$); \draw[rounded corners=2*\Breite] ($(H)+(d)$) -- ($(Q)+(d)$) -- ($(Q)+(e)$) -- ($(H)+(e)$); %%%%%%%%%%%%%%%%%% % Titel \node at ($(Q)+(f)$) {\Titel}; }%%%%%%%%%%%%%%%%% % Anzuzeigende Werte \newcommand*\WertAnzeigen[2]{%%%%%%%%%%%%%%%%% \tikzset{/pgf/number format/.cd,fixed zerofill,precision=1, assume math mode=true} % \if\Skalentyp C % Celsius ==================== \pgfmathsetmacro{\Wert}{\temperatur+0} %\pgfmathsetmacro{\wert}{TemperaturStand(\Wert)} \path[]([shift={(0,#1)}]$(a)-(c)$) node[name=#2]{} -- ([shift={(0,#1)}]$(h)+(b)$); \begin{pgfonlayer}{foreground layer} \node[anchor=west, inner xsep=1pt, fill=white] at ([shift={(0,#1)}]$(h)+(b)$) {\pgfmathprintnumber\Wert}; \end{pgfonlayer} % \else \if\Skalentyp K % Kelvin ==================== \pgfmathsetmacro{\Wert}{Kelvin(\temperatur)} \path[]([shift={(0,#1)}]a) -- ([shift={(0,#1)}]$(h)+(b)$) node[anchor=west, fill=white, name=#2]{\pgfmathprintnumber\Wert}; % \else % Fahrenheit ==================== \pgfmathsetmacro{\Wert}{Fahrenheit(\temperatur)} \path[]([shift={(0,#1)}]a) -- ([shift={(0,#1)}]$(h)+(b)$) node[anchor=west, fill=white, name=#2]{\pgfmathprintnumber\Wert}; \fi \fi }%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\thermo}[1]{%%%%%%%%%%%%%%%% \noindent\begin{tikzpicture}[ %x=0.2cm, %y = 1cm, %xscale=0.5, %yscale=0.75, nodes={align=center, font=\sffamily\tiny, inner sep=0pt} ] \begin{scope}[name=Celsius] \Thermometer{C} % Festanzuzeigende Werte \foreach[count=\i] \t/\text in \List { \pgfmathsetmacro{\temperatur}{\t} \WertAnzeigen{TemperaturStand(\t)}{p\i} \node[anchor=east] at (p\i) {\text}; } % Variabler Wert \pgfmathsetmacro{\temperatur}{#1} \pgfmathsetmacro{\Stand}{TemperaturStand(\temperatur)} \WertAnzeigen{TemperaturStand(\temperatur)}{p} \filldraw []($(0,\Stand)+(e)$) rectangle (d); \end{scope} \begin{scope}[name=Fahrenheit, right of =Celsius, xshift = 2cm] \Thermometer{F} % Festanzuzeigende Werte \foreach[count=\i] \t/\Name in \List {%% \pgfmathsetmacro{\temperatur}{\t} \WertAnzeigen{TemperaturStand(Fahrenheit(\t))}{q\i} }%% % Variabler Wert \pgfmathsetmacro{\temperatur}{#1} \WertAnzeigen{TemperaturStand(Fahrenheit(\temperatur))}{q} \pgfmathsetmacro{\Stand}{TemperaturStand(Fahrenheit(\temperatur))} \filldraw []($(0,\Stand)+(e)$) rectangle (d); \end{scope} \begin{scope}[name=Kelvin, right of =Fahrenheit, xshift = 5cm] \Thermometer{K} % Festanzuzeigende Werte \foreach[count=\i] \t/\Name in \List {%% \pgfmathsetmacro{\temperatur}{\t} \WertAnzeigen{TemperaturStand(Kelvin(\t))}{r\i} }%% % Variabler Wert \pgfmathsetmacro{\temperatur}{#1} \WertAnzeigen{TemperaturStand(Kelvin(\temperatur))}{r} \pgfmathsetmacro{\Stand}{TemperaturStand(Kelvin(\temperatur))} \filldraw []($(0,\Stand)+(e)$) rectangle (d); \end{scope} % Verbindungslinien C-F-K % Festanzuzeigende Werte \foreach[count=\i] \t/\Name in \List {%% \draw[very thin] (p\i) -- (q\i) -- (r\i); }%% % Variabler Wert \newcommand\MitKelvin{\draw[thick] (p) -- (q) -- (r);} \MitKelvin % Verbindungslinien C-F % Festanzuzeigende Werte \foreach[count=\i] \t/\Name in \List {%% \draw[very thin] (p\i) -- (q\i); }%% % Variabler Wert \draw[thick] (p) -- (q); % Koordinaten anzeigen %\foreach \x in {a,...,h} %\fill[red] (\x) circle (1pt) node[below]{\x}; %% %\foreach \y in {A,...,G,P,Q} %\fill[red] (\y) circle (1pt) node[below]{\y}; %% %\draw[red, |<->|] (2,0) -- (2,\HoeheSkala) node[midway, above=1mm, sloped]{\HoeheSkala}; %\node[font=\normalsize] at (3,-3){\pgfmathparse{Fahrenheit(90)}\pgfmathresult}; \end{tikzpicture} }%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%% \lipsum[66] \thermo{22} \lipsum[66] %\thermo{-15} % %\thermo{100} %\lipsum[66] \end{document} [1]: https://texwelt.de/wissen/upfiles/999999999999999_5.jpg https://texwelt.de/wissen/upfiles/Thermo.gif [2]: https://texwelt.de/wissen/upfiles/999999999999999_5.jpg [3]: https://texwelt.de/wissen/upfiles/999999999999999_5.jpg [4]: https://texwelt.de/wissen/upfiles/55555555_157.png [4]: https://texwelt.de/wissen/upfiles/55555555_156.png [5]: https://texwelt.de/wissen/upfiles/55555555_156.png https://texwelt.de/wissen/upfiles/55555555_157.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 8

19 Apr '18, 22:32

cis's gravatar image

cis
9.6k104461491

**Neue, komplett überarbeite und stark vereinfachte Lösung.** Bei den Teilen oberhalb und unterhalb der Skala handelt es sich eigentlich nur um Annotationen, für die man feste Maße verwenden kann (zumindest was ihre Höhe angeht, die Breite muss sich zur gewählten Breite anpassen). Wichtig ist, dass sich die Skala den gewählten Höhenmaßen anpasst. ___ [![alt text][1]][2] Im folgenden Code kann man mit den Werten etwas rumspielen % Eingaben ====================== \pgfmathsetmacro{\HoeheSkala}{6.7} \pgfmathsetmacro{\Breite}{1.4} % 1.4 \pgfmathtruncatemacro{\TemperaturMin}{-274} \pgfmathtruncatemacro{\TemperaturMax}{107} \pgfmathsetmacro{\unterteilungstiefe}{5} % kleine Skala (minor ticks) \pgfmathsetmacro{\Unterteilungstiefe}{20}% große Skala (major ticks) % ============================ % Feste Werte anzeigen \def\List{% %-273.15/Absoluter\\ Temperatur-\\nullpunkt,% 0/Gefrierpunkt\\ von Wasser,% 37/K{\"o}rper-\\temperatur,%, 100/Siedepunkt\\ von Wasser% } % ============================ und dann \thermo{22} um die Skalen für `22°C` anzuzeigen. *Insb. wenn die Kelvin-Skala verwendet wird muss ein geeigneter Temperaturbereich gewählt werden. Die automatische Anpassung von `Tmax` (bzw. `Tmin`), falls kein geeigneter Bereich gewählt wurde, könnte man jetzt noch mit diversen if-Abfragen einstellen; ist mir aber gerade zu mühsam.* Mit entsprechendem Auskommentieren kann man auch nur zwei oder nur ein Thermometer anzeigen, z.B. [![alt text][3]][3] %\documentclass[]{article} \documentclass[margin=5pt, % thermo v1.2a \documentclass[]{article} %\documentclass[margin=5pt, tikz]{standalone} \usepackage{tikz} \usetikzlibrary{calc, math} \usepackage{amssymb, mwe} \begin{document} % Eingaben ====================== \pgfmathsetmacro{\HoeheSkala}{6.7} \pgfmathsetmacro{\Breite}{1.4} \pgfmathsetmacro{\HoeheSkala}{5.0} \pgfmathsetmacro{\Breite}{0.9} % 1.4 \pgfmathtruncatemacro{\TemperaturMin}{-274} \pgfmathtruncatemacro{\TemperaturMax}{107} \pgfmathtruncatemacro{\TemperaturMax}{105} \pgfmathsetmacro{\unterteilungstiefe}{5} % kleine Skala (minor ticks) \pgfmathsetmacro{\Unterteilungstiefe}{20}% große Skala (major ticks) % ============================ % Feste Werte anzeigen \def\List{% %-273.15/Absoluter\\ Temperatur-\\nullpunkt,% 0/Gefrierpunkt\\ von Wasser,% 37/K{\"o}rper-\\temperatur,%, 100/Siedepunkt\\ von Wasser% } % ============================ % Temperaturfunktionen \tikzmath{ function TemperaturStand(\t) {return (\t+abs(\Tmin))*\skalenteilung;}; function Fahrenheit(\t) {return \t*1.8+32;}; function Kelvin(\t) {return \t+273.15;}; } % Zeichenebenen \pgfdeclarelayer{foreground layer} \pgfsetlayers{main,foreground layer} \newcommand\Skala[1]{%%%%%%%%%%%%%%%%% \def\Skalentyp{#1} \if\Skalentyp C % Celsius ===================== \pgfmathtruncatemacro{\Tmin}{\TemperaturMin} \pgfmathtruncatemacro{\Tmax}{\TemperaturMax} \def\Titel{$^\circ$#1} \else % Kelvin =========================== \if\Skalentyp K \pgfmathtruncatemacro{\Tmin}{Kelvin(\TemperaturMin)} \pgfmathtruncatemacro{\Tmax}{Kelvin(\TemperaturMax)} \def\Titel{#1} \else % Fahrenheit ========================= \pgfmathtruncatemacro{\Tmin}{Fahrenheit(\TemperaturMin)} \pgfmathtruncatemacro{\Tmax}{Fahrenheit(\TemperaturMax)} \def\Titel{$^\circ$#1} \fi \fi % \pgfmathsetmacro{\skalenweite}{\Tmax-\Tmin} \pgfmathsetmacro{\skalenteilung}{\HoeheSkala/\skalenweite} }%%%%%%%%%%%%%%%%% % Allgemein \pgfmathsetmacro{\Null}{0.0} % als Vergleichsoperator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Thermometer}[1]{%%%%%%%%%%%%%%% % Vertikale Maße \coordinate[] (H) at (0,\HoeheSkala); % Horizontale Maße \pgfmathsetmacro{\a}{0} % 0 \pgfmathsetmacro{\b}{\Breite*1/7} % 0.2 \pgfmathsetmacro{\c}{\Breite*2/7} % 0.4 \pgfmathsetmacro{\d}{\Breite*3/7} % 0.6 \pgfmathsetmacro{\e}{\Breite*4/7} % 0.8 \pgfmathsetmacro{\f}{\Breite*5/7} % 1.0 \pgfmathsetmacro{\g}{\Breite*6/7} % 1.2 \pgfmathsetmacro{\h}{\Breite} % 1.4 % \coordinate[] (a) at (\a,0); \coordinate[] (b) at (\b,0); \coordinate[] (c) at (\c,0); \coordinate[] (d) at (\d,0); \coordinate[] (e) at (\e,0); \coordinate[] (f) at (\f,0); \coordinate[] (g) at (\g,0); \coordinate[] (h) at (\h,0); %\begingroup \Skala{#1} \foreach[ evaluate={\T = (\t+abs(\Tmin))*\skalenteilung}, evaluate={\u = mod(\t,\unterteilungstiefe)}, evaluate={\U = mod(\t,\Unterteilungstiefe)}, ] \t in {\Tmin,...,\Tmax}{ \ifx\U\Null \draw([shift={(0,\T)}]a) -- ([shift={(0,\T)}]d); % große Skala \node[shift={(\f,\T)}]{\t}; \node[shift={(\f,\T)}]{~~\t}; % Zahlen \else \ifx\u\Null \draw ([shift={(0,\T)}]a) -- ([shift={(0,\T)}]c) node[right]{};%\t % kleine Skala \else \fi \fi } % %\endgroup % Annotationen %%%%%%%%%%%%%%%%%% % Thermometerkörper der Skala zeichnen \foreach \x in {a,d,e,h} \draw[] (\x) -- ($(\x)+(H)$); % Unteren Thermometerkörper zeichnen \coordinate[] (A) at (0,-0.3); \coordinate[] (B) at (0,-0.6); \coordinate[] (C) at (0,-1); \coordinate[] (D) at (0,-1.2); \coordinate[] (E) at (0,-1.5); \coordinate[] (F) at (0,-2.5); \coordinate[] (G) at (0,-2.7); \pgfmathsetmacro{\m}{0.5*\Breite} \coordinate[] (m) at (\m,0); \draw[rounded corners=\Breite] (a) -- ($(A) + (a)$) -- ($(B) + (c)$) -- ($(C) + (c)$) -- ($(D) + (b)$) -- ($(E) + (b)$);; \draw[rounded corners=\Breite] ($(E) + (g)$) -- ($(D) + (g)$) -- ($(C) + (f)$) -- ($(B) + (f)$) -- ($(A) + (h)$) -- (h); % Bogen \draw[rounded corners=10*\Breite] ($(E) + (b)$) -- ($(G) + (b)$) -- ($(G) + (g)$) -- ($(E) + (g)$); % Quecksilbertank \fill[rounded corners=6*\Breite] ($(F) + (c)$) rectangle ($(C) + (f)$); \filldraw[] ($(D) + (d)$) rectangle (e); % Oberen Thermometerkörper zeichnen \coordinate[] (P) at (0,\HoeheSkala+0.8); \coordinate[] (Q) at (0,\HoeheSkala+0.4); \draw[rounded corners=14*\Breite] (H) -- (P) -- ($(P)+(h)$) -- ($(H)+(h)$); \draw[rounded corners=2*\Breite] ($(H)+(d)$) -- ($(Q)+(d)$) -- ($(Q)+(e)$) -- ($(H)+(e)$); %%%%%%%%%%%%%%%%%% % Titel \node at ($(Q)+(f)$) {\Titel}; }%%%%%%%%%%%%%%%%% % Anzuzeigende Werte \newcommand*\WertAnzeigen[2]{%%%%%%%%%%%%%%%%% \tikzset{/pgf/number format/.cd,fixed zerofill,precision=1, assume math mode=true} % \if\Skalentyp C % Celsius ==================== \pgfmathsetmacro{\Wert}{\temperatur+0} %\pgfmathsetmacro{\wert}{TemperaturStand(\Wert)} \path[]([shift={(0,#1)}]$(a)-(c)$) node[name=#2]{} -- ([shift={(0,#1)}]$(h)+(b)$); \begin{pgfonlayer}{foreground layer} \node[anchor=west, inner xsep=1pt, fill=white] at ([shift={(0,#1)}]$(h)+(b)$) {\pgfmathprintnumber\Wert}; \end{pgfonlayer} % \else \if\Skalentyp K % Kelvin ==================== \pgfmathsetmacro{\Wert}{Kelvin(\temperatur)} \path[]([shift={(0,#1)}]a) -- ([shift={(0,#1)}]$(h)+(b)$) node[anchor=west, fill=white, name=#2]{\pgfmathprintnumber\Wert}; % \else % Fahrenheit ==================== \pgfmathsetmacro{\Wert}{Fahrenheit(\temperatur)} \path[]([shift={(0,#1)}]a) -- ([shift={(0,#1)}]$(h)+(b)$) node[anchor=west, fill=white, name=#2]{\pgfmathprintnumber\Wert}; \fi \fi }%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\thermo}[1]{%%%%%%%%%%%%%%%% \noindent\begin{tikzpicture}[ %x=0.2cm, %y = 1cm, %xscale=0.5, %yscale=0.75, nodes={align=center, font=\sffamily\tiny, inner sep=0pt} ] \begin{scope}[name=Celsius] \Thermometer{C} % Festanzuzeigende Werte \foreach[count=\i] \t/\text in {% -273.15/Absoluter\\ Temperatur-\\nullpunkt,% 0/Gefrierpunkt\\ von Wasser,% 37/K{\"o}rper-\\temperatur,% 100/Siedepunkt\\ von Wasser,% }{ \List { \pgfmathsetmacro{\temperatur}{\t} \WertAnzeigen{TemperaturStand(\t)}{p\i} \node[anchor=east] at (p\i) {\text}; } % Variabler Wert \pgfmathsetmacro{\temperatur}{#1} \pgfmathsetmacro{\Stand}{TemperaturStand(\temperatur)} \WertAnzeigen{TemperaturStand(\temperatur)}{p} \filldraw []($(0,\Stand)+(e)$) rectangle (d); \end{scope} \begin{scope}[name=Fahrenheit, right of =Celsius, xshift = 2cm] \Thermometer{F} % Festanzuzeigende Werte \foreach[count=\i] \t \t/\Name in {-273.15,0,37,100}{%% \List {%% \pgfmathsetmacro{\temperatur}{\t} \WertAnzeigen{TemperaturStand(Fahrenheit(\t))}{q\i} }%% % Variabler Wert \pgfmathsetmacro{\temperatur}{#1} \WertAnzeigen{TemperaturStand(Fahrenheit(\temperatur))}{q} \pgfmathsetmacro{\Stand}{TemperaturStand(Fahrenheit(\temperatur))} \filldraw []($(0,\Stand)+(e)$) rectangle (d); \end{scope} \begin{scope}[name=Kelvin, right of =Fahrenheit, xshift = 5cm] \Thermometer{K} % Festanzuzeigende Werte \foreach[count=\i] \t \t/\Name in {-273.15,0,37,100}{%% \List {%% \pgfmathsetmacro{\temperatur}{\t} \WertAnzeigen{TemperaturStand(Kelvin(\t))}{r\i} }%% % Variabler Wert \pgfmathsetmacro{\temperatur}{#1} \WertAnzeigen{TemperaturStand(Kelvin(\temperatur))}{r} \pgfmathsetmacro{\Stand}{TemperaturStand(Kelvin(\temperatur))} \filldraw []($(0,\Stand)+(e)$) rectangle (d); \end{scope} % Verbindungslinien Verbindungslinien C-F-K % Festanzuzeigende Werte \foreach \i \foreach[count=\i] \t/\Name in {1,...,4} \List {%% \draw[very thin] (p\i) -- (q\i) -- (r\i); }%% % Variabler Wert \newcommand\MitKelvin{\draw[thick] (p) -- (q) -- (r);} \MitKelvin % Verbindungslinien C-F % Festanzuzeigende Werte \foreach[count=\i] \t/\Name in \List {%% \draw[very thin] (p\i) -- (q\i); }%% % Variabler Wert \draw[thick] (p) -- (q) -- (r); (q); % Koordinaten anzeigen %\foreach \x in {a,...,h} %\fill[red] (\x) circle (1pt) node[below]{\x}; %% %\foreach \y in {A,...,G,P,Q} %\fill[red] (\y) circle (1pt) node[below]{\y}; %% %\draw[red, |<->|] (2,0) -- (2,\HoeheSkala) node[midway, above=1mm, sloped]{\HoeheSkala}; %\node[font=\normalsize] at (3,-3){\pgfmathparse{Fahrenheit(90)}\pgfmathresult}; \end{tikzpicture} }%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%% \thermo{66} \thermo{-15} \thermo{100} \lipsum[66] \thermo{22} \lipsum[66] %\thermo{-15} % %\thermo{100} %\lipsum[66] \end{document} [1]: https://texwelt.de/wissen/upfiles/999999999999999_5.jpg [2]: https://texwelt.de/wissen/upfiles/999999999999999_5.jpg [3]: https://texwelt.de/wissen/upfiles/55555555_157.png [4]: https://texwelt.de/wissen/upfiles/55555555_156.png [5]: https://texwelt.de/wissen/upfiles/55555555_156.pnghttps://texwelt.de/wissen/upfiles/55555555_156.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 7

19 Apr '18, 16:52

cis's gravatar image

cis
9.6k104461491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 6

19 Apr '18, 15:03

cis's gravatar image

cis
9.6k104461491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

19 Apr '18, 14:36

cis's gravatar image

cis
9.6k104461491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

19 Apr '18, 14:34

cis's gravatar image

cis
9.6k104461491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

17 Apr '18, 21:01

cis's gravatar image

cis
9.6k104461491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

17 Apr '18, 21:00

cis's gravatar image

cis
9.6k104461491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

17 Apr '18, 20:59

cis's gravatar image

cis
9.6k104461491