biblatex:如何强调但不保护大写?

biblatex:如何强调但不保护大写?

使用大写\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 中删除大写保护问题的通用解决方案。

相关内容