我对 Latex 完全陌生。在主文档的 PDF 中,ä ö ü 和 ß 可以使用,但在参考书目中,它们被其他字符替换。
我使用 pdfLaTeX 编译文件。在我添加 .bbx 文件来格式化我的参考书目之前,它工作正常。我使用 biber 和 utf8 bibencoding
\documentclass[a4paper,12pt,oneside,headsepline,parskip=half]{scrartcl}
\usepackage[german,ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[paper=a4paper,left=30mm,right=25mm,top=25mm,bottom=30mm]{geometry}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,bibencoding=utf8,style=numeric,sorting=none,defernumbers=true]{biblatex}
\addbibresource{literatur.bib}
\usepackage{palatino}
\usepackage{mathpazo}
\begin{document}
Text
\nocite{*}
% Literaturverzeichnis
\newpage
\begin{sloppypar}
\addcontentsline{toc}{section}{Literaturverzeichnis}
\printbibliography[type=onlinemit,heading=subbibliography,
title={Internet mit Author}]
\end{sloppypar}
\end{document}
bib文件:
@onlinemit{quelle,
autoren = {Jörg, Lühn},
titel = {Ärgerlich ß},
url = {https://www.google.com},
zuletztam = {04.10.22}
}
bbx 文件:
\ProvidesFile{standard.bbx}
\DeclareDatamodelFields[type=field,datatype=verbatim]{autoren,zuletztam,url,titel}
\DeclareDatamodelEntryfields{%
autoren,zuletztam,url,titel}
\DeclareBibliographyDriver{onlinemit}{%
\printfield{autoren}%
:
\enquote{\printfield{titel}}%
\space
(Zuletzt aufgerufen am \printfield{zuletztam}).%
\newline
\printfield{url}
\finentry}
答案1
这里的问题是,所涉及的字段在文件verbatim
中声明为.bbx
。这意味着biblatex
将尝试逐字节读取它们,这对于宽度超过一个字节的 UTF-8 字符(如ß
、ä
、 )不起作用。ö
除非您有非常充分的理由,否则不要将字段声明为verbatim
。大多数普通字段应为datatype=literal
。在标准biblatex
数据模型中verbatim
,用于特殊字段,例如doi
、eprint
和file
。请注意,对于 URL,有一个特殊的datatype=uri
。
至少从代码片段来看,我完全不明白为什么需要新的条目类型@onlinemit
。您定义的所有字段在标准@online
类型中也可用(当然,字段名称是英文的,而不是德文,但仅此而已)。
还要注意,参考书目驱动程序的定义相当不合规范。它不使用 的biblatex
标点符号缓冲区和字段格式。