Как конвертировать LaTeX в обычный текст (ASCII)?


сценарий:
у меня есть документ, который я создал с помощью LaTeX (мое резюме в этом случае), он компилируется в pdflatex правильно и выводить именно то, что я хотел бы. Теперь мне нужно, чтобы тот же документ был преобразован в обычный старый ASCII.

пример:
Я видела, как это делается (по крайней мере один раз) здесь, где у автора есть PDF версию и ASCII версия, который соответствует PDF-версии практически каждый способ, включая поля, интервалы и маркированные точки.

Я понимаю, что этот тип преобразования не может быть точным из-за ограничений в формате ASCII, но очень близкое приближение кажется возможным на основе того, что я нашел до сих пор. Каков процесс для этого?

14 59

14 ответов:

CatDVI можно конвертировать DVI в текст и пытается сохранить форматирование.

Opendetex доступно как для Windows, так и для Linux (прекрасно компилируется и на Mac). Его можно скачать с http://code.google.com/p/opendetex/downloads/list

использование: http://code.google.com/p/opendetex/wiki/Usage

распакуйте его в любой каталог по вашему выбору. Говорят извлечены в папку Загрузки.

создайте другой каталог с любым именем в этом (это необязательно, но рекомендуется). Допустим, имя каталога - "my_paper". Положите вашу бумагу в каталог" my_paper". Предположим, что ваше имя бумаги-проект.текс.

перейдите в папку

    cd ~/Downloads/opendetex

выполнить команду

    detex my_paper/project.tex  > out.txt

общий вид

    detex -n full_path_to_tex_file.tex > output_text_file.txt

вы можете попробовать некоторые из программ, предлагаемых здесь:

TeX в ASCII

другой вариант-использовать htlatex чтобы создать веб-страницу из источников LaTeX, затем используйте ссылки преобразовать в обычный текст. Я использовал командную строку

links -dump -no-numbering -no-references input.html > output.txt

в прошлом, что дало довольно хороший результат. Это, конечно, скорее соответствует представлению отображаемого HTML, чем оригинального PDF, поэтому, возможно, не совсем то, что вы хотите.

вы также можете попробовать Pandoc, он может преобразовывать latex во многие другие форматы. Я предлагаю прочитать его документацию, поскольку могут быть некоторые сложные случаи, которые вам нужно передать некоторые аргументы для обработки.

если вы используете pdflatex, вы, вероятно, не хотите возиться с вашими параметрами пакета, чтобы переключиться на latex для создания DVI.

вместо этого возьмите свой pdf-файл и преобразуйте его вместо этого. Это сработало для моего резюме / Резюме, сделанного с помощью пакета Curve:

pdftotext  -layout MyResume.pdf

Примечание -layout флаг.

моя обычная стратегия заключается в использовании hyperlatex чтобы превратить его в веб-страницу, а затем справляется и вставить из веб-браузера. Я считаю, что это дает лучшее форматирование.

Я обычно тогда должен пройти и вручную исправить некоторые линии обертывания...

попробуйте выполнить следующие действия:http://zanedp.livejournal.com/201222.html

вот последовательность, которая преобразует мой файл LaTeX в обычный текст:

$ latex file.tex
$ catdvi -e 1 -U file.dvi | sed -re "s/\[U\+2022\]/*/g" | sed -re "s/([^^[:space:]])\s+/ /g" > file.txt

параметр-e 1 для catdvi сообщает ему выводить ASCII. Если вы используете 0 вместо 1, он будет выводить Unicode. Юникод будет включать в себя все специальные символы, такие как пули, эмдаши и греческие буквы. Он также включает лигатуры для некоторых буквосочетаний, таких как" fi "и" fl.- Тебе это может не понравиться. Итак, используйте -е 1 вместо. Используйте опцию-U, чтобы сказать ему, чтобы вывести значение Юникод для неизвестных символов, так что вы можете легко найти и заменить их.

вторая часть команды находит строку [U+2022], которая используется для обозначения символов маркера (•) и заменяет их звездочкой (*).

третья часть съедает все лишние пробелы, которые catdvi бросил, чтобы сделать текст полностью оправданным, сохраняя пробелы в начале строк (углубление.)

после выполнения этих команд, вы были бы мудры, чтобы искать .txt-файл для строки [U+, чтобы убедиться, что никакие символы Юникода, которые не могут быть сопоставлены с ASCII, не были оставлены и исправлены.

когда мне нужно было получить простой текст из моего TEX-файла для индексирования и поиска, я нашел LaTeX2RTF хорошим решением - у него есть установщик и графический интерфейс для windows, и он произвел RTF-файл моей 50-страничной диссертации, которую я мог открыть в Word.

решение, которое лучше всего работает для меня, заключается в следующем. Предполагая, что у вас есть имя документа latex (без расширения), хранящееся в ${BASENAME} вы применяете эти 3 шага:

htlatex ${BASENAME}.tex

iconv -f iso-8859-1 -t utf-8 ${BASENAME}.html > ${BASENAME}-utf8.html

html2markdown ${BASENAME}-utf8.html > ${BASENAME}.txt

видимо, вам нужно иметь tex4ht и python-html2text установлен.

Я пробовал LyX и он работает довольно хорошо. Единственный нюанс заключается в том, что если у вас есть TeX-файл, который включает в себя другие Tex-файлы, вам нужно будет экспортировать их все отдельно, если я чего-то не упустил.

Pandoc позволяет преобразовывать файлы из одного формата в другой Используйте следующую команду pandoc:

pandoc -s /path/to/foobar.tex -o foobar.txt

если вы хотите, чтобы ваши строки ломались в определенном столбце, используйте --column флаг. Используйте --columns 10000 для неразрывной линии.

вы можете конвертировать -o foobar.txt до ряд других форматов как markdown (. md) и т.д. Если вы не укажете -o foobar.txt, pandoc напечатает html, который вы можете отобразить в любом онлайн-инструменте.

установить пандок следуй это официальная документация

вы можете импортировать в lyx и использовать функцию экспорта lyx в текст.

глупо, если вы не используете lyx, но если у вас уже есть это, очень быстрое и простое решение. Хороший результат для меня, хотя, честно говоря, мои файлы довольно просты. Не уверен, как более сложные файлы конвертируются.

Emacs есть команды iso-iso2tex и iso-tex2iso это работает очень хорошо, за исключением того, что он не преобразует отдельные команды, такие как \OE до Œ.