I am trying to put a text in "" using \textquotedblleft
and \textquotedblright
. It works perfectly fine except it does not put ANY space after \textquotedblright
. In other words, BEFORE \textquotedblleft TEXT \textquotedblright AFTER
comes out as BEFORE "TEXT"AFTER. Is there any way to fix it? One obvious way is using BEFORE \textquotedblleft TEXT \textquotedblright \ AFTER
. I was wondering if there is any better way to fix this. Thanks
3 Answers
\textquotedblleft
and \textquotedblright
(as well as most other commands without arguments, which do not use the xspace package) gobble their following space (as if the name was \textquotedblleft␣
). To get a space character there, you need to use \textquotedblleft{}
and \textquotedblright{}
. You could also use explicit space (e.g. \␣
(slash space) or \hspace{1em}
), but you want the space to be stretchable, dont't you? Alternatively, as suggested by cgnieder, the csquotes package can be used for quotes.
-
2The usual shortcuts as well as the
babel
shortcuts would also be a good alternative.– cgniederCommented Dec 13, 2012 at 18:11
Use the
xspace
package:\usepackage{xspace}
and define a new command as (for example)
\newcommand{\tqdr}{\textquotedblright\xspace}
(easier): Use shorthands as
``
and''
If you:
- aren't comfortable with the shorthands (suggested by Luis Parrado)
- don't want to have to remember to use
{}
or\␣
(as noted by Stephen and cgnieder) - don't want to bother with the huge
csquotes
package - recognise that
xspace
can cause more problems than it solves,...
then why not just define your own macro that takes an argument:
\documentclass{article}
\newcommand*{\textquotedouble}[1]{\textquotedblleft #1\textquotedblright}
\begin{document}
BEFORE \textquotedouble{TEXT} AFTER.
\end{document}
(And perhaps use a shorter name than this!)
Note: I personally prefer the shorthands myself!
\textquotedblright
like any other TeX command gobbles following spaces unless you place{}
or\
after it. I'd rather usecsquotes
for quotes, anyway.