Bus errorとSegmentation faultに困ったら見るブログ

物理学者(ポスドク)による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【TeX】数式番号に章番号を付加・途中の式番号から

(2011/05/13 元記事)

 

TeXで、式番号に章番号を付加する方法は前回書きました。

しかし今回上の方法ではちょっと不足だったため付け加えることに

 

式番号に章番号に付け加えるには、次のようにします

\makeatletter
\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}%式に章番号を付加
\@addtoreset{equation}{section}
\renewcommand{\thetable}{%表に章番号を付加
\makeatother


theequationというのはequationのカウンタの値
これをTeXの前の方(プリアンブル)で、上のように宣言し、章番号を付けます

 

真ん中の@から始まる行は、章をまたいだときに式番号をリセットするものです
例えば実際は↓のようになってほしいところが、

 

(2.1) -> (2.2) -> (2.3) -> (3.1) -> (3.2)

 

@から始まる行がないとequation番号はリセットしないので、

 

(2.1) -> (2.2) -> (2.3) -> (3.4) -> (3,5)

 

のようになってしまいます。

 

また、章番号 または 式番号を途中から始めたい場合は、

\setcounter{section}{5}
\setcounter{equation}{2}

 

と、renewcommandの前に書いても残念ながら機能しない・・・

 

おそらく@addtoresetがあるからだと思うが・・・
しょうがないのでsectionまたぎで途中から始めたい場合は最初の部分だけ手動で入れるしかないかもしれない


@addtoresetがなければ、章番号を途中から始めることも可能


\setcounter{section}{5}
\setcounter{equation}{2}


だと次のようになる

 

(6.6) -> (6.7) -> (7.8) -> (7.9)

 

章をまたがなければ、これで大丈夫な気がする

 

-------------

(2011/05/18 追記)

 

なんかすごい回りくどいことをしていたようで、下のように書けば(2.4)みたいな式番号を途中から始めて、sectionごとに式番号をリセットすることができる

求めている状況は

 

(1.1) -> (1.2) -> (1.3) -> section2 -> (2.1) ->(2.2) ->....

 

もしくは途中からはじめて

 

(3.2) -> (3.3) -> section4 -> (4.1) ->(4.2) ->....


\makeatletter
\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}%式に章番号を付加
\@addtoreset{equation}{section}
\renewcommand{\thetable}{%表に章番号を付加
\thesection.\arabic{table}}
\@addtoreset{table}{section}
\renewcommand{\thefigure}{%図に章番号を付加
\thesection.\arabic{figure}}
\@addtoreset{figure}{section}
\makeatother


\@addtoreset{equation}{section}

この行でsectionを跨ぐと式番号をリセットする

 

また上のmakeatletterを書いた後で

\setcounter{section}{4}
\setcounter{subsubsection}{5}
\setcounter{subsection}{2}
\setcounter{equation}{2}
%\setcounter{theequation}{}
\setcounter{figure}{1}

 

とすることで、うまーいこと望んでいる状況ができる。