\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
\mbox
with 에 넣으면 \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}}