Utilice coma en lugar de & en la tabla

Utilice coma en lugar de & en la tabla

Soy nuevo en LaTeX. En tabular, generalmente usamos &para partición. Quiero crear un .styentorno tabular. Reemplace &con un delimitador de coma; en este caso, la coma debería funcionar como &en el tabularcomando.

En .texel archivo, la entrada es a,b,cy la salida debería verse así|a|b|c|

Respuesta1

Prueba de concepto. ¡Úselo bajo su propio riesgo!

El enfoque básico es cambiar \catcodeel carácter que desea utilizar como "pestaña de alineación". Aquí hay un mytabularentorno que hace eso:

\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}

ingrese la descripción de la imagen aquí

El argumento opcional le permite elegir qué carácter se utiliza como pestaña de alineación. No se realiza ninguna verificación para ver si el carácter que pasaste es válido. Si no pasa un carácter, se utiliza una coma. Se &comporta como un personaje normal.

Sin embargo, como ya os advirtieron otros, esta no es la mejor idea. Los paquetes que dependen de &una pestaña de alineación se romperán.

Respuesta2

Como sugirió Bernard, ¿por qué no usarlo csvsimple?

Si tiene comas en sus celdas, simplemente coloque el contenido entre llaves.

Si tienes & en tus celdas, simplemente escribe \&.

\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}

ingrese la descripción de la imagen aquí

Respuesta3

Puedes usar el spalignpaquete.(documentación aquí), que incluye \spaligntabularque actúa exactamente como tabular, excepto que utiliza espacio y coma como carácter de alineación &y punto y coma como secuencia de control de fin de fila \\:

\documentclass[12pt]{report}
\usepackage{spalign}

\begin{document}

\spaligntabular{lcr}{a b c; aa bb cc}

\spaligntabular{|c|c|c}{a,b,c}

\end{document}

Produce esto:

ejemplo espaligtabular

y

ejemplo espaligtabular 2

El spalignpaquete también incluye comandos similares, como \spalignmatpara una matriz y \spalignarraypara una matriz genérica.

Hay opciones para usar diferentes caracteres en lugar de, o además de, espacio, coma y punto y coma (consulte la documentación).

Por cierto, si necesita incluir una coma, un espacio o un punto y coma en su tabla, simplemente enciérrelo entre llaves {}.

información relacionada