使用 Mathpazo 字体在 Bibtex 中报告年份和原始年份时,如何删除斜线后的空格

使用 Mathpazo 字体在 Bibtex 中报告年份和原始年份时,如何删除斜线后的空格

当提到 Goffman (1959/1969) 时,我看到斜线后有一个空格 (-> Goffman (1959/ 1969)。有人能帮我删除斜线后的这个空格吗?我正在使用 mathpazo 字体;因此我在 MWE 中添加了一行。

这是我的 MWE:

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[natbibapa]{apacite}
\usepackage[osf,sc]{mathpazo} %The font I used in my document 
\author{XX} \title{YYY}

\begin{document} 
\maketitle 
\citep{Example1}
\bibliographystyle{apacite}
\bibliography{test} 
\end{document}

bib 文件 (test.bib) 包含以下条目:

@book{Example1,
   author = {Goffman, Erving},
   title = {{Wir spielen alle Theater: Die Selbstdarstellung im Alltag}},
   publisher = {Piper Verlag GmbH},
   address = {(Weber-Schäfer, P., Übers.). München},
   year = {1969},
   originalyear={1959},
}

答案1

没有空格。这只是一个不合适的形状组合;/和之间应该有一个字距1,但字体没有提供。您可以使用以下技巧解决这个不幸的情况。

\begin{filecontents*}{\jobname.bib}
@book{Example1,
   author = {Goffman, Erving},
   title = {{Wir spielen alle Theater: Die Selbstdarstellung im Alltag}},
   publisher = {Piper Verlag GmbH},
   address = {(Weber-Schäfer, P., Übers.). München},
   year = {1969},
   originalyear={1959},
}
@article{Example2,
  author={A B},
  title={T},
  journal={J},
  year=2000,
}
\end{filecontents*}

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[natbibapa]{apacite}
\usepackage[osf,sc]{mathpazo} %The font I used in my document

\makeatletter % <--- Here starts the trick
\def\APACyear#1{\split@APACyear#1//\@nil}
\def\split@APACyear#1/#2/#3\@nil{%
  #1\if!#2!\else/\negthinspace#2\fi
}
\makeatother


\begin{document}
\author{XX} \title{YYY}

\maketitle
\citep{Example1}, \citep{Example2}
\bibliographystyle{apacite}
\bibliography{\jobname}
\end{document}

我重新定义了\APACyear命令以在其参数中查找/,在本例中,\negthinspace在斜线后添加。如果没有以 2 开头的年份,则不会出现问题。Example2添加该条目只是为了检查缺少的原始年份不会导致问题;诀窍filecontents*只是使示例自成一体,使用您自己的.bib文件。

enter image description here

相关内容