Usando notas finais E numeração de outro documento

Usando notas finais E numeração de outro documento

Você pode usar as notas finais geradas por outro documento para alimentar o documento atual?

insira a descrição da imagem aqui

Meu fluxo de trabalho planejado é colocar notas finais em um sepfootnotesarquivo, marcar o posicionamento de cada nota em DocA.texe, em seguida, imprimir o conteúdo de cada nota em DocB.tex. O MWE é DocB.tex. Estou usando flowframpara 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 \newfootnotescomando sepfootnotespara usar .ento 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:

Página 1 Página 2

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.

informação relacionada