проблема у меня в том, что "?", который отображается вместо соответствующих кавычек (знаков) при цитировании текста на иностранном языке. Я искал руководства для таких пакетов, как 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