2010-06-26 4 views
0

모든 [일치 함]이 있다고 가정하고 [와 (와) 사이에 중괄호가있는 것으로 가정하고 (La) TeX 명령을 쓰려면 어떻게해야합니까? ] 균형이 잡혔습니까? 중첩 된 대괄호를 처리 할 수 ​​있어야합니다.밸런스 브래킷을 LaTeX의 균형 조정 괄호로 바꾸십시오.

예를 들어 명령을 작성하여 \mynewcommand{{[[{1}{2}][{3}{4}]]}}\mycommand{{{{{1}{2}}{{3}{4}}}}}과 같아야합니다.

+0

대괄호를 * 그룹화 * 문자 나 줄 바꿈 문자로 바꾸시겠습니까? –

+0

그룹핑 및 인수 전달 (즉, \ bgroup 및 \ egroup처럼 행동하는 것으로 충분하지 않음)으로 유효한 중괄호로 대체하려고합니다. –

답변

2

이 가장 쉬운 방법은 전자 텍 \ scantokens

이 # 1이 아니라 모든과 소재 \ 온도를 정의합니다
\newcommand*\mycommand[1]{% 
    \begingroup 
    \everyeof{\noexpand}% 
    \endlinechar=-1\relax 
    \catcode`\[=1\relax 
    \catcode`\]=2\relax 
    \edef\temp{\scantokens{#1}}% 
    \expandafter\endgroup 
    \expandafter\def\expandafter\temp\expandafter{\temp}% 
} 

을 사용하는 것입니다 "["... "]"쌍으로 전환 TeX 중괄호 그룹 ("{"... "}"). 그런 다음 \ temp를 사용하여 원하는대로 수행 할 수 있습니다. 내가 말했듯이, 모든 현대 TeX 시스템에서 사용할 수있는 e-TeX가 필요합니다.

관련 문제