[OS X TeX] references inside a single chapter
Peter Vamos
P.Vamos at exeter.ac.uk
Wed Apr 12 18:10:48 CEST 2006
On Sun Mar 26 Ewan Delanoy wrote:
>I should like to produce an output like that in LaTeX
>
> Chapter A Mammals
>
> Section1. Whales
> Section 2. Dogs
>
> Section 1 was about whales.
>
> Chapter B Birds
>
> Section A1 was about whales.
>
> So the philosophy is to omit the index of the chapter
>when making references inside a single chapter. This is
>not the default practice in LaTeX. How can this be done ?
This is what I told my PhD students to do in their Theses but they
came back to ask me how to do it. So I had to figure it out.
Fortunately I found a lovely package: `smartref' by by Giuseppe
Bilotta. Using this I wrote a macro \Ref (note the capitalization);
this will do exactly what you want. Just write your file as usual;
you'll need a few lines in the preamble to ensure correct numbering +
the \Ref macro. I enclose a sample file. This specifies the AMS book
\documentclass but I don't think this (AMS) is relevant. The smartref
package doesn't seem to be in Gerben's distribution (at least not in
my set-up) so you'll need to get it from CTAN. When I looked it up
now it showed version number 1.6, mine is 1.9; I cannot remember how
I got it although i corresponded with the author. Hopefully it won't
matter.
========= sample document ==========
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Sample file to illustrate `Chapter Aware Referencing'.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{%
amsbook%
}%
\parindent0pt
\usepackage{verbatim, smartref}
%%%%%%%smart Ref stuff %%%%%%%%%
\newcommand{\Ref}[1]{%
\ischapterchanged{#1}% checks if chapter number has changed
\hbox{%
\ifchapterchanged% if chapter is different
\chapterref{#1}.% put the chapter reference
\fi % else do nothing
\ref{#1}%
}%
}
\addtoreflist{chapter} %this is needed for the smartref package
%%%%%%%%%%%%% for numbering to work properly %%%%%%%%%%%
\numberwithin{section}{chapter}
\numberwithin{equation}{chapter}
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{lemma}[theorem]{Lemma}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{Chapter Aware Referencing.}
\author[V\'amos]{Peter V\'amos}
\address{P. V\'amos\\ School of Mathematical sciences \\ University of
Exeter \\ North Park Rd., Exeter
EX4~4QE \\ England}
\email{P.Vamos at exeter.ac.uk}
\maketitle
\chapter{This is the first chapter}
\section{This is a numbered first-level section head}
This is an example document to illustrate `chapter aware'
referencing, see Theorem~\Ref{t:main} for the precise definition.
This type of referencing is made possible by the use of the
\texttt{smartref} package by Giuseppe Bilotta and the macro
$\backslash$\texttt{Ref. }We will need two chapters to demonstrate
the desired effect.\\
So let's put here a couple of things with labels for cross-referencing.
\begin{lemma}\label{l:functions}
Let $f, g\in A(X)$ etc
\end{lemma}
%\begin{comment}
And now an equation for testing equation referencing:
\begin{equation}\label{eq:action}
e^{i\pi}=-1
\end{equation}
%\end{comment}
\begin{comment}
\begin{theorem}\label{t:main}
References of the form \textup{x.x (section.number)} will indicate
an item in the current chapter whereas the form \textup{x.x.x
(chapter.section.number)} will indicate an item in a different
chapter.
\end{theorem}
\end{comment}
End of Chapter 1.
\chapter{Testing Cross Referencing}
\section{This is a numbered first-level section head in chapter 2}
\begin{lemma}\label{l:start}
This is a lemma to start with.
\end{lemma}
\section{This is a numbered first-level section head in chapter 2}
And now for our next result:
\begin{lemma}\label{l:next}
This is our next lemma.
\end{lemma}
Followed by a theorem which maybe moved to Chap.1 for testing.
%\begin{comment}
\begin{theorem}\label{t:main}
References of the form \textup{s.x (section.number)} will indicate
an item in the current chapter whereas the form \textup{c.s.x
(chapter.section.number)} will indicate an item in chapter
\textup{c} different from the current chapter.
\end{theorem}
%\end{comment}
Testing referencing to a lemma in Chapter 1: Lemma~\Ref{l:functions},
and to results in \emph{this}
chapter: Lemma~\Ref{l:start}; also Lemma~\Ref{l:next} and Theorem~\Ref{t:main}.
Equation referencing: by equation~\Ref{eq:action} etc.\\
\begin{comment}
And now an equation for testing equation referencing:
\begin{equation}\label{eq:action}
e^{i\pi}=-1
\end{equation}
\end{comment}
Now lets move Theorem~\Ref{t:main} to Chapter 1 and
equation~\Ref{eq:action} to Chapter 2 and see what happens. (Just
\texttt{comment} and \texttt{uncomment} in the source file.)
Remember: you have to \emph{typeset twice} to see the correct
references!
\end{document}
More information about the macostex-archives
mailing list