Discussion:
space between single and right double quote marks
Jim Osborn
2005-10-10 20:04:19 UTC
Permalink
I can't seem to find a way to typeset the following text correctly:

"The word was `foo,'" he said.

The default result is:
...foo,<right double quote><small space><right single quote>

I'll include the entire lyx file at the end of this note, but the
bit corresponding to the quote marks is:

The word was `foo,'
\begin_inset Quotes erd
\end_inset

which looks correct to me, so I don't know if I'm running into a TeX
problem, or a LaTeX problem, or something within LyX.

I've tried using two single quote marks in place of the double quote
(that is, a string of three single quote characters), with the same result.
I've tried putting a ligature break, or an ERT \null, between the
single and the double quote characters, both of which produce three
closely-spaced right single quote marks.

For test purposes, I've tried omitting the comma, as well as changing
the language to American (There doesn't seem to be a language setting
in the quote-style portion of the Layout box, just the various style
selections, and the \quotes_language in the lyx file remains english
no matter what I set in the Edit->Preferences->Language section).

The only mention of kerning hacking I find in the TeX FAQ points to
the letterspace and soul packages, and the best I can get with either
of them is: <right single quote><space><ordinary quote>
because apparently ERT double quotes are neither left nor right.

This single/double quote situation is handled correctly on the left
side of things; it seems to only be a problem on the right.

Can someone point me to a workaround?

Thanks,

Jim


The complete lyx looks like this:
#LyX 1.3 created this file. For more info see http://www.lyx.org/
\lyxformat 221
\textclass article
\language english
\inputencoding default
\fontscheme default
\graphics default
\paperfontsize default
\spacing single
\papersize Default
\paperpackage a4
\use_geometry 1
\use_amsmath 0
\use_natbib 0
\use_numerical_citations 0
\paperorientation portrait
\topmargin 0.25in
\bottommargin 0.625in
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default

\layout Standard

\begin_inset Quotes eld
\end_inset

The word was `foo,'
\begin_inset Quotes erd
\end_inset

he said.
\the_end
Helge Hafting
2005-10-11 08:11:39 UTC
Permalink
Post by Jim Osborn
"The word was `foo,'" he said.
...foo,<right double quote><small space><right single quote>
This is easy in lyx-1.4, where you do this:
Set the quoting style to double qoutes. You probably have that already.
Then write the sentence. Use "insert->special character->single quote"
when you need a single quote for the inner citation. Correct spacing
is added as needed, at least that happende for me with this sort
of quoting style: «The word was <foo> » he said.

