mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
DocBook: support bookauthor in bibliographies.
This commit is contained in:
parent
88a2414839
commit
e3020a6b2d
@ -107,3 +107,14 @@ volume = {MCMXCVII},
|
|||||||
month = 7,
|
month = 7,
|
||||||
note = {An optional note}
|
note = {An optional note}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@incollection{Foucault:Kritik-EN92,
|
||||||
|
author = {Foucault, Michel},
|
||||||
|
title = {What is Critique?},
|
||||||
|
bookauthor = {Foucault, Michel},
|
||||||
|
booktitle = {The Politics of Truth},
|
||||||
|
pages = {41-82},
|
||||||
|
publisher = {Semiotext(e)},
|
||||||
|
address = {Los Angeles},
|
||||||
|
year = {1997}
|
||||||
|
}
|
||||||
|
@ -876,7 +876,7 @@ Many things,
|
|||||||
|
|
||||||
\begin_inset CommandInset citation
|
\begin_inset CommandInset citation
|
||||||
LatexCommand cite
|
LatexCommand cite
|
||||||
key "article,book,booklet,conference,inbook,incollection"
|
key "article,book,booklet,conference,inbook,incollection,Foucault:Kritik-EN92"
|
||||||
literal "false"
|
literal "false"
|
||||||
|
|
||||||
\end_inset
|
\end_inset
|
||||||
|
@ -264,7 +264,7 @@ I am no more code. </para>
|
|||||||
<section>
|
<section>
|
||||||
<title>I am the sixth section and I really like bibliographies</title>
|
<title>I am the sixth section and I really like bibliographies</title>
|
||||||
<para>This text has references. First reference: <biblioref linkend="big" />. Second reference: <biblioref linkend="small" />. Both at the same time: <biblioref linkend="big" />, <biblioref linkend="small" />. A book: <biblioref linkend="Gro60" />. </para>
|
<para>This text has references. First reference: <biblioref linkend="big" />. Second reference: <biblioref linkend="small" />. Both at the same time: <biblioref linkend="big" />, <biblioref linkend="small" />. A book: <biblioref linkend="Gro60" />. </para>
|
||||||
<para>Many things, just testing for completeness: <biblioref linkend="article" />, <biblioref linkend="book" />, <biblioref linkend="booklet" />, <biblioref linkend="conference" />, <biblioref linkend="inbook" />, <biblioref linkend="incollection" />. </para>
|
<para>Many things, just testing for completeness: <biblioref linkend="article" />, <biblioref linkend="book" />, <biblioref linkend="booklet" />, <biblioref linkend="conference" />, <biblioref linkend="inbook" />, <biblioref linkend="incollection" />, <biblioref linkend="Foucault.Kritik-EN92" />. </para>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<title>I am the seventh section and I deal with indices</title>
|
<title>I am the seventh section and I deal with indices</title>
|
||||||
@ -358,12 +358,17 @@ I am no more code. </para>
|
|||||||
</biblioentry>
|
</biblioentry>
|
||||||
<biblioentry xml:id="inbook">
|
<biblioentry xml:id="inbook">
|
||||||
<title>The title of the work</title>
|
<title>The title of the work</title>
|
||||||
|
<volumenum>4</volumenum>
|
||||||
|
<edition>3</edition>
|
||||||
<artpagenums>201-213</artpagenums>
|
<artpagenums>201-213</artpagenums>
|
||||||
<bibliomisc role="type">inbook</bibliomisc>
|
<bibliomisc role="type">inbook</bibliomisc>
|
||||||
<publisher>
|
<publisher>
|
||||||
<publishername>The name of the publisher</publishername>
|
<publishername>The name of the publisher</publishername>
|
||||||
</publisher>
|
<address>The address of the publisher</address></publisher>
|
||||||
<pubdate>1993</pubdate>
|
<pubdate>1993</pubdate>
|
||||||
|
<biblioset relation="book">
|
||||||
|
<title></title>
|
||||||
|
</biblioset>
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
<personname>
|
<personname>
|
||||||
@ -372,6 +377,7 @@ I am no more code. </para>
|
|||||||
</personname>
|
</personname>
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
<bibliomisc role="note">An optional note</bibliomisc>
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
<biblioentry xml:id="incollection">
|
<biblioentry xml:id="incollection">
|
||||||
<title>The title of the work</title>
|
<title>The title of the work</title>
|
||||||
@ -399,6 +405,27 @@ I am no more code. </para>
|
|||||||
</editor>
|
</editor>
|
||||||
<bibliomisc role="note">An optional note</bibliomisc>
|
<bibliomisc role="note">An optional note</bibliomisc>
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
|
<biblioentry xml:id="Foucault.Kritik-EN92">
|
||||||
|
<title>What is Critique?</title>
|
||||||
|
<artpagenums>41-82</artpagenums>
|
||||||
|
<bibliomisc role="type">incollection</bibliomisc>
|
||||||
|
<publisher>
|
||||||
|
<publishername>Semiotext(e)</publishername>
|
||||||
|
<address>Los Angeles</address></publisher>
|
||||||
|
<pubdate>1997</pubdate>
|
||||||
|
<biblioset relation="book">
|
||||||
|
<title>The Politics of Truth</title>
|
||||||
|
</biblioset>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<personname>
|
||||||
|
<firstname>Michel</firstname>
|
||||||
|
<surname>Foucault</surname>
|
||||||
|
</personname>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
<!-- Several author tags in the reference. Other editor tag: fullbynames:bookauthor. Corresponding value: Michel Foucault -->
|
||||||
|
</biblioentry>
|
||||||
<biblioentry xml:id="small">
|
<biblioentry xml:id="small">
|
||||||
<title>A small paper</title>
|
<title>A small paper</title>
|
||||||
<volumenum>-1</volumenum>
|
<volumenum>-1</volumenum>
|
||||||
|
@ -1142,6 +1142,7 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
|
|||||||
// Store the mapping between BibTeX and DocBook.
|
// Store the mapping between BibTeX and DocBook.
|
||||||
map<string, string> toDocBookTag;
|
map<string, string> toDocBookTag;
|
||||||
toDocBookTag["fullnames:author"] = "SPECIFIC"; // No direct translation to DocBook: <authorgroup>.
|
toDocBookTag["fullnames:author"] = "SPECIFIC"; // No direct translation to DocBook: <authorgroup>.
|
||||||
|
toDocBookTag["fullbynames:bookauthor"] = "SPECIFIC"; // No direct translation to DocBook: <authorgroup>.
|
||||||
toDocBookTag["publisher"] = "SPECIFIC"; // No direct translation to DocBook: <publisher>.
|
toDocBookTag["publisher"] = "SPECIFIC"; // No direct translation to DocBook: <publisher>.
|
||||||
toDocBookTag["address"] = "SPECIFIC"; // No direct translation to DocBook: <publisher>.
|
toDocBookTag["address"] = "SPECIFIC"; // No direct translation to DocBook: <publisher>.
|
||||||
toDocBookTag["editor"] = "SPECIFIC"; // No direct translation to DocBook: <editor><personname/orgname>.
|
toDocBookTag["editor"] = "SPECIFIC"; // No direct translation to DocBook: <editor><personname/orgname>.
|
||||||
@ -1401,12 +1402,30 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
|
|||||||
|
|
||||||
// <authorgroup>
|
// <authorgroup>
|
||||||
// Example: http://tdg.docbook.org/tdg/5.1/authorgroup.html
|
// Example: http://tdg.docbook.org/tdg/5.1/authorgroup.html
|
||||||
if (hasTag("fullnames:author")) {
|
if (hasTag("fullnames:author") || hasTag("fullbynames:bookauthor")) {
|
||||||
|
// If several author tags are present, only output one.
|
||||||
|
const docstring authorName = getTag(
|
||||||
|
hasTag("fullnames:author") ? "fullnames:author" : "fullbynames:bookauthor");
|
||||||
|
|
||||||
// Perform full parsing of the BibTeX string, dealing with the many corner cases that might
|
// Perform full parsing of the BibTeX string, dealing with the many corner cases that might
|
||||||
// be encountered.
|
// be encountered.
|
||||||
authorsToDocBookAuthorGroup(getTag("fullnames:author"), xs, buffer());
|
authorsToDocBookAuthorGroup(authorName, xs, buffer());
|
||||||
|
|
||||||
|
if (hasTag("fullnames:author") && hasTag("fullbynames:bookauthor")) {
|
||||||
|
xs << XMLStream::ESCAPE_NONE <<
|
||||||
|
from_utf8("<!-- Several author tags in the reference. Other editor tag: ") +
|
||||||
|
from_utf8("fullbynames:bookauthor. Corresponding value: ") +
|
||||||
|
getTag("fullbynames:bookauthor") + from_utf8(" -->\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Erase all author tags that might be present, even if only one is output.
|
||||||
|
if (hasTag("fullnames:author")) {
|
||||||
eraseTag("fullnames:author");
|
eraseTag("fullnames:author");
|
||||||
}
|
}
|
||||||
|
if (hasTag("fullbynames:bookauthor")) {
|
||||||
|
eraseTag("fullbynames:bookauthor");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// <editor>
|
// <editor>
|
||||||
// Example: http://tdg.docbook.org/tdg/5.1/editor.html
|
// Example: http://tdg.docbook.org/tdg/5.1/editor.html
|
||||||
|
Loading…
Reference in New Issue
Block a user