PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Punkt hinter section-number als Makro



msthab
26-08-2014, 10:50
Hallo Zusammen,
ich möchte, dass in meinem Text ein Punkt hinter der section-nummer erscheint. Kein Problem mit:

\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:


\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}

u_fischer
26-08-2014, 11:33
\makeatletter %außerhalb
\newcommand{\mitPunkt}{%
\def\@seccntformat##1{\csname the##1\endcsname. } %##1 statt #1
}
\makeatother

msthab
26-08-2014, 14:04
Super!
Funktioniert! Ganz herzlichen Dank!
Manfred

klops
26-08-2014, 17:18
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:
\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:
\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.

msthab
29-08-2014, 08:34
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