Anzeige:
Ergebnis 1 bis 15 von 15

Thema: \f@size-Frage (mit ein bisschen tikz)

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

    \f@size-Frage (mit ein bisschen tikz)

    Hallo!

    Ich möchte gern eine Grafik erstellen, die sich schön in den Lauftext einfügt. Leider gelingt mir das nur fast ;-)

    Minimalbeispiel
    Code:
    \documentclass{article}
    \usepackage{tikz}
    
    \makeatletter
    \newcommand{\fontsizebox}{%
    \begin{tikzpicture}%
    \fill[fill=black] (0,0) rectangle (\f@size pt,\f@size pt);%
    \end{tikzpicture}%
    }%
    \makeatother
    
    \begin{document}
    \Huge \fontsizebox Hg
    
    \large \fontsizebox Hg
    
    \normalsize \fontsizebox Hg
    
    \tiny \fontsizebox Hg
    \end{document}
    Ich habe damit gerechnet, dass die Box immer genauso groß ist wie das "H". Tatsächlich (ohne es genau überprüft zu haben) scheint mir, dass die Box eine Höhe vom untersten Punkt vom "g" bis zum obersten Punkt vom "H" hat aber beim untersten Punkt von "H" anfängt. Das ist nicht das was ich wollte.

    Wie kann ich folgendes erreichen?

    1. Eine Box, die genauso hoch ist wie das "H"?
    2. Eine Box, die genauso hoch ist wie der unterste Punkt vom "g" bis zum obersten Punkt vom "H", aber so, dass die Box auch beim untersten Punkt vom "g" anfängt?

    Danke schonmal!!!

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

    Möglichkeit

    Code:
    \documentclass{article}
    \usepackage{tikz}
    \usepackage{calc}
    \newlength{\sizeheight}
    \newlength{\sizedepth}
    \makeatletter
    \newcommand{\fontsizebox}{%
    \setlength{\sizeheight}{\heightof{Hg}}
    \setlength{\sizedepth}{\depthof{Hg}}
    \begin{tikzpicture}[baseline]%
    \fill[fill=black] (0,-\sizedepth) rectangle (\f@size pt,\sizeheight);%
    \end{tikzpicture}%
    }%
    \makeatother
    
    \begin{document}
    \Huge \fontsizebox Hg
    
    \large \fontsizebox Hg
    
    \normalsize \fontsizebox Hg
    
    \tiny \fontsizebox Hg
    \end{document}
    Gruß
    Marco

  3. #3
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Wie kann ich folgendes erreichen?

    1. Eine Box, die genauso hoch ist wie das "H"?
    2. Eine Box, die genauso hoch ist wie der unterste Punkt vom "g" bis zum obersten Punkt vom "H", aber so, dass die Box auch beim untersten Punkt vom "g" anfängt?
    Code:
    \documentclass{article}
    \usepackage{xcolor}
    
    \newcommand\fontsizebox[1]{{\fboxsep0pt\colorbox{black}{\phantom{#1}}}}
    
    \begin{document}
    \Huge \fontsizebox{H}H\fontsizebox{g}g
    
    \large \fontsizebox{g}H\fontsizebox{g}g
    
    \normalsize \fontsizebox{H}H\fontsizebox{g}g
    
    \tiny \fontsizebox{Hg}Hg
    
    \end{document}

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    Danke für eure Antworten, das funktioniert ja super!

    Wenn ich jetzt eine Box machen will, die genauso groß ist wie die Versalhöhe (also Schrifthöhe ohne Unterlänge), ist es dann egal welchen Großbuchstaben ich nehme, bzw. gibts da ein spezielles Kommando dafür, wo ich keinen Buchstaben angeben muss?

  5. #5
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von mechanicus Beitrag anzeigen

    Möglichkeit
    mit einer Box kann man das vereinfachen:
    Code:
    \documentclass{article}
    
    \newsavebox\CBox
    \newcommand\fontsizebox[1]{%
      \sbox\CBox{#1}\rule[-\dp\CBox]{\wd\CBox}{\dimexpr\ht\CBox+\dp\CBox}}
    
    \begin{document}
    
    \Huge \fontsizebox{H}H\fontsizebox{Hg}Hg\fontsizebox{g}g
    
    \end{document}

  6. #6
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Wenn ich jetzt eine Box machen will, die genauso groß ist wie die Versalhöhe (also Schrifthöhe ohne Unterlänge), ist es dann egal welchen Großbuchstaben ich nehme, bzw. gibts da ein spezielles Kommando dafür, wo ich keinen Buchstaben angeben muss?
    Code:
    \documentclass{article}
    
    \newsavebox\CBox
    \newcommand\fontsizebox[1]{%
      \sbox\CBox{#1}\rule[-\dp\CBox]{\wd\CBox}{\dimexpr\ht\CBox+\dp\CBox}}
    \newcommand\fontbox{\rule{5pt}{\ht\strutbox}}
    
    \begin{document}
    \Huge 
    \fontbox\space
    \fontsizebox{H}H\fontsizebox{Hg}Hg\fontsizebox{g}g
    
    \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
    mit einer Box kann man das vereinfachen:
    Das hat für mich zwei Nachteile
    1. nutzt nicht tikz, wie vom doctor gewünscht
    2. nutzt zuviel TeX, was wohl zur Verwirrung führen kann.


    Wobei ich auch zuerst an eine einfache hbox gedacht habe

    Gruß
    Marco

  8. #8
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    ... ok, danke!
    Heißt das, es ist egal, welcher Großbuchstabe?

  9. #9
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    ums klar zu machen - ich will nicht wirklich nur eine Box machen - es geht immer noch um mein progressbar-package (es ist fast fertig). Allerdings mach ich jetzt noch die Höhe mit \f@size*0.75, was irgendwie schlampig ist, nicht wahr?

  10. #10
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Spindoctor Beitrag anzeigen
    ums klar zu machen - ich will nicht wirklich nur eine Box machen - es geht immer noch um mein progressbar-package (es ist fast fertig). Allerdings mach ich jetzt noch die Höhe mit \f@size*0.75, was irgendwie schlampig ist, nicht wahr?
    Sorry, aber ich habe das nicht so richtig verfolgt und weiß daher nicht, was du bezwecken willst

    Gruß
    Marco

  11. #11
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    oh, kein problem, ist ja auch schon eine zeitlang her - du hast mir jdfs. ziemlich geholfen bei dem package damals

    Anyway, ich möchte eine Grafik machen, die sich schön in den Lauftext einfügt. Das heißt, dass ich eine Grafik erstellen will, die genau die Versalhöhe hat (oder sich auf die Versalhöhe bezieht zumindest). Ist da eine der vorgestellten Techniken geeignet?

  12. #12
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Spindoctor Beitrag anzeigen
    Anyway, ich möchte eine Grafik machen, die sich schön in den Lauftext einfügt. Das heißt, dass ich eine Grafik erstellen will, die genau die Versalhöhe hat (oder sich auf die Versalhöhe bezieht zumindest). Ist da eine der vorgestellten Techniken geeignet?
    Du kannst doch die tikz-Umgebung nutzen. Für die Festelegung der Höhe hast du ja nun schon verschiedene Techniken kennengelernt.

    Gruß
    Marco

  13. #13
    Registrierter Benutzer
    Registriert seit
    09.06.2007
    Beiträge
    338
    Ja stimmt. Möcht nur noch wissen, ob alle Großbuchstaben gleich groß sind. Oder muss ich \heightof{ABCDEFGHIJKLMNOPQRSTUVWXYZ} verwenden?

  14. #14
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Spindoctor Beitrag anzeigen
    oh, kein problem, ist ja auch schon eine zeitlang her - du hast mir jdfs. ziemlich geholfen bei dem package damals

    Anyway, ich möchte eine Grafik machen, die sich schön in den Lauftext einfügt. Das heißt, dass ich eine Grafik erstellen will, die genau die Versalhöhe hat (oder sich auf die Versalhöhe bezieht zumindest). Ist da eine der vorgestellten Techniken geeignet?
    das ist doch völlig egal, wie hoch die Grafik ist. Du machst einfach
    Code:
    \resizebox{!}{\ht\strut}{...}
    Herbert

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

    Danke!

    Ok, hab jetzt die Technik mit calc und \heightof{I} verwendet.

    Danke für den \resizebox-Tipp, voss. Ich nehm an, der sorgt dafür, dass man ein Objekt genau auf die Höhe des Lauftexts bringt. Das ist in meinem Fall leider (auch) nicht geeignet, weil ich in meinem Paket auch die Möglichkeit geben will, eine andere Höhe als die voreingestellte zu verwenden. ich brauch also tatsächlich die Angabe der Versalhöhe als length. Der \resizebox-Tipp wird mir in der Zukunft aber sicher auch mal helfen

    Aber das müsst jetzt eh passen.

Stichworte

Lesezeichen

Berechtigungen

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