- ベストアンサー
TeXで章名を参照するためには
TeXで、\refや\labelを設定することにより、 式や章などの番号を参照することが出来ます。 この機能ですが、章番号ではなく章名を参照することは出来ないのでしょうか? 章名を頻繁に変更する可能性がある場合に備えて、 名前を抜き出したいのです。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私の勘違いでなければ, #1 さんの回答は,【章番号】でなく【章タイトル】を参照したいという質問者さんの問いに答えていないように思えます(LaTeX が標準で提供する ¥label, ¥ref の機能はあくまで【章番号】の参照です). 正攻法としては,¥label, ¥ref と類似の仕組みで aux ファイルを介して章タイトルの参照を可能にするマクロを新たに作るべきなのでしょうが,それは残念ながら私の手には負えません(既製のマクロパッケージでその機能を実現しているものが存在する可能性はありますが). 手っ取り早い解決法として,章タイトルをじかに書くのでなく,マクロにして1箇所でまとめて定義しておいてはどうでしょうか. ==== % 先頭近くで ¥def¥joron{序論} ¥def¥honron{本論} ¥def¥ketsuron{結論} % 章の始まり ¥chapter{¥joron}¥label{chap:joron} % 参照するとき これこれの話題については,すでに第¥ref{chap:joron}章「¥joron 」で述べた. ====
その他の回答 (3)
- chikuma_kayaker
- ベストアンサー率32% (14/43)
質問に合った回答ができていなかったので、お詫びします。 TeX Wiki の相互参照のところを読んでください。 http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%E5%85%A5%E9%96%80%2F%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AE%E4%BD%9C%E6%88%90 これを実現したい場合、マクロしかないということですね。 滋賀大学 熊澤 吉起 教授のページ http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/index.html これが参考になると思います。 http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/titleref.html
- kabaokaba
- ベストアンサー率51% (724/1416)
#2さんのいうとおりマクロを作ればいいだけです. 要は参照と同じようなことをすればいいのです. jbook.clsがベースならば \@chapterの中で細工すればいいでしょう. すべての見出しで見出しタイトルを参照することもできますが とりあえず章だけ. 細かい動作チェックはしていませんのであしからず. \documentclass{jbook} \makeatletter \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter\space\@chappos}% \addcontentsline{toc}{chapter}% {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% \else\addcontentsline{toc}{chapter}{#1}\fi \else \addcontentsline{toc}{chapter}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% %%%%%%%%%%%%% \def\@currentchaplabel{#2}%%!! %%%%%%%%%%%%% \@makechapterhead{#2}\@afterheading} \def\label#1{\@bsphack \protected@write\@auxout{}% {\string\newlabel{#1}{{\@currentlabel}{\@currentchaplabel}{\thepage}}}% \@esphack} \def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstofthree{#1}} \def\pageref#1{\expandafter\@setref\csname r@#1\endcsname \@thirdofthree{#1}} \def\chref#1{\expandafter\@setref\csname r@#1\endcsname\@secondofthree{#1}} \def\@firstofthree#1#2#3{#1} \def\@secondofthree#1#2#3{#2} \def\@thirdofthree#1#2#3{#3} \makeatother \begin{document} \chapter{hoge}\label{hoge} \ref{hoge}章 \pageref{hoge}ページ タイトル「\chref{hoge}」 \end{document}
- chikuma_kayaker
- ベストアンサー率32% (14/43)
\label コマンドと \ref コマンドを使います。 http://www002.upp.so-net.ne.jp/latex/sansho.html http://www.clas.kitasato-u.ac.jp/~fujiwara/infoScienceB/TeX/ref/labelAndRef.html http://www.h4.dion.ne.jp/~latexcat/intro/intro15.html http://nenya.cis.ibaraki.ac.jp/TIPS/LaTeX.html 体系的に学習していますか?書籍を読むことをお勧めしますが、こういうサイトもありますから、読んでみてください。 http://oku.edu.mie-u.ac.jp/~okumura/texwiki/ http://ja.wikibooks.org/wiki/TeX/LaTeX%E5%85%A5%E9%96%80
お礼
回答ありがとうございます。 \label コマンドと \ref コマンドで出来るのは チャプターの番号ですよね? そうではなく、チャプターのタイトルを参照したいのですが・・・ よろしくお願い致します。