有没有办法加载 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}
请参阅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 有这个符号:
我认为在这种情况下,你最好完全放弃 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}
更新
这是对已编辑问题的回复。正如我在评论中解释的那样,那里发布的解决方案并不好,因为它并没有真正达到你的想法。
让我们首先检查不同的字体,因为这会引起一些混淆:
代码:
\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}
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 字体命令和。]sf
md
sf
md
sffamily
mdseries
\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}
重要的是,这保留了您在需要时使用粗体的能力:
\textbf{bold} and normal
请注意,即使您不想使用粗体,通过加载iwona
来去除它也不是一个好的解决方案,因为有些字体(例如 Iwona)做如果你有一个粗体b
系列,你很可能会遇到奇怪的事情。此外,你的日志和控制台上的输出会经常抱怨缺少字体,这使得你更难找到你想要找到的真正问题。