robust-commands

如何扩展元素包以打印熔点和沸点?
robust-commands

如何扩展元素包以打印熔点和沸点?

根据我的计划,我想扩展该elements包以打印化学元素的熔点和沸点。使用elements包中使用的相同逻辑,我考虑创建如下命令: % default: unit=kelvin \DeclareAtomMeltingPoint[unit=kelvin|celsius|fahrenheit]{<atomic number>}{<temperature>} 调用以下命令之一: % Used before begin document or in packages/classes \DeclareAtomMeltin...

Admin

使命令变得健壮(牢不可破)
robust-commands

使命令变得健壮(牢不可破)

如果您使用 定义,\bletter它\DeclareRobustCommand\bletter[1]{\textbf{#1}}甚至可以在部分命令中正常工作。但是如果您想在\edef或\xdef命令中使用它,\bletter就会被破坏(除非您定义了\let\protect\noexpand)。这意味着: \xdef\boldyletter{\bletter{y}}将抛出一条错误消息。 是否有任何命令可以定义始终牢不可破的命令? ...

Admin

什么命令应该取代 \DeclareRobustCommand?
robust-commands

什么命令应该取代 \DeclareRobustCommand?

clsguide.pdf在(链接:)的第 6.1 节中https://www.ctan.org/pkg/clsguide,在“被新材料取代的命令”下,课程指南将命令\DeclareRobustCommand和\DeclareRobustCommand*列为“被广泛使用但已被更现代的方法取代”的命令。 那么,我的问题是,什么命令最适合代替上述命令?除非我弄错了,否则课程指南不会提供此信息。在 中source2e.pdf,\DeclareRobustCommand的使用频率很高。 ...

Admin

如何实现在强大的命令中下标/上标随着字体大小缩放?
robust-commands

如何实现在强大的命令中下标/上标随着字体大小缩放?

我想在用户定义的 LaTeX 命令中使用较小的字体作为下标和上标。您知道如何按比例缩小下标/上标吗?我的 MWE 如下: \documentclass{article} \usepackage{etoolbox} \usepackage{ifmtarg} \newcommand{\defineSpecies}[2]{\csdef{spec@#1}{#2}} \newrobustcmd{\spec}[1]{% \ifcsname spec@#1\endcsname% \csuse{spec@#1}% \else \GenericEr...

Admin

\NewDocumentCommand vs \newcommand vs \NewExpandableDocumentCommand(定义文本容器)
robust-commands

\NewDocumentCommand vs \newcommand vs \NewExpandableDocumentCommand(定义文本容器)

在他的回答对于我最近的一个问题,@egreg 建议\newcommand不要\NewDocumentCommand为文本定义容器。我知道这个问题(10年了!)在哪里: Joseph Wright 回答说:“从概念上讲,\NewDocumentCommand它旨在让‘软件包作者’定义命令”。但是,用它定义可选参数(甚至是带星号的变体)要简单得多,\NewDocumentCommand我不明白为什么不建议文档作者使用它。 Ulrike Fischer 回答说:“用 定义的宏\NewDocumentCommand是健壮的,当移动到 时,它们不会扩展”。但她给出...

Admin

如何创建一个接受数学参数的新命令?
robust-commands

如何创建一个接受数学参数的新命令?

因此,我一直在尝试制作一个命令来显示我对限制的非常特殊的符号,但我相信其中的部分涉及文本命令,而其他部分涉及数学命令,我认为我已经正确考虑了每一个,但我仍然收到有关参数不在数学模式的错误: 命令: \usepackage{amssymb} \usepackage{graphics} \DeclareRobustCommand{\rest}[1]{\text{\raisebox{-5.8pt}{\scalebox{1}[2.6]{$\upharpoonright$}_{\ensuremath{#1}}}\hspace{-7pt}}} 可以工作,但我仍然收到有...

Admin

如何使 \mathbf 变得健壮?
robust-commands

如何使 \mathbf 变得健壮?

我创建了一个命令\statementinput,它可以根据给定的两个元素列表轻松创建表格。大多数元素都是数学公式,我不想将它们每个都放在里面\(\),所以我使用了array里面的环境\[\]。 当我\mathrm在一个元素中使用时,它给出了错误。我认为原因是它\mathrm很脆弱,所以我添加了它\robustify{\mathrm},一切似乎都很好。 现在我需要使用\mathbf。 仍然\robustify{\mathbf}有效,但现在\(\mathbf{A}\)在正常的地方使用不起作用,给出错误Use of \reserved@a doesn't matc...

Admin

在 `algpseudocode` 中使用 `\(...\)`
robust-commands

在 `algpseudocode` 中使用 `\(...\)`

有没有办法在( )\(...\)中的任何命令的参数中使用较新的数学语法?文档和几乎所有其他教程都使用 TeX-primitive 。algpseudocodealgorithmicx$...$ 梅威瑟: \documentclass{article} \usepackage{algorithm} \usepackage{algpseudocode} \begin{document} \begin{algorithm} \begin{algorithmic} \For{\(i \gets 0\) to \(n\)} % break...

Admin

\subfile 扩展了强大的命令(因此在这方面与 \input 不同)
robust-commands

\subfile 扩展了强大的命令(因此在这方面与 \input 不同)

我_在非数学中将其作为不可破坏的破折号超载,并且这不会造成任何问题\input: \documentclass{article} \usepackage{babel} \let\subscr=_ \catcode`_=\active \DeclareRobustCommand_{\ifmmode\subscr\else\babelhyphen{nobreak}\fi} \begin{document} a_b ; \input{a_b.tex} \end{document} 使用空文件a_b.tex,可以成功编译。 但是,更改\input为\subfile...

Admin

Halloweenmath 包与 hyperref 冲突
robust-commands

Halloweenmath 包与 hyperref 冲突

最近我在做一些讲义,我想halloweenmath在我的讲义中使用该软件包。当我用软件包中的符号标记一些方程式(例如\mathwitch等)并想交叉引用这些“万圣节标记”方程式时,会出现问题:出现很多错误。 \usepackage{amsmath, hyperref, halloweenmath} ... \begin{equation} \label{mathwitch} R(z) = \sum_{i=1}^q R_i(z) \prod_{j\ne i} (z-\lambda_j)^{k_j}. \tag{$\mathwitch$} \end{...

Admin

正确地重新定义 \eqref 以允许后置文本和前置文本
robust-commands

正确地重新定义 \eqref 以允许后置文本和前置文本

从 开始amsmath.dtx,原来的定义是: \DeclareRobustCommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}} 我想重新定义它,以便在括号中包含后置和前置文本。我当前的代码如下: \RenewDocumentCommand \eqref { O{} O{} m } { \textup { \tagform@ { #2 \ref{#3} #1 } } } 但是,原始定义使用DeclareRobustCommand这使得命令更强大(虽然我不知道这是什么意思)。我需要对上面的版本做类...

Admin

为什么没有 \ProvideCommandCopy?
robust-commands

为什么没有 \ProvideCommandCopy?

当我们查看xparse软件包文档时,有四个相关命令 \NewDocumentCommand \RenewDocumentCommand \ProvideDocumentCommand \DeclareDocumentCommand 同样,环境命令有四个。当我了解到时,\NewCommandCopy我预计会有类似的四个命令可用。但查看 LaTeX 源代码时,我只发现 \NewCommandCopy \RenewCommandCopy \DeclareCommandCopy 已定义。 是否存在\ProvideCommandCopy未定义的技术原因? 编辑:示...

Admin

ntheorem 包似乎不遵循 LaTeX 内核的旧保护机制
robust-commands

ntheorem 包似乎不遵循 LaTeX 内核的旧保护机制

这个问题与我对这个问题的回答有关 从引用构建数学上标/下标 (\ref使用 hyperref 和 cleveref 加载: [...] 在下面的例子中,这是通过根据 定义事物来实现的\protected\def。(由于某些不为人知的原因,当将 thm 文件的条目写入 aux 文件\DeclareRobustCommand时,无法正常工作。)\@writefile \DeclareRobustCommand属于 LaTeX 内核的旧保护机制/属于 LaTeX 内核的旧扩展预防机制。 当使用\addcontentsline将条目放入辅助文件中时,要遵守\@...

Admin

为什么空格 make 无法评估 \bibliography 中的命令
robust-commands

为什么空格 make 无法评估 \bibliography 中的命令

我创建了一个命令,其中包含一个以逗号和空格分隔的 bib 文件列表。然后,我将此命令提供给\bibliography,它不会产生任何参考书目。 如果我创建相同的列表但仅用逗号分隔(没有空格),则会生成参考书目。 以下是 MWE: \documentclass{article} \newcommand{\PathBaseBib}{./biblioA.bib, ./biblioB.bib} % this is not working %\newcommand{\PathBaseBib}{./biblioA.bib,./biblioB.bib} %...

Admin

使用 imakeidx 和宏在第二个索引中列出代码
robust-commands

使用 imakeidx 和宏在第二个索引中列出代码

我正在编写一个包含 Python 代码的 LaTeX 文档,我使用 Listings 包通过名为 的宏将其包含在内\example{}。它使用另一个名为 的宏,\code{}该宏也使用 Listings 包来完成基本操作\texttt{},但无需转义下划线(例如在文件名中)。 \example{base_name}{description}获取文件的基本名称和简短说明,然后将其扩展为完整文件名base_name_ex.py(用于代码示例;我有类似的宏来包含其他代码片段),在 中包含文件Python/base_name_ex.py,创建标题\code{bas...

Admin