* TexPaste alpha - my Win application converting Word/HTML to TeX
[not found] <mailman.1002.1243443853.3589.ntg-context@ntg.nl>
@ 2009-05-27 22:05 ` Vyatcheslav Yatskovsky
2009-05-28 7:39 ` Henning Hraban Ramm
0 siblings, 1 reply; 7+ messages in thread
From: Vyatcheslav Yatskovsky @ 2009-05-27 22:05 UTC (permalink / raw)
To: ntg-context
Hello,
I'm glad to report that I made a simple application (sorry, only
forWindows at the moment) that coverts text from Ms Word (or other
editors) or HTML pages (web sites) into TeX.
DOWNLOAD LINK (280 KB):
http://ul.to/hmpy60
The app recognizes at the moment only following formats/tags:
Bold (<b>), Italic (<i>), Header 1 (<h1>), Header 2 (<h2>), Header 3 (<h3>).
It coverts NOBREAK_SPACE (A0) into ~,   into \enskip, " into ",
& into \&, and < > into < >.
It is UTF-8 ready.
USAGE: copy desired text fragment from Word or web page into clipboard,
and click big "Get..." button and see the result in the bottom field.
Click "Copy Result" to get TeX-formatted text back into the clipboard,
and paste it into your editor.
KNOW ISSUES: Some crap from Word formatting like <!-- --> tags happens
to leak, but it is easier at the moment to delete it manually. And
sorry... awful interface.
It is very-very first alpha, I want to show it just as proof-of-concept
and to get some feedback. Actually, I did it for myself to simplyfy
conversion from Word into TeX. I have some documents to be converted
(e.g., lecture notes), and this happens to be easy task with my tool :).
Best,
Vyatcheslav
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: TexPaste alpha - my Win application converting Word/HTML to TeX
2009-05-27 22:05 ` TexPaste alpha - my Win application converting Word/HTML to TeX Vyatcheslav Yatskovsky
@ 2009-05-28 7:39 ` Henning Hraban Ramm
2009-05-28 7:45 ` luigi scarso
0 siblings, 1 reply; 7+ messages in thread
From: Henning Hraban Ramm @ 2009-05-28 7:39 UTC (permalink / raw)
To: mailing list for ConTeXt users
Am 2009-05-28 um 00:05 schrieb Vyatcheslav Yatskovsky:
> I'm glad to report that I made a simple application (sorry, only
> forWindows at the moment) that coverts text from Ms Word (or other
> editors) or HTML pages (web sites) into TeX.
>
> The app recognizes at the moment only following formats/tags:
> Bold (<b>), Italic (<i>), Header 1 (<h1>), Header 2 (<h2>), Header 3
> (<h3>).
Sorry for stealing your thread, but it's related...
I just found there's still a collection of my old (2002) Perl scripts at
http://www.fiee.net/texnique/material/fiee-perl.zip
It contains simple converters from HTML, LaTeX and XPress Tags to
ConTeXt.
While this one (2006):
http://www.fiee.net/texnique/material/mab2bib.zip
contains (besides a mab2bib bibliography converter) a simple Python
script to convert arbitrary encodings - just rename it from
"utf8_to_latex.py" to e.g. "latin1_to_utf8.py": If the parts of its
file name are encodings known to Python, it'll just work.
"latex" encoding is included, so "latex_to_utf8.py" can convert cruft
like \c{C} to Ç.
I guess I should build a new converter suite (there's also a InDesign
Tags to ConTeXt converter anywhere on my harddisk).
But I won't make GUI apps, just scripts.
Greetlings from Lake Constance!
Hraban
---
http://www.fiee.net/texnique/
http://wiki.contextgarden.net
https://www.cacert.org (I'm an assurer)
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: TexPaste alpha - my Win application converting Word/HTML to TeX
2009-05-28 7:39 ` Henning Hraban Ramm
@ 2009-05-28 7:45 ` luigi scarso
2009-05-28 9:37 ` Piotr Kopszak
2009-05-29 8:14 ` converters (was: TexPaste alpha) Henning Hraban Ramm
0 siblings, 2 replies; 7+ messages in thread
From: luigi scarso @ 2009-05-28 7:45 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 290 bytes --]
>
>
> I guess I should build a new converter suite (there's also a InDesign Tags
> to ConTeXt converter anywhere on my harddisk).
> But I won't make GUI apps, just scripts.
>
That's sound good !
If in python, even better !
If only scripts, the best !
Can we have more details ?
--
luigi
[-- Attachment #1.2: Type: text/html, Size: 516 bytes --]
[-- Attachment #2: Type: text/plain, Size: 487 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: TexPaste alpha - my Win application converting Word/HTML to TeX
2009-05-28 7:45 ` luigi scarso
@ 2009-05-28 9:37 ` Piotr Kopszak
2009-06-08 8:27 ` J.A.J. Pater
2009-05-29 8:14 ` converters (was: TexPaste alpha) Henning Hraban Ramm
1 sibling, 1 reply; 7+ messages in thread
From: Piotr Kopszak @ 2009-05-28 9:37 UTC (permalink / raw)
To: mailing list for ConTeXt users
Hello list,
Inevitably, it's a recurring subject. Here are my 2p. After playing
with all sorts of convertors to TeX, Latex, HTML and scraping the
output with Perl to obtain something useful for ConTeXt I found that
what I in fact really need to preserve from a Word file are italics
and footnotes. To make the long story short. IMHO the only reasonable
way to go is via XSL stylesheet for ooffice. Fortunately you don't
have to develop a new one from scratch which would be quite a task.
There is an excellent stylesheet converting odt to mediawiki by
Bernhard Haumacher odt2mediawiki.xsl It took me less than an hour to
adapt it for ConTeXt output. Then you only add it as an xml filter to
Open Office and from then on can convert Word to ConTeXt straight from
ooffice as if it was one of its built-in export formats.
Piotr
2009/5/28 luigi scarso <luigi.scarso@gmail.com>:
>>
>> I guess I should build a new converter suite (there's also a InDesign Tags
>> to ConTeXt converter anywhere on my harddisk).
>> But I won't make GUI apps, just scripts.
>
> That's sound good !
> If in python, even better !
> If only scripts, the best !
>
> Can we have more details ?
>
> --
> luigi
>
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context@ntg.nl /
> http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive : https://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________
>
>
--
http://okle.pl
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: converters (was: TexPaste alpha)
2009-05-28 7:45 ` luigi scarso
2009-05-28 9:37 ` Piotr Kopszak
@ 2009-05-29 8:14 ` Henning Hraban Ramm
2009-05-29 8:18 ` luigi scarso
1 sibling, 1 reply; 7+ messages in thread
From: Henning Hraban Ramm @ 2009-05-29 8:14 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1: Type: text/plain, Size: 882 bytes --]
Am 2009-05-28 um 09:45 schrieb luigi scarso:
> I guess I should build a new converter suite (there's also a
> InDesign Tags to ConTeXt converter anywhere on my harddisk).
> But I won't make GUI apps, just scripts.
> That's sound good !
> If in python, even better !
> If only scripts, the best !
>
> Can we have more details ?
Which conversion do you need?
If it's InDesign to ConTeXt, there's always custom programming needed
- e.g. you need to know what ID paragraph style should become what
ConTeXt section. (sample attached)
I'm not good in building parsers, using mostly regular expression
replacements, so my converters are always limited, and manual cleanup
is necessary - but they save a lot of manual work anyway!
Greetlings from Lake Constance!
Hraban
---
http://www.fiee.net/texnique/
http://wiki.contextgarden.net
https://www.cacert.org (I'm an assurer)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: latin1_to_utf8.py --]
[-- Type: text/x-python-script; x-unix-mode=0755; x-mac-type=54455854; name="latin1_to_utf8.py", Size: 3874 bytes --]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Universelle Textcodierung
2009-03-10 by Henning Hraban Ramm, fiëe virtuëlle
quellcodierung_to_zielcodierung.py [Optionen] Quelldatei [Zieldatei]
Es können auch ganze Verzeichnisse bearbeitet werden.
Optionen:
--filter=Dateiendung
--overwrite (sonst wird die Originaldatei gesichert)
--hidden (sonst werden versteckte Dateien ignoriert)
"""
import os, os.path, sys, codecs, getopt, shutil
try:
import latex
except:
pass
modes = ('filter', 'overwrite', 'hidden')
mode = {}
def help(message=""):
print message
print __doc__
sys.exit(1)
def backup(datei):
original = datei
pfad, datei = os.path.split(datei)
datei, ext = os.path.splitext(datei)
count = 0
while os.path.exists(os.path.join(pfad, "%s.%d%s" % (datei, count, ext))):
count += 1
neudatei = os.path.join(pfad, "%s.%d%s" % (datei, count, ext))
print "Sichere %s als %s" % (original, neudatei)
shutil.copy(original, neudatei)
return neudatei
def is_hidden(datei):
return (datei.startswith('.') or os.sep+'.' in datei)
def convert(source, target, so_enc, ta_enc):
from_exists = os.path.exists(source)
to_exists = os.path.exists(target)
from_isdir = os.path.isdir(source)
to_isdir = os.path.isdir(target)
from_path, from_name = os.path.split(source)
to_path, to_name = os.path.split(target)
#from_name = os.path.basename(source)
#to_name = os.path.basename(target)
if not from_exists:
help("Quelle '%s' nicht gefunden!" % from_name)
if from_isdir:
if is_hidden(source) and not mode['hidden']:
print "Ignoriere verstecktes Verzeichnis %s" % source
return
if not to_isdir:
help("Wenn die Quelle ein Verzeichnis ist, muss auch das Ziel ein Verzeichnis sein!")
print "Verarbeite Verzeichnis %s" % source
dateien = os.listdir(source)
#if not mode['hidden']:
# dateien = [d for d in dateien if not is_hidden(d)]
if mode['filter']:
dateien = [d for d in dateien if d.endswith(mode['filter'])]
for datei in dateien:
s = os.path.join(source, datei)
t = os.path.join(target, datei)
convert(s, t, so_enc, ta_enc)
else:
if is_hidden(from_name) and not mode['hidden']:
print "Ignoriere versteckte Datei %s" % source
return
if to_isdir:
target = os.path.join(target, from_name)
if not mode['overwrite']:
if source==target:
source=backup(source)
elif os.path.exists(target):
backup(target)
print "Konvertiere %s (%s)\n\tnach %s (%s)" % (source, so_enc, target, ta_enc)
so_file = file(source, "rU")
lines = so_file.readlines()
so_file.close()
ta_file = file(target, "w")
for l in lines:
ta_file.write(unicode(l, so_enc).encode(ta_enc))
ta_file.close()
opts, args = getopt.getopt(sys.argv[1:], "ohf:", ["overwrite","hidden","filter="])
if len(args)<1:
help("Zu wenige Parameter angegeben!")
for m in modes:
mode[m] = False
for (o, a) in opts:
if o=='-'+m[0] or o=='--'+m:
if a:
print "Modus %s = %s" % (m, a)
else:
a = True
print "Modus %s aktiv" % m
mode[m] = a
#print "modes:", mode
#print "opts :", opts
#print "args :", args
# gewünschte Codierung aus dem Dateinamen ablesen
scriptname = os.path.splitext(os.path.basename(sys.argv[0]))[0]
from_enc, to_enc = scriptname.split("_to_")
from_name = to_name = args[0]
if len(args)>1: to_name = args[1]
convert(from_name, to_name, from_enc, to_enc)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: indtxt2context.py --]
[-- Type: text/x-python-script; x-mac-creator=21526368; x-unix-mode=0644; x-mac-type=54455854; name="indtxt2context.py", Size: 2773 bytes --]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Convert InDesign tagged text to ConTeXt
"""
import sys, os
import re
quote = u'$&_%'
rePatterns = {
# paragraph styles
ur'^<pstyle:Ü 1\.>((\d\.)*\s+)?(.+)$' : ur'\\chapter{\3}\n',
ur'^<pstyle:Ü 1\.1>((\d\.)*\s+)?(.+)$' : ur'\\section{\3}\n',
ur'^<pstyle:Ü 1\.1\.1>((\d\.)*\s+)?(.+)$' : ur'\\subsection{\3}\n',
ur'^<pstyle:Ü 1\.1\.1\.1>((\d\.)*\s+)?(.+)$' : ur'\\subsubsection{\3}\n',
# character styles
ur'<ct:Bold>(.+?)<ct:>' : ur'{\\bf \1}',
#ur'<cf:Arial>(.*?)<cf:Times New Roman>' : ur'\\otherfont{\1}',
u'<.*?>' : u'', # delete all other tags
# lines that start with dotted numbers = section titles
ur'^\d+\s+(.+)$' : ur'\\chapter{\1}\n',
ur'^\d+\.\d+\.?\s+(.+)$' : ur'\\section{\1}\n',
ur'^\d+\.\d+\.\d+\.?\s+(.+)$' : ur'\\subsection{\1}\n',
ur'^\d+\.\d+\.\d+\.\d+\.?\s+(.+)\$' : ur'\\subsubsection{\1}\n',
ur'^(\s*)[–\-·•]\s+' : ur'\1\\item\t', # itemization (lines starting with bullet etc.)
ur'^(\s*)(\d+)\.?\)\s+' : ur'\1\\item[\2]\t', # itemization (numerical)
ur'([Zusovz])\.([Baguo])\.' : ur'\1.\\,\2.', # u.a., s.o., o.g., z.B.
ur'[„"“](.*?)[“”"]' : ur'\\quotation{\1}', # German quotation
ur'[\'’,](.*?)[\'’‘]' : ur'\\quote{\1}', # German single quotation
#ur'"(.*?)"' : ur'\\quotation{\1}', # quotation?
ur' (\.\?\!:;)' : ur'\1', # spaces in front of punctuation
ur'{\\em\s+}' : ur'', # empty emphasizing
ur' (%|°)' : ur'\\,\1', # spaces in front of measure units
u' - ' : u' – ', # en dash
ur'(\d{4})\s*(\-|–)\s*(\d{4})' : ur'\1–\3', # year numbers
u' +' : u' ', # multiple spaces
u'^\s+$' : u'\n', # make empty lines really empty
# ur'' : ur'',
}
reres = {}
status = {
'item' : False
}
# collect parameters
if len(sys.argv) > 1:
sourcename = sys.argv[1]
if len(sys.argv) > 2:
targetname = sys.argv[2]
else:
targetname = sourcename.replace('.txt', '.tex')
else:
print "file name?"
sys.exit()
# compile regular expressions
for k in rePatterns:
p = re.compile(k)
reres[p] = rePatterns[k]
source = open(sourcename, 'rU')
target = open(targetname, 'w')
# convert lines
for line in source.readlines():
line = unicode(line, 'utf-16be') # "unicode" encoded InDesign tagged text is UTF-16 big-endian encoded!
for p in reres:
line = p.sub(reres[p], line)
for c in quote:
line = line.replace(c, u'\\'+c)
if '\\item ' in line and not status['item']:
target.write('\\startitemize[]\n')
status['item'] = True
if status['item'] and not '\\item ' in line:
target.write('\\stopitemize\n')
status['item'] = False
target.write(line.encode('utf-8')) # write UTF-8
source.close()
target.close()
print "%s completed" % targetname
[-- Attachment #4: Type: text/plain, Size: 487 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: converters (was: TexPaste alpha)
2009-05-29 8:14 ` converters (was: TexPaste alpha) Henning Hraban Ramm
@ 2009-05-29 8:18 ` luigi scarso
0 siblings, 0 replies; 7+ messages in thread
From: luigi scarso @ 2009-05-29 8:18 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 872 bytes --]
On Fri, May 29, 2009 at 10:14 AM, Henning Hraban Ramm <hraban@fiee.net>wrote:
> Am 2009-05-28 um 09:45 schrieb luigi scarso:
>
> I guess I should build a new converter suite (there's also a InDesign Tags
>> to ConTeXt converter anywhere on my harddisk).
>> But I won't make GUI apps, just scripts.
>> That's sound good !
>> If in python, even better !
>> If only scripts, the best !
>>
>> Can we have more details ?
>>
>
> Which conversion do you need?
>
> If it's InDesign to ConTeXt, there's always custom programming needed -
> e.g. you need to know what ID paragraph style should become what ConTeXt
> section. (sample attached)
>
> I'm not good in building parsers, using mostly regular expression
> replacements, so my converters are always limited, and manual cleanup is
> necessary - but they save a lot of manual work anyway!
>
Thank you very much!
--
luigi
[-- Attachment #1.2: Type: text/html, Size: 1353 bytes --]
[-- Attachment #2: Type: text/plain, Size: 487 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: TexPaste alpha - my Win application converting Word/HTML to TeX
2009-05-28 9:37 ` Piotr Kopszak
@ 2009-06-08 8:27 ` J.A.J. Pater
0 siblings, 0 replies; 7+ messages in thread
From: J.A.J. Pater @ 2009-06-08 8:27 UTC (permalink / raw)
To: mailing list for ConTeXt users
Hello Piotr
Sorry for the late reply, but could you post it to the net somewhere or
to the list?
Thanks,
Adriaan.
> Hello list,
>
> Inevitably, it's a recurring subject. Here are my 2p. After playing
> with all sorts of convertors to TeX, Latex, HTML and scraping the
> output with Perl to obtain something useful for ConTeXt I found that
> what I in fact really need to preserve from a Word file are italics
> and footnotes. To make the long story short. IMHO the only reasonable
> way to go is via XSL stylesheet for ooffice. Fortunately you don't
> have to develop a new one from scratch which would be quite a task.
> There is an excellent stylesheet converting odt to mediawiki by
> Bernhard Haumacher odt2mediawiki.xsl It took me less than an hour to
> adapt it for ConTeXt output. Then you only add it as an xml filter to
> Open Office and from then on can convert Word to ConTeXt straight from
> ooffice as if it was one of its built-in export formats.
>
> Piotr
>
>
>
>
> 2009/5/28 luigi scarso <luigi.scarso@gmail.com>:
>
>>> I guess I should build a new converter suite (there's also a InDesign Tags
>>> to ConTeXt converter anywhere on my harddisk).
>>> But I won't make GUI apps, just scripts.
>>>
>> That's sound good !
>> If in python, even better !
>> If only scripts, the best !
>>
>> Can we have more details ?
>>
>> --
>> luigi
>>
>>
>> ___________________________________________________________________________________
>> If your question is of interest to others as well, please add an entry to
>> the Wiki!
>>
>> maillist : ntg-context@ntg.nl /
>> http://www.ntg.nl/mailman/listinfo/ntg-context
>> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
>> archive : https://foundry.supelec.fr/projects/contextrev/
>> wiki : http://contextgarden.net
>> ___________________________________________________________________________________
>>
>>
>>
>
>
>
>
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-06-08 8:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <mailman.1002.1243443853.3589.ntg-context@ntg.nl>
2009-05-27 22:05 ` TexPaste alpha - my Win application converting Word/HTML to TeX Vyatcheslav Yatskovsky
2009-05-28 7:39 ` Henning Hraban Ramm
2009-05-28 7:45 ` luigi scarso
2009-05-28 9:37 ` Piotr Kopszak
2009-06-08 8:27 ` J.A.J. Pater
2009-05-29 8:14 ` converters (was: TexPaste alpha) Henning Hraban Ramm
2009-05-29 8:18 ` luigi scarso
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).