[texhax] Question mark in BibTeX title
Torsten Wagner
torsten.wagner at fh-aachen.de
Tue Nov 10 11:26:18 CET 2009
Hi Jakob,
> Hi,
>
> I'm trying to get the entry below to display the question mark at the
> end of the title instead of the full stop before the publisher. What I
> get at the moment (using natbib and \bibliographystyle{linquiry2}) is
> the following:
>
> Aitchison, Jean. 2001. Language Change: Progress or decay?. Cambridge:
> Cambridge University Press, 3rd edition.
>
> I can't seem to find a way to remove the period, which, particularly
> with an \emph title, looks rather ugly.
>
> @book{Aitchison2001,
> author="Aitchison, Jean",
> title="{Language Change:\ Progress or decay?}",
> edition="3\textsuperscript{rd}",
> address="Cambridge",
> publisher="Cambridge University Press",
> year=2001
> }
I frighten there is no easy solution for this. The period is part of the
style-definition
Somewhere there it is written ... After the title add a period...
And that is exactly what you get. Normally this is a nice feature, since it
makes the reference list uniform.
For the same reason one could argue the result you get it completely correct
and you should not change it.
Think about it... you just follow the reference style *very* strict.
If you like to change it nonetheless, you might can think about the following
procedure.
Find the linquiry2.bst style file in your system and copy it to a local place
(e.g. in your document folder).
Open it up and search for the entry function book
Copy and paste the complete function and rename it e.g., book2
Try to modify the style of this copy to get no period at the end of a dot.
I just checked the your style file... the function which adds the dot called
output.nonnull
this function is called by output.check
which is called by the book function
you might have to work from top to down and define simply new functions
e.g. create book2 function (by copy from book) and change to
date.block
format.btitle "title" output.check2
crossref missing$
create output.check2 function and change to
output.nonnull2
create output.nonnull2 function and change to
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{" " * write$ }
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
After that go and rename the entries in question to @book2
This should work, I did similar thinks, however, as you can see it is a bit
fiddle and the style files are programmed in a UPN notation with stack operators
.... maybe you know this from HP calculators.
Hope that helps a bit
Torsten
More information about the texhax
mailing list