PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Argument aus geschwungenen Klammern befreien und verwenden



ElEsido
11-08-2009, 18:55
Hallo

Im folgenden Code ist beim Ersten Aufruf des Befehls Journalcheck das eigentliche Argument in geschwungenen Klammern gefangen. Es sollte so verwendet werden wie beim zweiten Aufruf.


\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}

\makeatletter
\def\bibmacrofor@abl{\gdef\tempP{abl}}
\def\bibmacrofor@ABL{\gdef\tempP{abl}}

\def\tempP{noch leer}

\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{\gls{abl}}
\journalcheck
\tempP

\end{document}

Ich habe den folgenden Code gefunden, der Argumente aus geschwungenen Klammern befreit, aber ich kann ih nicht auf mein Beispiel anpassen. Weiss jemand Rat?


% \@defstrip defines a command that assumes that the true argument
% comes embraced in braces "{}", and first strips off those braces,
% before passing it to the parameter text.
\def\@defstrip#1#2#{%
\def#1##1{\@nameuse{\name#1.}##1}%
\@namedef{\name#1.}#2}

\def\@name@defstrip#1{\expandafter\@defstrip\csnam e #1\endcsname}

Danke!
ElEsido

ElEsido
18-08-2009, 11:44
Hat jemand einen Tipp?

cookie170
18-08-2009, 13:07
Hallo,

wozu willst Du diesen Code verwenden? Was beabsichtigst Du zu erreichen?

Ich frage, weil ich zwar kein TeX kann, aber die Erfahrung gemacht habe, dass es für die meisten Probleme bereits ein Paket gibt . . .

Gruß,
Alexander

ElEsido
18-08-2009, 14:00
Hallo Alexander

Ich mache einen Biblatex-Stil für die juristische Zitierweise und muss dazu für die Typen "legislation" und "jurisdiction" verschiedenen Zeitschriften unterschiedliche Zitierweisen zuordnen. Die Titel der Zeitschriften sind im Feld "journaltitle" gespeichert, wobei Abkürzungen mit dem Paket Glossaries verwaltet werden.
Der Eintrag im Feld der Zeitschrift "Amtsblatt" kann demnach sein:
"ABl"
"\gls{abl}"
"{\gls{abl}}"

Momentan prüfe ich die Zeitschriften mit der folgenden Schachtelung von if-Befehlen:

\newbibmacro*{check-publication}{%
%\def\tempP\empty
% Test, ob Journaltitle {\gls{abl}}, \gls{abl} oder ABl
\iffieldequalstr{journaltitle}{{\gls{abl}}}{\def\t empP{abl}}%
{\iffieldequalstr{journaltitle}{\gls{abl}}{\def\te mpP{abl}}%
{\iffieldequalstr{journaltitle}{ABl}{\def\tempP{ab l}}%
{% Test ob Journaltitle {\gls{rpw}}, \gls{rpw} oder RPW
\iffieldequalstr{journaltitle}{{\gls{rpw}}}{\def\t empP{rpw}}%
{\iffieldequalstr{journaltitle}{\gls{rpw}}{\def\te mpP{rpw}}%
{\iffieldequalstr{journaltitle}{RPW}{\def\tempP{rp w}}%
{% Test ob Journaltitle BGE
\iffieldequalstr{journaltitle}{{\gls{bge}}}{\def\t empP{bge}}
{\iffieldequalstr{journaltitle}{\gls{bge}}{\def\te mpP{bge}}
{\iffieldequalstr{journaltitle}{BGE}{\def\tempP{bg e}}
{%
\iffieldequalstr{journaltitle}{{\gls{slg}}}{\def\t empP{slg}}%
{\iffieldequalstr{journaltitle}{\gls{slg}}{\def\te mpP{slg}}%
{\iffieldequalstr{journaltitle}{Slg.}{\def\tempP{s lg}}%
{\iffieldequalstr{journaltitle}{Slg}{\def\tempP{sl g}}%
{%
\iffieldequalstr{journaltitle}{{\gls{bbl}}}{\def\t empP{bbl}}
{\iffieldequalstr{journaltitle}{\gls{bbl}}{\def\te mpP{bbl}}
{\iffieldequalstr{journaltitle}{BBl}{\def\tempP{bb l}}
{\iffieldequalstr{journaltitle}{Bbl}{\def\tempP{bb l}}
{%
% Alle andern
\def\tempP{andere}}}}}}}}}}}}}}}}}}}

Nun versuche ich, das hinzukriegen, was Ulrike hier (http://www.mrunix.de/forums/showpost.php?p=297165&postcount=9) vorgeschlagen hat. Dieser Thread (http://www.mrunix.de/forums/showthread.php?t=65591) steht auch im Zusammenhang dazu.

Hast Du mir einen Tipp?

Schöne Grüsse
El Esido

bischi
18-08-2009, 14:12
jurabib?

MfG Bischi

ElEsido
18-08-2009, 15:55
Hallo Bischi!

Jurabib hatte ich mal, das kann aber bei weitem nicht alles, was Biblatex kann und ist meiner Meinung nach sehr schwerfällig zum anpassen.