patching

修补报告和文章中章节的可靠方法
patching

修补报告和文章中章节的可靠方法

我需要在每一章之后运行一个命令,所以我需要修补章节。如果我这样做: \documentclass{scrreport} %% Works with memoir but not with scrreport \NewDocumentCommand\MyAddLabel{}{\label{mylabel}} \usepackage{etoolbox} \makeatletter %% Add the above command to \chapter if the command exists \ifdef{\@chapter}{ \ifpatchab...

Admin

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

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

通过添加新的(可选)参数来修补命令(并将“newcommand”变成“NewDocumentCommand”)
patching

通过添加新的(可选)参数来修补命令(并将“newcommand”变成“NewDocumentCommand”)

在包中,我想通过添加可选参数来自定义现有宏,以控制图像的大小。但是,我不知道如何修补命令以添加参数。理想情况下,我希望在末尾添加参数(否则我需要修补所有函数以将 更改为#1)#2,我特别喜欢这种NewDocumentCommand工作方式... 那么,有可能修补\newcommand*\hello[1]{...}吗\NewDocumentCommand{\hello}{mo}{...}? \documentclass{article} \newcommand*\hello[1]{% Hello #1. } % Goal: patch into: % ...

Admin

修补 \usepackage / \RequirePackage
patching

修补 \usepackage / \RequirePackage

我想对我加载的软件包(其中一些是我自己编写的)实现自动基准测试。目前我的前言部分需要 15 秒才能加载,比编译文档其余部分所需的时间要长得多。 为此,我想实现这一点回答,建议使用etoolbox来patchcmmd修补usepackage。由于我的大部分软件包加载都发生在我自己的软件包内部,所以我想在 上使用这种方法RequirePackage。然而,我选择使用xpatch的实用程序,因为我读到过,常规patchcmd无法处理带有可选参数的命令。 到目前为止我最好的尝试是这样的(请不要介意通过 AfterEndPreamble 的丑陋的自动输出): \Req...

Admin

编辑 sty 文件中的单词
patching

编辑 sty 文件中的单词

我想编辑 .sty 文件中的单词。我正在学习 Latex,不知道是否可以通过使用序言中的\makeatletter和命令来编辑它。\makeatother .sty 文件(novel-PostLayout来自novel类)具有以下代码: %% LABEL DRAFT OPTION %% ---------------------------------------------------------------------------- % Writes DRAFT inside upper left of TrimBox, when in draft ...

Admin

将字符串转换为宏(更改 catcodes)
patching

将字符串转换为宏(更改 catcodes)

是否不可能将字符串重新转换为宏?我知道lualatex我们可以用宏做很多有趣的事情。我从未见过不使用宏进行字符串转换的情况。 \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{tikz} ...

Admin

修补 \cref 和 \Cref,将附加信息写入 .aux 文件
patching

修补 \cref 和 \Cref,将附加信息写入 .aux 文件

我需要修补宏\cref,\Cref以便像这样使用: \cref{label1,label2,label3} 除了在文档中生成正常布局外,他们还会将类似这样的内容写入 .aux (或 .log)文件: "label1" referred on page N "label2" referred on page N "label3" referred on page N \cref其中“N”对应于使用该宏的页码。 结合文件\label中有关宏的信息.aux,需要测试文档中的图表是否出现在文本中引用之前的页面上。(目前,我可以\ref使用此处描述的技术对宏执行此...

Admin

更新其他命令的命令
patching

更新其他命令的命令

是否可以创建一个命令,该命令以命令名称c作为参数并重新定义c(例如通过renewcommand)其自身但添加一些新功能?简而言之,我们是否可以定义一个命令,x(c)其效果是c := f (c)进行一些修改f,例如\textcolor{blue}{...}。 示例用例: 为整个文档中的现有符号添加颜色,可能采用不同的颜色主题: \setColor{neg}{blue} 我要求的\setColor命令 在哪里:之后每当使用时,它都会变成蓝色。同样,可以将符号变为粗体或斜体。xf = \textcolor{blue}{...}\neg 添加后缀或前缀: \new...

Admin

如何在第一次编译时正确修补 \totalpoints 命令而不出现错误
patching

如何在第一次编译时正确修补 \totalpoints 命令而不出现错误

我的目标是让半个点以逗号作为小数符号打印(例如 2,5 个点)。因此,我使用了一种变通方法,将所有点乘以 10,然后使用 etoolbox 中的 patchmd 命令以及 fp 和 numprint 包中的 FPDiv 和 numprint 命令分别除以 10 并打印带有正确小数符号的数字(请参阅考试包小数点)。但是,我还想在标题处打印点数\titledquestion。为此,我使用命令\qformat{\Large \textbf{Aufgabe \thequestion: \thequestiontitle~(\totalpoints~Punkte)} ...

Admin

如何使用包含“{”的代码的“patchcmd”?
patching

如何使用包含“{”的代码的“patchcmd”?

我有一个带有长 的宏hbox,我想tikz通过在其 前面添加一行代码来集成一个简单的框{。但是,由于该行中包含花括号,我面临挑战。这里有一个 (MWE) 来说明,我需要用\hbox{%替换\hbox{\tikz[anchor=base,baseline]\node[red] at (0,0) {Tikz};%。 \documentclass{article} \usepackage{tikz} \usepackage{etoolbox} \def\text{\hbox{% This is a test. %several lines of code h...

Admin

使用 \patchcmd{\normalsize} 调整字体大小无法与 TL 2022 配合使用
patching

使用 \patchcmd{\normalsize} 调整字体大小无法与 TL 2022 配合使用

我曾经使用 稍微调整字体大小\patchcmd{\normalsize}。请考虑以下代码: \documentclass[11pt]{memoir} \usepackage{etoolbox,lipsum} \makeatletter \patchcmd{\normalsize}{\@xipt}{{30pt}}{}{} % 30pt only for testing purpose! \normalsize \makeatother \begin{document} \lipsum \end{document} 如果我使用 LuaLaTeX(或 XeL...

Admin

algorithm2e 环境补丁使用中 hbox 溢出
patching

algorithm2e 环境补丁使用中 hbox 溢出

algorithm2e我正在以修改的方式使用算法环境,并减小了宽度(遵循解决方案这里),请参阅下文的 MWE。 这会产生一个溢出的盒子,我想将其删除。我该如何实现? \documentclass{article} \usepackage{lipsum} \usepackage{etoolbox} \usepackage[ruled]{algorithm2e} \SetCustomAlgoRuledWidth{0.6\textwidth} \makeatletter \patchcmd{\@algocf@start}{% \begin{lrbox}{\...

Admin

期望输出
patching

期望输出

我想在三个地方为章节标题指定自己的换行符: 在章节标题页(即章节第一页)上, 在注释章节的相应小标题中(即\pagenote),以及 在目录中。 我可以写\chapter[A display\\of hot dogs: Oscar Meyer, Inc.]{A display\\of\\hot dogs:\\Oscar Meyer, Inc.},但在注释章节中,副标题将默认为目录条目。在 中memoir,我可以重新定义\pnchap以将章节副标题设置为注释,但我该如何重新定义它?memoir手册没有提供示例。尝试和下面的 MWE——我超出了我的能力范围。...

Admin

哪种改变命令的方式更强大/可持续
patching

哪种改变命令的方式更强大/可持续

我有一个普遍的问题。如果我正在编写 .cls 文件(或包文件),编辑标准命令(例如\section由使用的标准类或 latex.ltx 定义的命令)的最佳方法是什么? 在这种假设的情况下,例如,我可以使用像titlesec或\patchcmdfrom这样的包etoolbox,或者使用RenewDocumentCommand/进行完整的重新定义renewcmand。 哪种可能性是改变此类命令最可靠、最安全的方法,为什么?如果我不得不猜测,我会说这是最简单的更新方式,因为它需要的附加包较少,但我可能错了。 编辑 因为我的问题可能有点不具体,所以我尝试说得更清楚一...

Admin

如何使用浮点来传输代码而不是材料?
patching

如何使用浮点来传输代码而不是材料?

我的 MWE: \documentclass[twoside]{book}% \usepackage{graphicx}% \usepackage{tikzducks}% \usepackage{lipsum}% \usepackage{color}% \begin{document} \color{red} \begin{figure} \includegraphics[width=\textwidth]{example-image-duck} \caption{A duck} \end{fig...

Admin