Risposte nei forum create
-
AutoreRisposte
-
::
ho risolto da soloSe qualcuno volesse saperlo, anche se a quanto pare non interessa a nessuno, questo è ciò che ho fatto, ora il codice funziona. Una soluzione magari non ottima, ma efficace
`
\usepackage{color, colortbl}
\usepackage{booktabs}
\usepackage{ifthen}
\usepackage{numprint}\newcounter{k}
\setcounter{k}{1}
\definecolor{gray}{gray}{0.8}
\def\ecomm{&}\begin{center}
\begin{tabular}{*3c}
\whiledo{\value{k}<11}
{
\ifnumodd{\value{k}}
{
\\[-0.421cm]
\rowcolor{gray} Grigio\arabic{k} \ecomm Grigio\arabic{k} \ecomm Grigio\arabic{k}\\
\addtocounter{k}{1}
}
{
\\[-0.421cm]
NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k}\\
\addtocounter{k}{1}}
}\end{tabular}
\end{center}
`In poche parole, ho aggiunto `\\[-0.421cm]` e tutto è andato (a ‘sto giro ho usato il \whiledo perché mi serviva capire se andava anche dentro questa funzione per il mio scopo, ma il concetto è lo stesso)
EDIT: Il [-0.421cm] è per ovviare allo spazio in più che si creerebbe
::
Non mi è chiaro come si usi il pacchetto tabu. In realtà temo non sia compreso nella versione che utilizziamo (usiamo Lyx per direttive aziendali), ho quindi provato a scaricare il pacchetto ma non capisco dove vada salvato perché Lyx lo riconosca e lo utilizzi.Con \tabular non è possibile? Perché quando entra nella condizione \rowcolor mi dà errore?
::mattiaca” post=116064Hai provato a usare il pacchetto tabu?
Risolveresti il problema più facilmente.
Ciao.non ne conoscevo neanche l’esistenza 😮 😮 vado subito a vedere le specifiche del pacchetto, grazie!
Inoltre, ho provato ad usare anche la funzione \ifnumodd del pacchetto \etoolbox ma mi dà lo stesso errore
::
Ho provato con questa soluzione, ma non funziona:`
\usepackage{graphicx}
\usepackage{ifthen}\setlength{\parindent}{0pt}
\expandafter\def\csname agent1 \endcsname{Agente 1}
\expandafter\def\csname agent2 \endcsname{Agente 2}
\csname agent1 \endcsname\\
\csname agent2 \endcsname\\
\newcounter{j}
\setcounter{j}{1}
\whiledo{\value{j}<3}{
\csname agentj \endcsname\\
\arabic{j}\\
\addtocounter{j}{1}
}
`Stampa correttamente Agente 1 e Agente 2 iniziali, stampa correttamente il valore del contatore che aumenta ma ignora completamente la stampa di Agente 1 e Agente 2 del ciclo.
Non c’è alcun modo per fargli leggere la
come il valore che ha in quel momento e quindi riferirsi a agent1 e agent2?
::robitex” post=115959
Ciao e benvenuto sul forum.
Come regola dovresti postare il codice minimo compilabile, dovresti cioé mostrare come vengono dichiarate le macro \TipoASSEPIPPO e seguenti.Ok, allora scrivo l’esempio di come ho fatto e poi cerco di far capire come lo vorrei io; non copio per tutte le 18 righe corrispondenti agli assi da includere o meno, altrimenti risulta lunghissimo inutilmente, copio le prime 3.
Inoltre le definizioni delle macro, per esempio \TipoASSEx, avvengono sul file .tex, io le riporto in cima al codice che mostro. Dal momento che nel nome del \newcommand non mi permette di mettere numeri, per distinguerli ho usato lettere a mo’ di numeri romani.
Tenete presente che sto lavorando su un file .tex già esistente, ma tutte queste aggiunte degli assi le ho messe io per provare il codice; poi dal nostro software faremo risultare queste voci come suo output, non so se sto riuscendo a spiegarmi.`
%INIZIO ASSE I
\newcommand{\ASSEI}{1}
\newcommand{\TIPOASSEI}{Avanzamento carri} \newcommand{\NUMEROASSEI}{11} \newcommand{\MOTOREI}{2x Mot Ace Gr112L B5} \newcommand{\RAPPORTORIDUZIONEI}{65} \newcommand{\VELOCITAMAXI}{} \newcommand{\ACCELMAXI}{} \newcommand{\COPPIAMAXI}{} \newcommand{\CORSAMAXI}{15000} \newcommand{\CORSAMINI}{0}
%FINE ASSE I
%INIZIO ASSE II
\newcommand{\ASSEII}{0}
\newcommand{\TIPOASSEII}{Apertura Forche} \newcommand{\NUMEROASSEII}{12} \newcommand{\MOTOREII}{2x Mot Ace Gr90L} \newcommand{\RAPPORTORIDUZIONEII}{40} \newcommand{\VELOCITAMAXII}{} \newcommand{\ACCELMAXII}{} \newcommand{\COPPIAMAXII}{} \newcommand{\CORSAMAXII}{214} \newcommand{\CORSAMINII}{86}
%FINE ASSE II
%INIZIO ASSE III
\newcommand{\ASSEIII}{1}
\newcommand{\TIPOASSEIII}{Sollevamento Forche} \newcommand{\NUMEROASSEIII}{13} \newcommand{\MOTOREIII}{1x Mot Ace Gr112L B5} \newcommand{\RAPPORTORIDUZIONEIII}{80} \newcommand{\VELOCITAMAXIII}{} \newcommand{\ACCELMAXIII}{} \newcommand{\COPPIAMAXIII}{} \newcommand{\CORSAMAXIII}{350} \newcommand{\CORSAMINIII}{95}
%FINE ASSE III%altri 15 assi definiti allo stesso modo, sempre con numerazione romana
`
Questo è come vengono definite le macro sul file .tex`
{\begin{tabular}{p{1.8cm}p{1.6cm}p{1.7cm}p{1.8cm}p{1.6cm}p{1.6cm}p{1.6cm}p{1.6cm}p{1.6cm}} %definisco le 9 colonne, non posso lasciarle automatiche altrimenti non ci stanno nella pagina, e alcune sono di lunghezza diversa per via di ciò che va scritto, esteticamente non è il massimo ma per ora è il minore dei problemi
\toprule
Tipo\newline ASSE & Numero ASSE & Motore & Rapporto\newline riduzione & Velocità MAX & Accel. MAX & Coppia MAX & Corsa MAX & Corsa MIN\\
\midrule
\ifthenelse{\equal{\ASSEI}{1}}{\scriptsize \TIPOASSEI & \NUMEROASSEI & \scriptsize \MOTOREI & \hspace{0.2cm}\RAPPORTORIDUZIONEI & \VELOCITAMAXI & \ACCELMAXI & \COPPIAMAXI & \CORSAMAXI & \CORSAMINI\\}{} %stampo riga ASSE I se presente
\ifthenelse{\equal{\ASSEII}{1}}{\scriptsize \TIPOASSEII & \NUMEROASSEII & \scriptsize \MOTOREII & \hspace{0.2cm}\RAPPORTORIDUZIONEII & \VELOCITAMAXII & \ACCELMAXII & \COPPIAMAXII & \CORSAMAXII & \CORSAMINII\\ }{} %stampo riga ASSE II se presente
\ifthenelse{\equal{\ASSEIII}{1}}{\scriptsize \TIPOASSEIII & \NUMEROASSEIII & \scriptsize \MOTOREIII & \hspace{0.2cm}\RAPPORTORIDUZIONEIII & \VELOCITAMAXIII & \ACCELMAXIII & \COPPIAMAXIII & \CORSAMAXIII & \CORSAMINIII\\ }{} %stampo riga ASSE III se presente
%per altre 15 volte questo codice, così da controllare ed eventualmente stampare tutti i 18 assi definiti dalle macro nel .tex
\end{tabular}}
`Questo codice funziona, stampa correttamente la tabella ma il mio intento è snellire il codice, che come vedete è molto pesante.
Per questo voglio usare un contatore, ma dovrei poter definire le macro come:
`
%INIZIO ASSE1
\newcommand{\ASSE1}{1}
\newcommand{\TIPOASSE1}{Avanzamento carri} \newcommand{\NUMEROASSE1}{11} \newcommand{\MOTORE1}{2x Mot Ace Gr112L B5} \newcommand{\RAPPORTORIDUZIONE1}{65} \newcommand{\VELOCITAMAX1}{} \newcommand{\ACCELMAX1}{} \newcommand{\COPPIAMAX1}{} \newcommand{\CORSAMAX1}{15000} \newcommand{\CORSAMIN1}{0}
%FINE ASSE1
%INIZIO ASSE2
\newcommand{\ASSE2}{0}
\newcommand{\TIPOASSE2}{Apertura Forche} \newcommand{\NUMEROASSE2}{12} \newcommand{\MOTORE2}{2x Mot Ace Gr90L} \newcommand{\RAPPORTORIDUZIONE2}{40} \newcommand{\VELOCITAMAX2}{} \newcommand{\ACCELMAX2}{} \newcommand{\COPPIAMAX2}{} \newcommand{\CORSAMAX2}{214} \newcommand{\CORSAMIN2}{86}
%FINE ASSE2
%INIZIO ASSE3
\newcommand{\ASSE3}{1}
\newcommand{\TIPOASSE3}{Sollevamento Forche} \newcommand{\NUMEROASSE3}{13} \newcommand{\MOTORE3}{1x Mot Ace Gr112L B5} \newcommand{\RAPPORTORIDUZIONE3}{80} \newcommand{\VELOCITAMAX3}{} \newcommand{\ACCELMAX3}{} \newcommand{\COPPIAMAX3}{} \newcommand{\CORSAMAX3}{350} \newcommand{\CORSAMIN3}{95}
%FINE ASSE3%altri 15 assi definiti allo stesso modo, ma questa volta coi numeri
`e quindi poter fare la tabella con contatore:
`
\newcounter{j}
\setcounter{j}{1}
\def\ecomm{&}
{\begin{tabular}{p{1.8cm}p{1.6cm}p{1.7cm}p{1.8cm}p{1.6cm}p{1.6cm}p{1.6cm}p{1.6cm}p{1.6cm}} %definisco le 9 colonne, non posso lasciarle automatiche altrimenti non ci stanno nella pagina, e alcune sono di lunghezza diversa per via di ciò che va scritto, esteticamente non è il massimo ma per ora è il minore dei problemi
\toprule
Tipo\newline ASSE & Numero ASSE & Motore & Rapporto\newline riduzione & Velocità MAX & Accel. MAX & Coppia MAX & Corsa MAX & Corsa MIN\\
\midrule
\whiledo{\value{j}<4}
{
\ifthenelse{\equal{ASSEj}{1}}{\TIPOASSEj \ecomm \NUMEROASSEj \ecomm \MOTOREj \ecomm \RAPPORTORIDUZIONEj \ecomm \VELOCITAMAXj \ecomm \ACCELMAXj \ecomm \COPPIAMAXj \ecomm \CORSAMAXj \ecomm CORSAMINj\\}{}
\addtocounter{j}{1}
}
\end{tabular}}
`Ho costruito il codice per le 3 macro che ho messo.
Chiedevo se fosse possibile fare questo, in quanto non riesco a definire le macro con valore alfanumerici (se metto un numero interrompe il nome) così da poter effettivamente sfruttare il contatore. Non so se è chiaro.
-
AutoreRisposte