与我的名义任务相关:
- LaTeX 宏扩展器
- https://stackoverflow.com/questions/1509799/how-to-replace-latex-macros-with-their-definitions-using-latex
- https://stackoverflow.com/questions/2462656/transform-a-tex-source-so-that-all-macros-are-replaced-by-their-definition
我感兴趣的原因(可能与找到我所寻找的内容有关):
- 当通过在线文件共享程序(例如 Dropbox)协作处理单个 .tex 文件时,我不想插入我个人定义的宏(例如
\newcommand{\infwrt}[2]{\inf\limits_{\scriptscriptstyle\mathclap{#2}}#1}
),但我仍然想使用方便的宏,然后简单地转换我的 .tex 文件,然后复制粘贴我写作的标准定义版本。 - 上述原因促使我寻找解决方案,但对我来说,一个更古老的原因是我更喜欢在具有自动填充等出色功能的 tex 编辑器(例如 TeXstudio)中输入内容,因此当我浏览 Math StackExchange 并找到我想要回答的问题时,如果没有编辑器,可能需要一段时间。使用编辑器,我可以快速输入答案,并且理想情况下可以将个人定义的宏转换为标准定义的命令。
我尝试研究“de-macro”,根据 CTAN 页面:
我需要使用 Python。所以我下载了 Python 3.5.2,但不知道接下来该怎么做。我正在寻找替代解决方案,但如果您精通如何使用“de-macro”,那么指南将非常有帮助。提前致谢!
答案1
该包期望您的私有宏将放在您通过其加载的单独文件中\usepackage
,该文件的结尾为-private.sty
:
% mydefs-private.sty
\newcommand{\trythis}[3]{I'm juggling #1, #2, and #3}
\renewcommand{\trythis}[4]{I'm juggling #1, #2, and #3 --- no! and #4}
然后以正常方式将该包加载到 .tex 文件中:
% original mytexfile.tex
\documentclass{article}
\usepackage{mydefs-private}
\begin{document}
\trythis{cats}{dogs}{parrots}{lizards}
\end{document}
然后运行命令de-macro
:
de-macro mytexfile.tex
这将生成一个名为 的新文件mytexfile-clean.tex
,其内容如下所示:
% original mytexfile.tex
\documentclass{article}
\begin{document}
I'm juggling cats, dogs, and parrots --- no! and lizards
\end{document}
对于基本用途来说,它似乎足够简单;但我毫不怀疑您可以轻松构建使程序混乱的宏。