수학 모드의 텍스트: 굵게 상속되지만 기울임체는 상속되지 않음

수학 모드의 텍스트: 굵게 상속되지만 기울임체는 상속되지 않음

\foo다음을 생성하도록 매크로를 정의할 수 있습니까 $\foo$?

  • 굵은 산세리프 "foo"(주변 텍스트가 굵은 경우)
  • 그렇지 않으면 일반 산세리프 "foo"입니다.

특히 "foo"는 절대로 조판해서는 안 됩니다.이탤릭체.

제대로 작동하지 않는 MWE:

\documentclass[a4paper]{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\newcommand{\foo}{\textsf{foo}}
\begin{document}
\section{This should be bold: $\foo$, \boldmath$2^\foo$}
This should be normal: $\foo$, $2^\foo$.
\begin{theorem}This should be normal: $\foo$, $2^\foo$.\end{theorem}
\end{document}

여기서는 정리 환경에서 기울어진 텍스트를 얻습니다. 그렇지 않으면 괜찮아 보입니다. 내가 시도하면 예를 들면 다음과 같습니다.

\newcommand{\foo}{\textnormal{\textsf{foo}}}

그러면 항상 굵은 글꼴이 아닌 일반 글꼴로 표시됩니다.

"굵게 표시를 해제"하지 않고 어떻게든 "이탤릭체를 해제"할 수 있나요?

답변1

다음의 글꼴 사양에 한 단계 더 추가할 수 있습니다 \foo.

\newcommand{\foo}{\textsf{\upshape foo}}

\textup또한 작동하지만 "인수" 형식이 필요합니다 \textup{foo}. 둘 다 "기본" 라텍스로 정의되어 있으므로 추가 패키지가 필요하지 않습니다.

편집하다:의견에서 Jukka가 지적했듯이 이것은 모든 가능성 중 최고입니다.

\text{\upshape\sffamily foo}

아래 첨자 또는 위 첨자에 사용하면 크기가 올바르게 지정되며 이러한 방식으로 사용하면 \textup및 에서 생성되는 (의미 없는) 글꼴 경고를 피할 수 있습니다 .\upshape

편집 2: Bernard는 다음과 같이 작동하는 타이핑 미니멀리스트에 대한 변형을 제공합니다.

\textup{\sffamily foo}

답변2

당신이 사용할 수있는 \textsf{\textup{foo}}. 그런데 수학에서 항상 명령을 사용하고 있다는 것이 이상해 보입니다. 이 맥락에서는 다음을 사용합니다 \mathsf.

\documentclass[a4paper]{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\newcommand{\foomath}{\mathsf{foomath}}
\newcommand\foo{\textsf{\textup{foo}}}
\begin{document}
\section{This should be bold: \mathversion{bold}$\foo \foomath$}
This should be normal: $\foo\foomath$.
\begin{theorem}This should be normal: $\foo\foomath$.\end{theorem}
\end{document}

답변3

\mboxwith 에 넣으면 \upshape이탤릭체는 생략됩니다. 그러나 아래 첨자 수학 스타일 등으로 크기가 조정되지는 않습니다.

\documentclass[a4paper]{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\newcommand{\foo}{\mbox{\upshape\textsf{foo}}}
\begin{document}
\section{This should be bold: $\foo$}
This should be normal: $\foo$.
\begin{theorem}This should be normal: $\foo$. still italic here\end{theorem}
\end{document}

그러나 약간의 추가 작업(그리고 Joseph의 제안도 고려)을 통해 수학 크기에 맞게 확장할 수 있습니다.

\documentclass[a4paper]{article}
\usepackage{amsmath,amsthm,scalerel}
\newtheorem{theorem}{Theorem}
\newcommand{\foo}{\scaleto{\mbox{\upshape\sffamily foo}}{1.6\LMex}}
\begin{document}
\section{This should be bold: $\foo$}
This should be normal: $\foo$ and $\foo_{\foo}$.
\begin{theorem}This should be normal: $\foo$. still italic here\end{theorem}
\end{document}

여기에 이미지 설명을 입력하세요

그리고 Jukka가 의견에서 지적했듯이 수학 크기에 따라 확장되는 더 간단한 정의(패키지가 필요 amsmath하지만 필요하지 않음 )는 다음과 같습니다.scalerel

\newcommand{\foo}{\text{\upshape\sffamily foo}}

관련 정보