特定マクロによる自動改行について

名前: あきお
日時: 2003-12-29 17:48:00
IPアドレス: 133.74.115.*

以前ここでcitationについて質問したときにしっぽ愛好家さんと言う方から教えていただいた マクロ(下にペーストします)を改造して、自動改行をさせたいのですが、 どのような命令を使うべきでしょうか? 具体的には、引用の著者数が多い時、例えば Sato, 2000;Kudo, 2001;・・・・・・Saito, 2002; となったときに、数が多すぎるとSaitoのあたりでページ幅を超えてしまいます。 これを、例えばSaitoの「S」辺りで自動的に改行が入って、 続きとして次行にて「-aito, 2002」等というようにしたいと思っています。 以下、しっぽ愛好家さんに作っていただいたマクロ http://www.matsusaka-u.ac.jp/~okumura/texfaq/qa/23903.html を載せます。 *******マクロはじめ************* \makeatletter \DeclareRobustCommand*\cite{% \leavevmode \@ifnextchar[% {\@tempswatrue\@xcite\@cite\@citefmt}% {\@tempswafalse\@xcite\@cite\@citefmt[]}} %%% 全体を [, ] で囲む(#2 はコメント部分) \def\@cite#1#2{[#1\if@tempswa; #2\fi]} %%% 個々の項目は ``Name, year'' の形式 \def\@citefmt{{\@cite@namepart}, {\@cite@yearpart}} \DeclareRobustCommand*\altcite{% \leavevmode \@ifnextchar[% {\@tempswatrue\@xcite\@altcite\@altcitefmt}% {\@tempswafalse\@xcite\@altcite\@altcitefmt[]}} %%% とりあえず,コメント部分はセミコロンで区切って後置 \def\@altcite#1#2{#1\if@tempswa ; #2\fi} %%% 個々の項目は ``Name [year]'' の形式 \def\@altcitefmt{{\@cite@namepart}\ [{\@cite@yearpart}]} \def\@xcite#1#2[#3]#4{% %%% #1: 全体の整形用マクロ %%% #2: 個々の項目の整形用マクロ %%% #3: コメント(\cite あるいは \altcite のオプション引数) %%% #4: ``参照キー'' のリスト \let\@citea\@empty #1% {\@for\@citeb:=#4\do{% \@citea\def\@citea{;\penalty\@m\ }% \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \if@filesw \immediate\write\@auxout{\string\citation{\@citeb}}% \fi \@ifundefined{b@\@citeb} {\mbox{\reset@font\bfseries ?}% \G@refundefinedtrue \@latex@warning{Citation `\@citeb' on page \thepage\space undefined}}% {\expandafter\expandafter\expandafter\@cite@parse \csname b@\@citeb\endcsname,,\@nil \hbox{#2}}}}% {#3}} \def\@cite@parse#1,#2,#3\@nil{%%% #1: name, #2: year, #3: junk \def\@cite@namepart{#1}% \protected@edef\@cite@yearpart{\@firstofone#2\@empty}} \makeatother ****マクロおわり*****

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)