![如何用 LaTeX 为我的引文编号](https://linux22.com/image/248052/%E5%A6%82%E4%BD%95%E7%94%A8%20LaTeX%20%E4%B8%BA%E6%88%91%E7%9A%84%E5%BC%95%E6%96%87%E7%BC%96%E5%8F%B7.png)
我想对文档中出现的引文进行编号。我喜欢 LaTeX 对环境所做的操作equation
,并且希望有类似的功能,这样如果我输入
\begin{quote}
Quote 1
\end{quote}
more text more text more text
\begin{quote}
Quote 2
\end{quote}
equation
如果我使用了环境,这两个引号就会出现在旁边,并且带有数字。
感谢您的帮助。
答案1
(编辑:请参阅其他人在评论中提出的补充建议。)
这是一个使用 的简单方法\parbox
。
\documentclass[12pt]{article}
\usepackage{lipsum}
\newcounter{quotecount}
\newcommand{\MyQuote}[1]{\vspace{1cm}\addtocounter{quotecount}{1}%
\parbox{10cm}{\em #1}\hspace*{2cm}(\arabic{quotecount})\\[1cm]}
\begin{document}
\lipsum[1]
\MyQuote{\lipsum[2]}
\lipsum[3]
\MyQuote{\lipsum[4]}
\lipsum[5]
\end{document}
答案2
resume
一种方法是使用包裹enumitem
,这让您可以灵活地选择如何对引文进行编号。下面我定义了一个深度为 2 的列表,并使用数字表示第一级引文,并使用字母表示第二级引文(如果有)。添加蓝色只是为了让引文环境脱颖而出:
笔记:
- 添加这个
showframe
包只是为了让您能够看到文本的边缘在哪里。
参考:
代码:
\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{enumitem}
\newlist{myQuoteEnumerate}{enumerate}{2}% Set max nesting depth
\setlist[myQuoteEnumerate,1]{label=(\arabic*)}% Use numbers for level 1
\setlist[myQuoteEnumerate,2]{label=(\alph*)}% Use letters for level 2
\newenvironment{MyQuote}{%
\begin{myQuoteEnumerate}[resume=*,series=MyQuoteSeries]%
\color{blue}%
\item \begin{quote}%
}{%
\end{quote}%
\end{myQuoteEnumerate}%
}%
\begin{document}
\noindent
some text some text some text
%
\begin{MyQuote}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris et diam viverra mauris commodo eleifend. Donec quis massa nisi.
\begin{MyQuote}
Suspendisse magna nisi, rhoncus sed sagittis sed, auctor id quam. Phasellus quis neque ut tellus tristique accumsan. Curabitur dignissim laoreet pellentesque. Integer placerat consectetur commodo.
\end{MyQuote}
\end{MyQuote}
%
more text more text more text
%
\begin{MyQuote}
Proin elit massa, sollicitudin vitae consectetur sit amet, sollicitudin nec nisl. Nulla facilisi.
\end{MyQuote}
\end{document}