[texhax] in-section references
tom sgouros
tomfool at as220.org
Sat Jan 27 22:46:11 CET 2007
Hi Martin:
I'm afraid you will be in for some editing of references. I make my
references look like \sectionref{subsub2} in order to deal with
situations comparable to this. For example, I have a section that
appears in book A and booklet B. In book A, the \sectionref{subsub2}
resolves to "Section 2.1.2" and when the same string appears in booklet
B, you get "Book A". This way the text can read "see
\sectionref{subsub2}" and the english works with both situations. But
you need to get the variable parts of the language inside the
\sectionref macro, which is why I think you'll need to edit. Otherwise
you're going to have to write a macro that can erase a few words behind
it which sounds pretty hairy.
What I think you need to do is the same thing, but using a comparison
between \thesection and \ref{#1} instead of \@ifundefined. (You'll
probably want a logical OR of three or four comparisons, between
\ref{#1}, \thechapter, \thesection and \thesubsection or
\thesubsubsection, really.) Something like the following almost does
what you want, and perhaps you can make the conditional more elaborate
to get it exact:
\newcommand{\testref}[3]{\edef\testa{\thesection\hbox{}}%
\edef\testb{\ref{#1}}%
\ifx\testa\testb #2\else #3\fi}
\newcommand{\sectionref}[1]{\testref{#1}{This section}%
{Section~\ref{#1}}\xspace}%
Hope this helps.
-tom
p.s. Judy says hi.
--
------------------------
tomfool at as220 dot org
http://sgouros.com
http://whatcheer.net
More information about the texhax
mailing list