파싱하고 싶은 화학 화합물 목록이 포함된 CSV 파일이 있는데, 이를 통해 \ce{}
좋은 mhchem
화학 표기법으로 변환됩니다. 원시 문자열을 작업 인수로 사용하는 동안 \ce{}
동일한 문자열이 명령으로 제공되면 매크로는 아무 작업도 수행하지 않습니다.
\documentclass{scrartcl}
\begin{filecontents*}{foo.csv}
Molecule
CH4
\end{filecontents*}
\usepackage{datatool}
\usepackage{mhchem}
\DTLloaddb{foo}{foo.csv}
\DTLgetvalue{\methane}{foo}{1}{1}
\begin{document}
CH4
\methane
\ce{CH4}
\ce{\methane}
\end{document}
수확량
따라서 아무것도 하지 않는 것입니다( 아래 첨자로 \ce{\methane}
넣어야 합니다 ).4
답변1
\ce
인수를 확장해야 하는 것 같습니다 (아마도 \ce
구문 분석하기 때문에).\expandafter
인수가 올바른 형식인지 확인하려면 다음을 수행하세요.
\expandafter\ce\expandafter{\methane}
설명
내부에서 \ce
활성 문자(예 ^
: _
및 {
)는 다른 의미를 갖습니다. 직관적인 의미이지만 기술적으로 표준 LaTeX와는 매우 다릅니다. 따라서 \ce
확장되지 않은 입력을 구문 분석해야 합니다.
이 특별한 경우에 \ce
발견된 \methane
다음 화학적 포맷을 수행했습니다. 화학적으로 보이지 않기 때문에 그냥 복사해서 나중에 CH4
.
\expandafter\ce\expandafter{\methane}
그것을 살펴보기 전에 \methane
확장되었는지 확인하십시오 .CH4
\ce
팁
이에 대한 고유한 명령을 만들 수 있습니다.
\newcommand*\myce[1]{\expandafter\ce\expandafter{#1}}
간단하게 쓸 수 있도록
\myce{\methane}