\thanks での強制改行(Re: \thanksのインデントの設定)

名前: .
日時: 2012-01-10 21:51:59
IPアドレス: 59.134.169.*

>>56554 \thanks での脚注テキスト内での強制改行について「\\」が単純には使えないというのは, よくある \maketitle(および \@maketitle)の処理では(jsarticle.cls の場合も含まれます) ・\author で与えた「著者名」部分は,最終的には tabular 環境の中で処理される ・\title で与えた「タイトル」部分は,最終的には center 環境の中で処理される ことにより \\ の定義が通常の定義とは異なっているためです. \thanks での脚注テキストというのは「動く引数」と似たイレギュラーな処理を受ける 対象ですので,その中の \\ に \protect を前置することにするというのはその場しのぎ ではありますが「良くない」方法とも言えません. # 「\thanks での脚注テキストは『普通の』テキストではない」という点さえ認識してしまえば, # \protect を用いるというのはむしろ素直な方法でしょうから. 何かにこだわる(あるいはどうしても気になる)というのでしたら, 次のサンプルのようなことは可能でしょう. ただし,\@tabular のようなものは各種のパッケージによって再定義される 可能性があるので,使用するパッケージに応じた調整が必要になることがあります (その意味でも,\protect を付けて済ますのが簡単かつ無難でしょう). \documentclass{jarticle}%%% js シリーズであるか否かは本質的ではない \makeatletter %%% \centering,\raggledright,\raggedleft,\@tabular の変更 \def\centering{% %%% \let\\\@centercr%%% original \expandafter\let\csname\@backslashchar\space\endcsname\@centercr \rightskip\@flushglue\leftskip\@flushglue \parindent\z@ \parfillskip\z@skip} \def\raggedright{% %%% \let\\\@centercr%%% original \expandafter\let\csname\@backslashchar\space\endcsname\@centercr \@rightskip\@flushglue \rightskip\@rightskip \leftskip\z@skip \parindent\z@} \def\raggedleft{% %%% \let\\\@centercr%%% original \expandafter\let\csname\@backslashchar\space\endcsname\@centercr \rightskip\z@skip \leftskip\@flushglue \parindent\z@ \parfillskip\z@skip} \def\@tabular{% \leavevmode \hbox\bgroup $\let\@acol\@tabacol \let\@classz\@tabclassz \let\@classiv\@tabclassiv %%% \let\\\@tabularcr %%% original \expandafter\let\csname\@backslashchar\space\endcsname\@tabularcr \@tabarray} \makeatother \title{ほげげ} \author{ああああ\thanks{ほげほげ\\ hogehoge}} \date{} \begin{document} \thispagestyle{empty} \maketitle \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)