次のような文書を作成したいのですが外観amsart
、しかし追加された\chapter
指示( のように、または異なるスタイルamsbook
)。どうすればそれができるでしょうか?
私は LaTeX に と の両方をロードさせるために、とamsbook
をamsart
さまざまな組み合わせで使用しようとしましたが、どちらも を使用して多くのものを定義し、無限のエラーを引き起こすため、この戦略は失敗しているようです。また、ではなく の定理の外観を維持したいため、逆の方法では実行できないことにも気付きました。また、理論的には を使用して自分でスタイルを設定できることもわかっていますが、 のタイトルの間隔を取得するには手作業が大量に必要になるため、手動で行うことは避けたいと思います。\LoadClass
\documentclass
\newcommand
amsart
amsbook
titlesec
amsart
MWE とは次のようなものです。
%\documentclass[openany,11pt]{amsbook}
\documentclass[11pt]{amsart}
\newtheorem{lemma}{Lemma}[chapter]
\newtheorem{theorem}[lemma]{Theorem}
\begin{document}
\chapter{My Fair Chapter}
\section{Lovely section}
\begin{theorem} % Should show "Theorem" in bold, unintended.
I love ducks.
\end{theorem}
\end{document}
答え1
気に入らない部分を変更したいと思いますamsbook.cls
。章のインフラストラクチャを追加するだけでも、目次やその他のリストも考慮する必要があるため、David Carlisle が追加したものよりもはるかに多くのコード行が必要になります。
\documentclass{amsbook}
\usepackage{etoolbox}
\makeatletter
\numberwithin{section}{chapter}
\def\@secnumfont{\mdseries}
\def\section{\@startsection{section}{1}%
\z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
{\normalfont\scshape\centering}}
\def\subsection{\@startsection{subsection}{2}%
\z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
{\normalfont\bfseries}}
\patchcmd{\@thm}{\let\thm@indent\indent}{\let\thm@indent\noindent}{}{}
\patchcmd{\@thm}{\thm@headfont{\scshape}}{\thm@headfont{\bfseries}}{}{}
\makeatother
\newtheorem{thm}{Theorem}[section]
\begin{document}
\chapter{Chapter title}
\section{Title of this section}
\subsection{Title of this subsection}
\begin{thm}
Whatever the theorem says.
\end{thm}
\begin{thm}[Somebody]
Whatever the theorem says.
\end{thm}
\end{document}
\chapter{Chapter title}
を削除し、カスタマイズして、代わりにロードすると、次のようになりますamsart
。
答え2
\chapter
amsbookから関連する行をコピーするだけです
%\documentclass[openany,11pt]{amsbook}
\documentclass[11pt]{amsart}
\makeatletter
\def\chaptermark#1{}%whatever
\let\chapterrunhead\partrunhead
\def\chapter{%
\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}\global\@topnum\z@
\@afterindenttrue \secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\refstepcounter{chapter}%
\ifnum\c@secnumdepth<\z@ \let\@secnumber\@empty
\else \let\@secnumber\thechapter \fi
\typeout{\chaptername\space\@secnumber}%
\def\@toclevel{0}%
\ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#2}%
\else \@tocwriteb\tocchapter{chapter}{#2}\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\@makechapterhead{#2}\@afterheading}
\def\@schapter#1{\typeout{#1}%
\let\@secnumber\@empty
\def\@toclevel{0}%
\ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#1}%
\else \@tocwriteb\tocchapter{chapter}{#1}\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\@makeschapterhead{#1}\@afterheading}
\newcommand\chaptername{Chapter}
\def\@makechapterhead#1{\global\topskip 7.5pc\relax
\begingroup
\fontsize{\@xivpt}{18}\bfseries\centering
\ifnum\c@secnumdepth>\m@ne
\leavevmode \hskip-\leftskip
\rlap{\vbox to\z@{\vss
\centerline{\normalsize\mdseries
\uppercase\@xp{\chaptername}\enspace\thechapter}
\vskip 3pc}}\hskip\leftskip\fi
#1\par \endgroup
\skip@34\p@ \advance\skip@-\normalbaselineskip
\vskip\skip@ }
\def\@makeschapterhead#1{\global\topskip 7.5pc\relax
\begingroup
\fontsize{\@xivpt}{18}\bfseries\centering
#1\par \endgroup
\skip@34\p@ \advance\skip@-\normalbaselineskip
\vskip\skip@ }
\def\appendix{\par
\c@chapter\z@ \c@section\z@
\let\chaptername\appendixname
\def\thechapter{\@Alph\c@chapter}}
\newcounter{chapter}
\newif\if@openright
\makeatother
\newtheorem{lemma}{Lemma}[chapter]
\newtheorem{theorem}[lemma]{Theorem}
\begin{document}
\chapter{My Fair Chapter}
\section{Lovely section}
\begin{theorem} % Should show "Theorem" in bold, unintended.
I love ducks.
\end{theorem}
\end{document}