Ciao a tutti,
desideravo porre il seguente quesito:
Prendiamo una macro definita con \newcommand che riceve un parametro
Il parametro è la stessa chiave di ricerca che si passa al comando \cite per fare riferimento a un elemento di BIBTEX.
Supponiamo che io abbia il seguente elemento nel mio file .bib:
@book{eco2005nome,
title={Il nome della rosa},
author={Eco, U.},
isbn={9788845246340},
series={Grandi tascabili Bompiani},
url={http://books.google.com/books?id=OV\_yAAAAMAAJ},
year={2005},
publisher={Tascabili Bompiani}
}Nel mio file .tex scrivo:
qualche cosa \CLAFE{eco2005nome} ancora qualche cosa
Vorrei che la macro \CLAFE, che riceve il parametro “eco2005nome” legga il file CLAFE.BIB estragga in diverse variabili il valore del “title”, di “year”. In modo che poi possa utilizzare, all’interno della macro ovviamente, questa variabili per fare altre cose.
\newcommand{\CLAFE}[1]
{
Ricevo il parametro #1 che conterrà “eco2005nome”
Leggo il file .bib con questa chiave
Imposto in una variabile, per esempio, ANNO, il valore del campo Year del record .Bib
Scrivo il contenuto di ANNO in corsivo, o in grassetto o altro ….
}Chiedo troppo ?
🙂Ciao a tutti e un grazie comunque.
CLAFE
Interessante problema.
`\documentclass[a4paper]{article}
\usepackage{keyval}
\makeatletter
\def\define@reuse@key#1{%
\define@key{reuse}{#1}{\global\@namedef{\currentry @#1}{##1}}}
\define@reuse@key{title}
\define@reuse@key{author}
\define@reuse@key{isbn}
\define@reuse@key{series}
\define@reuse@key{url}
\define@reuse@key{year}
\define@reuse@key{publisher}
\define@reuse@key{journal}
%%% inserire tutti gli altri tipi che servono
%\define@reuse@key{}
\def\book#1{\extractkey#1\@nil}
\let\article\book
\let\incollection\book
%%% Inserire tutti gli altri tipi che servono
\def\extractkey#1,#2\@nil{\def\currentry{#1}\setkeys{reuse}{#2}}
\def\usebibdata#1#2{\@nameuse{#1@#2}}
\makeatother
\newcommand{\bibinput}[1]{%
\begingroup\catcode`\@=0 \input{#1.bib}\endgroup}
\bibinput{xyz} % il nome del file .bib
\begin{document}
\usebibdata{eco2005nome}{title}
\usebibdata{eco2005nome}{year}
\end{document}`
Dovrai completare le due liste di comandi secondo lo schema dato; la prima lista per i campi, la seconda per i tipi di documento.
Ciao
Enrico