Latex提交SCI论文修改稿时标注修改文字颜色 您所在的位置:网站首页 如何设置标注颜色不一样 Latex提交SCI论文修改稿时标注修改文字颜色

Latex提交SCI论文修改稿时标注修改文字颜色

2024-06-18 19:06| 来源: 网络整理| 查看: 265

参考链接 Latex更改字体颜色以及快速生成 SCI 论文的 revised version 和 pure version

自己最终采用的方式为在导言区添加如下代码

% *** Revision Settings *** \usepackage{soul,color,xcolor} % 用于设置字体颜色 \definecolor{myColor}{rgb}{0.8039,0,0} % 显示修订时用这行 % \definecolor{myColor}{rgb}{0,0,0} % 隐藏修订时用这行 \makeatletter \newcommand*{\new}{\@ifnextchar\bgroup{\new@}{\color{myColor}}} \newcommand*{\new@}[1]{{\textcolor{myColor}{#1}}} \makeatother

即可使用 \new 和 \new{} 代替 \color{blue} 和 \textcolor{blue}{}。

1、修改文字颜色的一般方法

采用命令为

\textcolor{}{} 命令用于将指定的文本 设置为指定的颜色 。这个命令可以用来在文档中设置局部文本的颜色。

\color{} 命令用于在当前块设置颜色,直到遇到其他颜色声明。它会改变当前块所有内容的颜色,直到被其他颜色命令覆盖或重置。这种全局设置颜色的方式可以用于更大范围的文本段落,表格,图片,及公式。

2、在论文修改稿中设置文字颜色

解读一下上面提到的代码

% *** Revision Settings *** \usepackage{soul,color,xcolor} % 用于设置字体颜色 \definecolor{myColor}{rgb}{0.8039,0,0} % 显示修订时用这行 % \definecolor{myColor}{rgb}{0,0,0} % 隐藏修订时用这行 \makeatletter \newcommand*{\new}{\@ifnextchar\bgroup{\new@}{\color{myColor}}} \newcommand*{\new@}[1]{{\textcolor{myColor}{#1}}} \makeatother

代码解读如下:

这段代码的作用是定义了一个名为\new的命令,其行为如下:

如果使用\new命令时不带参数,则将其后的文本标记为myColor。如果使用\new命令时带有参数(用花括号括起来),则将参数内的文本标记为myColor。

\usepackage{color}:导入color宏包,以便在文档中使用颜色相关的命令。也可以使用xcolor宏包替代该行,因为xcolor扩展了color宏包并提供了更多功能。

\makeatletter:这一命令声明@符号为LaTeX命令中的字母,从而可以在命令名称中使用@。

\newcommand*{\new}{\@ifnextchar\bgroup{\new@}{\color{blue}}}:创建了一个名为\new的新命令。代码的逻辑如下:

\@ifnextchar\bgroup:检查下一个字符是否为左花括号({),即判断\new命令是否带有参数。

如果\new命令带有参数,则执行\new@命令。

如果\new命令没有参数,则将其标记为myColor。

\newcommand*{\new@}[1]{{\textcolor{blue}{#1}}}:这是一个内部命令\new@,用于在\new命令带有参数时将参数标记为myColor。

\textcolor{blue}{#1}将参数#1(即带有参数的\new命令中的文本)标记为myColor。

\makeatother:恢复@符号的一般含义。

\newcommand中的*: 在LaTeX中,*在\newcommand命令中的作用是禁止创建带参数的命令。 具体来说,在\newcommand命令中使用星号*,即 \newcommand*{\command}{definition},会创建一个不带参数的命令。这意味着你只能在文档中直接使用\command而不能使用\command{...}这种带参数的形式。 相比之下,如果没有使用星号*,即 \newcommand{\command}{definition},则可以创建带参数的命令,例如\command{...}。 使用星号*可以提供一种简便的方式来定义不带参数的命令,避免了在定义时必须考虑参数的复杂性。在某些情况下,不带参数的命令更适合特定的应用需求。

\new@}[1]中的[1]: 在给定的命令定义 \newcommand*{\new@}[1]{{\textcolor{blue}{#1}}} 中,[1] 的作用是指示该命令定义具有一个参数。 具体来说,这个命令定义了一个带有一个参数的新命令 \new@。当你在文档中使用 \new@{text} 时,参数 text 的值将被传递给 \new@ 中的 #1,然后在命令的定义中使用。 命令定义中的参数位置由 #1 指定,表示第一个参数。如果有多个参数,可以使用 #2、#3 等类似的方式指定其他参数的位置。使用 [1] 表示该命令只接受一个参数,且位于第一个位置。

3、使用时遇到的几个问题 3.1 在使用时 \new 基本没用

实际在使用时用的都是 \new{} ,基本没用过 \new。 一旦使用 \new 则发现后面的颜色全都改变了。 如果想要限制 \new 的作用范围,可写为

{\new revised text. }

但这样一来就用 \revise{} 就行了。

3.2 在遇到 equation 环境时前后空行会有问题

比如下面这种情况

\lipsum[1][3-5]\new{ \begin{equation} \mathrm{d}\left( \frac{u}{v} \right) =\frac{v\mathrm{d}u-u\mathrm{d}v}{v^2}\left( v\ne 0 \right) \end{equation} } \lipsum[1][3-5]

会发现第二段文字和公式之间多一个空行,这是由于\color这个命令导致的。 如果第二段文字不另起一段,紧接着公式,则没有问题。 最后采用的方案是在修订内容后向上缩一行。即改为

\lipsum[1][3-5]\new{ \begin{equation} \mathrm{d}\left( \frac{u}{v} \right) =\frac{v\mathrm{d}u-u\mathrm{d}v}{v^2}\left( v\ne 0 \right) \end{equation} } \vspace{-\baselineskip} \lipsum[1][3-5] 4、扩展 4.1 定义一个带有多个参数的命令

如果想定义一个带有多个参数的命令,可以按照以下方式进行编写:

\newcommand*{\commandName}[num]{code}

在命令定义中,num 是参数的数量,可以是 1、2、3 等等。然后,可以使用 #1、#2、#3 等形式来引用不同位置的参数。

例如,如果你想定义一个命令 \highlight,它接受两个参数,分别表示要突出显示的文本和突出显示的颜色,可以这样编写:

\newcommand*{\highlight}[2]{{\textcolor{#2}{#1}}}

在这个例子中,\highlight 接受两个参数,第一个参数表示要突出显示的文本,第二个参数表示突出显示的颜色。然后,使用 #1 和 #2 分别引用这两个参数,并以指定的颜色输出突出显示的文本。

现在,你可以在文档中使用 \highlight{Hello}{red} 来将 “Hello” 以红色突出显示。

如果命令需要更多的参数,只需将 [num] 中的 num 更改为所需的参数数量即可,并相应地在命令定义中使用 #1、#2、#3 等来引用这些参数。

4.2 其他可能的解决方案

1、使用 change 宏包 参考 https://www.codeleading.com/article/17215966945/

2、使用 latexdiff 宏包 参考 https://zhuanlan.zhihu.com/p/540820964?utm_id=0



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有