Anzeige:
Ergebnis 1 bis 13 von 13

Thema: (Fortschrittsbalken) Einheiten aus Usereingabe entfernen

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338

    (Fortschrittsbalken) Einheiten aus Usereingabe entfernen

    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:
    Code:
    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!

    [edit]
    wäre das printlen-Paket (http://www.ctan.org/tex-archive/help.../printlen.html) vielleicht hilfreich?
    [/edit]
    Geändert von Spindoctor (03-09-2010 um 15:33 Uhr) Grund: ergänzung

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    schaue mal in das Paket mdframed. Dort findest du eine Möglichkeit, wie du diese Eingaben realisieren kannst.

    Gruß
    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    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!

  4. #4
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Find das nicht so leicht...
    Code:
    \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

  5. #5
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Spindoctor Beitrag anzeigen
    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:
    Code:
    \documentclass{minimal}
    \usepackage{calc}
    \newlength\test
    \setlength{\test}{2cm*3}
    
    \begin{document}
    \the\test
    
    \setlength{\test}{6cm}
    \the\test
    \end{document}
    Gruß
    Marco

  6. #6
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von mechanicus Beitrag anzeigen
    Ich würde das Paket calc nutzen. Hier kannst du einfach multiplizieren:
    Code:
    \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" ...

    Code:
    \documentclass{minimal}
    \newlength\test
    \newlength\testA\testA=2cm
    \setlength\test{3\testA}
    
    \begin{document}
    \the\test
    
    \setlength\test{6cm}
    \the\test
    \end{document}
    Herbert

  7. #7
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von voss Beitrag anzeigen
    für solche einfachen Sachen ist calc ein wenig "Overkill" ...
    wohl wahr


    Gruß
    Marco

  8. #8
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    Zitat Zitat von voss Beitrag anzeigen
    Code:
    \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?

  9. #9
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Wow, cool, das funktioniert ja einwandfrei!

    hab mal in Kommentaren dazugeschrieben, was meiner Meinung nach die (mir bisher unbekannten) Befehle machen. Stimmt das?
    Code:
    \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

  10. #10
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    Zitat Zitat von voss Beitrag anzeigen

    dann machmal: \test=12cm\the\test
    ah!

    Aber \setlength{\test}{12cm} würd gehn!

    Danke!

  11. #11
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Aber \setlength{\test}{12cm} würd gehn!
    Ist auch die besser LaTeX2e form. Herbert mag eben doch tex zu sehr

    Gruß
    Marco

  12. #12
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Aber \setlength{\test}{12cm} würd gehn!
    oder eben \test=12cm\relax

    Herbert

  13. #13
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    alles klar

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •