Как конвертировать 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, который вы можете отобразить в любом онлайн-инструменте.установить пандок следуй это официальная документация