fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 古水 達朗 の投稿
返信数: 12
\fontsize{..}{..}\selectfontで任意のfontsizeを指定すると、段落先頭の字下げが1文字分でなくなります。
\noindent\hskip1zwでしのいでいますが、なにかよい手立てはないでしょうか。よろしくおねがいします。
古水 達朗 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 本田 知亮 の投稿
よく意味がわかりません.
現象が再現する最小のファイルがあれば
話が進むかもしれません.

本田 知亮 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 古水 達朗 の投稿
本田 知亮 さま
帯田 木偶太 さま

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

どういうことに困っていたか、
ということと
帯田さまの問いかけにしたがってやった結果
とをpdfで送ります。
どうぞご覧ください。

貴重な時間を割いていただき、ありがとうございました。
古水 達朗 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 帯田 木偶太 の投稿

次のようにすると、手動で \parindent を設定する必要もなくなります…
が、何かよからぬ副作用があるような気がして仕方がない…


\documentclass{jarticle}\relax
\usepackage{type1cm}\relax

\makeatletter
        \toks@=\expandafter\expandafter\expandafter{\csname selectfont \endcsname}
        \expandafter\edef\csname selectfont \endcsname{%
                \the\toks@\noexpand\setparindent
        }
        \def\setparindent{\setlength{\parindent}{1zw}}
\makeatother

\begin{document}

いろはにほへとちりぬるをわかよたれそつねならむ
うゐのおくやまけふこえてあさきゆめみしゑひもせすん

\fontsize{20}{25}\selectfont
いろはにほへとちりぬるをわかよたれそつねならむ
うゐのおくやまけふこえてあさきゆめみしゑひもせすん

\end{document}

帯田 木偶太 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 奥村 晴彦 の投稿
jarticleじゃなくjsarticleにしていただければ,とりあえず\largeや\hugeなどのコマンドは期待通りに働きます。

\fontsize自体をいじらなかったのは何か副作用を恐れたのかもしれません>過去の自分。
帯田 木偶太 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 古水 達朗 の投稿
帯田さま

\parindentを使わなくても自動的に1文字分字下げする方法を考えてくださったのですね。ありがとうございます。

書かれているプログラムをファイルにコピペすればうまくいくのでしょうけれど、よく理解できていない状態ですので、いまは\fontsize{..}{..}\selectfont\parindent1zw\relaxで満足しておきたいと思います。

投稿を急いだので、お送りしたpdfには複数段落でも1回の宣言で済むことをお示ししませんでしたが、投稿後確かめました。

お書きになったプログラムがよく理解できなかったのは、
メールのなかに文字?がたくさん出現していたせいもあります。
フォーラムでお書きになったものを正確に読んで、理解に努めたいと思います。

プログラムを書くためにたくさんの時間を使われたことと思います。感謝の気持をお伝えします。
古水 達朗 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 古水 達朗 の投稿
帯田さま

\makeatletter ..... \makeatother

の中身はほとんど理解できていないのですが、

type1cm.styを手に入れることができたので、

せっかくだからとやってみました。

結果は大成功です。

\fontsize{..}{..}\selectfont

が\largeコマンドや\Largeコマンドのように使えたらよいのに

という欲張りでわがままななつぶやきが実現してしまいました。

type1cm.styもよくわかっていないのです。

これでいいのか、という忸怩たる思いを残しながら、

おつくりくださったプログラムを使わせていただきます。

ほんとうに ありがとうございました
古水 達朗 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 匿 名 の投稿

# 帯田 木偶太 さんご自身がきちんとご説明くださるかも知れませんのに,
# 横から余計な口出しですが…:

> \makeatletter ..... \makeatother
> の中身はほとんど理解できていないのですが、

ここは,\selectfont の定義の末尾に,“\setlength{\parindent}{1zw}” を追加しているのだと思いますよ.

あと,奥村先生が,

> jarticleじゃなくjsarticleにしていただければ,とりあえず\largeや\hugeなどの
> コマンドは期待通りに働きます。

とおっしゃってらっしゃるように,jsclasses では \@setfontsize が再定義されているので,jsclasses の \@setfontsize を使って,例えば \fontsize{15}{20} に適当な名前を付ければ,それでもうまくいくように思われます.

また,Z. R. さんによる BXjsclasses (http://zrbabbler.sp.land.to/bxjscls.html)  では \set@fontsize が再定義されているため,\fontsize によるフォントサイズ変更でも \parindent の値が代入され直されるようになっていますよ.
匿 名 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 帯田 木偶太 の投稿

》 とおっしゃってらっしゃるように,jsclasses では \@setfontsize が
》 再定義されているので,jsclasses の \@setfontsize を使って,
》 例えば \fontsize{15}{20} に適当な名前を付ければ,
》 それでもうまくいくように思われます.

というか、古水さんの場合、「ぴったり○○ポイントのサイズ」という
わけではなく、大体のイメージで大きなサイズを希望しておられるような
感じなので、jsarticle/jsbook クラスに、フォントサイズに関する
適当なクラス・オプションを指定するだけで足りるのかもしれません。

帯田 木偶太 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 古水 達朗 の投稿
帯田さま 奥村さま 匿名さま

いただいたアドヴァイスをFollowした結果をpdfで送ります。
時間がありましたら御覧ください。
古水 達朗 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 帯田 木偶太 の投稿

(匿名さんの書き込みと一部重複しますが、せっかく用意した文面なので
書き込みさせていただきます)


》 \makeatletter ..... \makeatother

》 の中身はほとんど理解できていないのですが、

やっていることは単純で、\selectfont によって呼び出される
「selectfont 」という名前のコマンド(名前の最後にスペース文字が
入っていることに注意)の元々の意味を \toks@ という
トークン・リスト・レジスターに一旦待避しておいて、
その末尾に \setparindent というコマンドを付け加えています。
そして、\setparindent を、\parindent に 1zw を代入する
コマンドとして定義しているのです。
ただ、「selectfont 」という名前のコマンドは、LaTeX が暗黙の
うちに頻繁に呼び出しているはずのコマンドなので、それの意味を
書き換えてしまうのは、思わぬところで不都合を生じてしまいそうな
気がしてしまうのです。

今回の古水さんの場合、
        \def\fs#1#2{%
                \fontsize{#1}{#2}\selectfont
                \setlength{\parindent}{1zw}%
                \ignorespaces
        }
のように定義した \fs コマンドを使って、\fontsize{XX}{YY}\selectfont と
する代わりに \fs{XX}{YY} とするようにすれば、\selectfont を記述する必要も
なくなります。また、こちらの方が、よからぬ副作用が現れる可能性が
ずっと低くなると思います。

    ※  ただし、「最終出力まで自分の手で処理する文書」以外では、
        このようなマクロ(先の書き込みで書いたものも)は
        使っちゃいけません。


》 type1cm.styもよくわかっていないのです。

type1cm.sty は、Computer Modern 特有のフォント・サイズ代替を避けるために
入れたものです。素のままでは Computer Modern フォントは 5pt、6pt、7pt、
8pt、9pt、10pt、10.95pt、12pt、14.4pt、17.28pt、20.74pt、24.88pt の
サイズしか用意されておらず、それ以外のサイズを \fontsize コマンドで
指定すると、上記のいずれかのサイズで代替されます。タイプセットのときに
        LaTeX Font Warning: Font shape `~' in size <~> not available
        (Font)              size <~> substituted on input line ~.
とか
        LaTeX Font Warning: Size substitutions with differences
        (Font)              up to ~pt have occurred.
というようなウォーニングが出ていたはずです(Computer Modern 以外の
フォントであれば別ですが)。

和文字しか使わないとか、Computer Modern 以外の欧文フォントを使うとか
いうのであれば type1cm.sty は外してもかまいません。

古水 達朗 への返信

Re: fontsizeを細かく指定すると段落先頭の字下げが1文字分でなくなる

- 帯田 木偶太 の投稿

\selectfont の後ろに \setlength{\parindent}{1zw} を入れるとよい‥‥

というようなことでしょうか?