PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleines,formatierbares Literaturverzeichnis



ctansearch
26-01-2010, 23:56
Hallo Alle,
die grossen und ausgefeilten Bibliographie-Programme sind mir zu kompliziert, ich habe mal versucht, ein kleines Päckchen zu schreiben, das die Sache vereinfacht, besonders im Bezug auf Formatierungen.
Wenn man das sty-file "mynotes" nicht hat, kann man "my" durch "end" ersetzen. "mynotes" funktioniert genauso wie "endnotes"
Wenn jemand Ideen hat, nur zu!

Habe den Code nochmal herausgenommen, zuviele Fehler

ctansearch
29-01-2010, 22:26
Das Ganze hat sich weiterentwickelt und erlaubt nun , ca 676 Einträge zu verwalten und zu zitieren, die Verweise im Text und in den Fußnoten aufzuzeigen und am Ende ein Zitaten-Verzeichnis in der Reihenfolge des Erscheinens im Text auszugeben.
Eine alphabetische Sortierung ist noch nicht so richtig verfügbar, ausserdem fehlt mir die Möglichkeit, Fußnoten nach Bedarf ein-und auszuschalten.

Jemand eine Idee?

(Bei Interesse stell ich auch den Code ein.)

cookie170
30-01-2010, 10:25
Hallo,

wenn Du Deiner Mühe Ergebnis hier einstellst, werden es bestimmt viele Leute ansehen. Nur zu!

ctansearch
04-02-2010, 22:09
So, nun geht es weiter

Code 1 gibt die Texdatei wieder, Code2 die Datei tinybib.sty. Die Beispile für \citeAa bis\citeAc sind beliebige erweiterbar, man kann eine Datei tinynotes.tex erstellen, in der 26x26 Einträge möglich sind. die habe ich hier aber nicht eingefügt, weil die Beispiele genügen.


\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fontenc}
\usepackage{tinybib}

