タイトル名、著者名の参照

タイトル名、著者名の参照

- t t の投稿
返信数: 5
タイトル名、著者名を参照するにはどうすればよいでしょうか。
具体的には、\pagestyle{fancy} の中で、\chead{(タイトル名)by(著者名)} のように表示させたいのですが、タイトルを参照するなんてことは普通しないためか、そのような事例を見つけられませんでした。


タイトルの中に\label{~}として、\ref{-}としてももちろん参照されませんでした。
どうすればよいでしょうか。
t t への返信

Re: タイトル名、著者名の参照

- TONE Kozaburo の投稿
若干面倒ですが、ヘッダーに出力させたいタイトル等を別途定義した文字列を使うようにすればどうですか。

\documentclass[dvipdfmx]{jsarticle}
\usepackage{fancyhdr}

\newcommand{\TITLE}{タイトル名}%
\newcommand{\AUTHOR}{著者名}%

\title{\TITLE}%  代入する
\author{\AUTHOR}% 代入する
\date{弐阡廿壱年葉月参日}

\chead{(\TITLE)by(\AUTHOR)}

\pagestyle{fancy}

\begin{document}
\maketitle%

\section{ほげ}%

ふが

\newpage%

なんたらかんたら


\end{document}
TONE Kozaburo への返信

Re: タイトル名、著者名の参照

- t t の投稿
ありがとうございます。やはり、定義とかをするしか無いのですね。
そのようにして、対処いたします。
t t への返信

Re: タイトル名、著者名の参照

- 帯田 木偶太 の投稿
》 タイトルの中に\label{~}として、\ref{-}としてももちろん参照されませんでした。

ということは、\title や \author を自分で入力しているということですよね。
だったら、題名、著者名を \chead の引数にそのまま与えれば済むことではないかと。
つまり
    \title{タイトル名}
    \author{著者名}
    \chead{タイトル名by著者名}
でよいのでは?

同じ文字列を複数回入力するのを避けたいということであれば、
TONE Kozaburo さんの方法がよいでしょうけど。
帯田 木偶太 への返信

Re: タイトル名、著者名の参照

- t t の投稿
ありがとうございます。
そのとおりでございます。複数の書類に対して、同じフォーマットを使っていて、自動的にタイトルをヘッダーに表示させたかったのです。2回入力すれば済む話ではありますが、簡略化したいと思いました。
t t への返信

Re: タイトル名、著者名の参照

- 帯田 木偶太 の投稿
\title や \author は、引数を \@title、\@author に保存します。
※  それ以外しない単純なマクロです。
従って、\@title や \@author を他のコマンドの引数にすれば、
そのマクロで文書タイトルや著者名を取り込めるはずなのですが、
\maketitle が、(使用する文書クラスに依存することですが)
\@title、\@author をクリア(空に再初期化)してしまいます。
そのため、\chead の引数に与えても、実際のヘッダーの出力時には
何も出てきません。

\title、\author が実行された後で、かつ、\maketitle よりも
前に、\@title、\@author を適当な別名で保存しておけばよかろうかと
思います。


複数の文書で使うなら、
%%%%
    \RequirePackage{fancyhdr}\relax
    \AtBeginDocument{%
        \let\x@title=\@title
        \let\x@author=\@author
    }
    \chead{\x@title by\x@author}
    \pagestyle{fancy}
\endinput
%%%%
というような内容のパッケージを適当なファイル名(例えば somepackage.sty とか)で
作成しておき、本文側を次のようにするとよかろうかと。

%%%%
    \documentclass{jarticle}\relax
    \usepackage{somepackage}\relax
    \title{タイトル名}
    \author{著者名}
    \begin{document}
    \maketitle
   
    本文
   
    \verb|\maketitle|のあるページには
    \verb|\pagestyle{fancy}|が適用されないので
    ヘッダーは出力されない。
   
    \clearpage
   
    本文の続き
   
    このページには中央ヘッダーが出力されるはず。
    \end{document}
%%%%