
Я последовал заСправочный лист 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
об этом предпочтении и покончить с этим раз и навсегда, верно?