Endnoten UND Nummerierung aus einem anderen Dokument verwenden

Endnoten UND Nummerierung aus einem anderen Dokument verwenden

Können Sie die von einem anderen Dokument generierten Endnoten verwenden, um das aktuelle Dokument zu ergänzen?

Bildbeschreibung hier eingeben

Mein geplanter Arbeitsablauf besteht darin, Endnoten in eine Datei einzufügen sepfootnotes, die Platzierung jeder Notiz in zu markieren DocA.texund dann den Inhalt jeder Notiz in auszudrucken DocB.tex. Das MWE ist DocB.tex. Ich verwende , flowframum DocA als PDF in einen statischen Rahmen einzubetten. Dadurch können drei Spalten mit Fließrahmen verwendet werden, um sehr umfangreiche Notizen aus DocA auszudrucken.

\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}

Mir ist klar, dass ich das manuell machen könnte, indem ich einfach einen Verweis auf jede Notiz eingebe, die in DocA erscheint, aber da sich das Dokument ändert, würde ich dafür lieber die Zähler von DocA verwenden, damit die Nummerierung und Platzierung richtig sind.

Mein erster Gedanke wäre, den \newfootnotesBefehl so umzuschreiben sepfootnotes, dass er die Datei von DocA verwendet .ent. Aber ich kenne mich mit LaTeX nicht gut genug aus, um das zu erreichen. Ist das der beste Ansatz? Gibt es bereits ein Paket, das sich damit befasst?

Ich habe durchgelesendieser Beitragwas beinhaltet reledmac. Es schien mir allerdings eine Menge Aufwand und Funktionalität zu sein, die ich nicht brauche.

Antwort1

Es ist nicht ganz einfach, aber auch nicht allzu schwer. Die Grundidee ist genau wie von Ihnen vorgeschlagen: Schreiben Sie die „Notizen“ aus dem ersten Dokument in eine externe Datei und lesen Sie sie dann in das zweite Dokument ein.

Befassen wir uns also zunächst mit dem ersten Punkt:

Im ersten Dokument – ​​was Sie DocA nennen:

\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}

Dabei werden die Notizen einfach durch das Setzen der entsprechenden Markierung „geschrieben“ und der Text dann tatsächlich in eine externe Datei „\jobname.notes“ eingefügt. Aus Gründen, die noch deutlich werden, tun wir dies, indem wir einen Befehl in diese Datei schreiben.

Dann die zweite Datei, die die zuvor geschriebene Datei einlesen muss. Ein Problem: Wir brauchen eine Möglichkeit, die Notiz der Seite zuzuordnen. Dazu nehmen wir an, dass wir auf Seite 1 beginnen (und das statische Bild ausdrücklich auf dieser Seite platzieren): Danach prüfen wir, ob sich die Seitenzahl der Notiz „geändert“ hat: Wenn ja, löschen wir auch die Seite und fügen die nächste Seite mit dem statischen Bild ein.

Hinweis: Dies schlägt fehl, wenn es in DocA Seiten ohne Notizen gibt: Sie werden einfach weggelassen. Aber wir versuchen nicht, ein Paket zu schreiben, sondern nur eine Lösung für ein bestimmtes Problem!

\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}

Nach dem Platzieren der (ersten) statischen Inhaltsseite müssen wir nur noch die Notizendatei einlesen, die dann wiederum die Notizen ausdruckt und bei Bedarf die Seite und den „statischen“ Rahmen ändert.

Wir führen dann DocA und dann DocB aus.

Ergebnis:

Seite 1 Seite 2

Wie bereits erwähnt: Dies ist nicht besonders robust (und auch nicht vollständig getestet). Es wird erträglich scheitern, wenn die Notizen über mehr als eine Seite gehen. Und es wird kläglich scheitern, wenn es eine Seite gibt, die keine Notizen enthält. Wenn Sie Text hinzufügen möchtensowieAnmerkungen: Das könnten Sie wahrscheinlich tun, aber Sie müssten dafür einen zusätzlichen Befehl für DocA schreiben. Wenn alles einmal eingerichtet ist, geht im Grunde alles, was Sie SCHREIBEN möchten, in DocA: DocB ist nur eine Art Wrapper – obwohl Sie durchaus Text davor oder danach haben könnten.

BEARBEITET, UM HINZUZUFÜGENIch würde übrigens sagen, dass das reledmacgenau richtig ist und kein Overkill. Aber Ihre Erfahrung kann abweichen.

verwandte Informationen