csname

检查嵌套的 `\csname…\endcsname` 时理解 `\expandafter`
csname

检查嵌套的 `\csname…\endcsname` 时理解 `\expandafter`

请考虑以下 MWE,它是摘录自更大的项目。 场景是定义一个条件\IfComp{<number>}{<defined>}{<undefined>}查询,最终控制序列(在本例中)是否\csname test-<number>\endcsname通过中间控制序列定义(\csname macro-<number>\endcsname)。 \documentclass{minimal} \makeatletter \parindent\z@ \expandafter\def\csname test-1\end...

Admin

包装命令(参数化) - csname 问题
csname

包装命令(参数化) - csname 问题

我想用另一个命令“包装”现有命令。 例如,假设有一条命令 \cmda 我希望每次调用这个函数时我们最终都会执行: \wrapper{some text}{\cmda} 如果这只是一个命令,我知道如何执行此操作: \let\oldcmda{\cmda} \renewcommand{\cmda}{\wrapper{some text}{\oldcmda}} 然而,我希望这个过程是自动化的。 例如: \wrapcmd{cmda}{Some text for cmda} \wrapcmd{cmdb}{Some other text for cmdb} \wra...

Admin

如何定义一个将另一个命令复制为不同名称的命令?
csname

如何定义一个将另一个命令复制为不同名称的命令?

