在宏中保护字体格式

在宏中保护字体格式

我定义了一个使用一种字体(sc)的宏(\chit),并且该宏在实现中的另一个宏textbf中使用- \textbf{Q\thequestion: #1?}

\documentclass[12pt]{article}
\usepackage{xspace}

\newcounter{question}

\newcommand{\chit}{\textsc{Chitx}\xspace}
\newcommand\Que[1]{%
    \leavevmode\par
    \stepcounter{question}
    \noindent
    \textbf{Q\thequestion: #1?}\par}

\newcommand\Ans[1]{%
     \leavevmode\par\noindent
    {\textbf{A\thequestion:} #1\par}}

\begin{document}

\Que{What is \chit}? % <-- Wrong font
What is \chit? % <-- Correct font

\end{document}

结果,输出结果并不是我期望的字体类型。如何保护我在 \chit 宏中指定的字体类型?

在此处输入图片描述

编辑1

对于问答宏,我从LaTeX 中的问答模板

答案1

你收到警告

LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefined
(Font)              using `OT1/cmr/bx/n' instead on input line 19.

这意味着 Computer Modern 字体系列中没有粗体小型大写字体。

另一方面,欧洲现代字体系列确实有它。

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{xspace}

\newcounter{question}

\newcommand{\chit}{\textsc{Chitx}\xspace}
\newcommand\Que[1]{%
    \leavevmode\par
    \stepcounter{question}%
    \noindent
    \textbf{Q\thequestion: #1?}\par}

\newcommand\Ans[1]{%
     \leavevmode\par\noindent
    {\textbf{A\thequestion:} #1\par}}

\begin{document}

\Que{What is \chit}? % <-- Wrong font
What is \chit? % <-- Correct font

\end{document}

在此处输入图片描述

我不知道这\leavevmode\par是做什么用的;如果你的目的是在问题前留出一些空间,那么它就是错误的工具:

\newcommand\Que[1]{%
    \par\addvspace{\bigskipamount}% <--- or whatever
    \noindent\stepcounter{question}
    \textbf{Q\thequestion: #1?}\par
}

完整代码:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}

\newcounter{question}

\newcommand{\chit}{\textsc{Chitx}}
\newcommand\Que[1]{%
  \par\addvspace{\bigskipamount}% <---- fix it
  \noindent\stepcounter{question}%
  \textbf{Q\thequestion: #1?}\par
}

\newcommand\Ans[1]{%
  \par\noindent
  \textbf{A\thequestion:}~#1\par
}

\begin{document}

Some text before the question. What is \chit?

\Que{What is \chit}
\Ans{I don't know}

\end{document}

在此处输入图片描述

相关内容