
저는 LaTeX를 처음 접했습니다. 에서는 일반적으로 파티션에 tabular
사용합니다 . 테이블 형식 환경을 &
만들고 싶습니다 . 쉼표 구분 기호로 .sty
바꾸십시오 &
. 이 경우 쉼표는 명령 &
에서처럼 작동해야 합니다 tabular
.
.tex
파일 에서 입력은 다음 a,b,c
과 같으며 출력은 다음과 같아야 합니다.|a|b|c|
답변1
개념의 증거. 자신의 책임하에 사용하십시오!
기본적인 접근 방식은 \catcode
"정렬 탭"으로 사용하려는 문자를 변경하는 것입니다. mytabular
이를 수행하는 환경 은 다음과 같습니다 .
\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}
선택적 인수를 사용하면 정렬 탭으로 사용되는 문자를 선택할 수 있습니다. 전달한 문자가 유효한지 확인하기 위한 어떠한 확인도 수행되지 않습니다. 문자를 전달하지 않으면 쉼표가 사용됩니다. &
일반 캐릭터처럼 행동합니다 .
그러나 다른 사람들이 이미 경고했듯이 이것은 최선의 생각이 아닙니다. &
정렬 탭 에 의존하는 패키지는 중단됩니다.
답변2
Bernard가 제안한 것처럼 왜 사용하지 않습니까 csvsimple
?
셀에 쉼표가 있는 경우 내용을 중괄호 안에 입력하세요.
셀에 &가 있으면 \&
.
\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}
답변3
spalign
패키지 를 이용하시면 됩니다(여기에 문서가 있습니다)\spaligntabular
, 정렬 문자로 공백과 쉼표를 모두 사용하고 &
행 끝 제어 시퀀스로 세미콜론을 사용한다는 점을 제외 하면 테이블 형식과 정확히 동일하게 작동합니다 \\
.
\documentclass[12pt]{report}
\usepackage{spalign}
\begin{document}
\spaligntabular{lcr}{a b c; aa bb cc}
\spaligntabular{|c|c|c}{a,b,c}
\end{document}
이는 다음을 생성합니다.
그리고
패키지 에는 행렬 및 일반 배열 spalign
과 같은 유사한 명령도 포함되어 있습니다 .\spalignmat
\spalignarray
공백, 쉼표 및 세미콜론 대신 또는 그에 추가하여 다른 문자를 사용하는 옵션이 있습니다(문서 참조).
그런데 테이블에 쉼표, 공백 또는 세미콜론을 포함해야 하는 경우 중괄호로 묶으면 됩니다 {}
.