PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger Verständnisfrage zur Syntax bzw. zu einem Befehl



Phantom
08-09-2013, 23:18
Liebe Helfer,

ich benutze das Paket dcolumn und habe eine Frage zu folgendem Befehl:


% Laut Dokumentation: d takes a single argument specifying the number of decimal places
\newcolumntype{d}[1]{D{.}{.}{#1}}


Im Netz habe ich nun folgenden Befehl gefunden, der - zumindest augenscheinlich - zum selben Ergebnis führt:


\makeatletter
\newcolumntype{d}[1]{>{\DC@{.}{.}{#1}}c<{\DC@end}}
\makeatother


Kann mir jemand die Syntax beim letztgenannten Befehl erklären?

Vielen Dank und liebe Grüße
Phantom

klops
09-09-2013, 08:00
>{…} und <{…} sind in der Anleitung zum array-Paket (http://www.ctan.org/pkg/array) erklärt. Den Rest soll Dir derjenige erklären, der das verbrochen hat. Übrigens würde ich Dir an Stelle des dcolum-Pakets mal einen tiefen Blick in die Anleitung des siunitx-Pakets (http://www.ctan.org/pkg/siunitx) empfehlen. Dieses stellt neben vielem anderen auch sehr schön konfigurierbare Zahlenspalten für Tabellen bereit.

localghost
09-09-2013, 08:56
\makeatletter
\newcolumntype{d}[1]{>{\DC@{.}{.}{#1}}c<{\DC@end}}
\makeatother

[…] Den Rest soll Dir derjenige erklären, der das verbrochen hat. […]
Das ist nichts anderes als die Variante, die dcolumn (http://ctan.org/pkg/dcolumn) intern verwendet. Kann in den Quellen des Pakets nachgesehen werden und steht so ziemlich am Ende des Codes. Wie allerdings ein normaler Nutzer ohne dieses Wissen daran gelangt, ist auch mir schleierhaft. Wahrscheinlich durch dubiosen Code nach einer Suche im Netz. Alle anderen Erklärungen sind ja schon geliefert worden.


Thorsten

klops
09-09-2013, 12:25
Das ist nichts anderes als die Variante, die dcolumn (http://ctan.org/pkg/dcolumn) intern verwendet.
Das entscheidende Wort dabei ist intern. Interne Anweisungen eines anderen Pakets sollte man ohne Not nicht verwenden. Hier erschließt sich mir kein Grund dafür, in einem Dokument darauf zurück zu greifen. Daher mein Verweis auf denjenigen, der das gemacht hat.

Phantom
09-09-2013, 12:47
Vielen lieben Dank für eure Antworten!


>{…} und <{…} sind in der Anleitung zum array-Paket erklärt.

Danke für den Hinweis.
Ich nehme jetzt einfach die Version aus der Anleitung des dcolumn Pakets. Ich hatte gehofft noch ein paar generelle Dinge zu erfahren, wie z.B. das, was @end macht. Sind das generelle LaTex Befehle oder bestimmte Befehle, die nur im Zusammenhang mit dem dcolumn Paket Sinn ergeben? Wie gesagt ich bin Anfänger und stolper immer wieder über Syntax, die ich überhaupt nicht verstehe und versuche ein wenig Licht in meine Dunkelheit zu bringen.


Übrigens würde ich Dir an Stelle des dcolum-Pakets mal einen tiefen Blick in die Anleitung des siunitx-Pakets empfehlen.

Ich hatte mir das siunity Paket schon angeguckt und hatte versucht es zu verwenden. Allerdings - und das liegt wahrscheinlich wieder nur ein meiner Unfähigkeit - habe ich es nicht geschafft, die Ausrichtung innerhalb des "S column" zu verändern. Das Dezimalzeichen ist immer zentriert, also mittig in der Spalte. Beim dcolumn Paket kann ich die Ausrichtungen der Zahlen flexibel mit der Angabe der Dezimalstellen ändern. So versteht wahrscheinlich niemand was ich meine.

\newcolumntype{d}[1]{D{.}{.}{#1}}
Wenn ich jetzt Zahlen mit einer Vorkomma- und drei Nachkommastellen habe, kann ich deren Ausrichtung anpasssen, je nachdem ob ich sie z.B. in eine d{1.7} oder d{1.3} packe...das geht mit siunity bestimmt auch irgendwie, aber ich habe es nicht geschafft.

Viele liebe Grüße
Sanjoy

sudo
09-09-2013, 17:15
Bin bin mir tatsächlich nicht ganz sicher, ob ich verstanden hätte, was du meinst. Ich glaube aber, dass das mit dem siunitx ebenfalls ganz einfach geht. Sieh mal auf Seite 51ff der Anleitung (ftp://ctan.tug.org/pub/tex/macros/latex/exptl/siunitx/siunitx.pdf). Stichwort <code>table-format</code>

klops
10-09-2013, 07:23
`@end` ist kein Befehl. Befehle beginne bei LaTeX mit einem `\`. `\DC@end` ist ein internes Makro. Näheres zu `@` in Makronamen ist in Markus Kohms Artikel in der aktuellen DTK (http://www.dante.de/DTK.html) zu erfahren, die man beispielsweise bekommt, wenn man noch für dieses Jahr eine kostengünstige Schnuppermitgliedschaft (http://www.dante.de/index/Intern/Mitglied.html#SchnupperMitglied) abschließt.

Phantom
16-09-2013, 16:20
Vielen Dank für eure Antworten und Hinweise!