このブログは を書く際の備忘録も兼ねているらしいので, これはそういう記事です.
もともと 僕はスタイルファイルの管理がずさんなので, この前 amsthm がよくわからない競合を起こしたのでその競合をよくわからないままに解消した結果, スタイルファイルにするとかえって面倒だと思ったので長いプレアンブルができましたとさ. この長いプレアンブルをちょっと解説を入れつつブログに残しておこうかなと思った次第.
このブログにコードを貼って, それらを適切に貼り合わせればスタイルファイルがひとつ作れそうにしたら自分にとっても便利かもなと思ったので, そういうことをします.
普段使いのパッケージ
% general packages \usepackage{amsmath} \usepackage{amsfonts} \usepackage{ascmac} \usepackage{mathrsfs} \usepackage{mathtools} \usepackage{graphics} % 画像のはりつけ \usepackage{float} \usepackage{MnSymbol} % \leftmapsto \usepackage[all]{xy} % 可換図式
普段使いのパッケージの一部. どれが何とか正直わかっていない. 前半は特によくわからない.
\begin{align} \end{align} \mathscr
あたりはこの辺のパッケージに依存していることは認識しているけれど他は全くわからない. ダメだこりゃ.
後半のやつもコメントに書いたような理解しかしていない. コメント書いてないやつはなぜ導入したか覚えてない, 使っていない可能性が高い.
定理環境
% proof environment \usepackage{amsthm} % proof environment % See amsthm document p.9 if you want to know opt detail \newtheoremstyle{normal}% {} {}% {\normalfont} {}% {\sffamily} {:}% {.5em} {}% \newtheoremstyle{proofs}% {} {}% {\normalfont} {}% {\sffamily} {\newline}% % Note that final punctuation is omitted. {.5em} {}% \theoremstyle{normal} \newtheorem{thm}{定理}[section] \newtheorem{conj}{予想}[section] \newtheorem{prob}{問題}[section] \newtheorem{prop}{命題}[section] \newtheorem{lemma}{補題}[section] \newtheorem{cor}{系}[section] \newtheorem{ex}{例}[section] \newtheorem{Definition}{定義}[section] \newtheorem{rem}{注意}[section] \newtheorem{cf}{参考}[section] \newtheorem{fact}{事実}[section] \newtheorem*{approach}{アプローチ} \theoremstyle{proofs} \newtheorem*{Proofname}{証明}
定理環境である. コメントにあるように, 設定は amsthm の公式ドキュメントを読みながらした気がする.
備考
要するに, 証明環境と定理環境でこの場合はわけている.
定理環境は, 次のコードで定義されている.
\newtheoremstyle{normal}% {} {}% {\normalfont} {}% {\sffamily} {:}% {.5em} {}%
だいたい何を定義しているのかというと,
normal って名前の定理環境のスタイルを, 本文は通常のフォント, 題字は serif, 「環境名: 本文」, 環境が終わったら 0.5em 間をとる
という設定である. 詳細はリンクのドキュメントの p.9 に書いてある. 抜粋すると,
\newtheoremstyle{note}% name {3pt}% Space above1 {3pt}% Space below1 {}% Body font {}% Indent amount2 {\itshape}% Theorem head font {:}% Punctuation after theorem head {.5em}% Space after theorem head3 {}% Theorem head spec (can be left empty, meaning ‘normal’)
である. 他にもいくつか設定例が載っているのでこの公式ドキュメントありがたいので, 敬遠せず困ったら読みましょう.
僕の設定による出力例はたとえばこんな感じ.
もひとつ備考
僕は amsthm の標準で入っている proof 環境は使っていないです. 理由は忘れましたが, 確か証明終わりの四角が気に食わなかったんだと思います.
QED の四角
% % \qed % \makeatletter \def\BOXSYMBOL{\RIfM@\bgroup\else$\bgroup\aftergroup$\fi \vcenter{\hrule\hbox{\vrule height.85em\kern.6em\vrule}\hrule}\egroup} \makeatother \newcommand{\BOX}{% \ifmmode\else\leavevmode\unskip\penalty9999\hbox{}\nobreak\hfill\fi \quad\hbox{\BOXSYMBOL}} %\renewcommand\qed{\BOX} \newcommand\QED{\BOX}
コピペをしたコードなので実際どう動いているのか知らない. この四角はあまり精密ではない気もするので, 最近だと東大 愛好会様がなんか証明終わり記号について記事を書いていたと記憶しているので, そちらを読まれた方がいいと思う.
DeclareMathOperator
% ローマン体の出力 \DeclareMathOperator{\Card}{Card} \DeclareMathOperator{\Char}{Char} \DeclareMathOperator{\Hom}{Hom} \DeclareMathOperator{\Ker}{Ker} \DeclareMathOperator{\image}{Im} \DeclareMathOperator{\Real}{Re} \DeclareMathOperator{\id}{id} \DeclareMathOperator{\Spec}{Spec} \DeclareMathOperator{\Tr}{Tr}
これは数式環境中でローマン体にしなければならない記号たちで, には組み込まれていないものたちである.
数式環境中で原始的な方法でローマン体にするには,
$\mathrm{Hom}_R(R[X_1,\dots,X_n],S)$
などとすればよい. しかしこれは面倒くさい. 上のをプリアンブルに書いておくと,
$\Hom_R(R[X_1,\dots,X_n],S)$
と書くだけでよい. 出力は当然
感想
これだけで結構不便せず書けるものだなーと思うなどした. 実際はマクロ定義したりしているけどまぁそれはまたの機会に.