DirkPitt” post=67280Ciao
vorrei realizzare un nuovo ambiente che mi permetta di scrivere una matrice passando gli elementi della matrice come parametri dell’ambiente stesso. Questo perchè devo scriverne + di una e sono molto grandi quindi mi verrebbe comodo definirla una volta per tutte. Inoltre così potrei copiare gli elementi direttamente come una stringa (di numeri) dai file MatLab.Ora, nell’arte ho letto che il limite di 9 parametri c’è per i \newcommand ma dato che non specifica niente sugli enviroment ho provato una cosa del genere:
`
\newenvironment{mia_matrice}[900] %30×30
{\begin{displaymath}\begin{bmatrix}
#1 & #2 … & #30\\
%etc.
….#900
\end{bmatrix}}
{\end{diplaymath}}
`Poi in compilazione mi da l’errore “You have already nine parameters”.
Posso risolvere in qualche maniera?
Ciao
TeX accetta al massimo nove parametri per una macro. E un ambiente è definito tramite macro, ovviamente. 🙂
Se i tuoi dati sono scritti per bene, puoi provare così:
`\documentclass{article}
\usepackage{amsmath}
\setcounter{MaxMatrixCols}{30}
\makeatletter
\newenvironment{bigmat}
{\obeyspaces\obeylines\setup@bigmat\[\expandafter\bmatrix\@gobble}
{\endbmatrix\]}
\def\setup@bigmat{%
\begingroup\lccode`~=` \lowercase{\endgroup\def~}{&}%
\begingroup\lccode`~=`\^^M\lowercase{\endgroup\def~}{\\}%
}
\makeatother
\begin{document}
\begin{bigmat}
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
\end{bigmat}
\end{document}`
Ogni spazio denota un
Ciao
Enrico