使用第一个解决方案回答,我们用命令得到字母下方的一个点,但是这在文件\d{s}
中如何工作?bibliography.bib
梅威瑟:
\documentclass{scrbook}
\usepackage{fontspec}
\setmainfont{Minion Pro} % No problem with Computer Modern typeface
\makeatletter
\renewcommand{\d}[1]
{\hmode@bgroup
\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
\makeatother
\usepackage[
backend=biber,
]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author{\d{s}}, A.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
S with dot bellow: \d{s}
\printbibliography
\end{document}
上述代码的结果:
答案1
Biber 太聪明了,你无法在这里耍花招。由于 是\d
TeX 中输入变音符号的常用方法,因此 Biber\d{s}
会自动将其转换为ṣ
并写入.bbl
。
一个简单的方法是使用不同的名称来命名假宏
\makeatletter
\newcommand{\dspec}[1]
{\hmode@bgroup
\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
\makeatother
然后使用\dspec{s}
而不是\d{s}
。
或者你关闭 Biber 的转换--output-safechars
biber --output-safechars