最終更新日:2003.3.16

\@n...

\@newctr

書式
\@newctr{ctr}[supctr]
ctrsupctrの子として設定する。 すなわち、supctrが増える毎にctrが0に初期化される。
定義部:latex.ltx
\def\@newctr#1[#2]{%
  \@ifundefined{c@#2}{\@nocounterr{#2}}{\@addtoreset{#1}{#2}}}

最初に\@ifundefinedによってc@supctrが 定義されているかどうか確認する。親カウンタ(supctrが定義されていないことには 親子関係を設定しても意味がない)。親カウンタが定義されていない場合、 \@nocounterrによって、エラーを発し処理を中断する。親カウンタが きちんと定義されている場合、\@addtoresetによって 親子関係を設定する。

\@next

定義部 : latex.ltx
\def\@next#1#2#3#4{\ifx#2\@empty #4\else
   \expandafter\@xnext #2\@@#1#2#3\fi}

#2が\emptyならば#4を展開する。そうでないならば\@xnext に#2、\@@、#1、#2、#3という引数を与える。ここで\@@は単なる区切り文字である。

\@nobreak

改ページを許すか否かのスイッチ

\@nobreaktrue

\if@nobreakスイッチを真(true)に設定する。
定義部 : latex.ltx
\def\@nobreaktrue {\global\let\if@nobreak\iftrue}

\@nocounterr

書式
\@nocounterr{ctr}
カウンタが定義されていない場合に呼び出される。エラーを発して処理を中断する。
定義部:latex.ltx
\gdef\@nocounterr#1{%
  \@latex@error{No counter '#1' defined}\@eha}

定義内容は至ってシンプルです。通常、引数には定義されていないカウンタ名を指定する。 そのカウンタ名を\@latex@errorに引き渡している。 \@ehaは処理が中断したときにH(またはh)を入力したときに表示される ヘルプ情報である。

\@nodocument

document環境内かどうかを表す

\@nodocumentはdocument環境に入る前と、document環境内では定義が異なる。

document環境に入る前では、次のようにエラーの内容が定義されている。

定義部 : latex.ltx
\gdef\@nodocument{%
  \@latex@error{Missing \protect\begin{document}}\@ehd}

一方、document環境内では次のように\relaxに定義し直される。

定義部 : latex.ltx
\global\let \@nodocument \relax

\@noitemerr

定義部 : latex.ltx
\gdef\@noitemerr{%
  \@latex@error{Something's wrong--perhaps a missing %
      \protect\item}\@ehc}

\@noskipsec

見出しの直後で改行せずに文書を始めるかどうかのスイッチ。

\@noskipsecが真(TRUE)の時は見出しの直後で改行せずにすぐに文書が始まることを表しており、 偽(FALSE)の時は見出しを出力して指定されたスキップを挿入した後、文書を始めることを意味している。 \@xsect内などで使用されている。

また、\@noskipsecのデフォルト値は真(TRUE)であり、document環境の開始時に偽(FALSE)に設定される。 したがって、document環境がない場合にはこのスイッチの値を調べて、エラーを発する。

以下の例では、\sectionを再定義して実際に\@noskipsecが真偽どちらに設定されているか確かめている。

sample
\documentclass{jsarticle}
\makeatletter
\def\shownoskipsec{%
\if@noskipsec
	ture
\else
	false
\fi
}%
\makeatother
\begin{document}
\section{AAA}
\shownoskipsec

%%sectionの再定義
\makeatletter
\renewcommand{\section}{%
  \@startsection{section}% #1 見出し
   {1}% #2 見出しのレベル
   {\z@}
   {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}
   {-1cm}
   {\reset@font\Large\bfseries}
}
\makeatother
\section{BBB}
\shownoskipsec
\end{document}

\@notdefinable

既に定義されているマクロで再定義が禁止されている場合に使用する。 エラーメッセージを出して、処理を中断する。
定義部 : latex.ltx
\gdef\@notdefinable{%
 \@latex@error{%
   Command \@backslashchar\reserved@a\space
   already defined.\MessageBreak
   Or name \@backslashchar\@qend... illegal,
   see p.192 of the manual}\@eha}

サイト管理者:yap(s0824088@mmm.muroran-it.ac.jp)