如何在乳胶文档中将某个特定的单词加粗或斜体化?

如何在乳胶文档中将某个特定的单词加粗或斜体化?

我需要在我的 Latex 文档中使用粗体或斜体表示某个单词,无论该单词在哪里使用,而无需在每个单词上明确提及textbf{}textit{}。我该怎么做?

一个很好的类比是 CSS 到 HTML 标签。

在 Latex 中可以实现这个吗?

答案1

这是\mymarkup带星号和不带星号的版本。不带星号的版本\textbf{...}为斜体版本,带星号的版本为斜体版本。双星号的版本为大胆的斜体可选参数会改变文本:

\documentclass{article}



\usepackage{xparse}

\NewDocumentCommand{\mymarkup}{ssO{myword}}{%
  \IfBooleanTF{#1}{%
    \IfBooleanTF{#2}{%
      {\bfseries\itshape #3}%
    }{%
      \textit{#3}%
    }%
  }{%
    \textbf{#3}%
  }%
}


\begin{document}
\mymarkup\ is better than \mymarkup*\, which is followed by \mymarkup**\ again

\mymarkup[Don't use xspace]\ is better than \mymarkup*[Don't use xspace]\, which is followed by \mymarkup**[Don't use xspace]\ again


\end{document}

在此处输入图片描述

答案2

如果每次都是类似的词,您可以创建一个命令:

\newcommand{\foo}{\textbf{foo}\xspace}

\textbf另一个解决方案是为or创建更短的标签\textit

\newcommand{\tit}[1]{\textit{#1}}
\newcommand{\tbf}[1]{\textbf{#1}}

这些解决方案假设您没有以相同方式调用的特定命令,否则将引发错误。

答案3

为了多样化,这里有一个基于 LuaLaTeX 的解决方案。请注意,它不需要您以任何方式修改文档正文。整个文档中要以粗体斜体呈现的单词应列为函数的第二个参数string.gsub

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article}

\usepackage{luacode}
\begin{luacode}
function highlight_word ( line )
   return string.gsub ( line, "myparticularword", "{\\bfseries\\itshape %0}" )
end
luatexbase.add_to_callback ( "process_input_buffer", highlight_word, "highlight_word" )
\end{luacode}

\begin{document}
An interesting story about myparticularword and its history \dots
\end{document}

相关内容