
다음 문자에 따라 테이블 형식 환경 내부 \hline
및 내부 로 확장되는 매크로를 정의하고 싶습니다 .\cline
\documentclass{standalone}
\makeatletter
\def\mycline[#1]{\cline{#1}}
\def\myline{\@ifnextchar[{\mycline}{\hline}} % Does not work. Either misplaced \noalign or \omit
\makeatother
\begin{document}
\begin{tabular}{cc}
a1 & a2 \\
\myline
b1 & b2 \\
\myline[1-2]
\end{tabular}
\end{document}
불행하게도 이로 인해 위치가 잘못 \noalign
되거나 \omit
(또는 둘 다) 발생합니다. \@ifnextchar
시간이 지나도 완전히 확장되지는 않는 것 같습니다 . 어떤 아이디어?
답변1
스캔 작업 방식으로 인해 \noalign
확장할 수 없는 명령(여기서는 \futurelet
에서 사용됨 \@ifnextchar
)이 새 정렬 셀을 시작하고 행을 삽입하기에는 너무 늦습니다.
그룹 내에서 선택적 인수를 검색해야 합니다 \noalign
.
\documentclass{standalone}
\makeatletter
\def\myline{%
\noalign\bgroup
\@ifnextchar[%
{\aftergroup\mycline\egroup}%
{\aftergroup\hline\egroup}%
}
\def\mycline[#1]{\cline{#1}}
\makeatother
\begin{document}
\begin{tabular}{cc}
a1 & a2 \\
\myline
b1 & b2 \\
\myline[1-1]
c1 & c2
\end{tabular}
\end{document}
왜 문제를 찾고 있습니까?;-)