![引号(引号符号) xelatex + polyglossia + csquotes](https://linux22.com/image/286475/%E5%BC%95%E5%8F%B7%EF%BC%88%E5%BC%95%E5%8F%B7%E7%AC%A6%E5%8F%B7%EF%BC%89%20xelatex%20%2B%20polyglossia%20%2B%20csquotes.png)
我的问题是“?“在引用/引述外语文本时,显示而不是适当的引号(符号)。我已经在手册中搜索了诸如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