\newcommand{\citeable}[9]{ ``{#9}``\tinynote#1{
$[$#2 #6 $]$
\textsc{#2},{#3}
\textit{#4}
{#5}
{#6}
{#7}
{#8}
\par}
\footnote{#2 #6}}

\newcommand{\citeAa}[1]{\citeable{#1}
{Name}%2
{Vorname} %3
{Quelle 3} %4
{Verlag 4} %5
{2005} %6
{Seite 6} %7
{Text 7} %8
{Das ist der zitierte Text} %9
}
\newcommand{\citeAb}[1]{\citeable{#1}
{Mueller} %2
{Andreas} %3
{Quelle 3} %4
{Verlag 4} %5
{8002} %6
{Seite 6} %7
{Text 7} %8
{Das ist der zitierte Text} %9
}
\newcommand{\citeAc}[1]{\citeable{#1}
{Mueller} %2
{Andreas} %3
{Quelle 3} %4
{Verlag 4} %5
{8002} %6
{Seite 6} %7
{Text 7} %8
{Das ist der zitierte Text}
}
\begin{document}
In diesem Text\citeAa{} finden sich all Zitate\citeAb{} die in dieser Datei sind\citeAc{} Man kann Sie alle anzeigen lassen, indem man einen Stern hinter die notes setzt.
\newpage
\deactivatefoot
\thetinynotes
\reactivatefoot
\end{document}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%
%
% ****************************************
% * tinyNOTES x1
% ****************************************
%
% Date of this version: Sat Sep 5 16:14:00 2009

% Matthias Borck-Elsner
%
%% Based on endnotes.sty Copyright 2002 John Lavagnino
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.2
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%
% Uses an extra external file, with .mnt extension, to hold the
% text of the tinynotes. This may be deleted after the run; a new
% version is generated each time--it doesn't require information
% collected from the previous run.
%
% This code does not obey \nofiles. Perhaps it should.
%
%
% To turn all the footnotes in your documents into tinynotes, say
%
% \let\footnote=\tinynote
%
% in your preamble, and then add something like
%
% \newpage
% \begingroup
% \parindent 0pt
% \parskip 2ex
% \def\mntnotesize{9pt}
% \thetinynotes
% \endgroup
%
% as the last thing in your document. (But \thetinynotes all
% by itself will work.)
%

%
%
% ****************************************
% * tinyNOTE COMMANDS *
% ****************************************
%
%
% \tinynote{NOTE} : User command to insert a tinynote.
%
% \tinynote[NUM]{NOTE} : User command to insert a tinynote numbered
% NUM, where NUM is a number -- 1, 2,
% etc. For example, if tinynotes are numbered
% *, **, etc. within pages, then \tinynote[2]{...}
% produces tinynote '**'. This command does not
% step the tinynote counter.
%
% \tinynotemark[NUM] : Command to produce just the tinynote mark in
% the text, but no tinynote. With no argument,
% it steps the tinynote counter before generating
% the mark.
%
% \tinynotetext[NUM]{TEXT} : Command to produce the tinynote but no
% mark. \tinynote is equivalent to
% \tinynotemark \tinynotetext .
%
% \addtotinynotes{TEXT} : Command to add text or commands to current
% tinynotes file: for inserting headings,
% pagebreaks, and the like into tinynotes
% sections. TEXT a moving argument:
% \protect required for fragile commands.
%
% ****************************************
% * tinyNOTE USER COMMANDS *
% ****************************************
%
% tinynotes use the following parameters, similar to those relating
% to footnotes:
%
% \mntnotesize : Size-changing command for tinynotes.
%
% \thetinynote : In usual LaTeX style, produces the tinynote number.
%
% \themntmark : Holds the current tinynote's mark--e.g., \dag or '1' or 'a'.
% (You don't want to set this yourself, as it comes
% either from the autonumbering of notes or from
% the optional argument to \tinynote. But you'll need
% to use it if you define your own \makemntmark.)
%
% \makemntmark : A macro to generate the tinynote marker from \themntmark
% The default definition is \hbox{$^\themntmark$}.
%
% \@makemnttext{NOTE} :
% Must produce the actual tinynote, using \themntmark as the mark
% of the tinynote and NOTE as the text. It is called when effectively
% inside a \parbox, with \hsize = \columnwidth. For example, it might
% be as simple as
% $^{\themntmark}$ NOTE
%
%
% ****************************************
% * tinyNOTE PSEUDOCODE *
% ****************************************
%
% \tinynote{NOTE} ==
% BEGIN
% \stepcounter{tinynote}
% \@themntmark :=G eval (\thetinynote)
% \@tinynotemark
% \@tinynotetext{NOTE}
% END
%
% \tinynote[NUM]{NOTE} ==
% BEGIN
% begingroup
% counter tinynote :=L NUM
% \@themntmark :=G eval (\thetinynote)
% endgroup
% \@tinynotemark
% \@tinynotetext{NOTE}
% END
%
% \@tinynotetext{NOTE} ==
% BEGIN
% write to \@mntnotes file: "\@doanmntnote{tinyNOTE MARK}"
% begingroup
% \next := NOTE
% set \newlinechar for \write to \space
% write to \@mntnotes file: \meaning\next
% (that is, "macro:->NOTE)
% endgroup
% END
%
% \addtotinynotes{TEXT} ==
% BEGIN
% open tinynotes file if not already open
% begingroup
% let \protect to \string
% set \newlinechar for \write to \space
% write TEXT to \@mntnotes file
% endgroup
% END
%
% \tinynotemark ==
% BEGIN \stepcounter{tinynote}
% \@themntmark :=G eval(\thetinynote)
% \@tinynotemark
% END
%
% \tinynotemark[NUM] ==
% BEGIN
% begingroup
% tinynote counter :=L NUM
% \@themntmark :=G eval(\thetinynote)
% endgroup
% \@tinynotemark
% END
%
% \@tinynotemark ==
% BEGIN
% \leavevmode
% IF hmode THEN \@x@sf := \the\spacefactor FI
% \makemntmark % put number in main text
% IF hmode THEN \spacefactor := \@x@sf FI
% END
%
% \tinynotetext ==
% BEGIN \@themntmark :=G eval (\thetinynote)
% \@tinynotetext
% END
%
% \tinynotetext[NUM] ==
% BEGIN begingroup counter tinynote :=L NUM
% \@themntmark :=G eval (\thetinynote)
% endgroup
% \@tinynotetext
% END
%
% ****************************************
% * tinyNOTE MACROS *
% ****************************************
%
%\makeatletter% wegen \@empty
\newcommand*{\nofoot}{}
\newcommand*{\nofootmark}{}
\newcommand*{\nofoottext}{}
\newcommand{\deactivatefoot}{%
\ifx\nofoot\@empty% noch nicht deaktiviert
\let\nofoot\footnote
\renewcommand{\footnote}[2][]{}%
\let\nofootmark\footnotemark
\renewcommand*{\footnotemark}[1]{}%
\let\nofoottext\footnotetext
\renewcommand{\footnotetext}[1]{}%
\else
% Hier könnte man eine Fehlermeldung ausgeben
\fi
}
\newcommand{\reactivatefoot}{%
\ifx\nofoot\@empty% noch nicht deaktiviert
% Hier könnte man eine Fehlermeldung ausgeben
\else% deaktiviert
\let\footnote\nofoot
\let\footnotemark\nofootmark
\let\footnotetext\nofoottext
\let\nofoot\@empty
\let\nofootmark\@empty
\let\nofoottext\@empty
\fi
}
%\makeatother% wegen \makeatletter thanks to markus
\@definecounter{tinynote}
\def\thetinynote{\@arabic\c@tinynote}

\def\@makemntmark{\hbox{\@textsuperscript{\begin{t iny}\end{tiny}}}}
\def\makemntmark{\@makemntmark}

\def\themntmark{\@themntmark}

\newdimen\tinynotesep

\def\tinynote{\@ifnextchar[\@xtinynote{\stepcounter{tinynote}%
\protected@xdef\@themntmark{\thetinynote}%
\@tinynotemark\@tinynotetext}}

\def\@xtinynote[#1]{
\begingroup
\c@tinynote=#1\relax
\unrestored@protected@xdef\@themntmark{\thetinynot e}%
\endgroup
\@tinynotemark\@tinynotetext }

% Here begins a section of tinynote code that's really different from
% the footnote code of LaTeX.

\let\@doanmntnote=0
\let\@endanmntnote=0

\newwrite\@mntnotes
\newif\if@mntnotesopen \global\@mntnotesopenfalse

\def\@openmntnotes{\immediate\openout\@mntnotes=\j obname.mnt\relax
\global\@mntnotesopentrue}

% The stuff with \next and \meaning is a trick from the TeXbook, 382,
% there intended for setting verbatim text, but here used to avoid
% macro expansion when the footnote text is written. \next will have
% the entire text of the footnote as one long line, which might well
% overflow limits on output line length; the business with \newlinechar
% makes every space become a newline in the \@mntnotes file, so that all
% of the lines wind up being quite short.

\long\def\@tinynotetext#1{%
\if@mntnotesopen \else \@openmntnotes \fi
\immediate\write\@mntnotes{\@doanmntnote{\@themntm ark}}%
\begingroup
\def\next{#1}%
\newlinechar='40
\immediate\write\@mntnotes{\meaning\next}%
\endgroup
\immediate\write\@mntnotes{\@endanmntnote}}

% \addtotinynotes works the way the other tinynote macros probably should
% have, requiring the use of \protect for fragile commands.

\long\def\addtotinynotes#1{%
\if@mntnotesopen \else \@openmntnotes \fi
\begingroup
\newlinechar='40
\let\protect\string
\immediate\write\@mntnotes{#1}%
\endgroup}

% End of unique tinynote code

\def\tinynotemark{%
\@ifnextchar[\@xtinynotemark
{\stepcounter{tinynote}%
\protected@xdef\@themntmark{\thetinynote}%
\@tinynotemark}}

\def\@xtinynotemark[#1]{%
\begingroup
\c@tinynote #1\relax
\unrestored@protected@xdef\@themntmark{\thetinynot e}%
\endgroup
\@tinynotemark}

\def\@tinynotemark{%
\leavevmode
\ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
\makemntmark
\ifhmode\spacefactor\@x@sf\fi
\relax}

\def\tinynotetext{
\@ifnextchar [\@xtinynotenext
{\protected@xdef\@themntmark{\thetinynote}%
\@tinynotetext}}

\def\@xtinynotenext[#1]{\begingroup \c@tinynote=#1\relax
\xdef\@themntmark{\thetinynote}\endgroup \@tinynotetext}

\def\@xtinynotenext[#1]{%
\begingroup
\c@tinynote=#1\relax
\unrestored@protected@xdef\@themntmark{\thetinynot e}%
\endgroup
\@tinynotetext}


% \thetinynotes actually prints out the tinynotes.

% The user may want separate tinynotes for each chapter, or a big
% block of them at the end of the whole document. As it stands,
% either will work; you just say \thetinynotes wherever you want the
% tinynotes so far to be inserted. However, you must add
% \setcounter{tinynote}{0} after that if you want subsequent tinynotes
% to start numbering at 1 again.

% \mntnoteformat is provided so user can specify some special formatting
% for the tinynotes. It needs to set up the paragraph parameters, start
% the paragraph, and print the label. The \mbox stuff in \mntnoteheading
% is to make and undo a dumtiny paragraph, to get around the games \section*
% plays with paragraph indenting and instead give us uniform
% indenting for all notes.

\def\mntnotesname{ tinynotes }
\def\mntnoteheading{ \subsubsection*{\mntnotesname
\@mkboth{\MakeUppercase{\mntnotesname}}{\MakeUpper case{\mntnotesname}}}
\mbox{ }\par\vskip-\baselineskip}

\def\mntnoteformat{\rightskip\z@ \leftskip\z@ \parindent=1.8em
\leavevmode\llap{\makemntmark}}

\def\mntnotesize{\footnotesize}

\def\thetinynotes{\immediate\closeout\@mntnotes \global\@mntnotesopenfalse
\begingroup
\makeatletter
%
% The machinery with \@ResetGT and > here ensures that
% \@doanmntnote works properly even if > is an active character
% at the point where \thetinynotes is invoked. > needs to have
% catcode 12 when the arguments of \@doanmntnote are scanned, so
% that the > in the string "macro:->" is matched. The actual
% footnote text is not an argument to \@doanmntnote, but just
% follows it in the .mnt file; so \@ResetGT can reset the
% category code for > that should be used when processing
% that text. That resetting takes place within a
% \begingroup-\endgroup block set up by \@doanmntnote and
% \@endanmntnote, so the catcode for > is back to 12 for the
% next note.
%
\edef\@tempa{`\string >}%
\ifnum\catcode\@tempa=12%
\let\@ResetGT\relax
\else
\edef\@ResetGT{\noexpand\catcode\@tempa=\the\catco de\@tempa}%
\@makeother\>%
\fi
\def\@doanmntnote##1##2>{\def\@themntmark{##1}\par\begingroup
\@ResetGT
\edef\@currentlabel{\csname p@tinynote\endcsname\@themntmark}%
\mntnoteformat}
\def\@endanmntnote{\par\endgroup}%
\mntnoteheading
\mntnotesize
\input{\jobname.mnt}%
\endgroup}

ctansearch
05-02-2010, 11:30
Mit diesem kleinen Codeabschnitt kann man direkt formatieren, wie die Einträge im Verzeichnis aussehen sollen.
die Parameter #2 -#9 müssen dazu nur mit Befehlen versehen werden.

z.B. \textsc{#3}.
Sehr praktisch ist, dass auf jeder Seite eine Fußnote mit dem Kurzzeichen des Zitates angelegt wird. Diese kann man an-und abschalten.



\newcommand{\citeable}[9]{ ``{#9}``\tinynote#1{
$[$#2 #6 $]$
\textsc{#2},{#3}
\textit{#4}
{#5}
{#6}
{#7}
{#8}
\par}
\footnote{#2 #6}}