Re: Tenere in memoria parti di testo

#67225
Up
0
Down
::

Marco87″ post=66185Ciao a tutti,

per prima cosa mi scuso per il titolo della discussione, ma non me n’è venuto uno migliore.

Quello che mi piacerebbe fare è poter memorizzare una porzione di testo in una memoria, in modo da poterla stampare nel momento in cui desidero inserire nel mio documento quel pezzo, richiamando il contenuto di quella memoria.

Cerco di spiegarmi meglio. Vorrei definire un comando che accetti diversi argomenti (tutti testuali), ma dove solo alcuni vengono stampati subito; gli altri voglio memorizzarli per poter stampare il loro contenuto in parti successive del documento. Faccio un esempio:
`\documentclass[a4paper,11pt,openright,twoside]{report}

\newcommand{\comando}[2]{«#1» metti #2 nella memoria “secondaPorzione1”}

\begin{document}

\comando{Ciao.}{Questo è il testo che voglio memorizzare.} %Qui deve essere stampato “«Ciao.»”

\section{Titolo section}

\stampa{secondaPorzione1} %Qui deve essere stampato “Questo è il testo che voglio memorizzare.”

\end{document}`
Ovviamente ogni volta che uso il nuovo comando “\comando” la variabile di memorizzazione deve cambiare; pensavo di far ciò mediante un contatore. Per il resto, si può fare? Sapete come farlo?

Spero di essere stato sufficientemente chiaro. Se non avete capito, ditemelo che proverò a spiegarmi diversamente.

Ciao e grazie,
Marco.

È possibile fare tutto con LaTeX, qualcuno ha scritto persino un interprete BASIC, usando TeX.
Bisogna solo mettere in conto un po’ di mal di testa…

Ma non è il tuo caso: 🙂
`\documentclass[a4paper,11pt,openright,twoside]{report}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\makeatletter
\newcounter{porzione}
\newcommand{\comando}[2]{%
«#1»%
\addtocounter{porzione}{1}%
\@namedef{porzione\theporzione}{#2}}
\newcommand{\stampa}[1]{\@nameuse{porzione#1}}
\makeatother

\begin{document}

\comando{Primo ciao.}{Primo testo memorizzato.}
\comando{Secondo ciao.}{Secondo testo memorizzato.}

\section{Titolo section}

1: \stampa{1}\\
2: \stampa{2}

\end{document}`

Ciao,
Antonio

Go to top