使用大写\emph{\relax About}
字母来强调“关于”,而不是大写字母保护,这是https://tex.stackexchange.com/a/140071/22851不能按预期工作:它删除了强调但保留了大写保护:
\documentclass[american]{article}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}%
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\usepackage{fontspec}
\setmainfont{Linux Libertine}
\usepackage{filecontents}
%
\begin{filecontents}{\jobname.bib}
@article{a,
author = {Doe, John},
year = {2015},
title = {All About \emph{About} 1}
}
@article{b,
author = {Doe, John},
year = {2015},
title = {All About \emph{\relax About} 2}
}
\end{filecontents}
%
\addbibresource{\jobname.bib}
\begin{document}
\cite{a, b}
\printbibliography
\end{document}
输出:
Doe,2015a,2015b
参考
Doe, J. (2015a). 关于关于1.
Doe, J. (2015b). 关于 2 的全部内容。
所以呢会工作?
答案1
您引用的答案是指 BibTeX;看来biblatex
/Biber 的工作方式不同,而且
All About {\em About\/}
是必要的。
\documentclass[american]{article}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}%
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
%\usepackage{fontspec}
%\setmainfont{Linux Libertine}
\usepackage{filecontents}
%
\begin{filecontents}{\jobname.bib}
@article{a,
author = {Doe, John},
year = {2015},
title = {All About {\em About\/} 1}
}
@article{b,
author = {Doe, John},
year = {2015},
title = {All About \emph{\relax About} 2}
}
\end{filecontents}
%
\addbibresource{\jobname.bib}
\begin{document}
\cite{a, b}
\printbibliography
\end{document}
答案2
出乎意料的是,它似乎{\emph{Foo}}
可以在上面的 MWE 中用来获得强调但不受大写保护的字符串,也可以\emph{Foo}
用于{{\emph{Foo}}}
强调和大写保护的字符串。
同样,\textbf{Foo}
并{{\textbf{Foo}}}
提供大写保护;{\textbf{Foo}}
但不提供。
这确实太出乎意料了,我非常想知道其他人是否可以重现这个问题、解释这个问题,以及这是否被认为是解决 biblatex 中删除大写保护问题的通用解决方案。