J'essaie de comprendre le meilleur système de construction pour la latex.
Actuellement, j'utilise latex-makfile , édition dans VIM et visualisant les modifications de Okular ou GV. Le problème majeur est que cela se cache parfois des erreurs sur moi et je dois courir le latex manuellement. Les principaux avantages sont qu'il fait toute l'itération dont j'ai besoin et offre simplement pdf et ps.
Si vous avez de l'expérience avec
Devriez-vous les recommander et pourquoi/pourquoi pas?
Après avoir examiné toutes ces options pendant un certain temps, je me suis installé avec la solution suivante.
Le script est disponible à https://github.com/pbiggar/texbuild .
Utilisez Caoutchouc-Info pour obtenir les erreurs et avertissements du fichier journal. Le script ci-dessus enregistre le fichier journal dans t.log. Dans Vim:
autocmd FileType tex set makeprg=rubber-info\ t.log
autocmd FileType tex set errorformat=%f:%l:\ %m
Je viens d'essayer la latexmk. Si tu fais
latexmk -pvc file.tex
Ensuite, il sera aperçu automatique (DVI par défaut).
man latexmk
Downsides:
Je ne l'ai pas utilisé moi-même, mais j'ai entendu parler de caoutchouc comme une bonne alternative.
De leur site Web:
Le caoutchouc est un programme dont le but est de gérer toutes les tâches liées à la compilation des documents de latex. Cela inclut la compilation du document lui-même, bien sûr, suffisamment de fois afin que toutes les références soient définies et exécutant Bibtex pour gérer les références bibliographiques. L'exécution automatique de DVIPS pour produire des documents PostScript est également incluse, ainsi que l'utilisation de PDFLATEX à produire PDF Documents.
J'utilise Eclipse avec le complément Texecplise pour avoir modifié mes fichiers Tex. Il a une surbrillance de la syntaxe pour la latex. Lorsque vous vous demandez un aperçu d'un fichier Tex non modifié et déjà compilé, il ouvre le fichier dans la visionneuse. Lorsque le fichier Tex a été modifié, il compila le fichier Tex avant de le visualiser. Il fait les itérations nécessaires, mais seulement si nécessaire.
Un autre avantage est que toutes les erreurs et les avertissements sont résumés dans une boîte et ils sont mis en évidence dans le fichier Tex! Ceci est un capture d'écran à partir de la page d'accueil Texeclipse page d'accueil.
J'ai posté une réponse détaillée à l'aide de Scons sur tex.stackexchange .
Fondamentalement, vous mettez cela dans un fichier appelé SConstruct
:
# make sure scons finds tex executables:
import os
env = Environment(ENV=os.environ)
# target and source:
pdf_output = env.PDF(target='main.pdf', source='main.tex')
# make sure that the pdf is reloaded properly (e.g., in Skim)
env.Precious(pdf_output)
Vous pouvez construire le PDF simplement en courant
scons
incroyablement , SCONS détectera les modifications apportées aux fichiers\inclus dans le main.tex
Fichier et aussi le fichier de bibliographie!
J'essaie du caoutchouc pendant un moment. Je condenserai les résultats ici:
Je voulais utiliser le script que vous avez publié dans votre Réponse finale .
Malheureusement, cela n'a pas fonctionné avec mon cadre (Macvim avec Vim-Latexsuite, Skim comme Viewer et Xetex). J'utilise aussi la recherche avant (c'est-à-dire que j'utilise la fonctionnalité qui appuyait sur \ls dans VIM va passer au point correspondant du PDF Document dans la visionneuse ouverte).
En outre, mon document n'est pas appelé thesis.tex
(grande surprise; ce n'est pas une thèse). J'ai donc fait plus de travail de configuration que je voudrais partager. Attention, mes compétences de bash sont horribles.
#!/bin/bash
set -x
ulimit -t 10 # sometimes pdflatex gets stuck
if [ "$1" = "" ]; then
echo "No target name specified"
exit 1
fi
TARGET=$1
SOURCE=$1.tex
TMPSOURCE=_$TARGET.tex
TMPTARGET=_$TARGET
while [ 1 ]; do
# Compile a different file ($TMPSOURCE.pdf) so that it doesn't reload mid-compile
cp $SOURCE $TMPSOURCE
# better than running pdflatex manually, as this wont rebuild if there's nothing there.
latexmk -pdf -silent $TMPTARGET > /dev/null
# For rubber-info
cp $TMPTARGET.log $TARGET.log
if [ -e $TMPTARGET.pdf ]; then # Check the compile succeeded first
# No output file yet.
[ ! -e $TARGET.pdf ]
HASNOPDF=$?
# ignore if it's unchanged.
# OS X diff doesn't consider binary files. Single-line output, return value 2
diff $TARGET.pdf $TMPTARGET.pdf
OUTPUTDIFFERS=$?
if [ $HASNOPDF -eq 0 -o $OUTPUTDIFFERS -ne 0 ]; then
# Do NOT RM since Skim cannot deal with this.
cp $TMPTARGET.pdf $TARGET.pdf
fi
fi
sleep 1 # give it time to be killed by a CTRL-C
done
Cela compilait un fichier temporaire et la copie à tout nom donné (au lieu de l'inverse de votre script); Utilisation du script:
./scriptname project
Où project
est le nom du fichier Tex, sans extension de fichier.
J'ai aussi changé le rubber-info
ligne:
autocmd FileType tex exe "set makeprg=rubber-info\\ _" . expand("%:t:r") . ".log"
Et j'avais besoin de corriger mon latexmk
pour utiliser Xetex car le nom de l'exécutable était codé dur.
Malheureusement, cela détruit toujours la sortie PDF lorsque j'ai enregistré mon document avant de terminer une déclaration, puisque latexmk
semble toujours Produire a PDF fichier, même sur erreur - et son code de retour est toujours 0, ce qui suce.
(Pour clarifier cela, disons que je viens de taper emph{
dans mon document et le sauvegarder. Le script de fond compilera rapidement le document et échouera. Mais il produira toujours un fichier de sortie (largement vide)).
En outre, la recherche vers l'avant ne fonctionne plus correctement; Il saute essentiellement à un mauvais point dans le document. Je soupçonne que cela a quelque chose à voir avec mon copiant le document avant la compilation.
Il s'agit donc toujours d'une solution complètement insatisfaisante, même si je n'avais même pas activé une économie continue sur la frappe à Macvim.
Auctex & Aperçu-Latex avec Emacs Une autre option.
Vous pouvez également disposer d'Emacs ouvrir le fichier DVI ou PDF résultant, et si vous tournez le mode de revenir automatique pour ce tampon, les modifications seront rendues chaque fois que vous recompilez le document.
((Ceci est un travail en cours
J'essaie du vim-latexsuite pour le moment. Il transforme essentiellement Vim en un IDE pour latex.
"Mieux" est un terme très relatif ... que voulez-vous faire d'autre? Il semble que ce maquillage gère un peu un peu, et cela me donne envie de courir un * Nix au travail au lieu de Windows ... S'il y a plus de choses que vous devez gérer avec le maquillage, pourquoi ne pas les ajouter?
Pour le faire "mieux", vous auriez besoin de fournir plus de détails sur ce que vous faites exactement.
Par exemple, vous pouvez utiliser le fichier .log avec Grep, rechercher des erreurs ou des avertissements, de les jeter dans un autre fichier, puis ouvrez le nouveau fichier afin que vous puissiez lire les erreurs.
Tout dépend de ce que vous voulez faire ...
J'utilise le Latex-Makefile pendant un moment. C'est très bien si vous essayez d'utiliser un cycle d'édition-compile-aperçu:
Je peux reproduire les avantages de la latexmk assez facilement avec:
while [ 1 ]; do /usr/bin/make; done
Quelques inconvénients:
Jetez un coup d'œil à Texmaker . :-)
caractéristiques (de wiki):
- Vérification orthographique en ligne.
- Un éditeur UNICODE pour écrire des fichiers source de latex (Syntaxe en surbrillance, Annuler-Redo, Recherche-Remplacement, Checker orthographique ...)
- Les étiquettes de latex et les symboles mathématiques peuvent être entrés avec une souris
- Modèles de documents et de section
- Les programmes liés au latex peuvent être lancés
- Gestion de la base de données BIBTEX
- Un contour ou "vue de structure"
- Logfiles lors de la compilation de latex et la possibilité de "intervenir" des erreurs de source découvertes par le compilateur
- Un latex intégré à l'outil de conversion HTML
caractéristiques (de moi):
- assistants utiles pour l'insertion de tables, de citation, de référencement
- support bidirectionnel
- raccourcis de clavier utiles
- Les mots complets automatiques (spécialement utile avec référencement)
- définir vos propres instructions
J'utilise miktex en combinaison avec texniccenter . Cela fonctionne bien pour mes besoins. Je n'ai jamais eu le système cacher des erreurs ou des avertissements. Les scripts de construction personnalisés sont faciles à créer et à configurer.