首页 > 其他分享 >解决Latex soul ul参数中有宏时报错的问题

解决Latex soul ul参数中有宏时报错的问题

时间:2024-09-28 13:04:53浏览次数:1  
标签:Latex 中有宏 soulregister soul ul https test stackexchange def

没有宏时直接用就好了:用soul宏包解决Latex \underline换行问题

但是如果里面有宏则会报错:

\def\testc#{test}
\ul{\testc{}}
Use of \testc doesn't match its definition.

有两种解决方案:

soulregister

这种方案是非侵入式的。

\soulregister\testc7

来源:https://tex.stackexchange.com/questions/139463/how-to-make-hl-highlighting-to-automatically-place-incompatible-commands-in/139500#139500

可以做一个宏来自动化register:

\newcommand{\defmacro}[2]{%
  \expandafter\def\csname#1\endcsname##{#2}
  \expandafter\soulregister\csname#1\endcsname7
}
\defmacro{test}{\emph{Test}}

\expandafter\def表示先展开\def后面的宏。第一个参数#1test,所以\csname#1\endcsname展开之后会变成\test##展开之后会变成#。第二个参数#2\emph{Test}。所以第一句展开之后就变成了\def\test#{\emph{Test}}

同样,\expandafter\soulregister表示先展开\soulregister之后的宏,所以第二句展开之后就变成了\soulregister\test7

提前expand

这种方案需要定义一个新的宏。

\makeatletter
\def\myul#1{%
  \protected@edef\tempa{#1}%
  \ul\tempa%
}
\makeatother

然后用这个新的宏就好了:

\myul{233 \testc{} 2333}

注意这里面\protected@edef不能换成\edef,不然碰上\emph就会炸。

来源:https://tex.stackexchange.com/a/126244/256676

参考:

https://tex.stackexchange.com/questions/244694/writing-to-aux-you-cant-use-a-prefix-with-the-character

https://en.wikibooks.org/wiki/TeX/edef

失败的方案

\def\myul#1{
\def\arga{#1}
\ul\arga
}

这种方法遇到嵌套宏就不行了。

来源:https://tex.stackexchange.com/questions/496833/package-soul-underline-problem-with-macro-text

标签:Latex,中有宏,soulregister,soul,ul,https,test,stackexchange,def
From: https://www.cnblogs.com/searchstar/p/18437315

相关文章

  • Latex 配置代码详解
    引言参考视频:发SCI必备的【LaTex】使用教程(第二期)1.设置Vscode编辑器格式配置代码决定了如何在Vscode中编译Latex代码。//当设置为"never"时,禁用了保存LaTeX文档时自动编译的功能。"latex-workshop.latex.autoBuild.run":"never",//启用VSCode编辑器......
  • Latex-参考文献引用序号缩减 [a-b]
    使用Latex在论文正文中引用文献,如果文献数量太多,逐篇列举会非常占篇幅,并且使文章看起来冗杂。如下所示:  这里可以通过Latex{natbib}包中的[sort&compress]选项来实现文献引用序号的缩减,即  \usepackage[numbers,sort&compress]{natbib} 。该包引用语句加在  \be......
  • Latex-公式左对齐\begin{flalign} (将居中改为左对齐)
    大部分学术期刊默认公式是居中对齐的,但也有些学术期刊要求公式左对齐,在Latex中,公式左对齐主要用到 \begin{flalign}...\end{flalign} 这个标签。 单行示例: 原公式为居中对齐的形式,代码如下:\begin{align}\min_{G}\max_{D}\mathcal{L}&=\mathbb{E}_{\textbf{x}}[\log......
  • 在Doxygen注释中插入latex公式
     在配置文件中设置 USE_MATHJAX=YES .  行内公式,嵌入在普通文字中.使用  \f$  或  \f(  和  \f)  包裹公式代码.例如/***@briefThedistancebetween\f$(x_1,y_1)\f$and\f$(x_2,y_2)\f$is*\f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$.......
  • SciTech-Mathmatics-LaTex: LaTeX:从入门到日常使用
    LaTeX:从入门到日常使用发表于2022-02-05|更新于2022-03-20|教程|字数总计:3.6k|阅读时长:12分钟|阅读量:前言:排版工具与书写工具的讨论LaTeX是一种“非所见即所得”的排版系统,用户需要输入特定的代码,保存在后缀为.tex的文件中,通过编译得到所需的pdf文件,例如以下代码:$......
  • Latex 两版排版下的长公式换行(equation & split)
    举例:二元高斯分布的密度函数(\(X\),\(Y\)不独立)\(f_{X,Y}\left(x,y\right)=\frac{1}{2\pi\sigma_{x}\sigma_{y}\sqrt{1-\rho^2}}\exp\left(-\frac{1}{2(1-\rho)^2}\left[\frac{(x-\mu_{x})^2}{\sigma_{x}^2}-2\rho\frac{(x-\mu_{x})(t-\mu_{y})}{\sigma_{x}\si......
  • 仿SOUL社交友附近人婚恋约仿陌陌APP网站源码
    源码介绍:仿SOUL社交友附近人婚恋约仿陌陌APP网站源码专门为单身男女打造的恋爱交友社区,就是一个由千千万万单身男女组建的大家庭。他们来自全国各地,或许有着不同的人生经历,却有着共同的对恋爱交友的渴望。他们可以通过文字、语音、视频聊天的方式,和镜头前的彼此诉说自己......
  • 仿 SOUL 社交友附近人婚恋约仿陌陌 APP 源码系统
    前言专门为单身男女打造的恋爱交友社区,就是一个由千千万万单身男女组建的大家庭。他们来自全国各地,或许有着不同的人生经历,却有着共同的对恋爱交友的渴望。他们可以通过文字、语音、视频聊天的方式,和镜头前的彼此诉说自己工作中发生的趣事,也可以分享自己在生活中遇到的惊喜。......
  • latex中引用参考文献[1],[2],[3]格式与[1-3]格式的方法
    1,latex中引用参考文献[1],[2]格式首先添加包:\usepackage{cite},在文中使用:\cite{a0,a1},来引用参考文献,效果如下:。如果我们引用3个参考文献,在文中使用:\cite{a0,a1,a2},效果如下:。参考文献排版:2,latex中引用参考文献[1-3]格式首先添加包:\usepackage[numbers,sort&compress]{n......
  • 【LaTex、markdown】常用语法写出漂亮的blog
    @目录markdown加粗斜体设置标题级别设置目录删除线无序列表有序列表分割线代办引用高亮标记字体颜色代码块图片链接表格公式表达行中公式独行公式LaTex初步文章骨干换行与换页figure(基本是图片)表格公式公式字体颜色左右居中figure引用文献引用markdown加粗**加粗样式**格式......