Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Textplatzierung in Node

  1. #1
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    219

    Textplatzierung in Node

    Hallo,

    ich habe für eine Aufgabe einen Text, der in eine Lineatur geschrieben wird. Dabei habe ich das Problem, dass der Text je nach Inhalt nicht korrekt in der Lineatur platziert wird.

    Wenn keine g oder andere Buchstaben, die die dritte Zeile der Lineatur belegen, dann wird Text in der Lineatur zu tief angezeigt. Wenn kein Großbuchstabe oder Buchstaben wie t, h oder f enthalten sind, dann wird der text zu hoch angezeigt.

    Meine Idee war bisher, dass ich dem Text am Ende die Buchstaben g und f hinzufüge, ohne das diese sichtbar sind. Ich habe ein wenig mit transparent und opacity gespielt, es aber nicht hinbekommen. Es gibt sicher auch elegantere Lösungen.

    Hat da jemand eine Idee.

    Viele Grüße
    Swizz

    Minimalbeispiel
    Code:
    \documentclass{article}
    \usepackage{tikz}
    \usepackage{fontspec}
    \usetikzlibrary{math}
    \usepackage{geometry}
    \setlength\parindent{0pt}
    \geometry{a4paper, top=10mm, left=12.5mm, right=5mm, bottom=5mm}
    
    \newcommand\zwc[1][]{
     	\pgfkeys{
     		/zwc/zw/.initial=0,
     		/zwc/fs/.initial=0.5,
     		/zwc/lb/.initial=5
     	}%\
     	\pgfkeys{/zwc/.cd,#1}
     	\pgfkeysgetvalue{/zwc/zw}{\zw}
     	\pgfkeysgetvalue{/zwc/fs}{\fs}
     	\pgfkeysgetvalue{/zwc/lb}{\lb}
     	\tikzmath{
     		\lbc=\lb/2;
     		\fsc=\fs/3;
     		\fsh=\fs/6;
     		\linbot = -\fsh-\fsc;
     		\lintop = \fsh+\fsc;
     	}
    
      \node[align=left,text width =\lb cm]  {\fontsize{\fs cm}{0}\selectfont \zw};
      \draw(-\lbc,\linbot)--(\lbc,\linbot)--(\lbc,\lintop)--(-\lbc,\lintop)--cycle;
      \draw(-\lbc,-\fsh)--(\lbc,-\fsh);
      \draw(-\lbc,\fsh)--(\lbc,\fsh);
    	\lb
    }%\
    
    
    \begin{document}
    
    	\begin{tikzpicture}
    		\zwc[zw = Zwölf]
    	\end{tikzpicture}	Hier ist der Text zu tief
    
    	\vspace{1cm}
    
    	\begin{tikzpicture}
    		\zwc[zw = Neunzig]
    	\end{tikzpicture}	Hier ist der Text richtig
    
    	
    	\vspace{1cm}
    
    	\begin{tikzpicture}
    		\zwc[zw = eng]
    	\end{tikzpicture}	Hier ist der Text zu hoch
    
    \end{document}

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.859
    Du kannst dem \node Texthöhe und -tiefe mitgeben
    Code:
            \documentclass{article}
            \usepackage{tikz}
            \usepackage{fontspec}
            \usetikzlibrary{math}
            \usepackage{geometry}
            \setlength\parindent{0pt}
            \geometry{a4paper, top=10mm, left=12.5mm, right=5mm, bottom=5mm}
    
            \newcommand\zwc[1][]{
             	\pgfkeys{
             		/zwc/zw/.initial=0,
             		/zwc/fs/.initial=0.5,
             		/zwc/lb/.initial=5
             	}%\
             	\pgfkeys{/zwc/.cd,#1}
             	\pgfkeysgetvalue{/zwc/zw}{\zw}
             	\pgfkeysgetvalue{/zwc/fs}{\fs}
             	\pgfkeysgetvalue{/zwc/lb}{\lb}
             	\tikzmath{
             		\lbc=\lb/2;
             		\fsc=\fs/3;
             		\fsh=\fs/6;
             		\linbot = -\fsh-\fsc;
             		\lintop = \fsh+\fsc;
             	}
    
              \node[align=left,text width =\lb cm, text height=2ex, text depth=0.3ex]  {\fontsize{\fs cm}{0}\selectfont \zw};
              \draw(-\lbc,\linbot)--(\lbc,\linbot)--(\lbc,\lintop)--(-\lbc,\lintop)--cycle;
              \draw(-\lbc,-\fsh)--(\lbc,-\fsh);
              \draw(-\lbc,\fsh)--(\lbc,\fsh);
            	\lb
            }%\
    
    
            \begin{document}
    
            	\begin{tikzpicture}
            		\zwc[zw = Zwölf]
            	\end{tikzpicture}	Hier ist der Text zu tief
    
            	\vspace{1cm}
    
            	\begin{tikzpicture}
            		\zwc[zw = Neunzig]
            	\end{tikzpicture}	Hier ist der Text richtig
    
            	
            	\vspace{1cm}
    
            	\begin{tikzpicture}
            		\zwc[zw = eng]
            	\end{tikzpicture}	Hier ist der Text zu hoch
    
            \end{document}
    siehe dazu auch Ilkas Beispiel im pgf/tikz-Manual (Stichwort "dance around")

    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    219
    Perfekt, einmal mehr einen herzlichen Dank.

    VG

Lesezeichen

Berechtigungen

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