特定の定理を使用してすべての定理を一覧表示する

特定の定理を使用してすべての定理を一覧表示する

いくつかのステートメント (定理/補題/命題環境など) を含むドキュメントがあり、特定のステートメント A について、A を参照するすべてのステートメント (依存関係リスト) をリストしたいと考えています。これは可能ですか?

答え1

これを試してみてください。回答は@Gonzaloの返信からそのまま引用されています。ToC のような定義リスト (定理環境を使用)

thmtools などを使用した他のソリューションに興味があるかもしれません。

\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}

答え2

を使用した同様indexのアプローチはまだ制限されています。定理番号とそれを参照している他の環境のリストが出力されます。

\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}

ここに画像の説明を入力してください

関連情報