5 svar
197 visningar
dajamanté behöver inte mer hjälp
dajamanté 5139 – Fd. Medlem
Postad: 2 mar 2018 10:24

En pinne i LaTex

Rubriken låter lite konstigt... men jag menar att jag behöver en ''pinne'' i en koefficient matris, för att separera parameter koefficient och resultat:

Jag vill ha typ det:

... men i en miljö som tillåter matrisoperationer.

 

Jag behöver en slags \begin{array}{ccc|c}. Problemet är att när jag lägger på en linje \begin{array}{ccc|c} crashar hela koden under.

Min kod:

\begin{alignat*}1
\begin{gmatrix}[p]
-1 & 2 & -1 &-1 \
-2 & -4 & -2 &-2 \
-1 & 2 & -1 &-1
\rowops
\mult{0}{\cdot(-2)}
\add01
\mult{0}{\cdot(-1)}
\add02
\end{gmatrix}\kern-6.23pt\leadsto&
\begin{gmatrix}[p]
-1 & 2 & -1 &-1 \
0 & -8 & 0 &0 \
0 & 0 & 0 &0
\end{gmatrix}\
\end{alignat*}

oggih 1328 – F.d. Moderator
Postad: 3 mar 2018 00:16 Redigerad: 3 mar 2018 01:13

Ett sätt är att lösa detta som jag hittade här, är att dels lägga in en extra kolumn i matrisen, och dels införa ett nytt kommando \BAR i preamblen (har ingen aning om hur detta egentligen fungerar) som ger en vertikal linje som man kan fylla den tomma kolumnen med (vid behov kan man skriva \BAR[4pt] eller liknande för för att kompensera för de extra vertikala mellanrum som uppstår när radoperationerna läggs till). Jag har lagt in ett exempel på detta i det tidigare exempeldokumentet.

Personligen tycker jag Gauss-paketet ger ett lite väl klöddigt/rörigt resultat, så la även in ett exempel på en lite mer minimalistisk variant!

men det är så klart en smaksak vad man föredrar :)

dajamanté 5139 – Fd. Medlem
Postad: 3 mar 2018 08:41

Oh wow, jag fattar verkligen ingenting i stucken nedan:D! Har prydligt uppdaterat min preamble, ska testa nu.

% Möjliggör kommandot \BAR för augmenterade matriser
\newcommand{\BAR}[1][0pt]{%
\hspace{-\arraycolsep}%
\ifdim#1>0pt
\dimen0=\ht\strutbox \dimen2=\dimen0
\advance\dimen0 #1\relax
\ht\strutbox=\dimen0
\fi
\smash{\strut\vrule width 0.6pt} % the `\vrule` is as high and deep as a strut
% since assignments to \ht\strutbox are global, we restore the height
\ifdim#1>0pt
\ht\strutbox=\dimen2
\fi
\hspace{-\arraycolsep}%

dajamanté 5139 – Fd. Medlem
Postad: 3 mar 2018 08:49

Nej tyvärr det funkar inte!

Jag har integrerat stycken övan på en preambul sida, och fick följande error:

 

Runaway argument?

{\hspace {-\arraycolsep }\ifdim ##1>0pt \dimen 0=\ht \strutbox \dimen \ETC. ! File ended while scanning use of \@xargdef. <inserted text> \par <*> preamble.tex I suspect you have forgotten a `}', causing me to read past where you wanted me to stop. I'll try to recover; but if the error is serious, you'd better type `E' or `X' now and fix your file.
 preamble.texEmergency stop.

<*> preamble.tex *** (job aborted, no legal \end found) Here is how much of TeX's memory you used: 14571 strings out of 492990 278468 string characters out of 6132621 332070 words of memory out of 5000000 17859 multiletter control sequences out of 15000+600000 4709 words of font info for 16 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 55i,1n,82p,432b,127s stack positions out of 5000i,500n,10000p,200000b,80000s ! ==> Fatal error occurred, no output PDF file produced!

 

 

Jag har försökte att kopiera dina matriser och de dök upp, utan pinnen.

dajamanté 5139 – Fd. Medlem
Postad: 3 mar 2018 08:59

Förlåt, nu funkar det.

Jag missade en curly bracket!

Stor tack igen!

oggih 1328 – F.d. Moderator
Postad: 3 mar 2018 12:21
dajamanté skrev :

Oh wow, jag fattar verkligen ingenting i stucken nedan:D! Har prydligt uppdaterat min preamble, ska testa nu.

% Möjliggör kommandot \BAR för augmenterade matriser
\newcommand{\BAR}[1][0pt]{%
\hspace{-\arraycolsep}%
\ifdim#1>0pt
\dimen0=\ht\strutbox \dimen2=\dimen0
\advance\dimen0 #1\relax
\ht\strutbox=\dimen0
\fi
\smash{\strut\vrule width 0.6pt} % the `\vrule` is as high and deep as a strut
% since assignments to \ht\strutbox are global, we restore the height
\ifdim#1>0pt
\ht\strutbox=\dimen2
\fi
\hspace{-\arraycolsep}%

Det gör ärligt talat inte jag heller :D

Svara
Close