定理中的引用方括号直立

定理中的引用方括号直立

如何在定理中将引用方括号和数字设置为直立,而其他内容保持倾斜?(这种风格是我的教授建议的。)

通常的外观如下

定理。没有最大的素数(参见[1,第 100 页定理 30])。

我想实现

定理。没有最大的素数[1,定理三十在页面100]。

我可以手动将\textup数字设置为直立,但无法将方括号设置为直立。

答案1

\emph似乎是你的朋友。

正直引用

代码:

\documentclass{article}
\usepackage{amsthm,amsmath}

\newtheorem*{thm}{Theorem}

\begin{document}

\begin{thm}
There is no biggest prime number \emph{(\cite[Theorem 30 at page 100]{A})}.
\end{thm}

\begin{thm}
There is no biggest prime number \emph{(\cite[\emph{Theorem} 30 \emph{at page} 100]{A})}.
\end{thm}

\begin{thebibliography}{1}

\bibitem{A} author, title

\end{thebibliography}

\end{document}

答案2

这是一个可能的解决方案,它也会强制使用引用的项目编号 \textup,因此如果对参考书目使用非数字标签,它将不完全合适。

它重新定义了几个命令latex.ltx。它可以使用“补丁”机制更紧凑地表达,但我还不太擅长这种技术。

第三个“定理”采用了重新定义的机制。

示例代码的输出

\documentclass{article}
\usepackage{amsthm,amsmath}

\newtheorem*{thm}{Theorem}

\makeatletter
\DeclareRobustCommand\thmcite{%
  \@ifnextchar [{\@tempswatrue\@thmcitex}{\@tempswafalse\@thmcitex[]}}
\def\@thmcitex[#1]#2{\leavevmode
  \let\@citea\@empty
  \@thmcite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}}
\def\@thmcite#1#2{\textup{[}{\textup{#1}\if@tempswa , #2\fi}\textup{]}}
\makeatother

\begin{document}

\begin{thm}
There is no biggest prime number \textup{(}see \textup{[1,}
Theorem \textup{30} at page \textup{100]}.
\end{thm}

\begin{thm}
There is no biggest prime number (see [1,
Theorem 30 at page 100].
\end{thm}

\begin{thm}
There is no biggest prime number \textup{(}see
\thmcite[Theorem \textup{30} at page \textup{100}]{A}.
\end{thm}

\begin{thebibliography}{1}

\bibitem{A}
author, title

\end{thebibliography}

\end{document}

相关内容