Newsgroup: it.comp.software.tex
Titolo: forloop in latex

dovrei inserire in un testo latex una riga che va ripetuta centinaia
di volte
è un comando \includegraphics{nomefile.001 che termina con il numero .
532
come posso implementare forloop per risparmiarmi il copia/incolla di
tutte queste righe?
grazie a tutti

 wrote:

Interessante esercizio. ;)
\usepackage{graphicx}
\DeclareGraphicsRule{*}{mps}{*}{}
\newcounter{ciclo}
\def\threedigits#1{\ifnum#1<100 0\ifnum#1<10 0\fi\fi#1}
\def\graphicsloop#1#2{%\def\nomefile{#1.}%
  \setcounter{ciclo}{0}%
  \loop\ifnum\value{ciclo}<#2\relax
    \stepcounter{ciclo}%
    \edef\nomefile{#1.\threedigits\theciclo}%
    \expandafter\includegraphics\expandafter{\nomefile}%
    \space
  \repeat}
\graphicsloop{nomefile}{532}
Per quanto riguarda la seconda riga, ho supposto che i file vengano da
MetaPost. Se invece dovessero essere di altro tipo, sostituisci "mps"
con "jpg", "png", "pdf" oppure "eps".
Il comando \space serve per separare una figura dall'altra. Vedi tu che
cosa metterci. La modifica per indicare un intervallo diverso dovrebbe
essere ovvia.
Ciao
Enrico

 tutte queste righe?
C'è modo (diversi modi, in realtà) di costruire cicli in LaTeX, puoi 
usare un contatore per la parte variabile e comporre poi il comando.
Io però, francamente, userei le capacità dell'editor, o qualche 
accrocchio esterno, per generare tutte le righe, da includere tal quali 
nel sorgente LaTeX.
Ciao.

 > di volte

grazie, ti va di commentarmi velocemente le righe? sono un
principiante di latex.
poi nella compilazione latex si ferma quì
l.1 \usepackage{
                graphicx}
grazie

hai ragiune, avrei dovuto chiudere parentesi.
il file nel suo complesso dovrebbe essere
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{cerchio.100}
\includegraphics{cerchio.101}
..............................................
\includegraphics{cerchio.500}
\end{document}
chiaro che vorrei farlo in latex direttamente.
grazie

 scrive:

Be', direi che dovrai aggiungere il solito \documentclass, che dici?
Le righe iniziali vanno nel preambolo, cioè prima di \begin{document}.
Il comando \graphicsloop{nomefile}{532} va dove vuoi che vengano
inserite le tue figure.
Se sei un principiante, cerca di partire dalle cose semplici e non
da quelle complicate. Prova quel codice, se funziona usalo.
Ciao
Enrico

,
scriveva:

E' senz'altro, come dice Enrico Gregorio, un "interessante esercizio".
Ora vediamo... i file saranno, immagino, in una qualche directory... con il
comando "list-files cerchio.*" del mio editor ottengo, in un buffer di
editazione, l'elenco di tutti i file (se i file, al momento della redazione
del documento, non esistono, ho comunque altri strumenti per generare
rapidamente la lista); con il comando "replace-string ^J ->
}^J\includegraphics{" ho tutti gli \includegraphics che volevo (da
aggiustare giusto la prima e l'ultima riga ) e li copio nel documento nel
punto che voglio.
Funziona subito, non č da debuggare, non ho dovuto perdere tempo per
risolvere l'"interessante esercizio", andandomi a cercare e rileggere
qualche dozzina di pagine di manuale e perdendomi nelle intricate
psicologie aliene dei \relax e degli \expandafter...
A me sembra di aver fatto un buon affare. Poi, s'intende, dipende anche dal
contesto in cui si opera, se č un'operazione da fare una volta ogni tanto o
pensi di ripeterla... puň darsi benissimo che, nel tuo caso, fare tutto in
latex sia la scelta piů intelligente. Per la mia esperienza, e nell'ambito
delle cose che faccio io normalmente, il 90% delle volte non lo č.
Ciao.

 delle cose che faccio io normalmente, il 90% delle volte non lo è.
Per ogni problema ci sono più modi per risolverlo. Un giusto 
bilanciamento fra teoria e pratica di solito è la scelta migliore.
Ciao
Enrico