I use LaTeX to typeset notes and case briefs for law school. So far I have settled for a theorem-style layout for each case using thmtools. Here is a minimal working example:

\renewcommand{\listtheoremname}{List of cases}

\begin{case}[name=Case name]

\textbf{Facts}: foo.

\textbf{Issue}: bar.

\textbf{Rule}: foobar.

\textbf{Analysis}: fob.

\textbf{Conclusion}: bor.
%repeat ad nauseum

Specific issues

  1. Case structured and defined by a LaTeX macro: Typing \textbf{Facts} and the rest is tedious for every case. Is there a way to define a specialized theorem-like environment that will simplify the matter? For example, I am vaguely familiar with the moderncv package and I know that the six braces in the command \cventry{}{}{}{}{}{} can be filled with different information with different formatting. Would it be possible to define some similar theorem-like environment where I could do, for example, \case{Case name}{foo.}{bar.}{foobar.}{fob.}{bor.} and get the same output as in my MWE? If so, how could I define this environment?

  2. Table of cases: If this is possible, would it then be possible to print a list of case names with content from one of the braces appended to each case? Right now I have \listoftheorems[ignoreall,show={case}] which spits out a list of cases. But I'd rather have a list of cases with the foo. from each case appended to it. Might that be possible?

  • (1) is certainly doable. I don't exactly know what you mean by (2). Could you provide some sample output?
    – Werner
    Apr 17, 2014 at 5:39
  • @Werner Let's say I have two cases. Case 1 is called A v. B and has I am a dog in the first set of braces. Case 2 is called C v. D and has I am a cat in the first set of braces. I would like some way to print A v. B: I am a dog and then C v. D: I am a cat with one command. I have the command \listoftheorems[ignoreall,show={case}] so far, but that only does half the work by spitting out the case names.
    – user33478
    Apr 17, 2014 at 5:43

1 Answer 1


Here is something that you could use as a start:

enter image description here

\usepackage[margin=1in]{geometry}% Just for this example
\addcontentsline{cse}{case}{#1: #2}
  \item[Case]: #1
  \item[Facts]: #2
  \item[Issue]: #3
  \item[Rule]: #4
  \item[Analysis]: #5
  \item[Conclusion]: #6
\chapter{A chapter}
% \case{<name>}{<facts>}{<issue>}{<rule>}{<analysis>}{<conclusion>}
\case{Case name}{foo.}{bar.}{foobar.}{fob.}{bor.}
\case{Case name}{bar.}{bar.}{foobar.}{fob.}{bor.}
\case{Case name}{baz.}{bar.}{foobar.}{fob.}{bor.}


Each case is set using a description (list-like) environment, allowing it to be broken at the page boundary (if needed). Additionally, each case name and page number is written to a ToC-like file (extension .cse) and printed using \printcases.

  • is it possible to remove the space between the word and the colon? Right now the output is Case : and I was wondering how I might change that to Case:.
    – user33478
    Apr 18, 2014 at 13:30
  • 1
    @longstreth: Yes; that's the so-called \labelsep of the list description. Add \usepackage{enumitem} to your document preamble and use \begin{description}[labelsep=0pt]. Alternatively, to get a bold colon :, use \item[Case:].
    – Werner
    Apr 18, 2014 at 13:46

Your Answer

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