문서에서 미리 정의된 쉼표로 구분된 목록의 용도를 여러 번 변경하고 싶습니다. 최소한의 예로 예상대로 작동하지 않는 다음 코드를 살펴보십시오.
\documentclass{article}
\usepackage{xparse}
\newcommand*{\listtotestA}{
A,
B,
C
}
\def\listtotestB{
D,
E,
F
}
\ExplSyntaxOn
\NewDocumentCommand \teslist{m}{
\clist_map_inline:nn{#1}{
Output: ##1 \\
}
}
\ExplSyntaxOff
\begin{document}
\teslist{\listtotestA}
\\
\teslist{\listtotestB}
\end{document}
대신에
Output: A
Output: B
Output: C
Output: D
Output: E
Output: F
그것은 생산한다
Output: A,B,C
Output: D,E,F
내가 무엇을 놓치고 있나요?
답변1
접근 listofitems
방식.
\documentclass{article}
\usepackage{listofitems}
\newcommand*{\listtotestA}{
A,
B,
C
}
\def\listtotestB{
D,
E,
F
}
\newcommand\teslist[1]{%
\readlist*\mylist{#1}%
\foreachitem\x\in\mylist{Output: \x\\}%
}
\begin{document}
\noindent\teslist{\listtotestA}
\noindent\teslist{\listtotestB}
\end{document}