Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Punkt hinter section-number als Makro

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48

    Punkt hinter section-number als Makro

    Hallo Zusammen,
    ich möchte, dass in meinem Text ein Punkt hinter der section-nummer erscheint. Kein Problem mit:
    Code:
    \makeatletter  \def\@seccntformat#1{\csname the#1\endcsname. } \makeatother
    Ich möchte nun, dass diese Sequenz nicht immer ausgeführt wird, sondern nur nach einem speziellen Aufruf (z.B. in einem \newcommand)

    Dies ist aber nicht möglich. Offenbar interpretiert Latex dann #1 als Argument des Makros, was ja nicht vorhanden ist.

    Hat jemand eine Idee, wie das Problem gelöst werden kann? Gibt es ggf eine ganz andere Methode den Punkt (und ggf weiteren Text) anzuzeigen?

    Vielen Dank

    Manfred

    Hier das Minimalbeispiel:

    Code:
    \documentclass[ngerman]{article}
    \usepackage[T1]{fontenc}
    \usepackage[latin9]{inputenc}
    \usepackage{babel}
    \begin{document}
      
    % Diese Zeile macht den Punkt hinter der Section-nummer => Funktioniert
    \makeatletter  \def\@seccntformat#1{\csname the#1\endcsname. } \makeatother
    
    
    % Wenn ich diese Zeile in ein newcommand einbinde funktioniert es nicht  
      \newcommand{\mitPunkt}{
     \makeatletter  \def\@seccntformat#1{\csname the#1\endcsname. } \makeatother
    }
    
    \section{Einleitung}
    Text
    \section{Schluss}
    Text
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Code:
    \makeatletter   %außerhalb
    \newcommand{\mitPunkt}{%
     \def\@seccntformat##1{\csname the##1\endcsname. } %##1 statt #1
    }
    \makeatother

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48
    Super!
    Funktioniert! Ganz herzlichen Dank!
    Manfred

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Als allgemeine Regel sei noch erwähnt, dass man bei jeder Definitionsebene, die man nach unten steigt, die Anzahl der # für ein Argument verdoppeln muss:
    Code:
    \newcommand*{\aussen}[1]{%
      \newcommand*{\mitte}[1]{%
        \newcommand*{\innen}[1]{%
        % ####1 ist das Argument von \innen
        % ##1 ist das Argument von \mitte
        % #1 ist das Argument von \aussen
        }%
      }%
    }
    oder in TeX:
    Code:
    \def\aussen#1{%
      \def\mitte##1{%
        \def\innen####1{%
        % ####1 ist das Argument von \innen
        % ##1 ist das Argument von \mitte
        % #1 ist das Argument von \aussen
        }%
      }%
    }
    Und das geht auch so weiter, wenn man noch tiefer absteigt. Wichtig ist also: Nicht immer nur ein # dazu, sondern die Anzahl der # immer verdoppeln.

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48
    Obwohl ich (nun wieder) seit einigen Jahren sehr viel mit LaTex arbeite, bin ich so tief in die Grundlagen noch nicht vorgestoßen. Vielen Dank an Beide für die "Nachhilfe"!

    Viele Grüße

    Manfred

Lesezeichen

Berechtigungen

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