我使用 lualatex。我用法语写作。
编译过程如下:
lualatex myfile.tex && makeindex myfile.idx && biber myfile.cbf && lualatex myfile.tex && lualatex myfile.tex
我必须在我的工作中引用一个包含字符“é”的 URL:
我的文件“biblio.bib”中有他的参考资料:
@online{scoutopediaceretotem,
keywords = {site},
author = {{SCOUTOPEDIA, l'encyclopédie scoute !}},
title ={Article consacré au cérémonial de totémisation},
url ={https://fr.scoutwiki.org/Cérémonial_de_la_totémisation},
urldate = {2020-03-31}
}
我用 cls 文件 myfile.cls (里面有很多内容) 加载我的类。开头是这样的:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{bpmemoire}[14/11/2018 v3.0]
% !TeX program = lualatex
% !TeX encoding = utf8
% !TeX spellcheck = french
%% %%
%%============================== Document Class ==========================%%
%
\LoadClass[12pt,a4paper,openany]{book} %%% pour le mémoire
% %%
\RequirePackage{ifluatex}
%% %%
%%========================================================================%%
\ifluatex
\RequirePackage{fontspec}
\setsansfont{CMU Sans Serif}%{Arial}
\setmainfont{CMU Serif}%{Times New Roman}
\setmonofont{CMU Typewriter Text}%{Consolas}
\defaultfontfeatures{Ligatures={TeX}}
\RequirePackage{polyglossia}
\setmainlanguage{french} %\setdefaultlanguage{french} %
\setotherlanguages{english,russian,thai}
\else
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage[french]{babel}
\fi
一切运行良好,除了 url,它用代码(带百分号)替换“é”或其他字母:
侦察百科“图腾化仪式上的奉献文章”网址:https ://fr.scoutwi-ki.org/C%C3%A9r%C3%A9monial_de_la_tot%C3%A9misation(访问日期:2020 年 3 月 31 日)。
我尝试了很多方法,比如用 inputenc、polyglossia、{'/e} 代替“é”等等,但都不起作用。你有什么想法吗?我知道带有“é”的 url 有问题,但我必须处理它……
谢谢
答案1
使用 lualatex 此处应该可以工作:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{biblatex}
\DeclareFieldFormat{url}{%
\mkbibacro{URL}\addcolon\space
\href{#1}{\nolinkurl{\thefield{urlraw}}}}
\DeclareFieldFormat{citeurl}{%
\href{#1}{\nolinkurl{\thefield{urlraw}}}}
\addbibresource{test.bib}
\begin{document}
\cite{scoutopediaceretotem}
\citeurl{scoutopediaceretotem}
\printbibliography
\end{document}
您可以使用 更改 url 的样式\urlstyle
,请参阅 url 包的文档。例如,
\urlstyle{rm}
它将看起来像这样: