制作报价清单

制作报价清单

我有一个用例,其中我需要在最后列出新闻类文章中使用的所有内联引用以及归属。例如:

开始示例文本文本文本“这是一句引言,” person1 说。文本文本文本“这是另一句,”根据 person2 的说法。...

引言列表:

“这是一条引言” 人物 1,头衔,组织

“这是另一个” 人员2,职称,组织

示例结束

我对 Latex 还很陌生,不清楚最佳方法是什么。我尝试让 tocloft 与 csquote 命令之一 (\textquote) 一起工作,但结果却很糟糕,这是基于我在网上找到的示例。这是一种可行的方法吗?还是有其他更合理的推荐方法?

提前致谢

答案1

我认为以类似于引用的方式来解决这个问题会更好。首先定义一组引文(就像在文件中定义一组引文一样.bib),然后在文档中使用您想要的引文。

下面是使用glossaries包。引号是使用\newquote此示例提供的自定义命令定义的。为了使示例简单,我将它们放在序言中,但如果您有很多引号,则更容易将它们放在单独的文件中.tex(例如,名为quotes.tex),然后使用加载该文件\loadglsentries{quotes}

\documentclass{article}

\usepackage{csquotes}
\usepackage{glossaries}

\makenoidxglossaries

% \newquote[options]{label}{name}{quote}{title}{organisation}
\newcommand*{\newquote}[6][]{%
 \newglossaryentry{#2}{name={#3},description={#4},%
    user1={#5},user2={#6},#1}%
}

% \usequote{label}{said}
\newcommand*{\usequote}[2]{\enquote{\glsdesc{#1},} #2 \glstext{#1}}

% Convert the first letter of the quote to upper case:
\newcommand*{\Usequote}[2]{\enquote{\Glsdesc{#1},} #2 \glstext{#1}}

\newglossarystyle{quotes}{%
  \setglossarystyle{index}%
  \renewcommand*{\glossentry}[2]{%
    \item\glsentryitem{##1}\glstarget{##1}{\enquote{\Glossentrydesc{##1}}}
    \glossentryname{##1}, \glsentryuseri{##1}, \glsentryuserii{##1}%
  }%
}
\newcommand*{\printquotes}[1][]{%
 \printnoidxglossary[sort=use,nogroupskip,style=quotes,%
   title={List of Quotes},#1]%
}

\newquote{smith1}{John Smith}{this is a quote}{President}{Smith \& co}
\newquote{doe1}{Jane Doe}{and this is another}{Galactic Ruler}{The Empire}
\newquote{smith2}{John Smith}{we retract our earlier statement}{President}{Smith \& co}

\begin{document}
Text text text \usequote{smith1}{said}.
Text text text \usequote{doe1}{according to}.
\Usequote{smith2}{said}.

\printquotes
\end{document}

与目录、交叉引用等一样,这需要运行两次才能确保文档是最新的。我假设您希望按照文档中的使用顺序列出引文。为了简单起见,我使用了\enquote而不是\textquote,但您可以根据需要进行调整。

生成的文档如下所示:

文件图像

相关内容