怎样才能用打字机字体创建全尺寸的抑扬符?

怎样才能用打字机字体创建全尺寸的抑扬符?

我有一些 C 源代码,想以^源代码中通常显示的方式显示脱字符或插入符号 ( )——全尺寸字符。源代码将以打字机字体显示,我希望该字符与所有其他字符具有相同(即固定)的宽度。

我尝试过\texttt{}但效果不理想的方法(都在里面):

  • \textasciicircum发出小而高的抑扬音

  • \char`\^ 相同

  • \verb|^|相同的

  • \wedge在数学模式下产生的符号太大太宽,影响后续列的对齐

我还想显示一个全尺寸波浪符号 (~,尽管我发现它已经被打死了这里。我真的希望同样的恶作剧不会出现在抑扬符上,但无论如何,确定一下还是好的!

答案1

正如 Will Robertson 所说,插入符号的渲染取决于字体。这里我给出三个例子:

  1. OT1 编码的计算机现代打字机
  2. 采用 T1 编码的计算机现代打字机
  3. 因科索拉塔

在这三个字符中,第一个插入符号用 表示\textasciicircum,第二个插入符号用 表示\^{}。第一行中两个插入符号相同,第二行中第一个插入符号稍大且略低;\verb如果默认编码为 T1,则这是 使用的符号。

在此处输入图片描述

答案2

我通常使用这样的东西:

\texttt{\char`\^}

当然是在适当的宏内。这是否看起来可以接受,在一定程度上取决于您使用的等宽字体。

答案3

我只是对这两个角色做了一点研究(在我对我需要逃跑感到震惊之后^,虽然记录,到目前为止我还没有需要过),我发现切换字体看起来是一个很好的解决方案。

对于衬线字体(默认/罗马字体),我只查看了默认的 cmr,发现波浪号和插入符号都很丑陋,但可以使用。(我处理的大多数文档的正文都设置为无衬线字体……但这不是我决定的。)

对于无衬线字体,我查看了默认的 cmss(虽然不好看,但也可以用),pxss(看起来很完美;这是来自pxfonts包的,但我推荐反对使用它,并赞成只添加\renewcommand{\sfdefault}{pxss}%到您的文档中)。我还研究了非免费字体 museo(通过.ttf)和 pfr(通过1型胶水);两者都很好,但是不如 pxss 那么好。

对于电传字体,我查看了 cmtt(默认,极其丑陋)和 inconsolata(完美;这个字体是我的最喜欢的自从我发现用斜线 0 来“正确”地\usepackage[varqu,varl]{inconsolata}%激活它以来)。

具体来说,为了回答这个问题,我研究了 pxfont 的罗马风格是否与无衬线风格一样好(是的,它是)。

对于所有字体,我都查看了和\textasciitilde,但“动词”字体总是较差,所以我现在使用库存和宏来引用这些字符。\textasciicircum\verb|X|\textasciitilde\textasciicircum

因此,我建议您在文档序言中添加以下内容……

\renewcommand{\rmdefault}{pxr}%
\renewcommand{\sfdefault}{pxss}%
\usepackage[varqu,varl]{inconsolata}%

…然后根据你的需要使用这三种字体中的任意一种。(不过,如果你不想切换字体,我完全理解(.oO(除了避免使用 Inconsolata,我无法理解)☻☺),然后参考问题的其他答案。)

相关内容