我怎样才能复制 Knuth 的《计算机编程艺术》中的引文风格?

我怎样才能复制 Knuth 的《计算机编程艺术》中的引文风格?

我怎样才能复制 Knuth 的《计算机编程艺术》中的引文风格?

我指的是在每一章开头和结尾处找到的引言,例如参见以下一行引言:

在此处输入图片描述

或以下跨越多行的代码:

在此处输入图片描述

答案1

如果你真的想复制 Knuth 所做的,你可以使用相同的宏。他使用的宏计算机编程艺术(TAOCP)可用作taocpmac.tex,与问题中的例子相关的是\quoteformat\author。下载taocpmac.tex,注释掉\input figdir.local顶部的行(或创建该名称的文件)并执行以下操作:

\input taocpmac

\beginchapter CHAPTER SIX: SEARCHING.

{\quoteformat{Let's look at the record.}
\author AL SMITH (1928)
}

\medskip

The normal text of the chapter here.

\bigskip

{\quoteformat{I shall have accomplished my purpose if I have sorted out and put in logical order
the gist of the great volume of material which has been generated about sorting
over the past few years.}
\author J. C. HOSKEN (1955)
}

\bye

使用texpdftex(或xetexluatex,即不是任何*latex)进行编译:

结果

如果你不想把所有的宏都复制过来,taocpmac.tex你可以只复制相关的宏,如果你愿意的话,你甚至可以用表面上的 LaTeX 风格来装饰它们:

\documentclass{article}
\font\eightss=cmssq8
\font\eightssi=cmssqi8
\newcommand\quoteAuthorDate[3]{\begingroup
  \baselineskip 10pt
  \parfillskip 0pt
  \interlinepenalty 10000 % not needed in example
  \leftskip 0pt plus 40pc minus \parindent
  \let\rm=\eightss
  \let\sl=\eightssi
  \everypar{\sl}#1\par
  \nobreak\smallskip
  \noindent\rm--- #2\unskip\enspace(#3)\par
  \endgroup}

\begin{document}
\hsize = 6in %  Wider than default, to illustrate.

\quoteAuthorDate{Let's look at the record.}{AL SMITH}{1928}

\medskip

The normal text of the chapter here.

\bigskip

\quoteAuthorDate{I shall have accomplished my purpose if I have sorted out and put in logical order\par
the gist of the great volume of material which has been generated about sorting\par
over the past few years.}{J. C. HOSKEN}{1955}

\medskip

\end{document}

根据需要调整跳过和换行符。尽管即使没有手动选择换行符,您也可能得到一些可以接受的结果,但 DEK 会手动选择换行符——这就是 的定义中\quoteformat有 的原因\obeylines,而我上面的“LaTeX”示例\par在第二个引号中有 s。LaTeX 用户往往不喜欢这样的东西。如果您属于同一类别,您可以尝试找到一个可以满足您的需求的 LaTeX 包。例如,正如问题评论中提到的,您可以使用epigraph

\documentclass{article}
\usepackage{epigraph}
\begin{document}

\epigraph{Let's look at the record.}{AL SMITH (1928)}

The normal text of the chapter here.

\setlength{\epigraphwidth}{0.9\textwidth}
\epigraph{I shall have accomplished my purpose if I have sorted out and put in logical order
the gist of the great volume of material which has been generated about sorting
over the past few years.}{J. C. HOSKEN (1955)}

\end{document}

但外观与 TAOCP 不一样。


历史附录:除了这些宏存在之外,我们如何知道 DEK 就是这样输入报价的taocpmac.tex

实际上,我不知道周围的{},但至于其余的(\quoteformat\author),事实上,自从 1977 年 5 月 DEK 为 TeX 编写的第一个“设计文档”以来,这一点并没有发生实质性变化,当时 TeX 程序还没有写出一行。在这些(TEXDR.AFT 和 TEX.ONE,发表于数字排版)他写下了他想要输入的内容,基本上是一样的。后来,较旧的 TeX 手册(例如,1997 年出版的那本)TeX 和 METAFONT:排版的新方向) 实际上在其“附录 E:书籍格式示例”中详细介绍了如何输入 TAOCP,其中这些宏位于acphdr.TEX当时名为的文件中,它甚至说“对于引文,您输入...”并给出\quoteformat\author。(当前电子书在其“附录 E:示例格式”中,解释了manmac.tex用于排版的TeXbook你也可以看看在 中如何引用)中texbook.tex也提到了acpmac.tex1995 年 TUG 采访,最后它现在被称为taocpmac.tex.

相关内容