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 ?
CatDVI peut convertir DVI en texte et tente de conserver la mise en forme.
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
Vous pouvez essayer certains des programmes proposés ici:
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.
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.
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.
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 ...
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.
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).
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.
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.
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
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.
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
à Œ
.