
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 .bib
arquivo) e depois use aquelas que deseja no documento.
Aqui está um exemplo usando oglossaries
pacote. As cotações são definidas usando o \newquote
comando 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 .tex
arquivo 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 \enquote
em vez de \textquote
por simplicidade, mas você pode adaptá-lo conforme necessário.
O documento resultante se parece com: