biblatex 参考资料的 URL 字段不遵循语言设置

biblatex 参考资料的 URL 字段不遵循语言设置

我目前正在用希腊语撰写论文,但我必须引用大部分英文资料。我的参考书目文件如下所示:

@online{microsoft-memory-safety-errors,
    author={\en{MSRC Team}},
    title={\en{A proactive approach to more secure code}},
    url={\en{https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/}},
    year={2019},
    month={7}
}

尽管\en{}对于作者和标题字段可以正常工作,但它无法与 URL 字段一起使用,并创建如下引用:

MSRC Team. «A proactive approach to more secure code». (Ιούλ. 2019), διεύθν.:
%5ἓν%7Βηττπς://μσρς-βλογ.μιςροσοφτ.ςομ/2019/07/16/α-προαςτιvε-αππροαςη-
το-μορε-σεςυρε-ςοδε/%7Δ.

main.tex

\documentclass[11pt,a4paper,english,greek,twoside]{book}

\usepackage[greek]{babel}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,style=ieee]{biblatex}
\addbibresource{chapters/bibliography.bib}

% typeset short english phrases
\newcommand{\en}[1]{\foreignlanguage{english}{#1}}

\selectlanguage{greek}

\begin{document}
    Κείμενο \en{Text}\cite{microsoft-memory-safety-errors}
    
    \printbibliography
\end{document}

答案1

对于全英文的条目,请考虑使用 langid 字段和 biblatex 的语言选项来切换语言。这也会翻译日期等内容。效果可以在第一个条目中看到。

如果您希望使用命令仅将特殊字段切换为英语\en:请不要将其用于 url,否则会中断。

url 通常应始终采用 latin/ascii 格式,因此最简单的方法是切换编码\UrlFont

我使用文章作为类别,将所有内容放在一页上。

\documentclass[11pt,a4paper,english,greek,twoside]{article}
\usepackage[greek]{babel}

\usepackage[style=ieee,language=auto,autolang=other]{biblatex}
\addbibresource{test.bib}

% typeset short english phrases
\newcommand{\en}[1]{\foreignlanguage{english}{#1}}

\usepackage{xurl} %more break points 
\renewcommand\UrlFont{\fontencoding{T1}\ttfamily}


\begin{document}

    \url{https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/}
    
    Κείμενο \en{Text}
    
    \cite{microsoft-memory-safety-errors}
    \cite{microsoft-memory-safety-errors-var}

    \printbibliography
\end{document}

使用过的参赛号码布

@online{microsoft-memory-safety-errors,
    author={MSRC Team},
    title={A proactive approach to more secure code},
    url={https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/},
    year={2019},
    month={7},
    langid={english}
}

@online{microsoft-memory-safety-errors-var,
    author={\en{MSRC Team}},
    title={\en{A proactive approach to more secure code}},
    url={https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/},
    year={2019},
    month={7},
}

在此处输入图片描述

相关内容