[Tex/LaTex] Angle Quotes with English Text and English Figure and Table Labels

babelcsquotesfont-encodingslanguagespunctuation

I use a standard package, csquotes, to handle quotes. But if I use it like in the MWE below, then in front of every table I get foreign language spelling for figure and table instead of English figure and table. Like here:

\documentclass[12pt]{article}
\usepackage{amsmath, booktabs, setspace}
\usepackage[demo]{graphicx}
\usepackage[english,russian]{babel}
\usepackage[usenames]{color}
\usepackage[top = 1in, bottom = 1in, left = 1in, right = 1in]{geometry}
\usepackage[style=russian]{csquotes}
\begin{figure}[h]
    \centering
    \includegraphics[scale = 0.5, angle = 0]{Test}
        \caption{CAPTION GOES HERE}
            \label{fig:FIGURE NAME GOES HERE}
\end{figure}
\begin{table}[h]
    \centering
        \begin{tabular}{|llr|}
        \toprule
            \multicolumn{2}{c}{A} \\
            B & C & D (\$) \\
            \midrule
            E & F & G \\
            & H & I \\
            J & K & L \\
            \bottomrule
        \end{tabular}
            \caption{CAPTION GOES HERE}
                \label{tab:TABLE NAME GOES HERE}
\end{table}

\end{document}

If I replace \usepackage[english,russian]{babel} with \usepackage[russian, english]{babel}, then get English text for figure and label, but the correct angle quotes get replaced with << and >> which are a little too low.

How do I need to configure my preamble to get English standard formatting everywhere except where csquote controls style of quotes? (I do this for my preferred readability, and an editor right now only needs to change the style in csquote to get English style quotes again.)

Best Answer

This is to do with which fonts are being used for output. Latex has a number of output encodings. The standard is OT1, when Russian is selected you get T2A (the log file contains a warning that you should have set this up). So if you quotes are only for parts of the text in Russian language then you can simply write:

 \foreignlanguage{russian}{\enquote{....}}

assuming you have selected main language English via \usepackage[russian,english]{babel}. Here is a complete document.

Sample ouptut

\documentclass[12pt]{article}

\usepackage{amsmath,booktabs,setspace}
\usepackage[russian,english]{babel}
\usepackage[style=russian]{csquotes}

\begin{document}
\enquote{A quote}
\foreignlanguage{russian}{\enquote{A quote}}

\begin{figure}[h]
    \centering
    \rule{3cm}{2cm}
    \caption{Caption goes here}
    \label{fig:FIGURE NAME GOES HERE}
\end{figure}
\begin{table}[h]
  \centering
  \begin{tabular}{llr}
    \toprule
    \multicolumn{2}{c}{A} \\
    B & C & D (\$) \\
    \midrule
    E & F & G \\
    & H & I \\
    J & K & L \\
    \bottomrule
  \end{tabular}
  \caption{Caption goes here}
  \label{tab:TABLE NAME GOES HERE}
\end{table}

\end{document}

On the other hand if you are just looking to use this style quote in English, you could load the (often preferable) T1 encoding:

 \usepackage[T1]{fontenc}

This gives quotes that are a lot closer to the Russian T2A ones:

Sample output

\documentclass[12pt]{article}

\usepackage[russian,english]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=russian]{csquotes}

\begin{document}
\enquote{A quote}
\foreignlanguage{russian}{\enquote{A quote}}
\end{document}

The advantage of turning T1 encoding on is that words with accents can now be hyphenated, see Why should I use \usepackage[T1]{fontenc}?.