名前: しっぽ愛好家 日時: 2004-09-29 11:29:41 IPアドレス: 211.4.44.*
>>31817 %%% 節見出しのようなものは単にコピー&ペーストすれば %%% 済みそうなものですが,とりあえず… 次のようなことをお考えなのでしょうか? \documentclass{jbook} \makeatletter \let\@alt@currentlabel\@empty \def\altlabel#1{% \@bsphack \protected@write\@auxout{}% {\string\newlabel{@alt::#1}{{\@alt@currentlabel}{\thepage}}}% \@esphack} \def\altref#1{\ref{@alt::#1}} \let\@latex@@sect\@sect \let\@latex@@ssect\@ssect \def\@sect#1#2#3#4#5#6[#7]#8{% \protected@edef\@alt@currentlabel{#7}%%% #8 の方がいい? \@latex@@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}} \def\@ssect#1#2#3#4#5{% \protected@edef\@alt@currentlabel{#5}% \@latex@@ssect{#1}{#2}{#3}{#4}{#5}} %%% \chapter の見出しを参照する必要があれば, %%% \@chapter/\@schapter の定義にも \@alt@currentlabel の %%% 定義処理を追加してください. \makeatother \begin{document} \chapter{サンプル文書} 本章の構成は次の通りです. \ref{sec:sample-1}節「\altref{sec:sample-1}」では基礎的な概念を導入し, \ref{sec:sample-2}節「\altref{sec:sample-2}」ではそれらの概念が どのように現実問題に適用されるかを考察します.(後略) \section{サンプル1}\label{sec:sample-1}\altlabel{sec:sample-1} サンプル文書 \section{サンプル2}\label{sec:sample-2}\altlabel{sec:sample-2} サンプル文書 \end{document} %%% 単に,通常の相互参照の処理を流用しただけです. %%% もちろん,\altlabel を用いないで済むように定義する %%% こともできますが…
この書き込みへの返事: