c# pdfsharp sample : Extract table data from pdf to excel Library software component asp.net windows html mvc latexconv0-part1336

Conservativeconversionbetween
L
A
T
E
XandT
E
X
MACS
by Joris van der Hoevena, François Poulainb
LIX, CNRS
École polytechnique
91128 Palaiseau Cedex
France
a. Email: vdhoeven@lix.polytechnique.fr
b. Email: fpoulain@lix.polytechnique.fr
April 15, 2014
Abstract
Back andforth convertersbetweentwo document formats are saidto
be conservative ifthe followingholds: givena source document D, its
conversionD
0
,a locally modiedversionM
0
of D
0
and the back con-
versionM of M0, the documentM isalocally modiedversionof D.
Wewilldescribemechanismsfortheimplementationofsuchconverters,
withthe LAT
E
XandT
E
X
MACS
formatsasourguidingexample.
Keywords: Conservative document conversion, LAT
E
X conversion,
T
E
X
MACS
,mathematicalediting
A.M.S. subject classication:68U15,68U35,68N99
1 Introduction
TheT
E
X
MACS
project [7,10] aims at creatinga freescienticoce suite with an
integrated structured mathematical text editor [8], tools for graphical drawings
and presentations, a spreadsheed, interfaces to various computer algebra sys-
tems, and so on. Although T
E
X
MACS
aims at a typesetting quality which is at
least as good as T
E
Xand LAT
E
X[14,15],the system is not based on these latter
systems. In particular, a new incremental typesetting engine was implemented
from scratch, which allows documents to be edited in a wysiwyg and thereby
more user friendly manner. This design choice made it also possible or at least
easier to use T
E
X
MACS
as an interface for external systems, or as an editor for
technicaldrawings. However,unlikeexistinggraphicalfront-endsforL
A
T
E
Xsuch
as LyX [2] or Scientific Workplace [23], native compatibility with L
A
T
E
X
is not ensured.
.ThisworkhasbeensupportedbytheDigiteo2009-36HDgrantandRégionIle-de-France.
1
Extract table data from pdf to excel - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
change font size pdf form reader; html form output to pdf
Extract table data from pdf to excel - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
pdf data extraction; sign pdf form reader
Since LAT
E
X is still the standard for scientic publications in areas such
as mathematics, physics and computer science, good compatibility between
T
E
X
MACS
and LAT
E
X is a major issue. Several use cases are possible in this
respect. For thepublication of papers, good converters fromT
E
X
MACS
to LAT
E
X
are a prerequisite. New T
E
X
MACS
users also would like to import their old
L
A
T
E
Xpapers into T
E
X
MACS
.The most complex types of conversion arise when
aT
E
X
MACS
user collaborates with a person who refuses to use anything else but
L
A
T
E
X. Inthatcase,thereis aneed forlossless converters between both formats.
Unfortunately, T
E
X and L
A
T
E
X do not really provide a data format, but
rather a programming language. Furthermore, unlike most other existing pro-
gramming languages, the T
E
Xsystem does not provide a formal grammar for
the set of parsable documents. Moreover, the T
E
Xsyntax can be self-modied
at run-time and many basic T
E
X/L
A
T
E
Xcapabilities are build upon syntactic
tricks. This makes it extremely hard (or even impossible in practice) to design
lossless converters between LAT
E
X and essentially dierent formats. Current
software for conversions from LAT
E
X[1,2,4,5,6,11,13,16,17,18,19,20,21]
therefore involves a lot of heuristics; we refer to section3 for a quick survey of
existing approaches.
Nevertheless,evenif weacceptthat theconversion problemishard ingeneral,
we would like our heuristic converters to address some important practical use
cases. For instance, assume that Alice writes a LAT
E
Xdocument and sends it to
her colleague Bob. Now Bob makes a minor correction in the LAT
E
Xdocument
using T
E
X
MACS
and sends it back to Alice. Then Alice would like to recover
her original L
A
T
E
Xdocument except for the minor change made by Bob (which
might possibly be exported in the wrong way). Converters between L
A
T
E
Xand
T
E
X
MACS
which admit this property will be called conservative.
There are several approaches to the implementation of conservative con-
verters. First of all, we might re-implement our converters from scratch while
taking into account the additional requirement. However, it took a lot of work
andeorttodevelopthe existingheuristic converters,sothisoptionisnot partic-
ularly nice from the implementers'perspective. Another idea would be tohack
some parts of the existing code and turn it into something more conservative.
Nevertheless, the existing converters are extremely complex; in particular, they
cover numerous kinds of irregularities inside LAT
E
X. Addingan additional layer
of complexication might easily break existing mechanisms.
Therefore, we want to regard the current converters between L
A
T
E
X and
T
E
X
MACS
as black boxes. The aim of this paper is to describe conservativecon-
verters on top of these black boxes, which are currently under development. In
particular, we guarantee that failure of the conservative converters only occurs
in cases of failure of the original converters. Although our techniques were only
tested for conversions betweenT
E
X
MACS
and LAT
E
X, it is likely that they can be
used for other formats as well.
The rst major ingredient for our converters (see section4) is to generate,
along with the main conversion, a correspondence between well chosen parts of
the sourcedocumentandtheir conversions inthetargetdocument. In particular,
2
Section1
C# Word - MailMerge Processing in C#.NET
using RasterEdge.XDoc.Word; Execute MailMerge in OpenXML File with Data Source. Execute MailMerge in Microsoft Access Database by Using Data Source(X86 Only).
c# read pdf form fields; how to save pdf form data in reader
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
how to fill out pdf forms in reader; how to fill pdf form in reader
we want to track the image of each paragraph in the source document. Ideally
speaking, assuming that we have a nice parse tree for the source document, we
want to track the images of all subtrees. In order to construct such correspon-
dences, we willadd markers to the source document, convert the marked source
document, and nally remove the markers from the obtained marked target
document. Optionally, we may want to verify that the addition and removal of
markers does not disrupt the conversion process and that we obtain the same
nal document as in the case of a plain conversion.
For the conservative conversion itself, there are several approaches, which
willbe described in section5. Our current implementations aremainly based on
the naive approach from sections5.1 and5.2, which directly attempts to sub-
stituteunaltered document fragmentsbytheiroriginalsources,when performing
abackconversion of a modied converted document. We are also experimenting
with moreelaborate approachesfor which modications are regarded as patches
and where the idea is to lift the conversion process to such patches.
2 The L
A
T
E
Xand T
E
X
MACS
document formats
2.1 The T
E
Xand LAT
E
Xformats
Aswementioned in the introduction,T
E
X[14]isreallyaprogramminglanguage
rather than a data format. The main emphasis of T
E
Xis on presentation and
typesettingquality.T
E
Xprogramsarestringswithahighlycustomizablesyntax;
the set of T
E
Xprimitives can also easily be extended with user dened macros.
We recall that LAT
E
X[15] is a set of macros, built upon T
E
X. It is intended to
provide an additional layer of structural markup, thereby allowingfor a limited
degree of presentation/content separation. It inherits both advantages and dis-
advantages from the T
E
Xsystem.
One of the major disadvantages of T
E
Xand LAT
E
Xis that it is hard or even
impossible towrite reliableconverters tootherformats. For instance, in arecent
casestudy on existingLAT
E
XtoMathML converters[24],it turned out that the
success rates of these converters varied between 2% and 54%, when applied toa
large document base downloaded from ArXiv, and looking at the mathematical
formulas only. There are numerous reasons for this poor performance. Let us
briey mention the main ones:
Lack of formal syntax. T
E
X documents do not comply to any well dened
syntax, since the syntax can be modied at run time. For instance, it is rather
easy to typeset an HTML snippet such as <a href="#ex1">example</a> in
the intended way using suitable T
E
X code. And, even though LAT
E
X widely
advertises structured syntax, many LAT
E
Xpackages actually tweak T
E
Xsyntax
in order to include externalmaterial (such as sourcecode, algorithms, graphics)
or to provide syntactic sugar, allowing to write code such as foo!42!bar!!+++
(xcolor package) or ?[l]f*_ij^kl? (tensid package). As a consequence, all
existing parsers (except T
E
X-based parsers) are only able to correctly parse
subsets of valid T
E
Xdocuments.
The LAT
E
Xand T
E
X
MACS
document formats
3
How to C#: Basic SDK Concept of XDoc.Word
Conversely, conversion from PDF to Word (.docx) is also supported. methods and events necessary to load a Word document from file or query data and save the
extracting data from pdf files; extract table data from pdf
C# PDF File Permission Library: add, remove, update PDF file
Field Data. Data: Auto Fill-in Field Data. Field: Insert NET convert PDF to text, VB.NET extract PDF pages, VB In the following code table, you will find a piece
how to extract data from pdf file using java; online form pdf output
Lack of semantics. The semantics of certain LAT
E
X language constructs
(such as \csname or \expandafter) may be hard to specify, and even harder
to translate into other data formats. Indeed, it's quite usual to see code such
as \def\b{\begin} or \def\wd{\widehat} in reallife LAT
E
Xdocuments,which
is completely meaningless when translated into a non-macro language. LAT
E
X
also dramatically lacks of public interfaces. So much so that many customi-
sations are done using side eects, by redening internal macros. So again,
allexistingtranslators areonly able totranslatesubsetsofvalid T
E
Xdocuments.
Lack of orthogonality. L
A
T
E
X, as a document format, dramatically lacks
of orthogonality. Numerous packages are mutually incompatible and numerous
document classesareprovidingdierentmacronamingconventions,makingcode
nonportablebetween classes (e.g.thedeclaration \newtheorem{thm}{Theorem}
maybeused with thearticleclass,butisforbidden with elsart). Numerousmacros
suer from arbitrary limitations (e.g. a paragraph cannot end inside a \texttt
argument; the nesting level in lists is limited to 4, etc.). Each document class
deneits very own schemefor dening metadataand title pages. Thecharacters
<, > and | behave very dierently depending on the preamble. Etc. All these
irregularities make dicult to build generically valid LAT
E
Xdocuments.
2.2 The T
E
X
MACS
format
The T
E
X
MACS
document format is based on trees: all T
E
X
MACS
documents or
document fragments should be thought of as trees [9]. Of course, such trees
can be serialized as strings in dierent ways: as XML documents, as Scheme
expressions (S-expressions),etc.In what follows,wewillrepresentT
E
X
MACS
trees
using S-expressions. Figure1 shows an example of a T
E
X
MACS
snippet.
Aformula:
Corresponding tree:
Corresponding S-expression:
x+
1
2
+
y+z
p
math
concat
x+ frac
1 2
+
sqrt
y+z
(math
(concat
"x+"
(frac "1" "2")
"+"
(sqrt "y+z")))
Figure 1. Aninsightofthe T
E
X
MACS
format.
In the example, the concat tag stands for horizontal concatenation and its
childrenexpect inline content. Another important primitivewhichwillbeused
in subsequentexamples isdocument; this tagis used forverticalconcatenation
and it provides block content.
4
Section2
C# Image: C# Code to Upload TIFF File to Remote Database by Using
Create the Data Abstraction Layer. Drag and drop the REImageDatabase table from the server provide powerful & profession imaging controls, PDF document, image
extract pdf data into excel; extract data from pdf to excel
C# PDF url edit Library: insert, remove PDF links in C#.net, ASP.
Easy to put link into specified position of PDF text, image and PDF table. Enable users to copy and paste PDF link. Help to extract and search url in PDF file.
save data in pdf form reader; extract pdf data to excel
3 Traditional converters for L
A
T
E
X
3.1 Existing approaches
Not so surprisingly, the interoperability with L
A
T
E
Xis an asymmetric problem.
Conversion toL
A
T
E
Xis consideredtheeasierproblem,sincewearefreetorestrict
ourselves to a subset of L
A
T
E
X. However,even this problem is quite non trivial,
due to lack of orthogonality and arbitrary restrictions inside L
A
T
E
X (see sec-
tion2.1). Nevertheless, conversion from L
A
T
E
Xto other formats is indeed the
most dicult problem,usually. Although thetechniques described in this paper
work both ways, we will therefore use this harder direction for our examples.
The main obstacle when converting L
A
T
E
X documents to other formats is
that arbitrary L
A
T
E
X documents are hard to parse. One way to bypass this
problem is to let T
E
Xdo the parsing for you. Some existing converters which
use this approachareT
E
X4ht,Tralics,LXir,Hermesand L
A
T
E
Xml[1,4,5,
13,18].TheunderlyingprincipleistobuildanoverloadedDVIdocument[3, 22]
with additional markup which delimits the scope of a set of interesting macros.
Then, via an external program, it is possible to rebuild a tree reecting the
structure of the original document. This alternative has the very benet of
exploiting T
E
Xparser without rewriting it, but it has also major concerns:
1. It supposes that you installed acomplete T
E
Xdistribution (usually large
in size),whose version is compatible with the one required by the source.
2. It only works for complete documents, and not for code snippets.
3. User dened macros are expanded and thereby lose their semantics.
Concerningthelastpoint,weagreewith[12]:macroexpandingthen translating
is best suited to display and does not provide converted documents suitable
for further use, so this strategy does not t our needs. Also, even if we could
preprocesssourcesinordertoprotect user denedmarkup,thetworstconcerns
are too restrictive for our project.
The remaining strategy is to parse ourselves the LAT
E
Xsource les. This
approach has been followed by software such as LyX, HeVeA, PlasT
E
X,
Pandoc, Latex2html, Perl LaTeX::Parser, HyperLAT
E
X, TtH, etc. [2,
6, 11, 16, 17, 19, 20, 21]Once the document parsed,a tree is generatedand
is transformed in order to comply with the target format denition.
3.2 Traditional conversion from L
A
T
E
Xto T
E
X
MACS
The existing LAT
E
X to T
E
X
MACS
converter uses a custom T
E
X/LAT
E
Xparser,
with the ability to conserve the semantics of user dened macros. Many lters
are applied to the parsed LAT
E
Xdocument in order to get a suitable T
E
X
MACS
tree. Some example transformations which are applied are the following:
 expansion of dangerous macros, such as \def\b{\begin};
 cutting the source le into small pieces, thereby reducing the risk of
serious parse errors due to (text/math) mode changes;
Traditional converters for LAT
E
X
5
VB.NET PDF url edit library: insert, remove PDF links in vb.net
position, such as PDF text, image and PDF table. Extract and search url in existing PDF file in VB including website, image, document, bookmark, PDF page number
can reader edit pdf forms; pdf data extraction open source
VB.NET PDF File Permission Library: add, remove, update PDF file
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste In the following code table, you will find
extract data out of pdf file; exporting data from pdf to excel
 many local and global tree rewritings (whitespace handling, basic nor-
malizations and simplications, renaming nodes, reordering children,
migrating label denitions, extracting metadata, etc.);
 adding semantics to mathematical content (disambiguation of operators
and whitespace, matching delimiters, etc.);
 (optionally) compile the L
A
T
E
X document with the preview package in
order to import hard-to-parse document fragments as pictures.
Due to the combined complexity of these transformations, we cannot make cer-
tain useful assumptions on the behavior of our converter, especially:
(non) Linearity. The conversion of a concatenation of snippets might not
be the concatenation of the conversion of the snippets.
(non) Locality. Localchangesinsidesnippets mayresultinglobalchanges.
(non) Time invariance. Two conversions of the same document at dif-
ferent times might result in dierent results. This is for instance due to
time stamping by external tools involved in the conversion of pictures.
3.3 Traditional conversion from T
E
X
MACS
to LAT
E
X
The converter from T
E
X
MACS
to LAT
E
Xdoes not have to cope with the LAT
E
X
parsing problem. Nevertheless,arbitrary restrictions inside LAT
E
Xand the gen-
eral lackof orthogonalitymakethe production ofhigh qualityLAT
E
Xdocuments
(includingpreservedsemanticsofuserdened macros)harderthan itseems.The
LAT
E
Xexport process is based on the following general ideas:
 converting the document body tree into aLAT
E
Xsyntax tree;
 building the preamble by trackingdependencies and taking into account
all document style options;
 writing the preamble and the body.
Again, and for similar reasons as above, useful properties such as linearity,
locality and time invariance cannot be guaranteed.
4 Correspondence between subdocuments
4.1 Basic principles
One important prerequisite for conservativeconverters is our ability tomaintain
the correspondence between parts of the source document and their images
in the target document. When writing conservative converters from scratch,
this correspondence can be ensured by design. In our setting, since traditional
converters are already written, weconsider them provided as if they were black
boxes,independant fromour conservativeconverters. Then,the keyideain order
to maintain the correspondence between source and target is to add markers to
the sourcedocument before doingthe conversion. Moreprecisely, weextend the
sourceand targetformats with onenew special tagfor markingtext,saymarker.
Two design choices have now to be made.
6
Section4
VB Imaging - VB ISBN Barcode Tutorial
BarcodeType.ISBN 'set barcode data barcode.Data = "978047082163" 'set print ISBN on these files: PDF, TIFF, Microsoft with the properties from the table in the
extract pdf form data to excel; how to make a pdf form fillable in reader
VB Imaging - VB Code 2 of 5 Generator
5 barcode size with parameters listed in the table below. quality Code 2 of 5 on PDF, TIFF, Microsoft of 5 type barcode encoding numeric data text "112233445566
exporting pdf form to excel; how to flatten a pdf form in reader
First of all, the marker tag can either be punctual or scoped. In the rst
case, the tag takes a unique identier as its single argument. In the second
case, the tag takes the marked text as its additional second argument (for large
multi-paragraph fragments of LAT
E
X, this requires marker to be an environ-
ment). For unparsed LAT
E
Xsource documents, substrings which correspond to
logicalsubexpressions of the parsetree can be hard to determine. Consequently,
punctual markers are most adequate for the initial conversions from LAT
E
Xto
T
E
X
MACS
.Nevertheless,usingapost treatment,wewillshow insection4.2below
that punctual markers may be grouped by pairs into scoped markers, while
takingadvantageof thetreestructure of the generated T
E
X
MACS
document. For
conversions from T
E
X
MACS
toLAT
E
X,wemaydirectlyworkwith scoped markers.
Secondly,wehavetodecideonthegranularity of ourconservativeconverters:
the more markers weuse, the more locality will be preserved for small changes.
However, not all subtrees of the parse tree of the source document necessarily
give rise to valid subexpressions of the target documents. Moreover, in the case
of conversions from LAT
E
X to T
E
X
MACS
,we have no direct access to the parse
treeof the source document,soappropriate places for markershave tobe chosen
with care. At least, we need to mark all paragraphs. More sophisticated imple-
mentations will also mark macrodenitions in the preamble, cells of tables, and
severalwellchosen commands or environments.
Example 1. In Figure2, we have shown a simple example of added punctual
markers inside a L
A
T
E
X source document. The granularity is slightly better
than a purely paragraph based markingwith which the markers 4 until 9 would
be suppressed. Nevertheless, an even better granularity could for instance be
obtained by putting markers around the b and c of the fraction. As a post
treatment wetypicallygroup thepunctualmarkersbypairsintoscoped markers.
In this case, the pairs are (1;2), (3;10), (4;7), (5;6), (8;9) and (11;12).
First paragraph.
%Some comments
\begin{remark}
Some mathematics
\[ a+\frac{b}{c}. \]
More text.
\end{remark}
Last paragraph.
\marker{1}First paragraph.\marker{2}
%Some comments
\marker{3}\begin{remark}
\marker{4}Some mathematics
\[ \marker{5}a+\frac{b}{c}.\marker{6} \]\marker{7}
\marker{8}More text.\marker{9}
\end{remark}\marker{10}
\marker{11}Last paragraph.\marker{12}
Figure 2. Rudimentaryexample ofamarkedLAT
E
Xsourcedocumentbody.
4.2 Grouping punctual markers by pairs
In order to transform matching pairs of punctual markers inside LAT
E
Xsource
documents into scoped markers, we will make use of the tree structure of the
marked T
E
X
MACS
target document obtained after conversion.
Correspondence betweensubdocuments
7
Roughly speaking, for everysubtree wich starts with markeri and ends with
marker j,we declare that (i;j) forms a matching pair. More precise implemen-
tations should carefully takeintoaccount the special nature of certain tags such
as concat and document. For instance, we may use the following algorithm:
 any concat tag or document tag starting and nishing by a marker is
replaced by the corresponding pair;
 any child of a concat tag or a document tag which is framed by two
markers is replaced by the corresponding pair;
 any concat tag or document tag with only one child which is a pair is
replaced by the pair;
 any remaining marker is removed.
Example 2. Forthesimple document from Example1,theT
E
X
MACS
conversion
of the marked document would be as follows:
(document
(concat (marker "1") "First paragraph." (marker"2"))
(marker "3")
(remark
(document
(concat (marker "4") "Some mathematics")
(equation*
(document (concat (marker "5") "a+" (frac "b" "c") "." (marker"6"))))
(marker "7")
(concat (marker "8") "More text." (marker "9"))))
(marker "10")
(concat (marker "11") "Last paragraph." (marker"12")))
The pairs (1; 2), (5; 6), (8; 9) and (11; 12) are detected as matching pairs of
markers of inline content, whereas the pair (3;10) is detected as matching pair
of block content. The pair (4,7) does not match, but the matching algorithm
can be further tweaked to better handle this kind of situations.
Atasecondstage,wemayorganizethematchingpairsintoadag:apair (i;j)
willbe adescendent of a pair (p;q) whenever thesource string corresponding to
(i; j) is included in the source string corresponding to (p; q). We will say that
the dag is well formed if it is actually a tree and whenever the source strings
corresponding to two dierent children of the same node never intersect.
Example 3. For our example document, and adding an implicit pair (0;13) for
the root, the dag of matching pairs is a well formed tree:
(0;13)
(1;2)
(3;10)
(5;6) (8;9)
(11;12)
8
Section4
Example 4. Certain tags, such as figure, may produce badly formed trees:
\begin{figure}
\marker{2}\caption{\marker{3}Legend\marker{4}}
Some text.\marker{5}
\end{figure}
(big-figure
(concat
(marker "2")
"Some text."
(marker "5"))
(concat
(marker "3")
"Legend"
(marker "4")))
(1,6)
(2,5) (3,4)
In unfavourable cases,suchas Example4,the dagofmatchingpairsdoes not
yield a well formed tree. In such cases, we keep removing oending matching
pairs until we do obtain a well formed tree. At the end of this process, we are
ensured that marked subdocuments do not overlap in non structured ways, i.e.
other than via inclusion. Consequently,it is possible to transform thedocument
with punctual markers intoa document with scoped markers.
Example 5. Applying the nal transformation to Example2, we obtain the
document below. Of course, the names of our scoped identiers can be replaced
by simple numbers.
(document
(marker "1:2" "First paragraph.")
(marker "3:10"
(remark
(document
"Some mathematics"
(equation*
(document (marker "5:6" (concat "a+" (frac "b" "c") ".")))))
(marker "8:9" "More text.")))
(marker "11:12" "Last paragraph." ))
4.3 Detection and reparation of irregularities
In most cases, removal of the markers from the conversion of a marked source
document yields the sameresult asthedirect conversion of the source document,
modulo some normalization, such as merging and removingconcat tags. How-
ever, this is not always the case. Let us give a few examples of how this basic
principle may fail.
Example 6. When putting markers inside certain special tags, such as
verbatim, the markers may not be converted as expected:
\begin{verbatim}
Some text.
\end{verbatim}
\begin{verbatim}
\marker{1}Some text.\marker{2}
\end{verbatim}
(verbatim
"\marker{1}Some text.\marker{2}")
Correspondence betweensubdocuments
9
Example 7. The conversion of certain LAT
E
X documents may involve some
restructuring which is incompatible with the marking algorithm. For instance,
T
E
X
MACS
only allows for modied text properties of block content if the mod-
ied properties apply to a succession of entire paragraphs. LAT
E
X also allows
emphasized text which starts in the middle of a paragraph, runs over several
subsequentparagraphs,andthenends in themiddleofanotherparagraph. When
importing this kind of ill structured emphasized text, we therefore restructure
the emphasized text into three separate parts. However, such transformations
often interfere in unpredictable ways with the marking process.
In order to guarantee that our marking and unmarking mechanisms
never deteriorate the quality of the converters, we may use the following
simple procedure: convert the source document both with and without the
marking/unmarking mechanism. If the results are the same, then return the
result. Otherwise, keep locating those markers which are responsable for the
dierences and put them intoa blacklist. Now keep repeating the same process,
while nolonger insertingthe markers in the blacklist during the markingproce-
dure.In the worstcase,this process willput allmarkersontheblacklist,in which
case conversion with and without the marking/unmarking mechanism coincide.
4.4 Conservative storage of documents
In order to allow for subsequent conservative back and forth conversions, the
result ofaconservativeconversion should containadditionalinformation on how
the recover the original source le. More precisely, when converting a source
document D from format A into format B, the target document will consist of
aquadruple (D0;D
;D
0
;), where
 D0 is the target document of format B.
 D
is the marked source document which gave rise to the marked version
D
0
of the target document.
  is a mapping which associates one of the two formats A or B to every
identier for a marked subdocument.
If our target format is T
E
X
MACS
,then we simply store D
,D
0
and  as attach-
ments toT
E
X
MACS
les. If LAT
E
Xis our target format, then, by default, we put
D
,D
0
and  inside a comment at the end of the document. Alternatively, we
may store D
,D
0
and  in a separate le, which will be consulted whenever we
convert amodication of the target document back to A. The last strategy has
the advantage that we do not clobber the converted le. However,one will only
benet from the conservative converters when the LAT
E
Xreimportation is done
on the same computer and via the same user account.
Remark 8. Instead of specifying  as a separate mapping, it also possible to
sux identiers for marked subdocuments by aletter for the original format of
the marked text.
10
Section4
Documents you may be interested
Documents you may be interested