Difference between revisions of "Simple Bibliography"

From Wiki
Jump to navigation Jump to search
m (changed pre to texcode)
Line 1: Line 1:
(Version 0.01)
+
(Version 0.02)
  
 
Sometimes the bibliography needs to be more flexible. For this case here is a simple module (still in development) to help. It is also a good starting-point for your own adaption.
 
Sometimes the bibliography needs to be more flexible. For this case here is a simple module (still in development) to help. It is also a good starting-point for your own adaption.
Line 5: Line 5:
 
Still open points:
 
Still open points:
 
* interface should be multilingual
 
* interface should be multilingual
* n*broad / itemspace is not working
 
 
* \item[...] should be rightaligned
 
* \item[...] should be rightaligned
* \textreference[...]{\tmpabkuerzung} is not working (value-copy problem)
+
* modulesparamters are always empty
  
 
<texcode>
 
<texcode>
\startmodule[quellenverzeichnis]
+
\startmodule[quellenverzeichnis]
\unprotect
+
\unprotect
  
%\setupmodule[itemspace=12]
+
%\setupmodule[itemspace=12,referenzfarbe=red]
  
\defineitemgroup[quellenverzeichnis]
+
\defineitemgroup[quellenverzeichnis]
\setupitemgroup[quellenverzeichnis][levels=1,left={[},right={]},stopper=]
+
\setupitemgroup[quellenverzeichnis][levels=1,left={[},right={]},stopper=]
\setupitemgroup[quellenverzeichnis][1][n,12*broad]
+
\setupitemgroup[quellenverzeichnis][1][n,12*broad]
%\expanded{\setupitemgroup[bibliography][1][n,\currentmoduleparameter{itemspace}*broad]}  
+
%\expanded{\setupitemgroup[bibliography][1][n,\currentmoduleparameter{itemspace}*broad]}  
  
