为什么我无法使用 newmdtheoremenv 和 mdfdefinestyle 在定理环境中获得非斜体、正常字体?

为什么我无法使用 newmdtheoremenv 和 mdfdefinestyle 在定理环境中获得非斜体、正常字体?

即使我设置了,定理文本也会以斜体显示font=\normalfont\normalsize。可能与此有关,葡萄牙语“-ção”在该文本中无法正确识别。

\documentclass[a4paper,10pt]{book}

\usepackage[brazilian]{babel}
\usepackage{mdframed}
\usepackage{amsmath}
\usepackage{xcolor}

\mdfdefinestyle{definitionSty}{font=\normalfont\normalsize, backgroundcolor=blue!10, linewidth=0pt, innerleftmargin=3ex, innerrightmargin=3ex, innertopmargin=3ex, innermargin =+1cm, outermargin =+1cm}

\newcounter{definitionCounter}[chapter]
\numberwithin{definitionCounter}{chapter}

\newmdtheoremenv[style=definitionSty]{definition}[definitionCounter]{Defini\c{c}\~{a}o}

\begin{document}

\begin{definition}{Medição, grandeza e medida}

 \begin{itemize}
  \item medição: \textit{processo} pelo qual se mede algo
  \item grandeza: \textit{propriedade} quantificada por medição
  \item medida: \textit{resultado} do processo de medição
 \end{itemize}

\end{definition}

\end{document}

请注意,文本是斜体且没有序列“çã”。

答案1

关于此内容的文档不太透明,但包含一个示例用法,从

\theoremstyle{<some style>} 
\newmdtheoremenv[linecolor=blue]{lemma}{Lemma}[section]

这里的关键是\theoremstyle命令,它不是mdframed基于的,而是指amsthm样式命令。因此,您需要加载amsthm,并且必须在加载之前完成mdframed

示例输出

\documentclass[a4paper,10pt]{book}

\usepackage[brazilian]{babel}
\usepackage{amsthm}
\usepackage{mdframed}
\usepackage{amsmath}
\usepackage{xcolor}

\mdfdefinestyle{definitionSty}{backgroundcolor=blue!10, linewidth=0pt, innerleftmargin=3ex, innerrightmargin=3ex, innertopmargin=3ex, innermargin =+1cm, outermargin =+1cm}

\newcounter{definitionCounter}[chapter]
\numberwithin{definitionCounter}{chapter}

\theoremstyle{definition}
\newmdtheoremenv[style=definitionSty]{definition}[definitionCounter]{Defini\c{c}\~{a}o}

\begin{document}

\begin{definition}Medição, grandeza e medida
 \begin{itemize}
  \item medição: \textit{processo} pelo qual se mede algo
  \item grandeza: \textit{propriedade} quantificada por medição
  \item medida: \textit{resultado} do processo de medição
 \end{itemize}
\end{definition}

\begin{definition}[Medição, grandeza e medida]\leavevmode
 \begin{itemize}
  \item medição: \textit{processo} pelo qual se mede algo
  \item grandeza: \textit{propriedade} quantificada por medição
  \item medida: \textit{resultado} do processo de medição
 \end{itemize}
\end{definition}

\end{document}

请注意,我不太确定我应该如何在定义环境中解释您的参数。要么像第一个版本一样直接打印,要么将其放在方括号中,然后由于 ,\leavevmode需要进行额外的调整itemize

除了加载之外,amsthm您还可以加载ntheorem,可以使用amsthm选项并继续使用\theoremstyle,也可以使用其自己的样式命令。您还可以使用thmtools这些包的接口。

答案2

您的日志将显示

Missing character: There is no ç (U+00E7) in font cmti10!
Missing character: There is no ã (U+00E3) in font cmti10!
Missing character: There is no ç (U+00E7) in font cmti10!
Missing character: There is no ã (U+00E3) in font cmti10!
Missing character: There is no ç (U+00E7) in font cmti10!

如果你添加

\usepackage{fontspec}

然后它将使用拉丁现代 opentype 字体并且非 ascii 字符将按预期工作。

相关内容