数学模式中的特殊字母

数学模式中的特殊字母
\documentclass[12pt,a4paper]{article}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[magyar]{babel}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[document]{ragged2e}
\usepackage[normalem]{ulem}
\usepackage{array}
\usepackage{gensymb}
\usepackage[T1]{fontenc}
\usepackage{accents}
\begin{document}
\newcommand{\genericmathaccentii}[2]{%
  \genericmathaccent{#1{}\mkern3mu#1{}}{#2}%
}
\newcommand{\genericmathaccent}[2]{%
  \vbox{\offinterlineskip\ialign{%
    ##\cr
    \hidewidth$\scriptstyle#1$\hidewidth\cr
    \noalign{\kern-.5ex}
    $#2$\cr}%
  }%
}
\newcommand{\acuteddot}[1]{\genericmathaccentii{\acute}{#1}}
\begin{flushleft}
\sloppy
\justify
$a_{\acuteddot{x}}$
\end{flushleft}
\end{document}

这段代码运行正常。但如果我$\acuteddot{x}$在索引中使用,例如:$a_{\acuteddot{x}}$它不会自行调整大小。但如果我使用$a_{d}$它,它会自行调整大小。我该怎么做,像普通东西一样自行调整大小。这个特殊字符可能在任何地方,它可能是下标的下标。

我正在使用:MiKTeX、texmaker、win10 64位

答案1

如果您想要的是匈牙利语双尖音符,那么在 PDFTeX 中,它位于 T1 字体编码中。(编辑:或者在 OT1 中,它已经默认加载,尽管我相信一些包可能会改变这一点。)您可以将其声明为数学模式重音:

\documentclass[12pt,a4paper]{article}
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[magyar]{babel}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[document]{ragged2e}
\usepackage[normalem]{ulem}
\usepackage{array}
\usepackage{gensymb}
\usepackage{bm}
%\usepackage{accents}

\DeclareSymbolFont{t1letters}{T1}{\rmdefault}{m}{it}
\SetSymbolFont{t1letters}{bold}{T1}{\rmdefault}{b}{it}
\DeclareMathAccent{\mathdacute}{\mathalpha}{t1letters}{"05}

\begin{document}
\begin{flushleft}
\sloppy
\justify
$a_{\mathdacute{\alpha}_{\mathdacute{x}}} \boldsymbol{\mathdacute{u}}$
\end{flushleft}
\end{document}

计算机现代样本

如果您不喜欢重音的放置,\skew那么。

这用完了经典 TeX 中允许使用的十六个数学字母中的一个。如果您不需要大写希腊文\mathrm,您可以将其重新定义为使用 T1 编码。

如果您可以升级到 LuaLaTeX 或 XeLaTeX 并使用 Unicode,那将是一个更强大的解决方案。

如果您正在寻找一个通用宏来在符号上方并排排版两个任意重音符号,则您可以使用它\text来获取缩放框,或\mathchoice在框中选择适当的数学样式。

答案2

不需要定义新的符号字体,因为 OT1 编码中可以使用长变音符号。

\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{cmap}
%\usepackage[utf8]{inputenc} % no longer needed
\usepackage[magyar]{babel}

\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}

%\usepackage{amsfonts} % already loaded by amssymb
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{array}
\usepackage{accents}
%\usepackage{gensymb} % do you need it?

\usepackage{graphicx}
%\usepackage[document]{ragged2e} % do you need it?
%\usepackage[normalem]{ulem} % not needed for the example

\DeclareMathAccent{\acuteddot}{\mathalpha}{operators}{125}

\begin{document}

$a_{\acuteddot{x}}+\acuteddot{x}$

\end{document}

在此处输入图片描述

我已经重新组织了你的序言。我不确定为什么要使用flushleft然后\justify在其中声明,因为对齐是标准排版模式。

在哪里可以找到神奇数字 125?要么查阅字体表,要么查看ot1enc.def包含以下行的

\DeclareTextAccent{\H}{OT1}{125}

我们知道这\H是长变音符号的命令。

只是为了完整起见,这里是您可以使用找到的手动方式定义口音的方法(这不是最好的定义)。

\documentclass[12pt,a4paper]{article}
\usepackage{cmap}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc} % no longer needed
\usepackage[magyar]{babel}

\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}

%\usepackage{amsfonts} % already loaded by amssymb
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{array}
\usepackage{accents}
%\usepackage{gensymb} % do you need it?

\usepackage{graphicx}
%\usepackage[document]{ragged2e} % do you need it?
%\usepackage[normalem]{ulem} % not needed for the example

\DeclareMathAccent{\acuteddot}{\mathalpha}{operators}{125}

\makeatletter
\newcommand{\genericmathaccentii}[2]{%
  \genericmathaccent{#1{}\mkern3mu#1{}}{#2}%
}
\newcommand{\genericmathaccent}[2]{%
  \mathpalette\genericmathaccent@{{#1}{#2}}%
}
\newcommand{\genericmathaccent@}[2]{%
  \genericmathaccent@@#1#2%
}
\newcommand{\genericmathaccent@@}[3]{%
  \vbox{\offinterlineskip
    \sbox\z@{$#1#3$}%
    \ialign{%
      ##\cr
      \hidewidth$\m@th#1#2{}$\hidewidth\cr
      \noalign{\kern-\ht\z@}
      $\m@th#1#3$\cr}%
  }%
}
\newcommand{\demotestyle@}[1]{%
  \ifx#1\displaystyle\scriptstyle\else
  \ifx#1\textstyle\scriptstyle\else
  \scriptscriptstyle\fi\fi
}
\makeatletter

\newcommand{\acuteddotalt}[1]{\genericmathaccentii{\acute}{#1}}

\begin{document}

$a_{\acuteddot{x}}+\acuteddot{x}$

$a_{\acuteddotalt{x}}+\acuteddotalt{x}$

\end{document}

在此处输入图片描述

相关内容