以声明方式定义新命令

以声明方式定义新命令

有些命令看起来就像在 MS Word 中按下按钮一样(我有 Windows...)。例如\textbf{small bold text}{\bf lengthly bold text }我的问题是:是否可以以声明的方式定义新命令,或者\bf以这种风格重新定义旧命令?

答案1

是的,你可以,你只需要不定义参数。虽然根据命令的不同,方法可能有所不同。为了回答这个问题,这里有一个命令,它将文本大胆的斜体, 一起。

请注意{}命令和文本周围的。如果没有这些,粗体和斜体将一直持续到文档结束。

此外,\bf已弃用。在新的 Latex 文档中,您必须使用\bfseries

在此处输入图片描述

\documentclass{article}

\newcommand\bfandit{%
    \itshape\bfseries%
}

\begin{document}

Text as it should be.\medskip

{\bfandit No, wait, not bold and italics together!}\medskip

Ok, now it's better.
\end{document}

答案2

想象一下,你有一些命令\mycommand{...},并且你坚持使用语法{\mybutton ...}。您可以尝试一下。并不总是有效(例如,对于逐字命令)。外括号是强制的,并且\foo{\mybutton ...}不起作用,使用\foo{{\mybutton...}}(并祈祷好运)。

\documentclass{article}
\usepackage{color}

\makeatletter
\newcommand\mybf {\iftrue\expandafter\mybf@\expandafter{\else}\fi}
\newcommand\mybf@ [1]{\textbf{{#1}}\egroup}

\newcommand\myunderline {\iftrue\expandafter\myunderline@\expandafter{\else}\fi}
\newcommand\myunderline@ [1]{\underline{{#1}}\egroup}

\newcommand\myred  {\iftrue\expandafter\myred@\expandafter{\else}\fi}
\newcommand\myred@ [1]{\textcolor{red}{{#1}}\egroup}

\makeatother

\begin{document}

{\myunderline Hello Beautiful} World

{\mybf Hello Beautiful} World

{\mybf\myunderline Hello Beautiful} World

{\mybf\myunderline\myred Hello Beautiful} World

{\myred\myunderline\mybf Hello Beautiful} World

\end{document}

在此处输入图片描述

相关内容