Wie kann ich damit Klammern um die erste und vorletzte Spalte einer [Die Klammernfragmente sind jetzt hier, um den Code einfach zu halten, in die Tabelle reingesudelt; später sollen sie schon mit So sieht es natürlich grauenvoll aus: Öffne in Overleaf
\documentclass[border=3mm, varwidth]{standalone} \usepackage{pgfplotstable, amsmath} \pgfplotsset{compat=1.13} % Klammernbruchstücke \def\OL{\rotatebox{180}{$\rgroup$}} \def\UL{$\lgroup$} \def\OR{\rotatebox{180}{$\lgroup$}} \def\UR{$\rgroup$} \def\Strich{\rule{1.25pt}{1em}} \begin{document} %\Strich IST: $M = \pgfplotstabletypeset[header=false, every head row/.style={output empty row},% string type, %dec sep align % geht nicht ]{ {\OL 1} 2.0 {3\OR} abc {$|$ 4} 5 {6 \Strich} d {\Strich 7} -8 {9 \Strich} e {\UL 10} 11 {-12\UR} f }$ \bigskip SOLL: $M = \left\lgroup\begin{array}{r r r} 1 & 2.0 & 3 \\ 4 & 5 & 6\\ 7 & -8 & 9\\ 10 & 11 & -12\\ \end{array}\right\rgroup \begin{array}{l} abc \\ d \\ e \\ f \\ \end{array}$ \end{document} gefragt 09 Okt '18, 05:53 cis
Ergebnis 5 von 10
show 5 more comments
|
Ja, infolge der anregenden Diskussion mit @Skillmon kam ich zu folgender Lösung: Man kann ganz einfach für die eingelesene vollständige Tabelle, im Beispiel mit 4 Spalten, einmal
und einmal und das Ganze kann man jetzt noch mit schön mit Klammern bestücken:
Heureka! Öffne in Overleaf
\documentclass[border=5mm, varwidth]{standalone} \usepackage{pgfplotstable} \usepackage{tikz, amsmath} \pgfplotstableread[header=false]{ 1 2.0 3 abc 4 5 6 d 7 -8 9 e 10 11 -12.1 f }\test \pgfplotstableset{ every head row/.style={output empty row},% keinen verdammten HEADER!!! string type } \begin{document} \pgfplotstabletypeset[]{\test} $\left\lgroup \pgfplotstabletypeset[columns={0,1,2}, dec sep align]{\test} \right\rgroup \pgfplotstabletypeset[columns={3}]{\test}$ \end{document} beantwortet 09 Okt '18, 20:37 cis |
Ich bin ein wenig verwirrt. Du hast in deinen anderen Fragen bereits eine Möglichkeit gefunden, deine Tabellen einzulesen und auszugeben. Jetzt willst du sie mit Klammern versehen, um aus ihnen Matrizen zu machen. Wieso kannst du nicht die Ausgabe einfach mit
$\left(\TabelleI\right)$
versehen?@Skillmon
a. Die Möglichkeiten, die ich in der anderen Frage gefunden habe, sind alle instabil. Sobald sich der Tabelleninhalt (dramatisch) ändert, fliegt einem die Methode um die Ohren.
b.
$\left(\TabelleI\right)$
geht deshalb nicht, weil die hintere Klammer nicht nach, sondern vor der letzten Spalte steht. Wenn man sie mit negativem\vspace
reinschmiert, wird es wieder unsauber (vgl. a)c. Ich glaube/vermute, die eleganteste Methode ist hier group-Klammern selbst zu zeichnen, sowie es amsmath sonst im Hintergrund macht. Aber dazu muss ich verstehen, was da gemacht wird.
Mit anderen Worten: es geht mir hier nicht um die einmalige Erstellung einer schicken Matrix, das habe ich ja mit zwei arrays umgesetzt, sondern um ein höheres Ziel.
Du kannst, wie im zweiten Beispiel mit
array
die letzte Spalte hinzufügen. Das wirkt insgesamt sauberer und einfacher, als sich inpgfplotstabletypeset
reinzuhacken (sollte dieses nicht bereits die Möglichkeiten bieten, die du benötigst, damit kenne ich mich nicht sonderlich gut aus).Wenn ich die Matrix mit pgfplotstable setze, die Annotationen aber als Standard-AMS array, würde das bedeuten: mein Projekt ist gescheitert. Gäbe auch dann keinen richtigen Grund mehr, überhaupt pgfplotstable zu verwenden. Das kann man machen, wenn man das einmalig in einem Artikel o.ä. braucht; dann ist der konventionelle Standardweg ausreichend.
Vielleicht könnte man es doch teils konventionell machen, wenn man diverse Abstände misst und damit den negativen
hspace
vor der schließenden Klammer bestimmt. Das dürfte sich dann zu einem Huhn-Ei-Problem entwickeln...Neue Idee:
Da ich nicht weiß, wie man an den Wert der Spaltenbreite kommt, theoretisch irgendwie so:
Mit Schleife Elemente der vor-letzten Spalte (das sind) durchleuchten.
Betragsmäßiges Maximum raussfiltern. Breite davon messen.
Schließende Klammer mit negativem hspace davor platzieren.
OMG - ein scheinbar triviales Problem...
@cis man kann sich auch ohne Probleme eine Struktur schreiben, die automatisiert mit
\pgfplotstabletypeset
und einemarray
für die Annotationen ausgegeben wird. Ich verstehe das Problem nicht.Ach sooo.... ich glaube, ich weiß, was Du meinst.... Oje, ... Hauptsache am Schluß steht mit
\Matrix
alles da.Ach, aber das ist doof, woran ich gerade denke: Ich würde versuchen mit
\pgfplotstablegetelem
die letzte Spalte auszulesen und das müsste dann in ein array automatisch reingehen und das ganze muss noch in ein newcommand, damit der Befehl\Matrix
da ist.Also ich glaube, das ist mir zu hoch - da verrenne ich mich total...
PS: Wobei... Schluss jetzt mit diesem array... Man kann für die pgfplotstable auch nur bestimmte Spalten anzeigen. Wenn man einmal
pgfplotatableread
gemacht hat, kann man das zweimal mitpgfplotstabletypeset
ausgeben.Eben einmal ohne letzte Spalte, einmal nur die letzte Spalte und dazwischen kommen Klammern.
Jaaaa... das könnte gehen. ;)