![Como ter texto não itálico de \cite[]{} dentro do teorema usando amsthm e classe de artigo?](https://rvso.com/image/476241/Como%20ter%20texto%20n%C3%A3o%20it%C3%A1lico%20de%20%5Ccite%5B%5D%7B%7D%20dentro%20do%20teorema%20usando%20amsthm%20e%20classe%20de%20artigo%3F.png)
Eu tenho um arquivo tex:
\documentclass[11pt]{amsart}
\usepackage{amssymb,amsthm,enumitem,mathtools,fullpage,microtype}
\usepackage[hypertexnames=false]{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=red,
citecolor=magenta
}
\usepackage[noabbrev,capitalize,nameinlink]{cleveref}
\usepackage{autonum}
\numberwithin{equation}{section}
\newtheorem{theorem}{Theorem}[section]
\theoremstyle{definition}
\newtheorem{assumption}[theorem]{Assumption}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\TT}{\mathbb{T}}
\setlist{font=\normalfont}
\begin{document}
\section{Introduction}
\begin{assumption} \label{main_assmpt1}
There exist constants $C>0, \alpha \in (0, 1), \beta \in (0, 1)$ such that for $t \in \TT$ and $x, y \in \RR^d$:
\begin{enumerate}[label=(A\arabic*)]
\item $\nu$ has a density $\ell_\nu \in C^\alpha_b (\RR^d)$.
\item $a_t$ is invertible.
\end{enumerate}
\end{assumption}
\begin{theorem}
Let \cref{main_assmpt1} hold.
\begin{enumerate}
\item \cite[Theorem 2.1]{mckean1966class} ...
\end{enumerate}
\end{theorem}
\begin{thebibliography}{10}
\bibitem{mckean1966class}
Henry~P McKean~Jr.
\newblock A class of markov processes associated with nonlinear parabolic
equations.
\newblock {\em Proceedings of the National Academy of Sciences},
56(6):1907--1911, 1966.
\end{thebibliography}
\end{document}
Gosto particularmente do nome do teorema citado sem itálico:
Quando mudo de \documentclass[11pt]{amsart}
para \documentclass[11pt]{article}
, perdi essa aparência desejada:
Você poderia explicar como manter essa característica estética dentro da aula article
?
Responder1
amsart
usa:
\def\@citestyle{\m@th\upshape\mdseries}
\let\citeform\@firstofone
\def\@cite#1#2{{%
\@citestyle[\citeform{#1}\if@tempswa, #2\fi]}}
para definir explicitamente cita \upshape
. O comando cite padrão do LaTeX não faz algo assim. A definição padrão \@cite
de LaTeX é:
\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
Portanto, dentro de um teorema, a fonte do corpo do teorema também é usada para a citação. Mas você pode redefini-lo de forma semelhante, copiando o amsart
código:
\documentclass[11pt]{article}
\usepackage{amsthm}
\usepackage{amssymb,enumitem,mathtools,fullpage,microtype}
\usepackage[hypertexnames=false]{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=red,
citecolor=magenta
}
\usepackage[noabbrev,capitalize,nameinlink]{cleveref}
\usepackage{autonum}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\TT}{\mathbb{T}}
\setlist{font=\normalfont}
\numberwithin{equation}{section}
\newtheorem{theorem}{Theorem}[section]
\theoremstyle{definition}
\newtheorem{assumption}[theorem]{Assumption}
\makeatletter
\def\@citestyle{\m@th\upshape\mdseries}
\let\citeform\@firstofone
\def\@cite#1#2{{%
\@citestyle[\citeform{#1}\if@tempswa, #2\fi]}}
\makeatother
\begin{document}
\section{Introduction}
\begin{assumption} \label{main_assmpt1}
There exist constants $C>0, \alpha \in (0, 1), \beta \in (0, 1)$ such that for $t \in \TT$ and $x, y \in \RR^d$:
\begin{enumerate}[label=(A\arabic*)]
\item $\nu$ has a density $\ell_\nu \in C^\alpha_b (\RR^d)$.
\item $a_t$ is invertible.
\end{enumerate}
\end{assumption}
\begin{theorem}
Let \cref{main_assmpt1} hold.
\begin{enumerate}
\item \cite[Theorem 2.1]{mckean1966class} ...
\end{enumerate}
\end{theorem}
\begin{thebibliography}{10}
\bibitem{mckean1966class}
Henry~P McKean~Jr.
\newblock A class of markov processes associated with nonlinear parabolic
equations.
\newblock {\em Proceedings of the National Academy of Sciences},
56(6):1907--1911, 1966.
\end{thebibliography}
\end{document}
Notas:
O código acima funciona se você realmente fizer sua bibliografia manualmente. Se você usar um pacote como o
biblatex
, consulte o manual desse pacote para obter mais informações sobre a formatação de citações. E sim, eu recomendaria usar esse pacote, ou seja,biblatex
.Se quiser que não apenas as citações, mas também o resto do corpo do teorema não usem uma forma em itálico, você deve usar
\newtheoremstyle
para definir um estilo correspondente ou usar, por exemplo,\theoremstyle{definition}
.Se você, por exemplo, usa,
natbib
pode usar algo como\bibpunct{\upshape\mdseries[}{]}{,}{n}{}{,}
. Consulte onatbib
manual para obter mais informações sobre\bibpunct
.