7
votes

Indent une région de code C en mode latex emacs

Mon problème est que j'écris un document en latex dans EMACS qui a beaucoup de code C. J'utilise à la fois les environnements \ Minted et \ Verbatim dans divers endroits. Lorsque je compile le latex (en utilisant PDFLATEX), le PDF résultant a l'air bien. Dans le code de la latex brut, je voudrais être en mesure d'indenter automatique en utilisant les règles du mode C-majeur.

Par exemple, je veux pouvoir marquer la région suivante P>

\begin{verbatim}

void main(void)
{
    printf("Hello World \n\r");
}

\end{verbatim}   


5 commentaires

U-punkt et Simon fournissent des réponses qui fonctionnent. Y a-t-il de toute façon pour accélérer ce processus par exemple une petite fonction dans mes .emacs qui peuvent démarrer le mode C, l'indent et le retourner en mode latex?


Je pense que ma réponse fera ce que vous voulez.


Au cas où vous n'étiez pas au courant, avez-vous regardé le latex Listes Package ? Je crois que vous pouvez simplement entrer le code source, donc pas besoin de copier et de coller.


J'ai utilisé le package d'annonces, ainsi que la monnaie (que j'aime mieux), ils ne font pas ce que je veux. Ils formatent le code pendant la compilation du latex, je parle de formater un fichier de texte brut ".tex".


Compris, ce que je suggérais de déplacer les blocs Verbatim du fichier .TEX et de mettre le code source dans un fichier .C. Ensuite, lorsque vous affichez / éditez le fichier .C dans EMACS, il fera le formatage C approprié. Dans le fichier .TEX, vous incluez la source via \ lstinputlisting {source_filename.c} où vos blocs Verbatim sont maintenant.


3 Réponses :


4
votes

m-x retrait-région ne tire que la région, pas le tampon complet, donc:

  1. Activer le mode C
  2. Indent votre région
  3. retourner en mode latex

0 commentaires

4
votes

Vous pouvez utiliser C-x 4 C pour cloner votre mémoire tampon actuel à un tampon indirect. Mettez ce tampon indirect en mode C et faites votre indentation là-bas. Pour plus d'informations sur les tampons indirects, voir le emacs Manuel d'information, noeud 'tampons indirects' .


0 commentaires

3
votes

Voici une solution rapide. Avec un peu de travail, vous pouvez faire ce général - c'est-à-dire vérifier le mode majeur actuel et revenir à ce mode après que vous ayez terminé. Comme, il passe en mode C, les timbres, puis bascule en mode latex (reactex), qui résout le problème immédiat: xxx

lie à votre clé préférée et que vous devriez être tout ensemble.


0 commentaires