\def\referenz[#1]#2{\doifemptyelse{#2}
+
\def\referenz[#1]#2{\doifemptyelse{#2}
{[\in[#1]]}
+
{[\color[\currentmoduleparameter{referenzfarbe}]{\in[#1]]}}
{[\in[#1], #2]}}
+
{[\color[\currentmoduleparameter{referenzfarbe}]{\in[#1], #2]}}}
 +
        % problem: \currentmoduleparamter{referenzfarbe} is empty
 +
\def\dekodiereQuelle#1[#2]
 +
{\getparameters[tmp][autor=,herausgeber=,jahr=,titel=,in=,serie=,band=,heft=,auflage=,bauflage=,verlag=,ort=,isbn=,url=,seiten=,#2]%
 +
\doifnot{\tmpautor}{}  {\tmpautor\doifnot{\tmpjahr}{}{ }}%
 +
\doifnot{\tmpherausgeber}{}{\doifnot{\tmpautor}{}{ - }\tmpherausgeber~(Hrsg.)\doifnot{\tmpjahr}{}{ }}%
 +
\doifnot{\tmpjahr}{}  {(\tmpjahr)}%
 +
\doifelse{\tmpautor}{}
 +
{\doifelse{\tmpherausgeber}{}%
 +
{\doifnot{\tmpjahr}{}{: }}{: }}{: }%
 +
\doifnot{\tmptitel}{}  {{\it \tmptitel}}%
 +
\doifnot{\tmpserie}{}  { aus der Reihe {\it \tmpserie}}%
 +
\doifnot{\tmpband}{}  { (Band~\tmpband)}%
 +
\doifnot{\tmpheft}{}  { (Heft~\tmpheft)}%
 +
\doifnot{\tmpauflage}{}{, \tmpauflage.~Auflage}%
 +
\doifnot{\tmpbauflage}{}{, \tmpbauflage.~überarbeitete Auflage}%
 +
\doifnot{\tmpverlag}{} {, \tmpverlag}%
 +
\doifnot{\tmport}{}    { \tmport}%
 +
\doifnot{\tmpisbn}{}  {, ISBN~\tmpisbn}%
 +
\doifnot{\tmpseiten}{} {, S.~\tmpseiten}%
 +
\doifnot{\tmpurl}{}    {, \tmpurl}%
 +
  \doifnot{\tmpin}{}    { in \expanded{\dekodiereQuelle[\tmpin]}}
 +
}
  
\def\quelle#1[#2]
+
\def\quelle#1[#2]
{\getparameters[tmp][schluessel=,abkuerzung=,autor=,jahr=,titel=,serie=,band=,verlag=,ort=,url=,seiten=,#2]
+
{\getparameters[tmp][schluessel=,abkuerzung=,#2]
%\expandafter\processaction\expandafter[\tmpabkuerzung]
+
\doifelse{\tmpabkuerzung}{}
% [\s!default =>{\item[\tmpschluessel]},
+
      {\item[\tmpschluessel]}
        % \s!unknown =>{\textreference[\tmpschluessel]{\cap{\expandafter[\tmpabkuerzung]}}}]
+
      {\sym{\cap{\tmpabkuerzung}}\expanded{\textreference[\tmpschluessel]{\cap{\tmpabkuerzung}}}}%
\item[\tmpschluessel]
+
\dekodiereQuelle[#2]
\expandafter\processaction\expandafter[\tmpautor]
 
        [\s!unknown =>{\tmpautor}]
 
\expandafter\processaction\expandafter[\tmpjahr]
 
        [\s!unknown =>{~(\tmpjahr):}]
 
\expandafter\processaction\expandafter[\tmptitel]
 
        [\s!unknown =>{~{\it \tmptitel}}]
 
\expandafter\processaction\expandafter[\tmpserie]
 
        [\s!unknown =>{~aus der Reihe {\it \tmpserie}}]
 
\expandafter\processaction\expandafter[\tmpband]
 
        [\s!unknown =>{~(Band \tmpband),}]
 
\expandafter\processaction\expandafter[\tmpverlag]
 
        [\s!unknown =>{~\tmpverlag}]
 
\expandafter\processaction\expandafter[\tmport]
 
[\s!default =>{,},
 
        \s!unknown =>{~\tmport,}]
 
\expandafter\processaction\expandafter[\tmpurl]
 
        [\s!unknown =>{~\tmpurl}]
 
 
}
 
}
\protect
+
 
\stopmodule
+
\protect
\endinput
+
\stopmodule
 +
\endinput
 
</texcode>
 
</texcode>
  
Line 65: Line 70:
 
\startquellenverzeichnis
 
\startquellenverzeichnis
  
\quelle[schluessel=cha8,autor={Paul, Hugo},jahr=2008,titel={Das Nirgendwo...}]
+
\quelle[schluessel=cha8,autor={Paul, Hugo},jahr=2008,titel={Das Nirgendwo...},in={titel={Die große Sammlung},herausgeber={Markoven, Heiner},verlag={Frühschuss}}]
  
 
\stopquellenverzeichnis
 
\stopquellenverzeichnis

Revision as of 09:28, 31 August 2007

(Version 0.02)

Sometimes the bibliography needs to be more flexible. For this case here is a simple module (still in development) to help. It is also a good starting-point for your own adaption.

Still open points:

  • interface should be multilingual
  • \item[...] should be rightaligned
  • modulesparamters are always empty
\startmodule[quellenverzeichnis]
\unprotect

%\setupmodule[itemspace=12,referenzfarbe=red]

\defineitemgroup[quellenverzeichnis]
\setupitemgroup[quellenverzeichnis][levels=1,left={[},right={]},stopper=]
\setupitemgroup[quellenverzeichnis][1][n,12*broad]
%\expanded{\setupitemgroup[bibliography][1][n,\currentmoduleparameter{itemspace}*broad]} 

\def\referenz[#1]#2{\doifemptyelse{#2}
	{[\color[\currentmoduleparameter{referenzfarbe}]{\in[#1]]}}
	{[\color[\currentmoduleparameter{referenzfarbe}]{\in[#1], #2]}}}
        % problem: \currentmoduleparamter{referenzfarbe} is empty
\def\dekodiereQuelle#1[#2]
	{\getparameters[tmp][autor=,herausgeber=,jahr=,titel=,in=,serie=,band=,heft=,auflage=,bauflage=,verlag=,ort=,isbn=,url=,seiten=,#2]%
	\doifnot{\tmpautor}{}  {\tmpautor\doifnot{\tmpjahr}{}{ }}%
	\doifnot{\tmpherausgeber}{}{\doifnot{\tmpautor}{}{ - }\tmpherausgeber~(Hrsg.)\doifnot{\tmpjahr}{}{ }}%
	\doifnot{\tmpjahr}{}   {(\tmpjahr)}%
	\doifelse{\tmpautor}{}
		{\doifelse{\tmpherausgeber}{}%
			{\doifnot{\tmpjahr}{}{: }}{: }}{: }%
	\doifnot{\tmptitel}{}  {{\it \tmptitel}}%
	\doifnot{\tmpserie}{}  { aus der Reihe {\it \tmpserie}}%
	\doifnot{\tmpband}{}   { (Band~\tmpband)}%
	\doifnot{\tmpheft}{}   { (Heft~\tmpheft)}%
	\doifnot{\tmpauflage}{}{, \tmpauflage.~Auflage}%
	\doifnot{\tmpbauflage}{}{, \tmpbauflage.~überarbeitete Auflage}%
	\doifnot{\tmpverlag}{} {, \tmpverlag}%
	\doifnot{\tmport}{}    { \tmport}%
	\doifnot{\tmpisbn}{}   {, ISBN~\tmpisbn}%
	\doifnot{\tmpseiten}{} {, S.~\tmpseiten}%
	\doifnot{\tmpurl}{}    {, \tmpurl}%
   	\doifnot{\tmpin}{}     { in \expanded{\dekodiereQuelle[\tmpin]}}
	}

\def\quelle#1[#2]
	{\getparameters[tmp][schluessel=,abkuerzung=,#2]
	\doifelse{\tmpabkuerzung}{}
	      {\item[\tmpschluessel]}
	      {\sym{\cap{\tmpabkuerzung}}\expanded{\textreference[\tmpschluessel]{\cap{\tmpabkuerzung}}}}%
	\dekodiereQuelle[#2]
	}

\protect
\stopmodule
\endinput

And here is an example how to use it:


\usemodule[quellenverzeichnis]

\starttext

\chapter{Quellen}
\subject{Textrepräsentation}
\startquellenverzeichnis

\quelle[schluessel=cha8,autor={Paul, Hugo},jahr=2008,titel={Das Nirgendwo...},in={titel={Die große Sammlung},herausgeber={Markoven, Heiner},verlag={Frühschuss}}]

\stopquellenverzeichnis
\subsubject{Internationalität}
\startquellenverzeichnis[continue]

\quelle[schluessel=rv,abkuerzung=Etd05,autor={Etemad, Elika J.},jahr=2005,
titel={Robuts vertical text layout},serie={Technical Note},band=22,
verlag={Unicode Inc.},url={http://www.unicode.org/notes/tn22/}]

\stopquellenverzeichnis

\stoptext