![Usando notas finais E numeração de outro documento](https://rvso.com/image/390905/Usando%20notas%20finais%20E%20numera%C3%A7%C3%A3o%20de%20outro%20documento.png)
Você pode usar as notas finais geradas por outro documento para alimentar o documento atual?
Meu fluxo de trabalho planejado é colocar notas finais em um sepfootnotes
arquivo, marcar o posicionamento de cada nota em DocA.tex
e, em seguida, imprimir o conteúdo de cada nota em DocB.tex
. O MWE é DocB.tex
. Estou usando flowfram
para incorporar DocA como PDF em um quadro estático. Isso permite que três colunas de quadros de fluxo imprimam notas muito extensas do DocA.
\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{flowfram}
\usepackage{ragged2e}
\geometry{margin=0pt}
\setlength{\RaggedRightParindent}{\parindent}
\makebackgroundframe
\newstaticframe*{5.497in}{7.329in}
{3.003in}{3.671in}[pagegraphic]
\newflowframe{2.493in}{9.976in}
{0.30in}{0.6in}[leftcol]
\newflowframe{2.493in}{2.780375in}
{3.003in}{0.6in}[middlecol]
\newflowframe{2.493in}{2.780375in}
{5.706in}{0.6in}[rightcol]
\newcommand{\pagebox}[1]{%
{\setlength{\fboxsep}{1pt}\setlength{\fboxrule}{1pt}%
\fcolorbox{black}{white}{#1}}}
\setstaticframe{1}{backcolor={[rgb]{0.976,0.937,0.78}}}
\setstaticframe{2}{border=pagebox, offset=-2pt, backcolor={[rgb]{1, 1, 1}}}
\begin{document}
\RaggedRight
\begin{staticcontents*}{pagegraphic}
\includegraphics[page=3, scale=0.9448]{TestiPadSize.pdf}
\end{staticcontents*}
\lipsum
\end{document}
Sei que poderia fazer isso manualmente, apenas digitando uma referência para cada nota que aparece no DocA, mas conforme o documento muda, prefiro usar os contadores do DocA para fazer isso, para que a numeração e o posicionamento sejam precisos .
Meu primeiro pensamento seria reescrever o \newfootnotes
comando sepfootnotes
para usar .ent
o arquivo do DocA. Mas não conheço LaTeX suficiente para fazer isso. Essa é a melhor abordagem? Existe um pacote que já trata disso?
eu liesta postagemQual envolve reledmac
. Parecia muita sobrecarga e funcionalidade que eu não preciso.
Responder1
Não é simples, mas não muito difícil. A idéia básica é exatamente como você sugeriu: escreva as "notas" do primeiro documento em um arquivo externo e depois leia-as no segundo documento.
Então, lide com o primeiro ponto primeiro:
No primeiro documento - o que você está chamando de DocA:
\documentclass{article}
\makeatletter
% First we need a new "write".
\newwrite\notesdoc
\immediate\openout\notesdoc=\jobname.notes
\newcounter{enotecounter}
\newcommand{\externalnote}[1]{%
\refstepcounter{enotecounter}%
\textsuperscript{\arabic{enotecounter}}
\protected@write\notesdoc{}{\string\extnote{\arabic{enotecounter}}{#1}{\thepage}}}
\makeatother
\begin{document}
Here is some text.\externalnote{Here is a note. It is a long note,
and I am hoping that it will end up going over several lines.} And
here is another\externalnote{Another}
\clearpage
Here is some text on the next page\externalnote{And this is the text.}
\end{document}
O que isto faz é "escrever" as notas simplesmente fazendo a marca apropriada e então colocando o texto em um arquivo externo "\jobname.notes". Por razões que ficarão aparentes, fazemos isso escrevendo um comando nesse arquivo.
Depois o segundo arquivo, que deve ser lido naquele arquivo escrito anteriormente. Um problema: precisaremos de alguma facilidade para combinar a nota com a página. Para fazer isso, assumimos que começamos na página 1 (e colocamos expressamente a imagem estática nessa página): a partir de então, verificamos se o número da página da nota "mudou": se mudou, também limpamos a página e insira a próxima página da imagem estática.
Nota - isso falhará se houver alguma página no DocA que não possua notas: elas serão simplesmente omitidas. Mas não estamos tentando escrever um pacote, apenas uma solução para um problema específico!
\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{flowfram}
\usepackage{ragged2e}
\newcommand{\thispage}{1}
\makeatletter
\newcommand{\extnote}[3]{%
\edef\@tempa{#3}
\if\@tempa\thispage
\else
\clearpage
\begin{staticcontents*}{pagegraphic}
\includegraphics[page=#3, scale=0.6]{200219a.pdf}
\end{staticcontents*}
\fi
\par\textbf{#1}.\quad#2}
\makeatother
\geometry{margin=0pt}
\setlength{\RaggedRightParindent}{\parindent}
\makebackgroundframe
\newstaticframe*{5.497in}{7.329in}
{3.003in}{3.671in}[pagegraphic]
\newflowframe{2.493in}{9.976in}
{0.30in}{0.6in}[leftcol]
\newflowframe{2.493in}{2.780375in}
{3.003in}{0.6in}[middlecol]
\newflowframe{2.493in}{2.780375in}
{5.706in}{0.6in}[rightcol]
\newcommand{\pagebox}[1]{%
{\setlength{\fboxsep}{1pt}\setlength{\fboxrule}{1pt}%
\fcolorbox{black}{white}{#1}}}
\setstaticframe{1}{backcolor={[rgb]{0.976,0.937,0.78}}}
\setstaticframe{2}{border=pagebox, offset=-2pt, backcolor={[rgb]{1, 1, 1}}}
\begin{document}
\RaggedRight
\begin{staticcontents*}{pagegraphic}
\includegraphics[page=1, scale=0.6]{200219a.pdf}
\end{staticcontents*}
\input{200219a.notes}
\end{document}
Tendo colocado a (primeira) página de conteúdo estático, simplesmente inserimos o arquivo de notas, que por sua vez imprime as notas e altera a página e o quadro "estático" quando necessário.
Em seguida, executamos o DocA e depois o DocB.
Resultado:
Conforme observado: isso não é superrobusto (nem de forma alguma totalmente testado). Irá falhar toleravelmente se as notas ultrapassarem mais de uma página. E irá falhar miseravelmente se houver uma página que não contenha notas. Se você quiser adicionar textoassim comonotas, você provavelmente poderia fazer isso, mas precisaria escrever um comando extra para o DocA fazer isso. Basicamente, uma vez tudo configurado, tudo o que você realmente deseja ESCREVER vai para o DocA: DocB é apenas uma espécie de wrapper - embora você possa perfeitamente ter texto antes ou depois.
EDITADO PARA ADICIONARAliás, eu diria que isso reledmac
é exatamente certo para isso, e não um exagero. Mas YMMV.