Anzeige:
Ergebnis 1 bis 3 von 3

Thema: \def in \def schachteln?

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.03.2009
    Beiträge
    180

    \def in \def schachteln?

    Hallo

    Folgender Code (von Ulrike, besten Dank!) schreibt die in den Klammern definierten Begriffe aus. ("Benutze ...")
    Code:
    \documentclass[11pt]{article}  
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    
    \begin{document}
    
    \makeatletter
    \def\bibmacrofor@abl{Benutze abl}
    \def\bibmacrofor@ABL{Benutze abl}
    \def\bibmacrofor@rpw{Benutze rpw}
    \def\bibmacrofor@RPW{Benutze rpw}
    
    \newcommand\journalcheck{%
     \begingroup
     \def\gls##1{##1}%
     \csname bibmacrofor@\abx@field@journaltitle\endcsname
     \endgroup}
    
    \def\abx@field@journaltitle{{\gls{abl}}}
     \journalcheck
     
    \def\abx@field@journaltitle{\gls{abl}}
     \journalcheck
     
    \def\abx@field@journaltitle{abl}
     \journalcheck
    
    \def\abx@field@journaltitle{ABL}
     \journalcheck
     
    \def\abx@field@journaltitle{rpw}
     \journalcheck
    
    \end{document}
    Ich möchte jedoch, dass nicht die Angaben in den Klammern ausgedruckt werden, sondern dass eine Variable definiert wird. Wo wie ich das unten geschrieben habe, funktioniert es leider nicht. Wie codiert man so etwas?
    Code:
    \documentclass[11pt]{article}  
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    
    \begin{document}
    
    \makeatletter
    \def\tempP{leer}
    \def\bibmacrofor@abl{\def\tempP{abl}}
    \def\bibmacrofor@ABL{\def\tempP{abl}}
    \def\bibmacrofor@rpw{\def\tempP{rpw}}
    \def\bibmacrofor@RPW{\def\tempP{rpw}}
    
    \newcommand\journalcheck{%
     \begingroup
     \def\gls##1{##1}%
     \csname bibmacrofor@\abx@field@journaltitle\endcsname
     \endgroup}
    
    \def\abx@field@journaltitle{\gls{abl}}
     \journalcheck
     \tempP
    \def\abx@field@journaltitle{abl}
     \journalcheck
    \tempP
    \def\abx@field@journaltitle{ABL}
     \journalcheck
     \tempP
    \def\abx@field@journaltitle{rpw}
     \journalcheck
    \tempP
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Du musst dein \tempP global definieren.

    Code:
    \def\bibmacrofor@abl{\gdef\tempP{abl}}

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.03.2009
    Beiträge
    180
    Super, danke!

Lesezeichen

Berechtigungen

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