
Soy nuevo en LaTeX. En tabular
, generalmente usamos &
para partición. Quiero crear un .sty
entorno tabular. Reemplace &
con un delimitador de coma; en este caso, la coma debería funcionar como &
en el tabular
comando.
En .tex
el archivo, la entrada es a,b,c
y la salida debería verse así|a|b|c|
Respuesta1
Prueba de concepto. ¡Úselo bajo su propio riesgo!
El enfoque básico es cambiar \catcode
el carácter que desea utilizar como "pestaña de alineación". Aquí hay un mytabular
entorno 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}
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}
Respuesta3
Puedes usar el spalign
paquete.(documentación aquí), que incluye \spaligntabular
que 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:
y
El spalign
paquete también incluye comandos similares, como \spalignmat
para una matriz y \spalignarray
para 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 {}
.