我可以让一段文本忽略其外部上下文应用的格式更改吗?

我可以让一段文本忽略其外部上下文应用的格式更改吗?

我有一个命令,可以以某种方式格式化一段文本。简单的例子:

\begincommand{\myformat}[1]{\texttt{#1}}

我希望能够将此命令放置在其他文本格式命令中,并使那些“外部”命令对我的命令中包含的文本没有影响。

如果我写

\textbf{Some \myformat{example} text.}
\emph{Some \myformat{example} text.}

我希望它的显示效果与我写的一样

\textbf{Some }\myformat{example}\textbf{ text.}
\emph{Some }\myformat{example}\emph{ text.}

在这种情况下,是否可以“保护”一段文本的格式?这样所有文本格式都应用之内 \myformat已应用,但所有进一步的格式都被忽略了?

答案1

重新定义以更改在设置新样式/形状之前\myformat使用的字体:\normalfont

在此处输入图片描述

\documentclass{article}

\DeclareTextFontCommand{\myformat}{\normalfont\ttfamily}

\begin{document}

\textbf{Some \texttt{example} text.}
\emph{Some \texttt{example} text.}

\textbf{Some \myformat{example} text.}
\emph{Some \myformat{example} text.}

\end{document}

使用\DeclareTextFontCommand而不是仅仅

\newcommand{\myformat}[1]{{\normalfont\ttfamily #1}}

发出命令

  • 强壮的
  • 在数学模式下工作(因为文本放在一个框中),并且
  • 插入适当的斜体更正(如果需要)。

相关内容