description環境での字下げ

description環境での字下げ

- 土屋 勝 の投稿
返信数: 5
たびたびすみません。
TeX Live 2015 Windows 8.1環境で作業しているのですが,description環境での字下げが制御できず困っています。

\documentclass[fleqn, dvipdfmx]{jsbook}
\usepackage[fleqn]{amsmath}
\usepackage{amssymb}
\usepackage{okumacro}
\usepackage{ascmac}
\usepackage{ceo}
\usepackage[varceo]{emath}
\begin{document}
\begin{description}
\item[数式モードでの空白]\mbox{}\\
数式モードでは自動的にスペースが調整されます。数式のコマンドではないスペースは無視されます。そのため,\verb|$y=ax+b$|も\verb|$y = ax + b$|も同じ$y=ax+b$という出力になります。スペースを強制的に指定したい場合は次の命令を使います。
\item[きまりごと]\mbox{}\\
\LaTeX で文書を作成するには,Microsoft Wordや一太郎などのワードプロセッサソフトにはない,いくつかのきまりごとがあります。

ワープロソフトでは,文書作成画面に文字を入力し,見出しを付けたり文字サイズを変更したり,図や写真を挿入してレイアウトを行い,印刷するという手順を踏むでしょう。それに対し\LaTeX では
\end{description}
\begin{description}
{\small \item[数式モードでの空白]\mbox{}\\
数式モードでは自動的にスペースが調整されます。数式のコマンドではないスペースは無視されます。そのため,\verb|$y=ax+b$|も\verb|$y = ax + b$|も同じ$y=ax+b$という出力になります。スペースを強制的に指定したい場合は次の命令を使います。
\item[きまりごと]\mbox{}\\
\LaTeX で文書を作成するには,Microsoft Wordや一太郎などのワードプロセッサソフトにはない,いくつかのきまりごとがあります。

ワープロソフトでは,文書作成画面に文字を入力し,見出しを付けたり文字サイズを変更したり,図や写真を挿入してレイアウトを行い,印刷するという手順を踏むでしょう。それに対し\LaTeX では}
\end{description}
\end{document}

デフォルトサイズでは2行目の段落は3文字下がっていますが,\smallにすると字下げは同じなのに見出しが小さくなり,結果として3文字以上下がっています。これを3文字にせよと指示されました。
\leftmarginはプラスの値しか設定できないので,強制的に2行目を左に移動することができません。

どうすれば良いのでしょうか。
添付 test.png
土屋 勝 への返信

Re: description環境での字下げ

- Akira Kakuto の投稿
\leftmargin が違うと,おかしくなるでしょうから,
題目をずらすことになるのだと思います。
(要求を無視するほうが良いような気もしますが...)
元のものは,フォントチェンジコマンド \small の位置が不適当で,
おかしな出力になっていると思います。

...
\renewenvironment{description}{%
  \list{}{%
    \labelwidth=3zw
    \labelsep=1zw
    \advance \labelwidth by -\labelsep
    \let \makelabel=\descriptionlabel}}{\endlist}
\begin{document}
\begin{description}
... ...
\end{description}
{\small
\begin{description}
... ...
\end{description}
}
...
\end{document}
Akira Kakuto への返信

Re: description環境での字下げ

- 土屋 勝 の投稿
角藤先生,ありがとうございます。
おかげさまで字下げをきっちり3文字にすることができました。
試しにデフォルトのままで
{\small\begin{description}
\item [xxxxx]

\end{description}}
\end{document}

でやってみましたが,やはりずれました。\smallで変わるのは文字サイズだけで,list環境などのパラメータはそのままなのですね。
本文は逆に11ptで組んでいるので,字下げがこれまた指定通りにならず四苦八苦しました。



土屋 勝 への返信

Re: description環境での字下げ

- 北見 けん の投稿
すでに解決案が出ていますが、元の質問に気になるところがあったので。

> \leftmarginはプラスの値しか設定できないので,
これ、そうでしょうか?
具体的には、どこでどのように指定したのでしょうか。

\leftmargin は list 環境を直接使う場合のパラメータであって、
description 環境などの場合は、入れ子の階層を自動で検出したうえで
階層に合わせた \leftmargini や \leftmarginii などが \leftmargin に代入されて
list 環境に渡されるようになっています。(クラスファイルにもよりますが)

ですので、次のようにすればよいと思います。負の値も使えると思います。
{\small\leftmargini=3zw
\begin{description}
...
\end{description}}

北見 けん への返信

Re: description環境での字下げ

- 土屋 勝 の投稿
\leftmarginは正の値だけしか許されないけど,\leftmarginiは大丈夫なのですね。
\small環境の中で\leftmarginiを設定すれば,小さくなった文字3文字分のインデントになるわけですか。
土屋 勝 への返信

Re: description環境での字下げ

- 北見 けん の投稿
> \leftmarginは正の値だけしか許されないけど,\leftmarginiは大丈夫

\leftmargin だって負の値でいいはずだと思って、実際に list 環境を直接使ってみたところ、
やはり \leftmargin に負の値を設定した場合も設定どおりになりました。
(設定した分量だけしっかり左にはみ出しました)
もちろん description 環境であれば \leftmargini に設定した負の値が効きます。

それなので、「\leftmargin は正の値だけしか許されない」と再び仰られるのが解せなくて、
Lamport のマニュアル『文書処理システムLaTeX2e』を見てみたところ、
なんと「負の値は指定できない」と書かれているのですね。
(索引で \leftmargini などからたどれるページにありました)

他のパラメータの説明にも「負の値は指定できない」とか「負の値も指定できる」とか
書かれていますね。
実際には負の値も機能するのに、どうしてこう書いてあるのか、謎ですね。

勉強になりました。お返事ありがとうございました。