
Ich bin neu in LaTeX. In tabular
verwenden wir im Allgemeinen &
für Partitionen. Ich möchte eine .sty
tabellarische Umgebung erstellen. Ersetzen Sie es &
durch ein Komma als Trennzeichen. In diesem Fall sollte das Komma wie &
im tabular
Befehl funktionieren.
In .tex
der Datei ist die Eingabe a,b,c
und die Ausgabe sollte so aussehen|a|b|c|
Antwort1
Proof of Concept. Nutzung auf eigene Gefahr!
Der grundlegende Ansatz besteht darin, das Zeichen zu ändern, das \catcode
Sie als „Ausrichtungstabulator“ verwenden möchten. Hier ist eine mytabular
Umgebung, die das tut:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentEnvironment {mytabular} { O{\,} }
{
\char_set_catcode_other:N \&
\char_set_catcode_alignment:n {`#1}
\begin{tabular}
}
{
\end{tabular}
}
\ExplSyntaxOff
\begin{document}
\pagestyle{empty}
\begin{mytabular}{l|r}
a , b & c \\
c , d \\
\end{mytabular}
\begin{mytabular}[@]{l|r}
a @ b \\
c @ d, & e \\
\end{mytabular}
\end{document}
Mit dem optionalen Argument können Sie auswählen, welches Zeichen als Ausrichtungstabulator verwendet wird. Es wird keinerlei Überprüfung durchgeführt, ob das von Ihnen übergebene Zeichen gültig ist. Wenn Sie kein Zeichen übergeben, wird ein Komma verwendet. Das &
verhält sich wie ein normales Zeichen.
Wie andere Sie jedoch bereits gewarnt haben, ist dies nicht die beste Idee. Pakete, die auf &
einer Ausrichtungsregisterkarte basieren, werden beschädigt.
Antwort2
Wie Bernard vorgeschlagen hat: Warum verwenden Sie nicht csvsimple
?
Wenn Ihre Zellen Kommas enthalten, setzen Sie den Inhalt einfach in geschweifte Klammern.
Wenn Sie & in Ihren Zellen haben, schreiben Sie einfach \&
.
\documentclass{article}
\usepackage{filecontents}
\usepackage{csvsimple}
\begin{document}
\begin{filecontents*}{mydata.csv}
a,b,c
\end{filecontents*}
\csvreader[
tabular=|c|c|c|,
nohead
]{mydata.csv}% filename
{}{\csvcoli & \csvcolii & \csvcoliii}
\vspace{3ex}
and if you have commas or \& in your cells:
\vspace{3ex}
\begin{filecontents*}{mydata.csv}
a,b,c
{c, d},{e, f, g},{h, i, j, k}
l \& m,{n \& o, p},q \& r \& s \& t
\end{filecontents*}
\csvreader[
tabular=|c|c|c|,
nohead
]{mydata.csv}% filename
{}{\csvcoli & \csvcolii & \csvcoliii}
\end{document}
Antwort3
Sie können das spalign
Paket verwenden(Dokumentation hier), das Folgendes enthält, \spaligntabular
verhält sich genau wie tabellarisch, außer dass es sowohl Leerzeichen als auch Kommas als Ausrichtungszeichen &
und ein Semikolon als Steuersequenz für das Zeilenende verwendet \\
:
\documentclass[12pt]{report}
\usepackage{spalign}
\begin{document}
\spaligntabular{lcr}{a b c; aa bb cc}
\spaligntabular{|c|c|c}{a,b,c}
\end{document}
Es ergibt sich folgendes:
Und
Das spalign
Paket enthält auch ähnliche Befehle, beispielsweise \spalignmat
für eine Matrix und \spalignarray
für ein generisches Array.
Es gibt Optionen, anstelle von oder zusätzlich zu Leerzeichen, Komma und Semikolon andere Zeichen zu verwenden (siehe Dokumentation).
Übrigens: Wenn Sie in Ihrer Tabelle ein Komma, ein Leerzeichen oder ein Semikolon einfügen müssen, schließen Sie es einfach in Klammern ein {}
.