我怎样才能将任意字符串(可能包含特殊字符甚至宏名)原封不动地分配给变量?例如像这样:\newcommand{\mystring}{\assignstring{abc{}\w'\macroname \\}}
结果必须为(至少为\meaning\mystring
):“abc{}\w'\macroname \”
答案1
您可以存储任意字符串逐字变成宏使用\verbdef
(verbdef
包)或\Verbdef
(newsverb
包)。
两者的区别在于,前者定义的宏包括打印文档中的文本所需的所有字体命令。后者仅存储字符,因此它们也可以打印到辅助文件中,而这在包含字体命令的情况下是无法实现的。
\documentclass{article}
\usepackage{verbdef}
\usepackage{newsverb}
\begin{document}
% In preamble or body
\verbdef\mystringprintable|abc{}\w'\macroname \\|
\Verbdef\mystringplain|abc{}\w'\macroname \\|
% To print:
\mystringprintable
\texttt{\mystringplain}
\end{document}
答案2
不清楚你的意思(部分原因是术语,Tex 没有字符串或变量)但我怀疑你想要这样的东西
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{verbdef}
\verbdef\mystring|{abc{}\w'\macroname \\###|
\begin{document}
\mystring
\end{document}