Re: タイトル著者概要の2重化の方法?

名前: しっぽ愛好家
日時: 2003-02-11 20:48:41
IPアドレス: 211.4.36.*

>>16404 \maketitle による,概要部分の作成の仕組みは,概ね次のようになっています. ・\title でタイトル文字列を登録し,\@title として記憶します. ・\author で著者リストを登録し,\@author として記憶します. ・\date で日付を登録し,\@date として記憶します. ・\maketitle の際に実行される \@maketitle の処理の中で, 上記の \@title などを用いて表題部分を作成します. %%% なお,\@title などは \title を用いなかった場合にも然るべき挙動を %%% 示すように初期化されています. そこで,表題部分について和文版と欧文版を併記するような場合には, 上記の処理と同様に ・和文版のタイトル文字列,著者リストなどを登録 ・欧文版のタイトル文字列,著者リストなどを登録 ・\@maketitle では登録した文字列を整形して表題部分を作成 という方針をとることができます. なお,概要に関しても ``2 重化'' するため,和文の概要と 欧文の概要の各々を記憶した後,\@maketitle のところで出力する, ということにしてみます. この方針で \maketitle 関係のマクロを再定義すると, とりあえず,次のようになります. (使用例は後述します.) %%% 必要があれば,定義例全体を \makeatletter,\makeatother で %%% 囲んでください. \def\jabstractname{概\hskip1zw要}%%% 和文の概要部分の見出し文字列 \def\eabstractname{Abstract}%%% 欧文の概要部分の見出し文字列 \long\def\jtitle#1{\def\@jtitle{#1}} \def\@jtitle{\@latex@error{No \noexpand\jtitle given}\@ehc} \long\def\etitle#1{\def\@etitle{#1}} \def\@etitle{\@latex@error{No \noexpand\etitle given}\@ehc} \def\jauthor#1{\def\@jauthor{#1}} \let\@jauthor\@empty \def\eauthor#1{\def\@eauthor{#1}} \let\@eauthor\@empty \newbox\@jabstractbox \global\setbox\@jabstractbox\box\voidb@x \newbox\@eabstractbox \global\setbox\@eabstractbox\box\voidb@x \def\jabstract{% \global\setbox\@jabstractbox\vbox\bgroup \hsize\textwidth \@parboxrestore \normalsize \leftskip=3zw \rightskip=3zw %%% 左右の余白の設定 \begingroup \centering \bfseries \jabstractname%%% 和文概要の見出し文字列の整形 \par\endgroup \vskip.25\baselineskip \small%%% 和文概要の文字サイズ \parindent=1zw\relax} \def\endjabstract{\egroup} \def\eabstract{% \global\setbox\@eabstractbox\vbox\bgroup \hsize\textwidth \@parboxrestore \normalsize \leftskip=3zw \rightskip=3zw %%% 左右の余白の設定 \begingroup \centering \small\bfseries \eabstractname%%% 欧文概要の見出し文字列の整形 \par\endgroup \vskip.25\baselineskip \footnotesize%%% 欧文概要の文字サイズ \parindent=1.5em\relax} \def\endeabstract{\egroup} \def\maketitle{% \par \begingroup \def\thefootnote{\fnsymbol{footnote}}% \def\@makefnmark{\textsuperscript{\@thefnmark}}% \long\def\@makefntext##1{% \parindent 1zw \noindent\hbox to2zw{\hss\textsuperscript{\@thefnmark}}##1}% \if@twocolumn \ifnum\col@number=\@ne %%% \twocolumn のオプション引数の中で \maketitle が用いられた場合 \@maketitle \else %%% 2 段組時に \twocolumn のオプション引数の外で \maketitle を %%% 用いた場合 \twocolumn[\@maketitle]% \fi \else%%% 1 段組の場合 \newpage \global\@topnum\z@ \@maketitle \fi \thispagestyle{jpl@in}% \@thanks \endgroup \setcounter{footnote}{0}% \global\let\thanks\relax \global\let\maketitle\relax \global\let\p@thanks\relax \global\let\@thanks\@empty \global\let\@jauthor\@empty \global\let\@eauthor\@empty \global\let\@date\@empty \global\let\@jtitle\@empty \global\let\@etitle\@empty \global\let\jtitle\relax \global\let\etitle\relax \global\let\jauthor\relax \global\let\eauthor\relax \global\let\date\relax \global\let\and\relax} \def\@maketitle{% \null\vskip\baselineskip \begin{center}% \let\footnote\thanks {\LARGE\bfseries \@jtitle \par}%%% 和文タイトルの出力 \vskip.5\baselineskip {\large \lineskip1ex \begin{tabular}[t]{c} \@jauthor%%% 和文著者リストの出力 \end{tabular}\par}% \ifvoid\@jabstractbox\else \vskip.5\baselineskip \unvbox\@jabstractbox%%% 和文概要の出力 \fi \setcounter{footnote}{0}% \vskip\baselineskip {\Large\bfseries \@etitle \par}%%% 欧文タイトルの出力 \vskip.5\baselineskip {\normalsize\lineskip1ex \begin{tabular}[t]{c} \@eauthor%%% 欧文著者リストの出力 \end{tabular}\par}% \ifvoid\@eabstractbox\else \vskip.5\baselineskip \unvbox\@eabstractbox%%% 欧文概要の出力 \fi \end{center}% \vskip\baselineskip} [使用例] 上記の定義を LaTeX 文書のプリアンブルにでも書き込んだ後(この場合には \makeatletter,\makeatother で囲む必要があります), \jtitle などを(文書中で)次のように用います. \jtitle{複数のタイトルを出力する方法}%%% 和文タイトルの登録 \jauthor{しっぽ愛好家}%%% 和文著者リストの登録 \begin{jabstract}%%% 和文概要の登録 これは,和文タイトルと欧文タイトルを併記する,という具合に, 複数のタイトルを併記する例です. \end{jabstract} \etitle{A Method to Produce Multiple-Titles}%%% 欧文タイトルの登録 \eauthor{Tail-Lover}%%% 欧文著者リストの登録 \begin{eabstract}%%% 欧文概要の登録 In this article, we are going to illustlate how to produce two or more titles. \end{eabstract} \maketitle%%% 実際の表題部分の出力 %%% (使用例はここまで) この定義例では,\thanks を(LaTeX のオリジナルの \author の場合と同様に) 著者リスト中で用いることもできます.ただし,和文著者リストと欧文著者リストに 同じ脚注記号をつけるが,脚注自身は和文のもの(あるいは欧文のもの)の 1 つのみしか出力しない,という処理はうまく行えません. %%% どちらかの脚注記号を直接記述するか, %%% もっと凝ったマクロを用意することになります. [蛇足] *真にやむを得ない場合には*,\twocolumn のオプション引数として ページ上部に配置する 1 段組部分を与えることができることを用いて, 次のように記述することも一応可能です. \twocolumn[ \begin{center} \LARGE \bfseries <和文タイトル> \end{center} \vspace{<適当な寸法>} \begin{center} \large <和文著者リスト> \end{center} \vspace{<適当な寸法>} \begin{center} \parbox{<適当な幅>}{<和文概要の見出しと概要自身>} \end{center} \vspace{<適当な寸法>} \begin{center} \large \bfseries <欧文タイトル> \end{center} \vspace{<適当な寸法>} \begin{center} \normalsize <欧文著者リスト> \end{center} \vspace{<適当な寸法>} \begin{center} \parbox{<適当な幅>}{<欧文概要の見出しと概要自身>} \end{center} ]

この書き込みへの返事:

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