Как преобразовать LaTeX в plain-text (ASCII)?

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

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

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

Ответ 1

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

Ответ 2

Opendetex доступен как для Windows, так и для Linux (компилируется отлично на Mac также). Его можно загрузить с https://github.com/pkubowicz/opendetex

Использование:

detex project

открывает project.tex, считывает все файлы, включенные с помощью команд \include или\includeonly, выводит итоговый текст на стандартный вывод.

detex -n project > out.txt

открывает project.tex, не выполняет команды \include или\includonly, выводит итоговый текст в out.txt

detex --help

показывает полную помощь

Извлеките его в любой каталог по вашему выбору. Скажем, вы извлекли его в каталог "Загрузки".

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

Перейдите к пути

    cd ~/Downloads/opendetex

Запустить команду

    detex my_paper/project.tex  > out.txt

общая форма

    detex -n full_path_to_tex_file.tex > output_text_file.txt

Ответ 3

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

TeX to ASCII

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

pdftotext  -layout MyResume.pdf

Обратите внимание на флаг -layout.

Ответ 7

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

Мне обычно приходится проходить через и вручную исправлять некоторые строки...

Ответ 8

Попробуйте следующие шаги: 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+/\1 /g" > file.txt

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

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

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

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

Ответ 9

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

Ответ 10

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

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.

Ответ 11

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

Ответ 12

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

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

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

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

Чтобы установить pandoc, следуйте официальную документацию

Ответ 13

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

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

Ответ 14

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