expandafter

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

检查嵌套的 `\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 问题
expandafter

包装命令(参数化) - 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

将新命令定义为现有 Latex 命令的循环
expandafter

将新命令定义为现有 Latex 命令的循环

我想定义一个新命令,它是 \csvsimple 包中已定义的命令的组合。因此我编写了以下代码,它正确地满足了我的目的: \newcommand{\myfirstcommand}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv} % the \csvcoli command refers to the 1st column of a csv table, \csvcolii to the 2nd column, and so on. \newcommand{\my...

Admin

表格 csvreader:循环遍历列
expandafter

表格 csvreader:循环遍历列

我有一个名为“data.csv”的 csv 文件,其中包含以下数据: 1,2,3 4,5,6 我正在使用 Latex 编写下表\csvreader: \begin{table} \centering \begin{tabular}{|c|c|c|} \hline Sue & Karl & Tim \\ \hline \csvreader[ no head, late after line=\\, late after last line=, ]{data.csv}{}{\csvcoli & \csvc...

Admin

如何一起使用 \foreach 和 \newtheorem?
expandafter

如何一起使用 \foreach 和 \newtheorem?

我想一起使用\foreach,newtheorem所以我用包分配了一个数组listofitems \setsepchar{;/,}\ignoreemptyitems \readlist\baz { theorem, lemma, definition, corollary, proposition, postulate, axiom, remark; } 我输入的内容\newtheorem{\baz[1,3]}{\baz[1,3]}[chapter]将创建一个环境,所以我想用循环definition创建一系列amsthm环境fo...

Admin

amsart 标题排版问题
expandafter

amsart 标题排版问题

我尝试为作者和标题命令实现一个元级别,因为大多数样式文件都希望它们有一点不同,并且我希望能够轻松地更改样式文件。 长话短说,我发现amsart当我将宏插入到时,该类的行为很奇怪\title{}。它不会抛出错误,但不会将标题大写。但是它仍将以粗体排版。 所以既没有完全没有效果,也没有完全有效果。我也尝试将其放置\expandafter在我能想到的所有地方,但显然我不太理解这个命令。 \documentclass[a4paper,reqno]{amsart} \usepackage[utf8]{inputenc} \begin{document} \new...

Admin

Stephan 的 TUGboat 文章中关于 \expandafter 的问题
expandafter

Stephan 的 TUGboat 文章中关于 \expandafter 的问题

在 Stephan Bechtolshein 的第一页中TUGboat 文章,\expandafter他 介绍 了 执行 的 规则\expandafter. 我认为 iii 的情况不应该列在这里,因为开头的花括号应该是 token e而不是 token 1。也就是说,作者应该把 iii 放在最外面的步骤 1 中。我是对的吗? ...

Admin

在 TeX 中,“\romannumeral1986” 不等于“mcmlxxxvi”吗?
expandafter

在 TeX 中,“\romannumeral1986” 不等于“mcmlxxxvi”吗?

在 TeX 中, \uppercase{\romannumeral1986}\par %\catcode`\m=12 \uppercase{mcmlxxxvi} \bye 生产 那么,不mcmlxxxvi等于\romannumeral1986? 它们之间有什么区别?\expandafter可以绕过这个问题。\uppercase\expandafter{\romannumeral1986}会产生MCMLXXXVI。原因是什么? ...

Admin

如何理解The TeXbook第41页的“\appendroman#1#2#3”?
expandafter

如何理解The TeXbook第41页的“\appendroman#1#2#3”?

第 41 页底部TeXbook,有一个疑问: 定义一个\appendroman具有三个参数的控制序列,使得\appendroman#1#2#3定义控制序列#1扩展为一个控制序列,其名称是控制序列的名称#2后跟用罗马数字表示的正整数的值#3。例如,假设\count20等于 30;那么\appendroman\a\TeX{\count20}应该具有与 相同的效果\def\a{\TeXxxx}。 看到这里,我有了自己的答案,虽然我知道这个答案是不对的,那就是\def\appendroamn#1#2#3{\def#1{\#2#3}}。那本书的正确答案是 \def...

Admin

如何在函数调用之前从 DLTforeach 扩展
expandafter

如何在函数调用之前从 DLTforeach 扩展

如果这是一个小问题,我深感抱歉,我已经看到很多类似的帖子,但我无法解决这个问题。 设置: 我已经基于此创建了一个表格回答。我创建了一个函数,用于定义要引用的部分并\input根据提供的路径进行调用。(基于第一个真/假条目)——在这两种情况下,我都会将数据添加到表中,这只是显示文件路径或可点击引用的问题。 \newcommand{\testDefine}[4]{ \setboolean{enableTest}{#1} \ifthenelse{\boolean{enableTest}}{ %If enabled - add sectio...

Admin

尝试在通用函数中扩展 newglossaryentry 中的项目,而不会导致不正确的字母常量
expandafter

尝试在通用函数中扩展 newglossaryentry 中的项目,而不会导致不正确的字母常量

我已经研究过这两个相关主题,但我的情况略有不同。 不正确的字母常数与词汇表 不正确的字母常数 我发现的第一件事是词汇表手册是为了激活这个 \glssetexpandfield{name} \glssetexpandfield{sortvalue} 但即便如此,案件也没能解决。下面是我自定义类中的代码摘录 % Define Special \tl_new:N \l_character_firstname_tl \tl_new:N \l_character_lastname_tl \tl_new:N \l_character_desc_tl \tl_ne...

Admin

环境论证中的扩展数学问题
expandafter

环境论证中的扩展数学问题

我想手动重新定义定理的“可重述”环境。我不得不这样做,因为出于某些不为人知的原因,课程jloganal(逻辑与分析杂志)搞砸了:重述时,定理会有一个与重述部分相对应的新编号。杂志建议“伪造环境”并完全重写。我不喜欢这个“解决方案”。顺便说一句,这个练习是提高我的 Latex 技能的好机会。 以下是一次尝试: \documentclass[10pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \use...

Admin

传递另一个命令时,命令吞噬额外字母不起作用
expandafter

传递另一个命令时,命令吞噬额外字母不起作用

另一个话题,我得到了以下命令作为答案:它采用两个字母的字体形状(sc,it...)或完整版本(scshape,itshape...)来设置相应的字体形状。 \documentclass{article} \newcommand*\setfontshape[1]{\setfontshapeA #1shape\relax} \def\setfontshapeA#1shape#2\relax{\csname #1shape\endcsname} \begin{document} {\setfontshape{sc} hello} {\setfontshape{...

Admin

如何控制扩展顺序来从前缀和命令定义变量?
expandafter

如何控制扩展顺序来从前缀和命令定义变量?

以下是使用九个变量进行基本算术的命令。 \documentclass{article} \usepackage{xfp} \newcommand\functesta[9]{ \edef\myvara{#1} \edef\myvarb{#2} \edef\myvarc{#3} \edef\myvard{#4} \edef\myvare{#5} \edef\myvarf{#6} \edef\myvarg{#7} \edef\myvarh{#8} \edef\myvari{#9} $...

Admin

宏有条件地生成 tikz-cd 图
expandafter

宏有条件地生成 tikz-cd 图

我正在尝试定义一个宏,它将根据我传递给宏调用的参数生成一个带有细微变化的 tikz-cd 图。我使用xstring包来表达条件。 我的第一次尝试很成功: \documentclass{article} \usepackage{tikz} \usepackage{tikz-cd} \usepackage{xstring} \newcommand\myPic[1]{ \begin{tikzcd}[ ampersand replacement=\&, execute at end picture={ \IfStrEq{#1}{...

Admin