The problem you are facing here, is that you actually need to scan ahead for punctuation marks and move them inside the quotation.
Fortunately, the package csquotes
does exactly that for you.
You will need to modify the \bibliographystyle
you use, let's say it is plainnat
.
Copy the file plainnat.bst
(or whatever file you use) to a location where LaTeX
can find it, rename it to, say, plainnatampct.bst
.
Find FUNCTION {format.title}
(l. 299 in my plainnat.bst
) and replace the entire function with:
FUNCTION {format.title}
{ title empty$
{ "" }
{ "\textquote{" title "t" change.case$ * "}" * }% <----- this is the modified line
if$
}
This wraps the title in \textquote{...}
and that quote command can look ahead.
If you want to modify ascelike.bst
, you will need to change a little bit more.
The new file would then be ascelikeampunct.bst
Change FUNCTION {format.title}
.
FUNCTION {format.title}
{ title empty$
{ "" }
{ "\textquote{" title "t" change.case$ * "}" * }% <----- this is the modified line
if$
}
You also need to comment all the after.quote 'output.state :=
in the FUNCTION
s.
Then put \usepackage[autostyle=true,english=american]{csquotes}
and \renewcommand{\mktextquote}[6]{#1#2#4#5#3#6}
in your preamble, the latter makes sure punctuation is moved inside the quotation marks.
Also make sure your .bib
file does not contain superfluous quotation marks.
It is not necessary (and actually not a good idea) to add the outer quotation marks to a title. Write
title = {{GN}'s {B}ridge 4: {T}he {G}reat {N}orthern's {B}ridge at the {L}ock}
and not title = {{GN}'s {B}ridge 4: {T}he {G}reat {N}orthern's {B}ridge at the {L}ocks''}
.
MWE
\documentclass[american]{article}
\usepackage{natbib}
\usepackage{babel}
\usepackage{url}
\usepackage[autostyle=true,english=american]{csquotes}
\begin{filecontents*}{\jobname.bib}
@article{testart,
author = {Arnold Uthor and William Riter},
title = {A Very Interesting Article},
journal = {Journal of Articles},
volume = {7},
number = {3},
page = {1-5},
year = {2010},
}
@book{testbook,
author = {Walter Ordsmith},
title = {The Work},
subtitle = {Subtitle},
publisher = {Pub \& Lisher's Co.},
year = {1983},
}
@misc{testonline,
author = {Bernie Logger},
title = {A Very Opinionated Blog Post},
url = {http://example.com},
year = {2013},
}
@MISC{ASCE2013,
author = {{ASCE}},
title = {2013 {R}eport {C}ard for {A}merica's {I}nfrastructure},
month = {March},
year = {2013},
organization = {{A}merican {S}ociety of {C}ivil {E}ngineers},
url = {http://www.infrastructurereportcard.org/bridges/},
}
@MISC{Pierce1998,
author = {Pierce, G.},
title = {{GN}'s {B}ridge 4: {T}he {G}reat {N}orthern's {B}ridge at the {L}ocks},
month = {March},
year = {2013},
url = {http://www.gngoat.org/bridge4.htm},
}
\end{filecontents*}
\renewcommand{\mktextquote}[6]{#1#2#4#5#3#6}
\begin{document}
\bibliography{\jobname}
\nocite{*}
\bibliographystyle{ascelikeampunct}
\end{document}
.bib
file for the entries above look like?.bib
file manually; this should only be done bybibtex
itself. The problem you are facing here is, that at times you need a.
at times a,
inside the parentheses, so a solution withbibtex
is likely to be quite complicated (one would need to check ahead for punctuation marks and move them inside) maybecsquotes
could help there or you could usebiblatex
.