我需要一些自定义装饰符号,比如\tilde
数学模式。
MnSymbol 包中有一些简洁的符号,因此我认为应该按照建议导入这些符号这里:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%\usepackage{accents}
\usepackage{bm}
% import certain symbols from MnSymbol,
% https://tex.stackexchange.com/questions/450691/create-diamond-with-a-dash-in-it/450703#450703
\def\ImportFromMnSymbol#1{%
\DeclareFontFamily{U} {MnSymbol#1}{}
\DeclareFontShape{U}{MnSymbol#1}{m}{n}{ <-6> MnSymbol#15 <6-7> MnSymbol#16 <7-8> MnSymbol#17 <8-9> MnSymbol#18 <9-10> MnSymbol#19 <10-12> MnSymbol#110 <12-> MnSymbol#112 }{}
\DeclareFontShape{U}{MnSymbol#1}{b}{n}{ <-6> MnSymbol#1-Bold5 <6-7> MnSymbol#1-Bold6 <7-8> MnSymbol#1-Bold7 <8-9> MnSymbol#1-Bold8 <9-10> MnSymbol#1-Bold9 <10-12> MnSymbol#1-Bold10 <12-> MnSymbol#1-Bold12 }{}
\DeclareSymbolFont{MnSy#1} {U} {MnSymbol#1}{m}{n} }
\newcommand\DeclareMnSymbol[4]{\DeclareMathSymbol{#1}{#2}{MnSy#3}{#4}}
\ImportFromMnSymbol{C}
\DeclareMnSymbol{\smalltriangleup}{\mathbin}{C}{73}
\begin{document}
$
\tilde{f}
\quad \tilde{\bm{f}}
\quad \overset{\smalltriangleup}{f}
\quad \stackrel{\smalltriangleup}{f}
$
\end{document}
我的问题是我不知道如何正确定位符号:
最后的尝试在视觉上是正确的方向,但方法似乎并不正确,因为当从 pdf 中突出显示和复制文本时,会得到一个三角形符号,后跟一个 f,而不是普通的 f。
那么如何才能正确完成呢? Amsmath 能够找到如何以令人愉悦的方式定位波浪符号,这真是太好了,有没有什么办法可以利用这一点呢?
我记得这个accents
包被推荐过,但是加载这个包之后甚至波浪号都不再正确定位了:
答案1
为什么不将该符号声明为重音符号?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%\usepackage{accents}
\usepackage{bm}
% import certain symbols from MnSymbol,
% https://tex.stackexchange.com/questions/450691/create-diamond-with-a-dash-in-it/450703#450703
\newcommand\ImportFromMnSymbol[1]{%
\DeclareFontFamily{U}{MnSymbol#1}{}
\DeclareFontShape{U}{MnSymbol#1}{m}{n}
{ <-6> MnSymbol#15
<6-7> MnSymbol#16
<7-8> MnSymbol#17
<8-9> MnSymbol#18
<9-10> MnSymbol#19
<10-12> MnSymbol#110
<12-> MnSymbol#112
}{}
\DeclareFontShape{U}{MnSymbol#1}{b}{n}
{ <-6> MnSymbol#1-Bold5
<6-7> MnSymbol#1-Bold6
<7-8> MnSymbol#1-Bold7
<8-9> MnSymbol#1-Bold8
<9-10> MnSymbol#1-Bold9
<10-12> MnSymbol#1-Bold10
<12-> MnSymbol#1-Bold12
}{}
\DeclareSymbolFont{MnSy#1}{U}{MnSymbol#1}{m}{n}
\SetSymbolFont{MnSy#1}{bold}{U}{MnSymbol#1}{b}{n}
}
\newcommand\DeclareMnSymbol[4]{\DeclareMathSymbol{#1}{#2}{MnSy#3}{#4}}
\newcommand\DeclareMnAccent[4]{\DeclareMathAccent{#1}{#2}{MnSy#3}{#4}}
\ImportFromMnSymbol{C}
\DeclareMnAccent{\acctriangleup}{\mathord}{C}{73}
\begin{document}
$\acctriangleup{f}+\tilde{f}$
{\boldmath$\acctriangleup{f}+\tilde{f}$}
\end{document}
我重新格式化了代码以提高可读性(虽然我不确定间隔,但这不是什么大问题)并添加了粗体数学版本的设置。
以下是如何缩小所需字体的方法。我添加了一些参数,以便能够以不同的比例加载相同的字体。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%\usepackage{accents}
\usepackage{bm}
% import certain symbols from MnSymbol,
% https://tex.stackexchange.com/questions/450691/create-diamond-with-a-dash-in-it/450703#450703
\begingroup\makeatletter\nfss@catcodes
\gdef\ImportFromMnSymbolaux#1#2#3{%
\DeclareFontFamily{U}{MnSymbol#2#3}{}
\DeclareFontShape{U}{MnSymbol#2#3}{m}{n}
{ <-6> s*[#1] MnSymbol#25
<6-7> s*[#1] MnSymbol#26
<7-8> s*[#1] MnSymbol#27
<8-9> s*[#1] MnSymbol#28
<9-10> s*[#1] MnSymbol#29
<10-12> s*[#1] MnSymbol#210
<12-> s*[#1] MnSymbol#212
}{}
\DeclareFontShape{U}{MnSymbol#2#3}{b}{n}
{ <-6> s*[#1] MnSymbol#2-Bold5
<6-7> s*[#1] MnSymbol#2-Bold6
<7-8> s*[#1] MnSymbol#2-Bold7
<8-9> s*[#1] MnSymbol#2-Bold8
<9-10> s*[#1] MnSymbol#2-Bold9
<10-12> s*[#1] MnSymbol#2-Bold10
<12-> s*[#1] MnSymbol#2-Bold12
}{}
\DeclareSymbolFont{MnSy#2#3}{U}{MnSymbol#2#3}{m}{n}
\SetSymbolFont{MnSy#2#3}{bold}{U}{MnSymbol#2#3}{b}{n}
}
\endgroup
\newcommand{\ImportFromMnSymbol}[3][1]{\ImportFromMnSymbolaux{#1}{#2}{#3}}
\newcommand\DeclareMnSymbol[4]{\DeclareMathSymbol{#1}{#2}{MnSy#3}{#4}}
\newcommand\DeclareMnAccent[4]{\DeclareMathAccent{#1}{#2}{MnSy#3}{#4}}
\ImportFromMnSymbol[0.7]{C}{70}
\DeclareMnAccent{\acctriangleup}{\mathord}{C70}{73}
\begin{document}
$\acctriangleup{f}+\tilde{f}$
{\boldmath$\acctriangleup{f}+\tilde{f}$}
\end{document}
答案2
因此,可以使用 accents 包,它提供了一种很好的方法,可以将\smalltringleup
我的问题中的 -Symbol 放置在字母上方。需要记住的两件事是:
\bm{...}
必须是包含的最外层命令\tilde
,等等。\bm
如果使用重音符号,则里面必须有一组额外的括号:(\bm{{\tilde{...}}}
否则编译过程将失败)
和\usepackage{accents}
:
$
\tilde{f}
\quad \tilde{\bm{f}}
\quad \bm{{\tilde{f}}}
\quad \accentset{\smalltriangleup}{f}
\quad \accentset{\smalltriangleup}{\bm{f}}
\quad \bm{{\accentset{\smalltriangleup}{f}}}
$
正如 campa 在我的问题下面的评论中指出的那样,剩下的两个问题之一可以通过单一选项解决,即\usepackage[single]{accents}
: