Как цитировать авторов заглавными буквами с помощью \citet?

Как цитировать авторов заглавными буквами с помощью \citet?

Я последовал заСправочный лист Natbibи \citetработает как и ожидалось. Я хотел бы, чтобы имя автора было написано маленькими заглавными буквами, как это сделать?

Думаю, мне следует сделать следующее:

Определите \citenumfont, что это объявление шрифта или команда, например \itshapeили [...] \textit.

но я понятия не имею, что это значит.

Прежде чем вы проголосуете за ответ Lockstep: это не работает, имя автора не в заглавных буквах, команда renew не имеет эффекта. Его пример кода не компилируется так, как сейчас.

ОБНОВЛЯТЬ:Вот минимальный рабочий пример.

smallcap.tex

\documentclass[fleqn]{article}
\usepackage[numbers]{natbib}
\makeatletter
%\renewcommand*{\NAT@nmfmt}[1]{\textsc{#1}}
\def\NAT@nmfmt#1{\textsc{#1}}
\makeatother
\begin{document}
As mentioned in \citet{Biegler97}~\dots
\bibliographystyle{plainnat}
\bibliography{dummy}
\end{document}

фиктивный.нагрудник

@BOOK{biegler97,
  AUTHOR = {Lorenz T. Biegler and Ignacio E. Grossmann and Arthur W. Westerberg},
  TITLE = {Systematic Methods of Chemical Process Design},
  YEAR = {1997},
  PUBLISHER = {Prentice Hall PTR, Upper Saddle River, NJ}
}

решение1

С numbersопцией патч немного сложнее:

\usepackage{etoolbox}
\makeatletter
\patchcmd{\NAT@test}{\else\NAT@nm}{\else\NAT@nmfmt{\NAT@nm}}{}{}
\let\NAT@up\scshape
\makeatother

Видимонатбибавтор забыл подать заявку \NAT@nmfmtв соответствующем месте\NAT@test

Чтобы получить et al.латинский шрифт,

\usepackage{etoolbox,xstring}
\makeatletter
\patchcmd{\NAT@test}{\else\NAT@nm}{\else\NAT@nmfmt{\NAT@nm}}{}{}
\renewcommand{\NAT@nmfmt}{\expandafter\aliNAT@nmfmt\expandafter}
\newcommand\aliNAT@nmfmt[1]{{%
  \noexpandarg
  \def~{}%
  \edef\temp#1\edef\temp{\detokenize\expandafter{\temp}}%
  \begingroup\edef\x{\endgroup
    \noexpand\StrSubstitute{\temp}{\detokenize{etal}}}\x
    {\textnormal{et\nobreakspace al}}[\tempa]%
  \textsc{\tempa}}}
\makeatother

решение2

Ссылаться на авторов следует заглавными буквами.нетнеобходимо создать новый .bstфайл — вместо этого переопределите \NAT@nmfmtмакрос, отвечающий за форматирование имени автора. (См.этотответ для других областей применения \NAT@nmfmt.)

\documentclass{article}

\usepackage{natbib}

\makeatletter
\renewcommand*{\NAT@nmfmt}[1]{\textsc{#1}}
\makeatother

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journal = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},
}
\end{filecontents}

\begin{document}

As mentioned in \citet[99]{Bli74}~\dots

\bibliographystyle{plainnat}
\bibliography{\jobname}

\end{document}

введите описание изображения здесь

решение3

Со стр. 15 руководства natbib:

Числовые цитаты могут быть напечатаны другим шрифтом. Определить \citenumfontкак объявление шрифта, например, \itshapeили даже команду, принимающую аргументы, например \textit.[Команда] \renewcommand{\citenumfont}[1]{\textit{#1}}... лучше, чем \itshapeтак как это автоматически добавляет курсивное исправление.

Следовательно, изменение \citenumfontне повлияет на шрифт, используемый LaTeX для набора имен авторов в цитатах или библиографии. Для этого вам нужно создать файл стиля библиографии (расширение .bst), возможно, с нуля. Посмотрите на файлmakebst.tex(кстати, созданный автором пакета natbib). Его можно запустить либо под TeX, либо под LaTeX; при запуске он задаст вам множество вопросов (с предопределенными вариантами ответов) о желаемом стиле библиографии — включая некоторые вопросы о специальных шрифтах для имен авторов — а затем создаст файл .bst с этой информацией.

Приложение: Как отмечает @lockstep в своем ответе и в комментарии к моему ответу, если вы хотите использовать только заглавные буквы для имен авторов/редакторов вцитаты, не обязательно создавать новый .bstфайл: вместо этого можно переопределить \NAT@nmfmtмакрос. Однако вам все равно придется создать новый файл .bst, если вы хотите, чтобы имена авторов и редакторов были набраны малыми заглавными буквами враздел библиографиитакже --плюсвам придется не забыть вставить такие инструкции, как

\makeatletter
\def\NAT@nmfmt#1{\textsc{#1}}
\makeatother

с этого момента в преамбуле каждого документа, который вы пишете, будет использоваться этот формат цитирования. Вы могли бы просто сообщить программе makebst.texоб этом предпочтении и покончить с этим раз и навсегда, верно?

Связанный контент