4

I have a document with several statements (by this I mean theorem/lemma/proposition environments etc.) in it and I would like to list for a given statement A all statements referring to A, so a dependency list if you will. Is this possible?

  • 1
    You mean something like a "Table (List) of theorem/lemma/propositions"? – Raaja Feb 3 '17 at 13:10
  • Not exactly. For any theorem A I would like to have a list (perhaps below the theorem or on the margin next to it) of all theorem numbers referring to theorem A, and by referring I mean that the label of theorem A is used as a reference in the proof environment of some theorem. – Uname Feb 3 '17 at 13:13
  • 2
    could you please add a picture/ rough sketch of what you need? That would be more insightful. – Raaja Feb 3 '17 at 13:14
  • 1
    I would suggest an \index like approach where the referring theorems will be indexed, but makeindex does not really cope with anything but normal page numbers, so this not yet a terrific idea. xindy is different, of course – user31729 Feb 3 '17 at 14:13
  • I believe you're allowed to nest theorems inside each other. If Inner Theorem uses Lemma, does that count as Outer Theorem referring to it? Does Outer Theorem refer to Inner Theorem? – Teepeemm Feb 3 '17 at 14:42
2

Try this, answer taken as it is from @Gonzalo's reply ToC like list of definitions (using theorem environments)

Your may be interested in other solutions using thmtools etc.

\documentclass{book}
\usepackage{amsthm}
\usepackage{etoolbox}
\usepackage{xcolor}
\usepackage{framed}

\colorlet{shadecolor}{lightgray!25}

\newtheoremstyle{definitionsty}{3pt}{3pt}{\slshape}{}{\bfseries}{.}{.5em}{\addcontentsline{lod}{section}{#1~\protect\numberline{#2}{#3}}}
\theoremstyle{definitionsty}
\newtheorem{tdefn}{Definition}[chapter]
\newenvironment{defn}
  {\begin{shaded}\begin{tdefn}}
  {\end{tdefn}\end{shaded}}

\makeatletter
% A command to create the new List of Definitions
\newcommand\listofdefinitions{%
  \chapter*{List Of Definitions}\@starttoc{lod}}

% initial definitions to save the chapter info (name and number)
\def\thischaptertitle{}
\def\thischapternumber{}
\newtoggle{noDefs}

\apptocmd{\@chapter}%
  {\gdef\thischaptertitle{#1}\gdef\thischapternumber{\thechapter}%
    \global\toggletrue{noDefs}}{}{}

% the defn environment does the job: the first time it is used after a \chapter command, 
% it writes the information of the chapter to the LoD
\AtBeginDocument{%
  \AtBeginEnvironment{defn}{%
    \iftoggle{noDefs}{
      \addcontentsline{lod}{chapter}{\chaptername~\thischapternumber\hspace{1em}\thischaptertitle}{}
      \global\togglefalse{noDefs}
    }{}
  }%
}

\makeatother

\begin{document}

\listofdefinitions
\chapter{Test Chapter With Definitions}
\begin{defn}[My Hilarious Thing]
    Definition 1.2    - Another Super Duper Thingy
Test
\end{defn}
\begin{defn}[A Super Duper Thingy]
Test
\end{defn}
\chapter{Test Chapter Without Definitions}
\chapter{Another Test Chapter With Definitions}
\begin{defn}[Another Super Duper Thingy]
Test
\end{defn}
\begin{defn}
Test
\end{defn}

\end{document}
  • 1
    Where is the list which shows which theorem is referred to by another theorem? I think, you've misunderstood the question – user31729 Feb 3 '17 at 14:25
  • True referencing theorems is missed thank you. – Rama Krishna Majety Feb 4 '17 at 5:42
2

An index like approach with is limited, yet. It will print the theorem number and the list of other environments that are referring to it.

\documentclass{article}
\usepackage{amsthm}
\usepackage{imakeidx}

\usepackage{hyperref}

\usepackage[hyperref,user,counter]{zref}
\usepackage{blindtext}

\makeindex[name=theoref,title={List of Theorem References},options=-s theoref.ist]

\begin{filecontents}{theoref.ist}
delim_0 "\n \\dotfill "
page_precedence "nrRAa"
page_compositor "."
\end{filecontents}


\newtheorem{theorem}{Theorem}[section]

\newtheorem{lemma}{Lemma}[section]
\makeatletter
\newcommand{\indexref}[2][Theorem]{%
  \zref@ifrefundefined{#2}{}{%
    \hyperlink{\zref@extract{#2}{anchor}}{\zref@extract{#2}{default}}%
    \imki@wrindexentry{theoref}{#1 \csname the\@currenvir\endcsname|hyperlink{\zref@extract{#2}{anchor}}}{\zref@extract{#2}{default}}%
  }%
}
\makeatother

\begin{document}

\section{First}
\begin{theorem}{Theorem Number A}
\blindtext[2] \zlabel{theo::A}
\end{theorem}

\begin{theorem}{Theorem Number B}
We will use \indexref{theo::A} and \indexref{theo::C} in order to proof this theorem, as well as \indexref[Lemma]{lem::Llama}!\zlabel{theo::B}
\end{theorem}


\begin{theorem}{Theorem Number C}
We will use \indexref{theo::A}, \indexref{theo::B} in order to proof this theorem!\zlabel{theo::C}

\blindtext[3]
\end{theorem}

\begin{lemma}{Lemma for Llama}
  \blindtext\zlabel{lem::Llama}
\end{lemma}




\printindex[theoref]

\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.