我有一个命令,可以以某种方式格式化一段文本。简单的例子:
\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}}
发出命令
- 强壮的,
- 在数学模式下工作(因为文本放在一个框中),并且
- 插入适当的斜体更正(如果需要)。