我使用 LaTeX 为法学院排版笔记和案例摘要。到目前为止,我已经为每个案例使用定理样式的布局thmtools
。这是一个最小的工作示例:
\documentclass[a4paper]{report}
\usepackage{amsthm,thmtools}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\theoremstyle{definition}
\newtheorem{case}[theorem]{Case}
\renewcommand{\listtheoremname}{List of cases}
\begin{document}
\listoftheorems[ignoreall,show={case}]
\chapter{1}
\begin{case}[name=Case name]
\textbf{Facts}: foo.
\textbf{Issue}: bar.
\textbf{Rule}: foobar.
\textbf{Analysis}: fob.
\textbf{Conclusion}: bor.
\end{case}
%repeat ad nauseum
\end{document}
具体问题
由 LaTeX 宏构造和定义的案例:对于每种情况来说,打字
\textbf{Facts}
和其余的工作都是乏味的。有没有办法定义一个专门的定理类环境来简化问题?例如,我对该moderncv
包有点熟悉,我知道命令中的六个括号\cventry{}{}{}{}{}{}
可以用不同的格式填充不同的信息。是否可以定义一些类似的定理类环境,例如,我可以在其中执行\case{Case name}{foo.}{bar.}{foobar.}{fob.}{bor.}
并获得与我的 MWE 中相同的输出?如果可以,我该如何定义这个环境?病例表:如果可以的话,那么是否可以打印一个案例名称列表,并将括号中的内容附加到每个案例中?现在我有
\listoftheorems[ignoreall,show={case}]
一份案例列表。但我更希望有一个案例列表,foo.
其中每个案例都附加了括号中的内容。这可能吗?
答案1
你可以从以下几点开始:
\documentclass{report}
\usepackage[margin=1in]{geometry}% Just for this example
\makeatletter
\newcommand{\printcases}{\@starttoc{cse}}
\newcommand{\l@case}{\@dottedtocline{1}{0em}{1.5em}}
\makeatother
\newcommand{\case}[6]{%
\addcontentsline{cse}{case}{#1: #2}
\begin{description}
\item[Case]: #1
\item[Facts]: #2
\item[Issue]: #3
\item[Rule]: #4
\item[Analysis]: #5
\item[Conclusion]: #6
\end{description}
}
\begin{document}
\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.}
\printcases
\end{document}
每个案例都case
使用(列表式)环境进行设置description
,允许在页面边界处将其拆分(如果需要)。此外,每个案例名称和页码都写入 ToC 类文件(扩展名.cse
)并使用 进行打印\printcases
。