编辑:注释

编辑:注释

有没有办法加载 Iwona 和 CMBright 包,以便 Iwona 仅用于文本,CMBright 仅用于数学,并且所有文本和数学都是无衬线的?

到目前为止我想到的唯一命令是:

\usepackage{cmbright}
\usepackage{iwona}
\renewcommand*{\familydefault}{\sfdefault}
\SetSymbolFont{largesymbols}{normal}{OMX}{iwona}{m}{n}

这当然不太正确。在此先感谢所有试图帮助我的人。

PS 如果有人觉得它有用,我可以提供完整的代码。

预计到达时间:

以下是一些基本文档,我们可以尝试解决我的问题:

\documentclass{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\usepackage[math]{iwona}
\usepackage{cmbright}

\renewcommand*{\familydefault}{\sfdefault}
\SetSymbolFont{largesymbols}{normal}{OMX}{iwona}{m}{n}

\begin{document}
    \section{A section}

    \begin{equation}
        S\!\left(x\right) = \mathsf{Pr}\!\left[X > x\right] \qquad \widehat{S}\!\left(t\right) = \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right).
    \end{equation}

    \noindent \lipsum[1-1]
\end{document}

预计到达时间:

我们快完成了。剩下的最后一件事是部分、子部分等字体太粗且难看,据我所知与 Iwona 无关。我们可以补救吗?至于正文的字体,我希望部分字体是 Iwona 的无衬线字体...再次感谢!

预计到达时间:

我认为最后一部分我发现了一些非常有趣的东西:

\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large}}
\makeatother

\makeatletter
\renewcommand\subsection{\@startsection {subsection}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\large}}
\makeatother

\makeatletter
\renewcommand\subsubsection{\@startsection {subsubsection}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\normalsize}}
\makeatother

不管怎样,这似乎确实有效,所以现在如果有人有时间,我想了解(即使只是一点点)为什么像我这样混合字体不是一个好主意。我保证会尽我所能对它引起的语义问题持开放态度。

预计到达时间:

好的,花了一些时间进行更多测试,但我的最后一个解决方案毕竟不太正确。不过,我还是能够用以下代码弥补自己的过失(至少我认为如此):

\documentclass{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\usepackage[math]{iwona}
\usepackage{sfmath}

\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
    \title{MY TITLE}
    \date{}

    \maketitle

    \section{A section}

    \section{Another section}

    \subsection{A subsection}

    \subsubsection{A subsubsection}

    \begin{equation}
        \begin{aligned}
            S\!\left(x\right) & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
            H\!\left(x\right) & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
        \end{aligned}
        \qquad
        \begin{aligned}
            \widehat{S}\!\left(t\right) & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right)\\
            \widehat{H}\!\left(t\right) & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k
        \end{aligned}
    \end{equation}

    \noindent \lipsum[1-1]
\end{document}

它有我想要的一切:无衬线字体、无衬线数学、没有丑陋的超粗体部分字体。关键是 sfmath 包,它做得非常出色。

话虽如此,如果文件中还隐藏着一颗定时炸弹,我会很感激被注意到。

我想感谢所有试图帮助我的人,尤其是 cfr。谢谢你,伙计。我是认真的(很遗憾我的声誉阻止我给你点赞)。

答案1

我绝不建议这样做,因为我认为这在审美上非常可疑。不过,本网站并不关心排版是否合理,只关心 TeX 中技术上最优雅的实现。

iwona将字体设置为默认的罗马系列。cmbright将字体设置为默认的 sans 系列,然后将默认系列设置为 sans。

因此,如果我们iwona先加载,我们可以让它cmbright覆盖数学配置,这将回退到iwona的选择,例如,OMX当 CM Bright 没有提供这些配置时。(这不是一个好主意,但它似乎是你的想法。)

然后,我们可以将默认字体系列切换回罗马字体,以获得用于文本的 Iwona 字体。

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[math]{iwona}
\usepackage{cmbright}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\renewcommand*{\familydefault}{\rmdefault}

\begin{document}
  \begin{equation}
    \begin{aligned}
      H\!\left(x\right)
      & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
      &\\
      \widehat{H}\!\left(t\right)
      & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k\\
    \end{aligned}
    \qquad
    \begin{aligned}
      S\!\left(x\right)
      & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
      &\\
      \widehat{S}\!\left(t\right)
      & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right).
    \end{aligned}
  \end{equation}

  \noindent
  \lipsum[1-1]

\end{document}

Iwona 和 CM Bright

