新しいsectionの定義について

新しいsectionの定義について

- 山下 大輔 の投稿
返信数: 2
jsarticle.cls を参考に次のような section を定義しましたが,
思ったような表示にならず困っています。


---------- test1.tex ----------
\documentclass[a4j,11pt,fleqn,twoside]{jsarticle}

\usepackage[dvipdfmx]{graphicx,color}

\usepackage{fancyhdr}

\usepackage{okumacro,ascmac}

\usepackage{txfonts}

\usepackage{geometry}

% ----------------------------------------------------------------------

% マージン等の設定

\geometry{top=20truemm,bottom=20truemm,inner=25truemm,outer=15truemm}

% ----------------------------------------------------------------------

% 「実験x」という新しい subsubsection を作るための定義

\makeatletter

\newcounter{jikken}[subsection]

\newcommand{\jikken}{\@startsection{jikken}{3}%

{\z@}%字下げ量

{0.5zw}%{\z@}%見出しの上側の空白

{\z@}%見出しの下側の空白

{\normalfont\normalsize\headfont}}

\renewcommand{\thejikken}{実験\arabic{subsection}.\arabic{jikken}}

\newcommand{\jikkenmidashi}[1]{%

\underline{#1}}

\makeatother

% ----------------------------------------------------------------------

% 「演習問題x」という新しい subsubsection を作るための定義

\makeatletter

\newcounter{enshu}[jikken]

\newcommand{\enshu}{\@startsection{enshu}{3}%

{\z@}%

{0.5zw}%{\z@}%

{\z@}%

{\normalfont\normalsize\headfont}}

\renewcommand{\theenshu}{演習問題\arabic{subsection}.\arabic{jikken}.\arabic{enshu}}

\makeatother

% ======================================================================

% ======================================================================

% ======================================================================

\begin{document}


\pagestyle{empty}

\section{aaa}

\subsection{bbb}

\jikken{ccc}

ddd

\jikken{eee}

fff

\enshu{ggg}

hhh


\end{document}

---------- test1.tex ----------


このファイルをタイプセットすると


---------- test1.pdf ----------

1 aaa

1.1 bbb

実験1.1 ccc

ccc

ddd

実験1.2 eee

eee

fff

演習問題1.2.1 ggg

ggg

hhh

---------- test1.pdf ----------

というようになり,\jikken{ccc} と書くと

実験1.1 ccc

ccc

と {} の中に書いた見出しが次の行にも表示されてしまいます。

{} の中に書いた見出しを見出しだけの表示にするには,どうすればよいのでしょうか?



山下 大輔 への返信

Re: 新しいsectionの定義について

- 匿 名 の投稿
次の記述が抜けているのでは?
\let\jikkenmark\@gobble
\let\enshumark\@gobble

\@startsection を用いている \section,\subsection etc. には,
それらの見出しを柱に出す処理を行う(柱に出さないときには単に無視する)
コマンドの \sectionmark,\subsectionmark etc. が付随します.
ここでも \jikken,\enshu を \@startsection を用いて定義するのであれば,
\jikkenmark,\enshumark も導入することになります.

さらに,\jikken,\enshu に対応する項目を目次にも載せる(あるいは,
目次に(妙な形で)出ているのを修正・消去する)というのであれば,
\l@jikken,\l@enshu も適宜定義することになるでしょう.

# もっとも,\paragraph,\subparagraph を使用する予定がまったく
# ないのであれば,「\paragraph,\subparagraph を再定義したうえで,
# \jikken,\enshu はそれらの別名にする」という手もあります.
匿 名 への返信

Re: 新しいsectionの定義について

- 山下 大輔 の投稿
\let\jikkenmark\@gobble
\let\enshumark\@gobble
を,それぞれ \renewcommand{\jikken}... \renewcommand{\enshu}... の下に
記述することで目的が達成できました。

柱に出す,目次に載せる等は今のところどうするか決まっていないので,
そのままにしておこうと思います。

ありがとうございました。