使用: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$\}$
这对有好处印刷某物,不是为了定义。