나는 수년에 걸쳐 '이상한' TeX를 많이 작성했지만 TeX의 프로그래밍 환경이 완전히 부적합한 상황을 본 적이 없습니다. 그러나 나는 종종 단지조금
복잡한 매크로를 작성할 때 더 많은 도움이 됩니다. 저글링 중괄호, 조건문 및 트릭을 발견하는 것은
\string
재미 \romannumeral-1...
있었지만 약간 독특하다고 느꼈습니다. 이제(믿을 수 있다면 불과 한 달 전! 그리고 저는 20년 넘게 TeX를 사용해왔습니다!) LaTeX3 코드를 살펴보았는데( expl3
좀더 정확하게 말하면 아직 LaTeX를 사용할 수 없습니다), 사용하기가 거의 부끄러울 정도의 동일한 트릭이 많이 있습니다(일부 효과를 달성하는 약간 더 짧은 방법도 몇 가지 선택했습니다).
그렇다면 이 긴 소개 후에 원래 TeX의 프로그래밍 비효율성을 해결하는 TeX 확장에 대한 희망 목록은 무엇이며, 가능하다면 그 이유는 무엇입니까?
이상적으로 이것은짧은 목록(5개 항목 이하) 오직프로그램 작성환경이 해결되어야 합니다(예를 들어 TeX의 글꼴 처리, 기타 인쇄 문제 등은 관련이 없습니다. 주제에 대한 Frank Mittelbach의 논문은 해당 영역을 매우 잘 다루고 있습니다). 나는 일반적으로 TeX의 미니멀리스트 철학과 매크로 프로그래밍을 좋아하므로(C에서 임베디드 코드 작성으로 전환하면 날개가 달린 것처럼 느껴지지만) '그냥 LuaTeX를 사용하기'보다는 TeX 정신에서 더 많은 답을 찾고 있습니다. (저는 LuaTeX에 반대할 것이 없습니다.그 자체로그냥 좀 그런 느낌이야애드 혹; 프로그래밍을 한다는 것도 느껴져요너무 쉽다좋은 생각은 아닙니다). 대답이 '인 경우e-TeX(또는 다른 확장)는 이미 이 모든 작업을 수행하고 있으며 여기에 e-TeX의 선택이 더 나은 이유가 있습니다.', 자세히 설명해주세요.
나는 내 위시리스트부터 시작하겠습니다.
\xxpandafter{tokens}
-- 그룹을 따라 토큰을 확장합니다.
\iftoks{token list}{token list}
-- 두 개의 토큰 목록을 비교합니다(동일
\def\listone{...}\def\listtwo{...}\ifx\listone\listtwo ...
하지만 확장 가능).
\unlet token
-- 카테고리 코드, 문자 코드 토큰으로 확장되거나 토큰이 활성 문자/제어 시퀀스가 아닌 경우 해당 문자로 확장됩니다.
\numexpr
\endnumexpr
-- e-TeX와 동일( 대신 와 쌍을 이루기를 바랍니다 \relax
)
\batchxmode{...}
중괄호 안에 확장된 코드에 대한 오류 자동 복구를 허용합니다. 자체적으로는 아무것도 확장되지 않습니다(즉, 동일 \batchmode ... \errorstopmode
하지만 아무것도 확장되지 않음).