![抽象字体](https://linux22.com/image/255269/%E6%8A%BD%E8%B1%A1%E5%AD%97%E4%BD%93.png)
我正在使用 AMS Latex 文章模板,但遇到了这个问题:摘要部分中的单词“ABSTRACT”默认全部大写,而不是粗体。我想将其改为粗体,并且只将单词 abtract 的首字母大写。有人能帮忙吗?
\documentclass[timesroman11pt, reqno]{amsart}
\renewcommand\abstractname{\textbf{Abstract}} \usepackage[left=1.1in,top=1in,right=1.1in,bottom=1in]{geometry}
\usepackage{graphicx} \usepackage{times}
\usepackage{mathptm}
\makeatletter
\def\specialsection{\@startsection{section}{1}%
\z@{\linespacing\@plus\linespacing}{.5\linespacing}%
% {\normalfont\centering}}% DELETED
{\normalfont}}% NEW
\def\section{\@startsection{section}{1}% \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
% {\normalfont\scshape\centering}} % DELETED
{\normalfont\bfseries\Large}}% NEW
\makeatother
答案1
许多文档类将标准节名(如Abstract
和 )存储References
在变量中,变量名如\abstractname
和\refname
。通常,您只需更改其定义即可。
\renewcommand\abstractname{\textbf{Abstract}}
然而,在这种情况下,事情会稍微复杂一些,因为amsart.cls用途
\scshape\abstractname
排版摘要的标题。我认为在默认字体中没有粗体小写字母的说法是正确的,因此
\scshape\textbf{\abstractname}
将\scshape
被忽略,并且上述\renewcommand
操作按预期工作。但是,如果您加载了具有这些字形的字体(例如\usepackage{mathptmx}
),则“Abstract”最终将大写。为了防止这种情况,您可以使用etoolbox 包完全摆脱\scshape
,并用 取而代之\textbf
。
\documentclass{amsart}
\usepackage{etoolbox}
\usepackage{mathptmx}
\patchcmd{\abstract}{\scshape\abstractname}{\textbf{\abstractname}}{}{}
\begin{document}
\author{A Mathematician}
\title{A nice paper}
\begin{abstract}
This is the abstract.
\end{abstract}
\maketitle
\end{document}
答案2
abstract
查看环境的定义amsart
表明,抽象标签的处理是硬编码的\scshape
。
\newenvironment{abstract}{%
...
\item[\hskip\labelsep\scshape\abstractname.]%
...
要覆盖预期行为,您需要\abstractname
包含不同的字体形状(例如\upshape
)。类似的东西\def\abstractname{\upshape\bfseries Abstract}
应该可以工作。