请参阅cmbright的文档,了解有关合适大符号的建议,例如cmex。这些可能比混合 Iwona 更好一些。但是,由于您已经混合了两种 sans 字体,也许大符号是您最不用担心的。

您还应该考虑一种解决方案,即只替换您不喜欢的符号。网站上有几个此类问题可以作为指南。

编辑:注释

如果你使用以下代码:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[math]{iwona}
\usepackage{cmbright}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
  \begin{equation}
    \begin{aligned}
      H\!\left(x\right)
      & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
      &\\
      \widehat{H}\!\left(t\right)
      & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k\\
    \end{aligned}
    \qquad
    \begin{aligned}
      S\!\left(x\right)
      & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
      &\\
      \widehat{S}\!\left(t\right)
      & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right).
    \end{aligned}
  \end{equation}

  \noindent
  \lipsum[1-1]

\end{document}

然后你将获得 CM Bright 文本数学。唯一的例外是大型数学符号,CM Bright 没有这个符号,而 Iwona 有这个符号:

CM Bright 带有大型 Iwona 数学符号

我认为在这种情况下,你最好完全放弃 Iwona 并使用cmbright文档中建议的配置:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{cmbright}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
  \begin{equation}
    \begin{aligned}
      H\!\left(x\right)
      & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
      &\\
      \widehat{H}\!\left(t\right)
      & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k\\
    \end{aligned}
    \qquad
    \begin{aligned}
      S\!\left(x\right)
      & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
      &\\
      \widehat{S}\!\left(t\right)
      & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right).
    \end{aligned}
  \end{equation}

  \noindent
  \lipsum[1-1]

\end{document}

CM Bright 和 CM Extended 适用于大型数学符号

更新

这是对已编辑问题的回复。正如我在评论中解释的那样,那里发布的解决方案并不好,因为它并没有真正达到你的想法。

让我们首先检查不同的字体,因为这会引起一些混淆:

字体采样器

代码:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\begin{document}
  Default Computer Modern Roman (serif):

    \lipsum[1]

  \sffamily Computer Modern Sans Serif:

    \lipsum[1]

  \fontfamily{cmbr}\selectfont Computer Modern Bright:

    \lipsum[1]

  \fontfamily{iwona}\selectfont Iwona:

    \lipsum[1]
\end{document}

我从评论中得知,您实际上并不喜欢 Iwona。也就是说,您不想使用上面示例程序中的最后一个字体。这不是“Iwona serif”或“Iwona roman”。它只是 Iwona。如果您不喜欢那个字体,那么您就不喜欢 Iwona。

电脑现代无字体

我认为您希望使用的是 Computer Modern Bright 或 Computer Modern Sans Serif。我之前提供的代码演示了如何使用 CM Bright。要使用 Computer Modern Sans Serif:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\renewcommand*{\familydefault}{\sfdefault}
\begin{document}

    \lipsum[1]

\end{document}

管理信息系统

这一切的复杂之处在于,iwona.sty即使 Iwona 实际上是一种无衬线字体,也会将 Iwona 安装为默认的罗马/衬线系列。因此,如果您加载iwona但随后在文档中切换到无衬线字体,您实际上根本看不到任何 Iwona 用于文本。(除非您明确请求罗马系列。)

我认为您真正想要做的是使用 Iwona 中的大型数学符号来避免您得到的衬线版本。我不确定这是否是最好的解决方案。但是......

数学

数学会发生什么?默认情况下,什么也不会发生。我们所做的只是更改文本字体。正如您所解释的,sfmath可用于激活 sans maths:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\usepackage{sfmath}
\renewcommand*{\familydefault}{\sfdefault}
\begin{document}

  \lipsum[1]

  \begin{equation}
    \begin{aligned}
      S\!\left(x\right) & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
      H\!\left(x\right) & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
    \end{aligned}
    \qquad
    \begin{aligned}
      \widehat{S}\!\left(t\right) & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right)\\
      \widehat{H}\!\left(t\right) & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k
    \end{aligned}
  \end{equation}

\end{document}

无数学

这是从 Computer Moderncmex字体中取出的大符号,以及来自无衬线字体的字母和运算符。

Iwona 的大型符号

