Eigener Befehl mit optionalem Argument und Fallunterscheidun

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


talueng
Forum-Anfänger
Forum-Anfänger
Beiträge: 39
Registriert: Mo 31. Mai 2010, 13:32

Beitrag von talueng »

Danke, habe ich geändert. :) Vollständiger Code.
% Eigene Funktion für Zitate (kann statt \cite{key} verwendet).
% werden. Ergänzt typografisch korrekt formatierte Seitenangaben
% (geschützte Leerzeichen) samt "f." (bzw. "ff.") nach 
% folgender Logik: 
%
%    Zitieren von zwei Seiten:            S. [Seite] f.
%    Zitieren von drei bis fünf Seiten:   S. [Seite] ff.
%    Zitieren von mehr als fünf Seiten:   S. [von-bis]
%
% Aufruf:              \ct[seiten]{key}
%
% Parameter:
%   seiten (opt.) - Seitenangabe (einzelner Integer oder von-bis)
%   key - der BibTeX-Eintrag
%
% Beispiele:
%   \ct{Porter1980}
%   \ct[23]{Porter1980}
%   \ct[4-85]{Porter1980}
%
\newcounter{testA}
\makeatletter
\newcommand*\ct[2][]{%
  \cite{#2}\ifx\relax#1\relax\else, S.\,%
  \expandafter\Seite@i#1--\@nil\fi}
\def\Seite@i#1-#2-#3\@nil{%
  \ifx\relax#2\relax %    ohne -
    #1\else
    \setcounter{testA}{#2}%
    \addtocounter{testA}{-#1}%
    \ifnum \value{testA}=1
       \mbox{#1\,f.\xspace}\else\ifnum \value{testA}<6
         \mbox{#1\,ff.\xspace}\else#1--#2\fi\fi\fi}
\makeatother


Antworten