web-dev-qa-db-fra.com

Comment convertir LaTeX en texte brut (ASCII)?

Scénario:
J'ai un document que j'ai créé en utilisant LaTeX (mon CV dans ce cas), il se compile correctement dans pdflatex et affiche exactement ce que j'aimerais. Maintenant, j'ai besoin que le même document soit converti en simple vieil ASCII.

Exemple:
J'ai vu cela fait (au moins une fois) ici , où l'auteur a un version PDF et un version ASCII qui correspond à la version PDF dans presque tous les sens, y compris les marges, l'espacement et les puces.

Je me rends compte que ce type de conversion ne peut pas être exact en raison des limitations du format ASCII, mais une approximation très proche semble possible sur la base de ce que j'ai trouvé jusqu'à présent. Quel est le processus pour ce faire ?

64
chuckg

CatDVI peut convertir DVI en texte et tente de conserver la mise en forme.

16
Beardo

Opendetex est disponible à la fois pour Windows et Linux (compile très bien sur Mac également). Il peut être téléchargé à partir de https://github.com/pkubowicz/opendetex

Usage:

detex project

ouvre project.tex, lit tous les fichiers inclus à l'aide des commandes\include ou\includeonly, envoie le texte résultant à la sortie standard.

detex -n project > out.txt

ouvre project.tex, ne suit pas les commandes\include ou\includeonly, envoie le texte résultant à out.txt

detex --help

affiche une aide complète

Extrayez-le dans le répertoire de votre choix. Supposons que vous l'ayez extrait dans votre répertoire Téléchargements.

Créez un autre répertoire de n'importe quel nom (facultatif mais recommandé). Disons que le nom du répertoire est "my_paper". Mettez votre papier dans le répertoire "my_paper". Supposons que votre nom de papier soit project.tex.

Accédez au chemin

    cd ~/Downloads/opendetex

Exécutez la commande

    detex my_paper/project.tex  > out.txt

forme générique

    detex -n full_path_to_tex_file.tex > output_text_file.txt
43
Mayank Agarwal

Vous pouvez essayer certains des programmes proposés ici:

TeX à ASCII

14
Diego Sevilla

Vous pouvez également essayer Pandoc , il peut transformer le latex en de nombreux autres formats. Je suggère de lire sa documentation, car il peut y avoir des cas délicats dont vous aurez besoin pour passer des arguments.

9
LittleSweet

Une autre option consiste à utiliser htlatex pour créer une page Web à partir des sources LaTeX, puis à utiliser links pour convertir en texte brut. J'ai utilisé la ligne de commande

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

dans le passé ce qui a donné un résultat plutôt sympa. Bien sûr, cela correspondra plutôt à la vue du HTML rendu qu'au PDF d'origine, donc peut-être pas exactement ce que vous voulez.

8
bluebrother

Si vous utilisez pdflatex, vous ne voudrez probablement pas jouer avec vos options de package pour basculer sur latex pour générer un DVI.

Au lieu de cela, prenez votre fichier pdf et convertissez-le à la place. Cela a fonctionné pour mon CV/CV réalisé avec le package Curve:

pdftotext  -layout MyResume.pdf

Noter la -layout drapeau.

5
ahcox

Ma stratégie habituelle consiste à utiliser hyperlatex pour en faire une page Web, puis à faire face et à coller à partir d'un navigateur Web. Je trouve que cela donne le meilleur formatage.

Je dois ensuite passer par et corriger manuellement certains retours à la ligne ...

3
Brian Postow

La solution qui me convient le mieux est la suivante. En supposant que le nom du document latex (sans extension) soit stocké dans ${BASENAME} vous appliquez ces 3 étapes:

htlatex ${BASENAME}.tex

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

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

Apparemment, vous devez avoir tex4ht et python-html2text installée.

3
Jannis Weide

Essayez les étapes ici: http://zanedp.livejournal.com/201222.html

Voici une séquence qui convertit mon fichier LaTeX en texte brut:

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

L'option -e 1 de catdvi lui indique de sortir en ASCII. Si vous utilisez 0 au lieu de 1, il affichera Unicode. Unicode inclura tous les caractères spéciaux comme les puces, les emdashes et les lettres grecques. Il comprend également des ligatures pour certaines combinaisons de lettres comme "fi" et "fl." Vous n'aimerez peut-être pas cela. Donc, utilisez -e 1 à la place. Utilisez l'option -U pour lui indiquer d'imprimer la valeur unicode des caractères inconnus afin que vous puissiez facilement les trouver et les remplacer.

La deuxième partie de la commande trouve la chaîne [U + 2022] qui est utilisée pour désigner les puces (•) et les remplace par un astérisque (*).

La troisième partie mange tous les espaces supplémentaires que catdvi a ajoutés pour rendre le texte pleinement justifié tout en préservant les espaces au début des lignes (indentation).

Après avoir exécuté ces commandes, il serait judicieux de rechercher dans le fichier .txt la chaîne [U + pour vous assurer qu'aucun caractère Unicode ne pouvant pas être mappé sur ASCII a été laissé et le corriger).

3
user255191

Lorsque j'ai eu besoin d'obtenir le texte brut de mon fichier TEX pour l'indexation et la recherche, j'ai trouvé LaTeX2RTF comme une bonne solution - il a un programme d'installation et interface graphique pour Windows , et il a produit un RTF de ma thèse de 50 pages que je pouvais ouvrir dans Word.

3
tsvikas

J'ai essayé LyX et cela fonctionne plutôt bien. La seule nuance est que si vous avez un fichier TeX qui inclut d'autres fichiers TeX, vous devrez les exporter tous séparément, sauf si je manque quelque chose.

2
literal jdm

Pandoc vous permet de convertir des fichiers d'un format à un autre Utilisez la commande pandoc suivante:

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

Si vous voulez que vos lignes se cassent à une certaine colonne, utilisez --column drapeau. Utilisation --columns 10000 pour une ligne insécable.

Vous pouvez convertir -o foobar.txt à n certain nombre d'autres formats comme markdown (.md) etc. Si vous ne spécifiez pas le -o foobar.txt, pandoc imprimera le code HTML que vous pouvez afficher dans n'importe quel outil en ligne.

Pour installer pandoc suivez cette documentation officielle

1
Shubham Chaudhary

vous pouvez importer dans lyx et utiliser la fonction d'exportation vers lyx de lyx.

un peu idiot si vous n'utilisez pas lyx mais si vous l'avez déjà, solution très rapide et facile. Bon résultat pour moi, bien que pour être honnête mes fichiers soient assez simples. Je ne sais pas comment les fichiers plus élaborés sont convertis.

0
DDD

Emacs a les commandes iso-iso2tex et iso-tex2iso qui fonctionne très bien, sauf qu'il ne convertit pas les commandes uniques comme \OE à Œ.

0
Geremia