如果您希望从 Iwona 中获取大符号,您可以这样做:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\usepackage{sfmath}% use cm, cmbright or lm as options for similar maths fonts (cm is default)
\renewcommand*{\familydefault}{\sfdefault}
% take large maths symbols from Iwona as these aren't available in Computer Modern for sans (otherwise we get serif symbols from cmex)
\SetSymbolFont{largesymbols}{normal}  {OMX}{iwona}{m}{n}
\SetSymbolFont{largesymbols}{bold}  {OMX}{iwona}{b}{n}
\begin{document}

  \lipsum[1]

  \begin{equation}
    \begin{aligned}
      S\!\left(x\right) & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
      H\!\left(x\right) & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
    \end{aligned}
    \qquad
    \begin{aligned}
      \widehat{S}\!\left(t\right) & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right)\\
      \widehat{H}\!\left(t\right) & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k
    \end{aligned}
  \end{equation}

\end{document}

计算机现代 Sans 字体,不含数学符号和 Iwona 大符号

Iwona,大胆而现代的计算机

粗体部分的问题是不同的。加载时会发生什么情况iwona呢?它会重新定义粗体系列

\renewcommand{\bfdefault}{b}

因此以下文件

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage[math]{iwona}
\usepackage{lipsum}
\usepackage{sfmath}% use cm, cmbright or lm as options for similar maths fonts (cm is default)
\renewcommand*{\familydefault}{\sfdefault}
% take large maths symbols from Iwona as these aren't available in Computer Modern for sans (otherwise we get serif symbols from cmex)
\SetSymbolFont{largesymbols}{normal}  {OMX}{iwona}{m}{n}
\SetSymbolFont{largesymbols}{bold}  {OMX}{iwona}{b}{n}
\begin{document}

  \textbf{bold} and normal text

\end{document}

将产生以下结果:

禁用粗体

也就是说,您根本无法使用粗体。发生这种情况是因为远非理想的重新定义iwona.sty与 Computer Modern 字体远非理想的默认设置相互作用。事实上,的手册sfmath建议在之前加载fix-cm并执行此操作\documentclass。添加

\RequirePackage{fix-cm}

\documentclass修复问题之前:

恢复粗体

因此,iwona仅加载非粗体部分也会在所有地方取消粗体。但修复粗体也会恢复粗体部分,因为如果 LaTeX 可以找到粗体字体,它会默认将它们用作部分标题。此外,这可能会导致意想不到的地方出现不一致。最好要求 LaTeX 提供非粗体部分而不是希望 LaTeX 根本无法找到粗体字体。

非粗体部分

可以使用该titlesec包轻松实现此目的。以下传递了无衬线、中等粗细部分标题的和titlesec选项。[请注意,选项是和而不是和,即它们不对应于 LaTeX 字体命令和。]sfmdsfmdsffamilymdseries\sffamily\mdseries

\RequirePackage{fix-cm}% recommended in documentation for sfmath
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{lipsum}
\usepackage{sfmath}% use cm, cmbright or lm as options for similar maths fonts (cm is default)
\renewcommand*{\familydefault}{\sfdefault}
% take large maths symbols from Iwona as these aren't available in Computer Modern for sans (otherwise we get serif symbols from cmex)
\SetSymbolFont{largesymbols}{normal}  {OMX}{iwona}{m}{n}
\SetSymbolFont{largesymbols}{bold}  {OMX}{iwona}{b}{n}
\usepackage[sf,md]{titlesec}
\begin{document}

  \section{A section}

  \section{Another section}

  \subsection{A subsection}

  \subsubsection{A subsubsection}

  \lipsum[1]

  \begin{equation}
    \begin{aligned}
      S\!\left(x\right) & \ = \ \mathsf{Pr}\!\left[X > x\right]\\
      H\!\left(x\right) & \ = \ \int_0^x h\!\left(t\right)\mathsf{d}t\\
    \end{aligned}
    \qquad
    \begin{aligned}
      \widehat{S}\!\left(t\right) & \ = \ \textsf{exp}\!\left(-\widehat{H}\!\left(t\right)\right)\\
      \widehat{H}\!\left(t\right) & \ = \ \sum_{k \, | \, t_k \leq t} d_k / n_k
    \end{aligned}
  \end{equation}

\end{document}

无字体、中等部分、无数学和文本、Iwona 的大符号

重要的是,这保留了您在需要时使用粗体的能力:

\textbf{bold} and normal

保留粗体和正常

请注意,即使您不想使用粗体,通过加载iwona来去除它也不是一个好的解决方案,因为有些字体(例如 Iwona)如果你有一个粗体b系列,你很可能会遇到奇怪的事情。此外,你的日志和控制台上的输出会经常抱怨缺少字体,这使得你更难找到你想要找到的真正问题。

相关内容