我想使用 biblatex。我尝试将语言设置为匈牙利语。我找到了一个.bbx
文件,但如果我尝试使用它,就会出现奇怪的错误。
文件:
\ProvidesFile{magyar.bbx}
\DeclareLanguageMapping{magyar}{magyar}
\RequireBibliographyStyle{authoryear}
\renewcommand*{\finalnamedelim}{%
%\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\bibsstring{and}\space}
\newbibmacro{names:separator}{%
\ifthenelse{\value{listcount}<\value{liststop}}%
{\addcomma\addspace}%
{}%
}
\newbibmacro*{names:andothers}{%
\ifboolexpr{%
test {\ifnumequal{\value{listcount}}{\value{liststop}}}%
and%
test \ifmorenames%
}{\bibsstring{andothers}\addcomma}%
{}%
}
\def\@magyarbbx@hun{HUN}
\DeclareNameFormat{sortname}{%
\begingroup%
\edef\juniorpart{#7}%
\ifx\juniorpart\@magyarbbx@hun%
% Hungarian name
\usebibmacro{name:first-last}{#3}{#1}{#5}{\relax}%
\else%
% English name
\ifnum\value{listcount}=1\relax%
\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}%
\else%
\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}%
\fi%
\fi%
\endgroup%
}
%\DeclareNameFormat{sortname}{%
% \nameprint{#1}{#3}
% \usebibmacro{names:separator}%
% \usebibmacro{names:andothers}%
% }
\endinput
错误:
Illegal parameter number in definition of \blx@defformat@d
我不是高级 Latex 用户,我不知道该如何解决这个问题。我在互联网上找不到此文件的较新版本
答案1
您正在使用的文件(https://github.com/Botffy/texstuff/tree/master/tex/latex/biblatex)可以追溯到Biblatex 定制:通过连字符定义的作者姓名格式(本地化)(和http://r.snowl.net/harvard-style-citation-in-hungarian-language-hun/)因此,大部分数据可以追溯到 2011 年和 2012 年。
在此期间,有一些小的和一些不那么小的更改biblatex
。这里最有问题的更改是版本 3.3 中对名称格式宏的更改,请参阅Biblatex 3.3 名称格式。
下列的使用 LuaLaTex 和 biber 的匈牙利语为将匈牙利语支持纳入官方软件包,我们做了一些努力。匈牙利语支持的第一个版本是在https://github.com/plk/biblatex/issues/717并实施于https://github.com/plk/biblatex/pull/780。自 3.12 版起,biblatex
已包含匈牙利语本地化文件。这意味着当前biblatex
版本支持匈牙利语,因此您可能不再需要该.bbx
文件。
如果你加载,csquotes
你还需要设置引用样式。这也是正在进行的工作https://github.com/josephwright/csquotes/issues/19。 也可以看看引号(引号符号) xelatex + polyglossia + csquotes,你可能需要(维基百科上描述的引用风格)
\DeclareQuoteStyle{magyar}
{\quotedblbase}
{\textquotedblright}
[.05em]
{\guillemotright}
{\guillemotleft}
答案2
dev
上的分支https://github.com/plk/biblatex现已支持匈牙利语。