条件数学符号

条件数学符号

在我的私人笔记中,我使用非标准数学符号:我喜欢用 0 来表示空集。如果我在论文中这样做,我的导师会很不喜欢,这很合理。所以,我希望在我的论文版本和\emptyset 他的(以及其他人)的论文版本中使用 0。

理想情况下,我只能拥有一个版本的 LaTeX 源,它可以生成两个不同版本的论文。更好的是,它会生成一个 PDF 文件,在我的环境中显示 0,而 \emptyset在他的环境中显示结果。(我使用 Debian,他使用 Mac OS 作为我们的工作站。)

这些有可能吗?这里似乎有几个问题需要解决 - 解释两个符号大小的差异,并实际实现条件。

答案1

老年人(包括很多教授和我)倾向于阅读打印在纸上的文档。因此,您可能会创建一个打印出来的文档,其显示效果与 PDF 查看器中显示的文档不同(前提是使用符合标准的查看器,例如 AR,这对这群人来说很可能会发生):

\documentclass{article}

\usepackage{ocgx2}

\newcommand\0{%
  \makebox[0pt][l]{%
   \begin{ocg}[printocg=never, showingui=never]{for me}{forMe}{on}
     0
   \end{ocg}%
  }%
  \begin{ocg}[printocg=always, showingui=never]{for print}{forPrint}{off}
    \emptyset
  \end{ocg}%
}

\begin{document}

Is $\0=0$?

\end{document}

答案2

您可以重新定义您的版本/您的机器中设置的方式\emptyset,但要使其与他的版本/他的机器中的原始定义相匹配。为此,我假设您只会共享您的.tex源代码(也许还有一些图像)。但是,在您的工作文件夹中保留一个名为 的特殊文件,emptysetaszero.tex其中包含以下内容

\AtBeginDocument{\renewcommand{\emptyset}{0}}% Your new definition for \emptyset

现在,在你的论文中添加

\InputIfFileExists{}{emptysetaszero}% Update the way \emptyset is represented

如果文件存在 - 在您的机器上 -emptysetaszero.tex将被输入,这将重新定义显示方式\emptyset。如果文件不存在 - 在他的机器上 - 则不会发生任何事情。一个来源,两个不同的结果,只要emptysetaszero.tex不共享。

\emptyset我们推迟对的重新定义\AtBeginDocument,以防其他事物(包)也可能对其进行重新定义。

答案3

我会定义一个新的布尔值,例如\newif\ifUnofficial,然后使用它作为开关,根据您的喜好给出不同的定义。话虽如此,我建议使用标准符号:)

\documentclass{article}
\newif\ifUnofficial
\Unofficialtrue   % mine versions
%\Unofficialfalse % the rest of the world

\ifUnofficial
  \newcommand\0{0}
\else
  \newcommand\0{\emptyset}
\fi
\begin{document}

Is $\0=0$?

\end{document}

相关内容