我希望创建一个命令来自动执行下面的过程 \let\oldhat\hat 使用以下格式: \let\old(ARGUMENT)\(ARGUMENT) 我试过 \newcommand{\makeold}[1]{ \expandafter\let\csname old#1\endcsname\csname#1\endcsname} \makeold{hat} %This should rename \hat to \oldhat 但这给了我一个错误,说我有太多的\endcsname。我误解了 的目的吗\csname? 编辑:我忘记了\l...

Admin

如何使用 \csname 调用带有参数的命令?
csname

如何使用 \csname 调用带有参数的命令?

我有一个函数可以重新定义给定的三角函数,以便 \cos[2]{\frac{1}{2}} 和 \cos^2\!\pqty{\frac{1}{2}} 最后看起来就像这样: ,我使用\pqty(来自physics包)来自动缩放括号中的内容。我创建了以下命令来执行此操作: \newcommand{\makeold}[1]{ \expandafter\let\csname old#1\expandafter\endcsname \csname#1\endcsname }%This makes it so that \makeold{cos}...

Admin

如何在带有 bash 词法分析器的 minted 环境中使用 escapeinside?
csname

如何在带有 bash 词法分析器的 minted 环境中使用 escapeinside?

escapeinside 功能无法与 bash 词法分析器正常配合使用。有什么方法可以修复此问题吗? 梅威瑟: \documentclass{article} \usepackage{minted} \begin{document} \begin{minted}[escapeinside=||]{bash} #!/bin/bash echo "Hello world!" |\textrm{Some commentary here}| \end{minted} \end{document} ...

Admin

通过 newcommands 参数调用 latex 中的变量
csname

通过 newcommands 参数调用 latex 中的变量

我想通过 LaTex 中的一些计算使我的生活更轻松,因此我定义了一个复合特定变量,称为\compound1molarmass。我用来\newcommand从 调用另一个函数,chemmacros所以我需要将 #1 设置为compound1。要执行计算,我需要调用\compound1molarmass,并且我想使用#1从 来\newcommand执行此操作。 因此类似于\csname #1molarmass\endcsname这样的东西,以便它被解释为\compound1molarmass。不幸的是,以下代码不起作用。 \documentclass{scrar...

Admin

如何将参数传递给使用 \csname 调用的宏
csname

如何将参数传递给使用 \csname 调用的宏

我有一个宏,可以生成随机数列表并将其转换为字母进行打印。我想创建另一个宏来打印这些列表及其中间的文本。也就是说,如果 \first生成 A、C、B、D, 则 \first{2}返回 C ,我想要的功能如下: sometext 包含 A、sometext 包含 C、sometext 包含 B、sometext 包含 D sometext 包含的字母可能位于中间,并且可能因上下文而异。我使用 X 作为占位符,并使用 StrSubstitute 放置适当的字母。这不起作用,但我怀疑这更多地与以下事实有关:其中一个参数来自foreach使用pgffor 我当前的工...

Admin

\url 使用变量时需要额外的括号
csname

\url 使用变量时需要额外的括号

在以下示例中使用时\url{},它会在变量周围添加额外的括号。因此,以下代码呈现为: {google.com} - google.com 为什么会发生这种情况?我该如何避免? 有没有更好的方法来完成我在这里尝试做的事情?我想要一个命令(\template),它将在文件中的一个位置或另一个文件中获取一些参数,另一个命令(\render)负责如何显示(呈现)这些参数。我想轻松地从命令中添加/删除参数\template。我希望能够通过指定然后引用传递给的第一个变量来多次使用\template和,例如使用\render\templatetex_url在相同的方式g...

Admin

“\csname”不需要包含“\0”吗?
csname

“\csname”不需要包含“\0”吗?

第 40 页TeXbook, 相反,您可以通过说“\csname\endcsname”从字符标记列表转到控制序列。 因此\csname TeX\endcsname等于\TeX。但是,\TeX包含四个标记,即\0 T11 e11 X11。那么,为什么这里不需要\csname第一个标记\0呢? ...

Admin

对提供给宏的参数的字符数进行分支
csname

对提供给宏的参数的字符数进行分支

我当前有以下命令: \newcommand*{\setfontshape}[1]{\@ifnotmtarg{#1}{\csname#1shape\endcsname}} 这帮助我生成命令:\scshape来自文本sc。 \scshape我想修改我的命令,以便它能从文本sc和文本中生成命令scshape。其中一种方法是按字符数进行分支:如果小于或等于,则添加shape,否则按原样处理: sc-> \scshape(简短版本) scshape-> \scshape(完整版) 另一种方法是检查字符串是否已包含shape,如果不包含,则将其添加到末...

Admin

无法使用 PGFPlotTable 绘制 CSV,缺少插入的 \endcsname
csname

无法使用 PGFPlotTable 绘制 CSV,缺少插入的 \endcsname

假设我有这个非常标准的 CSV 文件: id,x0,y,sy,yhat,yerr,yrelerr,ychi2 0,-1,-1.083108355,0.075,-1.013608377,-0.069499978,0.068566894,0.85871057 1,-0.857142857,-0.625857469,0.075,-0.583690434,-0.042167035,0.072242122,0.316099357 2,-0.714285714,-0.103646818,0.075,-0.15377249,0.050125672,-0.32597295,...

Admin

TeX 练习 5.7 - 用分组定义控制序列
csname

TeX 练习 5.7 - 用分组定义控制序列

我想解决 Donald E. Knuth 的 TeXBook 中的练习 5.7。 Define control sequences **\beginthe**<block name> and **\endthe**<block name> that provide a “named” block structure. In other words, **\beginthe{beguine}\beginthe{waltz}\endthe{waltz}\endthe{beguine}** should be permissible...

Admin

! 使用 \seq_map_pairwise_function:ccN 时缺少 \endcsname 插入错误
csname

! 使用 \seq_map_pairwise_function:ccN 时缺少 \endcsname 插入错误

这个问题与执行由两个 \clist 或 \seq 中的配对元素生成的命令列表。 我正在尝试执行以下形式的命令序列 \def\alpha {^^^^03b1} 用。我更愿意以 而不是\seq_\map_pairwise_function:ccN的形式传递参数,我想我已经弄清楚了如何做到这一点。此代码似乎运行正常。"03B1^^^^03b1 \documentclass{article} \usepackage{fontspec} \usepackage{nopageno} \newfontfamily\mathematica{Mathematica...

Admin