克莱因伯格-塔多斯的写作风格

克莱因伯格-塔多斯的写作风格

我最近读了一本书算法设计经过乔恩·克莱因伯格伊娃·塔多斯,其写作风格非常独特。本书没有典型的 LaTeX 环境,如定理、引理和推论,CLRS 教科书.相反,所有这些重要的按顺序编号。

例如,此图像取自 KT 教科书第 1 章第 7 页,可用的来自出版商的网站。(本页解释了 Gale-Shapley 算法稳定婚姻问题

在此处输入图片描述

如您所见,编号为 (1.1) 和 (1.2) 的块可以引理在通常的教科书中,(1.3)可以定理。我喜欢他们的写作风格并且想模仿他们。


我的问题:模仿这种写作风格的最佳方法是什么?假设我想定义一个执行textblock以下操作的环境来模仿 KT 写作风格。

  1. 此环境可以是阴影,也可以是非阴影。(如上图所示,(1.3)块是阴影,而(1.1)和(1.2)不是阴影。)
  2. 此环境的编号包括章节编号。
  3. 我希望这个区块跨越整个textwidth

我该如何定义这样的环境?

答案1

amsthm以下是使用和的实现tcolorbox

\documentclass{article}

\usepackage{lipsum} % just for the example

\usepackage{amsthm,tcolorbox}

\newtheoremstyle{block}
 {\topsep}% space above
 {\topsep}% space below
 {\itshape}% body font
 {}% indent
 {\bfseries}% head font
 {}% punctuation
 {1em}% space between head and body
 {(\thmnumber{#2})}

\theoremstyle{block}
\newtheorem{block}{}[section]
\newtheorem{block*}[block]{}

\tcolorboxenvironment{block*}{
  frame empty,
  colback=black!15!white,
  grow to left by=6pt,
  grow to right by=6pt,
  left=1.6pt,
  right=1.6pt,
  arc=0pt
}

\begin{document}

\section{Whatever}

\lipsum[2]

\begin{block}
Some text to see what happens,
some text to see what happens,
some text to see what happens,
some text to see what happens.
\end{block}

\lipsum[2]

\begin{block*}
Other text that should be the statement of
an important theorem, so it is on a grey
background.
\end{block*}

\lipsum[2]

\end{document}

在此处输入图片描述

答案2

xcolor除了阴影块之外没有任何包的一种方法:

平均能量损失

\documentclass[a4paper]{article}
\usepackage[margin=1cm]{geometry} % little margin for MWE
\usepackage{lipsum} % dummy text for MWE
\usepackage{xcolor} % for shaded gray block
\newcounter{para}[section]\setcounter{para}{0}
\def\block#1{%
  \refstepcounter{para}
  \bigskip 
  \noindent\textbf{(\thesection.\thepara)}\quad{\em #1}
  \par\bigskip}
\def\blockg#1{ %
  \refstepcounter{para}
 \bigskip 
 \fboxsep1em
 \noindent\fcolorbox{gray!40}{gray!20}{
 \begin{minipage}{\dimexpr\linewidth-2em}
    \noindent\textbf{(\thesection.\thepara)}\quad\em#1
 \end{minipage}}
 \par\bigskip}

\begin{document}
\section{Lore ipsum}    
\lipsum[11]         % normal text
\block{\lipsum[2]}  % block 1.1
\lipsum[3]          % normal text
\blockg{\lipsum[4]} % block 1.2
\lipsum[5]          % normal text
\section{Dolor sit amet}    
\lipsum[12]         % normal text
\block{\lipsum[13]} % block 2.1
\end{document}

相关内容