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}

Best Answer
You should use two
'
signs instead of one"
sign. The latter is an active character in manybabel
languages, and"o
producesö
. (Also, instead of switching to math mode to produce a minus sign, simply use a hyphen.)