Latex - 如何以保存方式定义命令宏

Latex - 如何以保存方式定义命令宏

使用:Latex -> pdfLatex,并且还加载我编写的另一个 tex 文件:

\input{\myPath anotherDocument.tex}
%% there is a "private" macro:
\def\foo#1{$\backslash$def$\backslash$#1$\{$the name$\}$}
%% doesn't compile without $

%% all happens before
\begin{document}

1) 为什么我不能像其他宏一样定义宏?因为所有其他宏的定义都没有 $,但也包含类似 \foo{} 的命令。
2) $ 有什么用?
3) * 有什么用?
4) 为什么有些包会互相影响?
5) 为什么 Latex 语法不一致?
6) Latex 有什么问题?

答案1

  • LaTeX 没有任何问题。

  • LaTeX 的语法可能不是最好的,但它是一致的。

  • 包之间会互相影响,因为这是软件的工作方式。

  • *打印星号;但在某些情况下,放在命令后面会修改其行为。

  • $进入数学模式,用于排版数学公式

  • 以安全的方式定义\foo宏。不要尝试排版反斜杠。


你想要那个

\foo{xyz}

执行

\def\xyz{the name}

因此,您必须在参数中添加反斜杠,或者最好用该名称形成一个符号标记。这可以通过\csname...\endcsname或 在 LaTeX 内核中通过获得\@namedef

\makeatletter
\def\foo#1{\@namedef{#1}{the name}}
\makeatother

这很容易,不是吗?

你所做的就是定义

\foo{xyz}

生产

$\backslash$def$\backslash$xyz$\{$the name$\}$

这对有好处印刷某物,不是为了定义。

相关内容