кавычка (знак кавычек) xelatex + polyglossia + csquotes

кавычка (знак кавычек) xelatex + polyglossia + csquotes

проблема у меня в том, что "?", который отображается вместо соответствующих кавычек (знаков) при цитировании текста на иностранном языке. Я искал руководства для таких пакетов, как polyglossiaили csquotes.

К сожалению, я не нашел команды, которая позволила бы мне объявлять кавычки (знаки) для языков, которые я собираюсь использовать в своем документе.

В обычном тексте я, конечно, мог бы использовать ,,или ''для имитации поведения, enquoteно библиографические записи также подвержены этому неприятному явлению :(

% !TEX TS-program = arara
% !TEX encoding = UTF-8 Unicode

% arara: xelatex: { shell: true }
% arara: biber
% arara: xelatex: { shell: true }

\documentclass[12pt]{article}

\usepackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\newfontfamily\greekfont[Script=Greek,Scale=MatchUppercase]{Linux Libertine O}
\newfontfamily\cyrillicfont[Script=Cyrillic,Scale=MatchUppercase]{Linux Libertine O}

\usepackage{polyglossia}
\setdefaultlanguage{polish}
\setotherlanguages{english,latin,greek,russian,german}

\usepackage[strict=false,autostyle=true,english=american,german=guillemets]{csquotes}

\PassOptionsToPackage{%
        natbib=true,
        style=authoryear-comp,
        hyperref=true,
        backend=biber,
        maxbibnames=99,
        firstinits=true,
        uniquename=init,
        maxcitenames=1,
        citetracker=true,
        parentracker=true,
        backref=true,
        backrefstyle=two,
            }   {biblatex}
\usepackage{biblatex}

\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
@article{Author2014,
    author      = {Joe, Smith},
    title       = {Publication title in polish language},
    journal     = {Journal of Journals},
    pages       = {1},
    year        = {2014},
    month       = {March}
    }
\end{filecontents}

\addbibresource{bibliography.bib}

\begin{document}

    \noindent{}{\enquote{\languagename{} \today}}\\
    \textenglish{\enquote{\languagename{} \today}}\\
    \textgerman{\enquote{\languagename{} \today}}\\
    \textlatin{\enquote{\languagename{} \today}}\\
    \textgreek[variant=ancient]{\enquote{\languagename{} \today}}\\
    \textrussian{\enquote{\languagename{} \today}}\\
    \textpolish{\enquote{\languagename{} \today}}\\
    \cite{Author2014}

    \printbibliography

\end{document}

введите описание изображения здесь

решение1

Проблема в том, что csquotesон не знает польского и латыни, как вы можете видеть в файле журнала.

Package csquotes Warning: No style for language 'polish'.

Поэтому вам придется указать, csquotesкакие кавычки вы хотели бы видеть в польском тексте.

Вы можете выдать

\DeclareQuoteStyle{polish}% I looked it up on Wikipedia, no idea if it's right
  {\quotedblbase}
  {\textquotedblright}
  [0.05em]
  {\textquoteleft}
  {\textquoteright}

\DeclareQuoteStyle{latin}% this is just a copy of the German definition
  {\quotedblbase}
  {\textquotedblleft}
  [0.05em]
  {\quotesinglbase}
  {\fixligatures\textquoteleft}

в преамбуле.

В общем, вам нужно иметь \DeclareQuoteStyleдля каждого языка, csquotesкоторый вы не знаете. Список поддерживаемых языков находится в csquotes.def(вы можете найти этот файл с помощью kpsewhich csquotes.def). Вы можете найти другие определения для сравнения там.

Синтаксис команды следующий (см.csquotesдокументация, особенно §8.1Определение стилей цитат).

\DeclareQuoteStyle[variant]{styl}[outer init][inner init]%
  {opening outer mark}
  [middle outer mark]
  {closing outer mark}
  [kern]
  {opening inner mark}
  [middle inner mark]
  {closing inner mark}

Если вы знаете, как настроить кавычки вашего языка, csquotesи ваш язык в настоящее время не поддерживается этим пакетом, вы можете рассмотреть возможность предложения разработчику включить его.https://github.com/josephwright/csquotes/issues

введите описание изображения здесь

Связанный контент