Support for \fullcite in LyXHTML and text export (fixes #8491).

This commit is contained in:
Julien Rioux 2013-01-25 23:42:15 +01:00
parent cc1ce04798
commit 3408ca4204
2 changed files with 11 additions and 1 deletions

View File

@ -70,6 +70,7 @@ CiteFormat authoryear
!citeauthor %!textbefore%%!startlink%%!shortauthor%%!endlink%%!textafter%%!nextauthor%
!citeyear %!textbefore%%!startlink%%!year%%!endlink%%!textafter%%!nextyear%
!citeyearpar %!textbefore%%!open%%!startlink%%!year%%!endlink%%!close%%!textafter%%!nextyearpar%
!fullcite {%textbefore%[[%textbefore% in: ]]}%bibentry%{%textafter%[[ %textafter%]]}%!nextfullcite%
!nextcite {%next%[[%!sep% %!startlink%%!shortauthor%%!endlink%%!textafter2%%!nextcite%]]}
!nextcitetitle {%next%[[%!sep% %!startlink%%!shortauthor%%!endlink%%!shorttitle%%!textafter2%%!nextcitetitle%]]}
@ -79,6 +80,7 @@ CiteFormat authoryear
!nextauthor {%next%[[%!sep% %!citeauthor%]]}
!nextyear {%next%[[%!sep% %!citeyear%]]}
!nextyearpar {%next%[[%!sep% %!citeyearpar%]]}
!nextfullcite {%next%[[%!sep% %bibentry%{%textafter%[[ %textafter%]]}%!nextfullcite%]]}
!nextkey {%next%[[%!sep% %key%%!nextkey%]]}
!shortauthor {%shortauthor%[[%shortauthor%]][[??]]}
@ -99,6 +101,6 @@ CiteFormat authoryear
citeauthor %!citeauthor%
citeyear %!citeyear%
citeyearpar %!citeyearpar%
fullcite {%dialog%[[%_bibentry%]][[%key%%!nextkey% (%_fullcite%)]]}
fullcite {%dialog%[[%_bibentry%]][[{%label%[[%!fullcite%]][[%key%%!nextkey% (%_fullcite%)]]}]]}
nocite {%dialog%[[%_addtobib%]][[%key%%!nextkey% (%_notcited%)]]}
End

View File

@ -689,6 +689,14 @@ docstring BibTeXInfo::getValueForKey(string const & key, Buffer const & buf,
+ " [" + operator[]("year") + "]";
else
return operator[]("title");
} else if (key == "bibentry") {
// Special key to provide the full bibliography entry: see getInfo()
CiteEngineType const engine_type = buf.params().citeEngineType();
DocumentClass const & dc = buf.params().documentClass();
string const & format = dc.getCiteFormat(engine_type, to_utf8(entry_type_));
int counter = 0;
return expandFormat(format, xref, counter, buf,
docstring(), docstring(), docstring(), false);
} else if (key == "textbefore")
return before;
else if (key == "textafter")