名前: kreson 日時: 2006-06-19 16:27:37 IPアドレス: 58.188.44.*
>>43484 すいません. 以下の通りです. よろしくお願いします. --- \documentclass{jarticle} %%% http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/42985.html \makeatletter \def\ref@csname#1{\expandafter\@setref@csname\csname r@#1\endcsname\@firstoftwo{#1}}% \@setref を \@setref@csname に変更 \def\@setref@csname#1#2#3{% \ifx#1\relax \afterfi{\afterendcsname{% 追加 \protect\G@refundefinedtrue %\nfss@text{\reset@font\bfseries ??}% コメントアウト。これは表示してもよいかも \@latex@warning{Reference `#3' on page \thepage \space undefined}% }}% 追加 \else \expandafter#2#1% LaTeX では \null, pLaTeX では \relax が補われているが、それを削除。 \fi} \def\afterfi#1#2\fi{\fi#1}% 任意の処理を \fi の後に持ち越す \def\afterendcsname#1#2\endcsname{#2\endcsname#1}% 任意の処理を \endcsname の後に持ち越す \makeatother %%% http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/43375.html \makeatletter \def\hogestring{hoge}% 比較用文字列 \def\macro{\def\contents{}\@macro}% 取り込み開始。環境の中身を \contents に溜め込みます。 \long\def\@macro#1\end#2{% \expandafter\def\expandafter\contents\expandafter{\contents#1}% \def\tempa{#2}% \ifx\tempa\hogestring \end{hoge}% \else \expandafter\def\expandafter\contents\expandafter{\contents\end{#2}}% \expandafter\@macro \fi } \makeatother \makeatletter \newcounter{hoge} \newenvironment{hoge}[1] {\refstepcounter{hoge}\label{hoge:#1}\macro} {[hoge\the\c@hoge] \@namedef{hoge\the\c@hoge}{\contents}\contents} \def\hogeuse#1{\@nameuse{hoge\ref@csname{#1}}} \makeatother \begin{document} \begin{hoge}{hoge1} hogehoge \end{hoge} hoge~\ref{hoge:hoge1}: \hogeuse{hoge1} \end{document} --- $ platex test.tex This is pTeX, Version 3.141592-p3.1.9 (sjis) (Web2C 7.5.4) (./test.tex pLaTeX2e <2006/01/04>+0 (based on LaTeX2e <2003/12/01> patch level 0) (/usr/local/teTeX/share/texmf/ptex/platex/base/jarticle.cls Document Class: jarticle 2002/04/09 v1.4 Standard pLaTeX class (/usr/local/teTeX/share/texmf/ptex/platex/base/jsize10.clo)) (./test.aux) LaTeX Warning: Reference `hoge:hoge1' on page 1 undefined on input line 49. ) Runaway argument? ! File ended while scanning use of \@macro. <inserted text> \par <*> test.tex ? x No pages of output. Transcript written on test.log.
この書き込みへの返事: