Как конвертировать LaTeX в обычный текст (ASCII)?
сценарий:
у меня есть документ, который я создал с помощью LaTeX (мое резюме в этом случае), он компилируется в pdflatex
правильно и выводить именно то, что я хотел бы. Теперь мне нужно, чтобы тот же документ был преобразован в обычный старый ASCII.
пример:
Я видела, как это делается (по крайней мере один раз) здесь, где у автора есть PDF версию и ASCII версия, который соответствует PDF-версии практически каждый способ, включая поля, интервалы и маркированные точки.
Я понимаю, что этот тип преобразования не может быть точным из-за ограничений в формате ASCII, но очень близкое приближение кажется возможным на основе того, что я нашел до сих пор. Каков процесс для этого?
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
другой вариант-использовать 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, который вы можете отобразить в любом онлайн-инструменте.установить пандок следуй это официальная документация