Archiv verlassen und diese Seite im Standarddesign anzeigen : (Fortschrittsbalken) Einheiten aus Usereingabe entfernen
Spindoctor
03-09-2010, 15:41
Hallo!
Für mein Fortschrittsbalken-Projekt möchte ich, dass die User diverse Optionen benutzen können. Darunter sollen auch diverse Dimensions-Angaben gemacht werden können, etwa die Länge des Balken.
Angenehm wäre es, wenn die User dabei eine Einheit ihrer Wahl nehmen können. Mögliche Eingaben wären etwa:
barWidth=3cm,
barWidth=50 em,
barWidth=2,
Da ich mit diesen Eingaben aber weiter rechnen muss (eh nur multiplizieren und dividieren mit Skalaren), und weil fp (was ich zum rechnen verwende) mit den Einheiten Probleme hat, muss ich irgendwie die Einheiten von den Zahlen (und eventuellen Leerzeichen) trennen. Gibts dafür einen eleganten Weg?
Danke!
wäre das printlen-Paket (http://www.ctan.org/tex-archive/help/Catalogue/entries/printlen.html) vielleicht hilfreich?
mechanicus
03-09-2010, 17:40
Hi,
schaue mal in das Paket mdframed. Dort findest du eine Möglichkeit, wie du diese Eingaben realisieren kannst.
Gruß
Marco
Spindoctor
04-09-2010, 04:26
cool, das ist ein Paket von Dir oder?
Da werd ich mir einiges abschauen! Aber kannst du ungefähr sagen in welchen Zeilen das mit den unterschiedlichen Längenangaben ist? Find das nicht so leicht...
Danke!
Find das nicht so leicht...
\documentclass{minimal}
\newlength\test
\begin{document}
\test=12cm\relax
\the\test
\makeatletter
\strip@pt\test
\def\IntStrip#1{\expandafter\IntStrip@i#1..\@nil}
\def\IntStrip@i#1.#2#3\@nil{#1}
\IntStrip{\the\test}
\end{document}
Herbert
mechanicus
04-09-2010, 09:09
Da ich mit diesen Eingaben aber weiter rechnen muss (eh nur multiplizieren und dividieren mit Skalaren), und weil fp (was ich zum rechnen verwende) mit den Einheiten Probleme hat, muss ich irgendwie die Einheiten von den Zahlen (und eventuellen Leerzeichen) trennen. Gibts dafür einen eleganten Weg?
Ich würde das Paket calc nutzen. Hier kannst du einfach multiplizieren:
\documentclass{minimal}
\usepackage{calc}
\newlength\test
\setlength{\test}{2cm*3}
\begin{document}
\the\test
\setlength{\test}{6cm}
\the\test
\end{document}
Gruß
Marco
Ich würde das Paket calc nutzen. Hier kannst du einfach multiplizieren:
\documentclass{minimal}
\usepackage{calc}
\newlength\test
\setlength{\test}{2cm*3}
\begin{document}
\the\test
\setlength{\test}{6cm}
\the\test
\end{document}
für solche einfachen Sachen ist calc ein wenig "Overkill" ...
\documentclass{minimal}
\newlength\test
\newlength\testA\testA=2cm
\setlength\test{3\testA}
\begin{document}
\the\test
\setlength\test{6cm}
\the\test
\end{document}
Herbert
mechanicus
04-09-2010, 09:42
für solche einfachen Sachen ist calc ein wenig "Overkill" ...
wohl wahr :D
Gruß
Marco
Spindoctor
04-09-2010, 15:25
\documentclass{minimal}
\newlength\test
\begin{document}
\test=12cm\relax % relax: mach nichts mit \test. (Könnte man in dem Fall auch weglassen)
\the\test % the; Gib \test aus (ohne the würde eine Fehlermeldung kommen)
\makeatletter % Sollte da nicht noch ein \makeatother kommen?
\strip@pt\test % \strip@pt nimm pt aus length raus
\def\IntStrip#1{\expandafter\IntStrip@i#1..\@nil}
\def\IntStrip@i#1.#2#3\@nil{#1}
\IntStrip{\the\test}
\end{document}Herbert
Wow, cool, das funktioniert ja einwandfrei!
hab mal in Kommentaren dazugeschrieben, was meiner Meinung nach die (mir bisher unbekannten) Befehle machen. Stimmt das?
Wow, cool, das funktioniert ja einwandfrei!
hab mal in Kommentaren dazugeschrieben, was meiner Meinung nach die (mir bisher unbekannten) Befehle machen. Stimmt das?
\documentclass{minimal}
\newlength\test
\begin{document}
\test=12cm\relax % relax: mach nichts mit \test. (Könnte man in dem Fall auch weglassen)
dann machmal: \test=12cm\the\test
\makeatletter % Sollte da nicht noch ein \makeatother kommen?
hier egal, da ich eh nichts anderes mache ...
Herbert
Spindoctor
05-09-2010, 19:38
dann machmal: \test=12cm\the\test
ah!
Aber \setlength{\test}{12cm} würd gehn!
Danke!
mechanicus
05-09-2010, 19:43
Aber \setlength{\test}{12cm} würd gehn!
Ist auch die besser LaTeX2e form. Herbert mag eben doch tex zu sehr:D
Gruß
Marco
Aber \setlength{\test}{12cm} würd gehn!
oder eben \test=12cm\relax
Herbert
Spindoctor
06-09-2010, 22:57
alles klar :)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.