description環境 見出し直後の改行文に入る空白制御

description環境 見出し直後の改行文に入る空白制御

- K S の投稿
返信数: 2
はじめまして。

\documentclass{jsarticle}
\begin{document}
\begin{description}
\item[ほげほげほげほげ見出し1]\mbox{}\par
ほげほげほげほげの内容
\item[ほげほげほげほげほげほげ見出し2]\mbox{}\par
ほげほげほげほげほげほげの内容
\end{description}
\end{document}

のような箇条書きの文を出力すると

ほげほげほげほげ見出し1
  ほげほげほげほげの内容
ほげほげほげほげほげほげ見出し2
  ほげほげほげほげほげほげの内容

といったように「内容」の文の文頭に適当な空白が入りますが、
これを制御したいのです。
箇条書きの制御のコマンドに\leftmarginなどがあることは調べましたが、
他のenumerate環境などに影響を与えるため、
あまり使いたくありません。

どうぞよろしくお願いします。
K S への返信

Re: description環境 見出し直後の改行文に入る空白制御

- 匿 名 の投稿
description 環境自体を再定義すればよいようですが?

description 環境の中で用いた enumerate/itemize 環境に
description 環境に対する変更が影響するのが問題になるようであれば,
「『一般の箇条書きに共通の設定』を \@listi,\@listii 等で行う」
ようにもすればよいでしょう.
匿 名 への返信

Re: description環境 見出し直後の改行文に入る空白制御

- K S の投稿
ありがとうございます。

\makeatletter
\newlength{\deslistparindent}
\setlength{\deslistparindent}{\listparindent}
\addtolength{\deslistparindent}{-20pt}%標準よりの下げ量
\let\@deslist\list
\renewenvironment{description}{%
\@deslist{}{%
\labelwidth=\leftmargin
\listparindent=\deslistparindent%奥村先生jsarticleからこの文を追加
\labelsep=1zw
\advance \labelwidth by -\labelsep
\let \makelabel=\descriptionlabel}}{\endlist}
\makeatother

をプリアンブルに書くことで解決することに致しました。

ただbeamerパッケージではこのままでは通らず
\makeatletter
\def\@@description{%
\advance\beamer@descdefault by \labelsep%
\list
{}
{
%オリジナル
%\labelwidth\beamer@descdefault\leftmargin\beamer@descdefault\let\makelabel\beamer@descriptionitem
\let\makelabel\beamer@descriptionitem
}%
\beamer@cramped%
\raggedright
\beamer@firstlineitemizeunskip%
}
\makeatother

のようにいたしました。単純にオリジナルより\labelwidth\beamer@descdefault\leftmargin\beamer@descdefault
を削っただけですので、どんな弊害があるか分かりませんが・・・(苦笑)
beamerパッケージは複雑で見にくいです・・・