It is also possible (but cumbersome) in lyx 1.3:
Set quoting style to double qoutes. Write everything, but skip
the single quotes. Change quoting style to single quotes.
(That won't affect the existing double quotes in there.)
Now type the single quotes. Then, change the style back if you need.

The spacing should be correct too. If it isn't note that both
lyx 1.3 and lyx 1.4 have "small spaces" in the insert menu.

Helge Hafting
Jim Osborn
2005-10-11 20:08:30 UTC
Permalink
This is easy in lyx-1.4... Correct spacing is added as needed, at
«The word was <foo> » he said.
Set quoting style to double qoutes. Write everything, but skip
the single quotes. Change quoting style to single quotes.
(That won't affect the existing double quotes in there.)
Now type the single quotes. Then, change the style back if you need.
Thanks, Helge,

It does exactly as you say with the
«The word was <foo> » [I'll call F style]
quoting style, but not with the
``The word was `foo' '' [I'll call E style]
style.

Here's the lyx for my E style example:

\begin_inset Quotes eld
\end_inset

The word was
\begin_inset Quotes els
\end_inset

foo
\begin_inset Quotes ers
\end_inset

\begin_inset Quotes erd
\end_inset

he said.

And here's the dvi:
...foo<right double quote><small space><right single quote>

The lyx for the F style has "fld" in place of "eld" etc., and it does
indeed produce this dvi with LyX 1.3.6:
...foo<right single quote><small space><right double quote>

So, apparently it's a bug, at least in LyX 1.3.6, with the E style quotes
but not the F style; I didn't test all the other possibilities.

If you have time, could you verify whether the bug exists in LyX 1.4
for the E style quotes?
The spacing should be correct too. If it isn't note that both
lyx 1.3 and lyx 1.4 have "small spaces" in the insert menu.
I can't find a "small space" in my LyX 1.3.6 Insert->Special Character
menu. I have these choices:
Superscript
Subscript
Hfill
Hyphenation Point
Ligature Break
Protected Blank
Line Break
Ellipsis
End of Sentence
Ordinary Quote
Menu Separator

Protected Blank puts this in the lyx:
\SpecialChar ~
and produces exactly the same size space as an ordinary space, one em,
as my eyes measure it. An ERT \<space> does the same.

The <small space> that appears between the single and double quotes
in my examples looks like about one-third of an em.

Am I looking on the wrong menu for the "small spaces" you mention?

Thanks again for the help.

Jim
Helge Hafting
2005-10-12 07:36:59 UTC
Permalink
Post by Jim Osborn
This is easy in lyx-1.4... Correct spacing is added as needed, at
«The word was <foo> » he said.
Set quoting style to double qoutes. Write everything, but skip
the single quotes. Change quoting style to single quotes.
(That won't affect the existing double quotes in there.)
Now type the single quotes. Then, change the style back if you need.
Thanks, Helge,
It does exactly as you say with the
«The word was <foo> » [I'll call F style]
quoting style, but not with the
``The word was `foo' '' [I'll call E style]
style.
\begin_inset Quotes eld
\end_inset
The word was
\begin_inset Quotes els
\end_inset
foo
\begin_inset Quotes ers
\end_inset
\begin_inset Quotes erd
\end_inset
he said.
...foo<right double quote><small space><right single quote>
The lyx for the F style has "fld" in place of "eld" etc., and it does
...foo<right single quote><small space><right double quote>
So, apparently it's a bug, at least in LyX 1.3.6, with the E style quotes
but not the F style; I didn't test all the other possibilities.
If you have time, could you verify whether the bug exists in LyX 1.4
for the E style quotes?
The bug exist in lyx 1.4 too, unfortunately. Things look fine on
screen, but a closing single quote followed by a closing double quote
(i.e. after the word "foo") looks like the opposite (a closing double
followed by a closing single) in the output. Ugly.

The user can work around this by inserting a small space between the
single and double closing quote though.
Post by Jim Osborn
The spacing should be correct too. If it isn't note that both
lyx 1.3 and lyx 1.4 have "small spaces" in the insert menu.
I can't find a "small space" in my LyX 1.3.6 Insert->Special Character
Sorry, I was wrong. There is no small space in lyx 1.3. You can
use ERT to insert a \thinspace{} though.

Helge Hafting
Juergen Spitzmueller
2005-10-12 08:03:09 UTC
Permalink
Post by Helge Hafting
The bug exist in lyx 1.4 too, unfortunately. Things look fine on
screen, but a closing single quote followed by a closing double quote
(i.e. after the word "foo") looks like the opposite (a closing double
followed by a closing single) in the output. Ugly.
It's an oldtimer:
http://bugzilla.lyx.org/show_bug.cgi?id=253
Post by Helge Hafting
The user can work around this by inserting a small space between the
single and double closing quote though.
The best is to use the csquotes package instead of LyX's single/double
quotation marks.

Jürgen
Daniel Watkins
2005-10-11 23:13:14 UTC
Permalink
``The word was `foo' '' [I'll call E style] style.
Try using C-Shift-Space to create a thin space. The LyX is as follows:

\begin_body

\begin_layout Standard
\begin_inset Quotes eld
\end_inset

The word was 'foo'\InsetSpace \thinspace{}

\begin_inset Quotes erd
\end_inset


\end_layout

\end_body

Hoping this helps,
Dan
Georg Baum
2005-10-12 07:03:37 UTC
Permalink
Post by Daniel Watkins
The word was 'foo'\InsetSpace \thinspace{}
This is 1.4. There is no small space in 1.3, you have to use ERT.


Georg
Jean-Marc Lasgouttes
2005-10-12 08:54:19 UTC
Permalink
Post by Daniel Watkins
The word was 'foo'\InsetSpace \thinspace{}
Georg> This is 1.4. There is no small space in 1.3, you have to use
Georg> ERT.

And what about a ligature break?

JMarc
Helge Hafting
2005-10-14 07:35:54 UTC
Permalink
Post by Jean-Marc Lasgouttes
Post by Daniel Watkins
The word was 'foo'\InsetSpace \thinspace{}
Georg> This is 1.4. There is no small space in 1.3, you have to use
Georg> ERT.
And what about a ligature break?
A ligature break prevents a wrong ligature from being made.
a single quote followed by a double quote still looks bad,
it will look like a "triple quote". What he wants is text that
really looks like a single quote followed by a double quote.
That is achievable by putting a small space between the
single and the double quote.

This gets right automatically with the << style of quoting,
but not with the '' style of quoting.

Looking closer at this, I don't get an exact "triple quote".
The distance from the single quote to the double is slightly
larger than the distance between the two quotes in a double,
but this is so slight that it hardly is noticeable. So it seems that
the spacing mechanism works as expected, but the _font_
has bad kerning for this particular case. So perhaps lyx shouldn't
insert a thin space automatically, some fonts may do this
better already. We might want lyx to output ligature breaks
around single quotes though,to prevent unintended ligatures.


Helge Hafting
Juergen Spitzmueller
2005-10-14 08:04:32 UTC
Permalink
Post by Helge Hafting
A ligature break prevents a wrong ligature from being made.
a single quote followed by a double quote still looks bad,
it will look like a "triple quote".  What he wants is text that
really looks like a single quote followed by a double quote.
That is achievable by putting a small space between the
single and the double quote.
This gets right automatically with the << style of quoting,
but not with the '' style of quoting.
As I already wrote: This is because LyX exports, depending on your settings,
``The word was `foo''' to LaTeX. It is impossible for LaTeX to detect the
second pair as a double quote without destroying the kerning. The solution
is: ``The word was `foo'\textquotedblright{}
The guillemets get right, because at least the inner quotation marks do not
use active characters.

The current insetquote is just to dumb to get this right, because these
quotation marks have to be used at different positions in different
languages.

Jürgen

BTW:
try

% in preamble
\usepackage[strict,babel]{csquotes}
\MakeAutoQuote{»}{«}

% in text
»The word was »foo««

Juergen Spitzmueller
2005-10-12 09:18:32 UTC
Permalink
Post by Jim Osborn
"The word was `foo,'" he said.
For the time being, the quickest solution is to use \textquotedblright{} in
ERT instead of the closing double quotation mark.

HTH,
Jürgen
Loading...