diff options
Diffstat (limited to 'macros/latex/contrib/schulmathematik/schulma-physik.sty')
-rw-r--r-- | macros/latex/contrib/schulmathematik/schulma-physik.sty | 68 |
1 files changed, 65 insertions, 3 deletions
diff --git a/macros/latex/contrib/schulmathematik/schulma-physik.sty b/macros/latex/contrib/schulmathematik/schulma-physik.sty index 975093e906..92b5a45d23 100644 --- a/macros/latex/contrib/schulmathematik/schulma-physik.sty +++ b/macros/latex/contrib/schulmathematik/schulma-physik.sty @@ -1,7 +1,7 @@ % schulmathematik bundle: package schulma-physik -% Version 1.4 -% 13. März 2023 -\ProvidesExplPackage{schulma-physik}{2023-03-13}{1.4}{Befehle für die Schulphysik} +% Version 1.5 +% 21. Juni 2023 +\ProvidesExplPackage{schulma-physik}{2023-06-21}{1.5}{Befehle für die Schulphysik} \newif \ifschulma@physik@circuitikz % keine expl3-Syntax möglich, da von circuits.ee.IEC nicht unterstützt @@ -428,6 +428,68 @@ } +\dim_const:Nn \c_schulma_physik_multimeter_zeigerlaenge_dim {3.4cm} +\dim_const:Nn \c_schulma_physik_multimeter_skalenradius_dim {2.9cm} +\dim_const:Nn \c_schulma_physik_multimeter_breite_dim {5cm} +\dim_const:Nn \c_schulma_physik_multimeter_hoehe_dim {4cm} +\dim_new:N \l_schulma_physik_multimeter_skalenbeschriftung_dim +\fp_const:Nn \c_schulma_physik_multimeter_sektorwinkel_fp {80} + +\NewDocumentCommand \Multimeter {mmm} + { + \begin {tikzpicture} [ font = { \sffamily \footnotesize } ] + % äußere Skala bis 10 + \dim_set:Nn \l_tmpa_dim { \c_schulma_physik_multimeter_skalenradius_dim + 1mm } + \dim_set:Nn \l_schulma_physik_multimeter_skalenbeschriftung_dim { \c_schulma_physik_multimeter_skalenradius_dim + 5mm } + \int_step_inline:nnn {0} {50} + { + \fp_set:Nn \l_tmpa_fp { 90 + (0.5 - ##1/50) * \c_schulma_physik_multimeter_sektorwinkel_fp } + \int_compare:nNnTF { \int_mod:nn {##1} {5} } = {0} + { + \dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim + 3mm } + \draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ; + \int_compare:nNnT { \int_mod:nn {##1} {10} } = {0} + { + \node at ( \fp_use:N \l_tmpa_fp \c_colon_str \l_schulma_physik_multimeter_skalenbeschriftung_dim ) { \int_eval:n {2*##1/10} } ; + } + } + { + \dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim + 2mm } + \draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ; + } + } + % innere Skala bis 3 + \dim_set:Nn \l_tmpa_dim { \c_schulma_physik_multimeter_skalenradius_dim - 1mm } + \dim_set:Nn \l_schulma_physik_multimeter_skalenbeschriftung_dim { \c_schulma_physik_multimeter_skalenradius_dim - 5mm } + \int_step_inline:nnn {0} {30} + { + \fp_set:Nn \l_tmpa_fp { 90 + (0.5 - ##1/30) * \c_schulma_physik_multimeter_sektorwinkel_fp } + \int_compare:nNnTF { \int_mod:nn {##1} {5} } = {0} + { + \dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim - 3mm } + \draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ; + \int_compare:nNnT { \int_mod:nn {##1} {10} } = {0} + { + \node at ( \fp_use:N \l_tmpa_fp \c_colon_str \l_schulma_physik_multimeter_skalenbeschriftung_dim ) { \int_eval:n {##1/10} } ; + } + } + { + \dim_set:Nn \l_tmpb_dim { \c_schulma_physik_multimeter_skalenradius_dim - 2mm } + \draw ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpa_dim ) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \l_tmpb_dim ) ; + } + } + % Zeiger + \fp_set:Nn \l_tmpa_fp { 90 + (0.5 - #1/#2) * \c_schulma_physik_multimeter_sektorwinkel_fp } + \fill (0,0) circle [ radius = 2.5pt ] ; + \draw [semithick] (0,0) -- ( \fp_use:N \l_tmpa_fp \c_colon_str \dim_use:N \c_schulma_physik_multimeter_zeigerlaenge_dim ) ; + % Rahmen + \draw ( -0.5 * \c_schulma_physik_multimeter_breite_dim , -3mm ) -- ++ ( \c_schulma_physik_multimeter_breite_dim , 0 ) + node [above~left] { \normalsize \qty [ mode = text , reset-text-family = false ] {#2} {#3} } + -- ++ ( 0 , \c_schulma_physik_multimeter_hoehe_dim ) -- ++ ( - \c_schulma_physik_multimeter_breite_dim , 0 ) + -- ++ ( 0 , - \c_schulma_physik_multimeter_hoehe_dim ) ; + \end{tikzpicture} + } + \ExplSyntaxOff \ifschulma@physik@circuitikz |