표에서 & 대신 쉼표를 사용하세요.

표에서 & 대신 쉼표를 사용하세요.

저는 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}

이는 다음을 생성합니다.

편평형 예

그리고

편평형 예제 2

패키지 에는 행렬 및 일반 배열 spalign과 같은 유사한 명령도 포함되어 있습니다 .\spalignmat\spalignarray

공백, 쉼표 및 세미콜론 대신 또는 그에 추가하여 다른 문자를 사용하는 옵션이 있습니다(문서 참조).

그런데 테이블에 쉼표, 공백 또는 세미콜론을 포함해야 하는 경우 중괄호로 묶으면 됩니다 {}.

관련 정보