[Tex/LaTex] using csquotes’ shorthands in English

babelcsquotespunctuationshorthands

Is there a special reason why csquotes' shorthands cannot be used in English text or am I overlooking something? The \enquote command works fine.

It's true that English style quotes are amongst the easiest to type in LaTeX, but csquotes would still be nice to use in English for multi-lingual documents, to differentiate between the closing quote and apostrophe, or to separate writing the text and deciding whether to use singe or double quotes..

I hoped the answer to this question could work for quotes as well, but I couldn't get it working..

\documentclass{scrartcl}

\usepackage[main=british, german, french]{babel}
\usepackage[babel=true]{csquotes}
\defineshorthand{"`}{\openautoquote}
\defineshorthand{"'}{\closeautoquote}

\begin{document}
"`Text in "`British"'"'\\
\enquote{enquote} \enquote*{enquote*}

\selectlanguage{german}%
"`Text auf "`Deutsch"'"'\\
\enquote{enquote} \enquote*{enquote*}

\selectlanguage{french}%
"`Texte en "`Fran\c{c}ais"'"'\\
\enquote{enquote} \enquote*{enquote*}
\end{document}

quotetest

Best Answer

tried it once more and now it worked (also for American)...

\usepackage[main=british]{babel}
\usepackage[babel=true]{csquotes}
\defineshorthand{"`}{\openautoquote}
\defineshorthand{"'}{\closeautoquote}
\useshorthands{"}
\addto\extrasenglish{\languageshorthands{ngerman}}

But I haven't gotten to the bottom of it. When I run this through LuaTeX:

\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX, Scale=0.92]{Linux Libertine O}

\usepackage[main=british,russian,ngerman]{babel}
\usepackage[babel=true]{csquotes}
\defineshorthand{"`}{\openautoquote}
\defineshorthand{"'}{\closeautoquote}
\useshorthands{"}
\addto\extrasenglish{\languageshorthands{ngerman}}
\addto\extrasenglish{\languageshorthands{russian}}

\begin{document}
"`Text in "`British"'"'\par
\selectlanguage{russian}%
"`Текст на "`русском"' языке"'\par
\selectlanguage{british}%
"`Text in "`British"'"'\par
\enquote{enquoted text in \enquote*{British}}\par
\selectlanguage{ngerman}%
"`Text auf "`deutsch"'"'\par
\selectlanguage{british}%
"`Text in "`British"'"'\par
\end{document}

the British quotes don't always work:

RussianWithLuaTeX

Related Question