Fazendo uma lista de citações

Fazendo uma lista de citações

Tenho um caso de uso em que preciso listar todas as citações embutidas usadas em um artigo jornalístico no final, juntamente com a atribuição. Algo como:

EXEMPLO DE INÍCIO Texto texto texto "isto é uma citação", disse person1. Texto texto texto "e este é outro", de acordo com person2. ...

Lista de citações:

"isto é uma citação" Pessoa1, Título, Organização

"e este é outro" Pessoa2, Título, Organização

EXEMPLO FINAL

Sou muito novo no Latex e não tenho certeza sobre a melhor abordagem. Fiz uma falha rápida ao tentar fazer o tocloft funcionar com um dos comandos csquote (\textquote), com base em exemplos que encontrei online. Esta é uma abordagem viável ou existem outras abordagens recomendadas que seriam mais sólidas?

desde já, obrigado

Responder1

Acho que seria melhor abordar o problema de maneira semelhante às citações. Primeiro defina um conjunto de citações (assim como você definiria um conjunto de citações em um .bibarquivo) e depois use aquelas que deseja no documento.

Aqui está um exemplo usando oglossariespacote. As cotações são definidas usando o \newquotecomando personalizado fornecido neste exemplo. Para manter o exemplo simples, acabei de colocá-los no preâmbulo, mas se você tiver muitos deles, é mais fácil colocá-los em um .texarquivo separado (chamado, digamos, quotes.tex) e carregar esse arquivo usando \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}

Tal como acontece com índices, referências cruzadas, etc., isso requer duas execuções para garantir que o documento esteja atualizado. Presumo que você queira que as cotações sejam listadas de acordo com a ordem de uso no documento. Usei \enquoteem vez de \textquotepor simplicidade, mas você pode adaptá-lo conforme necessário.

O documento resultante se parece com:

imagem do documento

informação relacionada