Verwenden Sie in der Tabelle ein Komma statt &

Verwenden Sie in der Tabelle ein Komma statt &

Ich bin neu in LaTeX. In tabularverwenden wir im Allgemeinen &für Partitionen. Ich möchte eine .stytabellarische Umgebung erstellen. Ersetzen Sie es &durch ein Komma als Trennzeichen. In diesem Fall sollte das Komma wie &im tabularBefehl funktionieren.

In .texder Datei ist die Eingabe a,b,cund 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 \catcodeSie als „Ausrichtungstabulator“ verwenden möchten. Hier ist eine mytabularUmgebung, 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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

Antwort3

Sie können das spalignPaket verwenden(Dokumentation hier), das Folgendes enthält, \spaligntabularverhä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:

spaligntabular Beispiel

Und

spaligntabular Beispiel 2

Das spalignPaket enthält auch ähnliche Befehle, beispielsweise \spalignmatfür eine Matrix und \spalignarrayfü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 {}.

verwandte Informationen