使用代码 cpp 片段时 Tilda 会上升

使用代码 cpp 片段时 Tilda 会上升

我使用带有 latex 的 C++ 代码片段。我尝试使用 verbatim、lstlisting 和 minted(我认为哪个最漂亮)。但它们有一个问题。当我想编写代码 p->~T() 时,我在行首得到了波浪号:

蒂尔达起伏

我该如何修复这个问题或者哪个代码包不会提升我的 tilda?

\documentclass[a4paper,14pt]{extreport}

\renewcommand{\baselinestretch}{1.3}
\usepackage[warn]{mathtext}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[normalem]{ulem}

\usepackage{blindtext}
\usepackage{hyperref}
\usepackage{epigraph}

\usepackage{minted}

\usepackage{listings}
\usepackage{xcolor}
\lstset { %
    language=C++,
    backgroundcolor=\color{black!5}, % set backgroundcolor
    basicstyle=\footnotesize,% basic font setting
}

\begin{document}

\begin{minted}{cpp}
void destroy(T* p) {
  p->~T();
}
\end{minted}

\end{document}

答案1

文档minted对“高波浪号”有所说明并建议使用lmodern它来降低它。

在此处输入图片描述

但是,lmodern不支持 T2A 编码。如果您的minted列表不需要西里尔文,您可以使用不太知名的功能fancyvrb(基于此功能minted构建)。该功能是可以表示

fontfamily=myFont

在设置中fancyvrb(或minted,在本例中)并重新定义\myFont为所需的编码和字体系列组合。

\documentclass{article}
\usepackage[T1,T2A]{fontenc}

\usepackage{minted}

\renewcommand{\myFont}{\fontencoding{T1}\fontfamily{lmtt}\selectfont}

\setminted{
  fontfamily=myFont,
}

\begin{document}

\begin{minted}{cpp}
void destroy(T* p) {
  p->~T();
}
\end{minted}

\end{document}

在此处输入图片描述

答案2

你没有显示测试文档,但我猜你使用的是现代计算机,大多数字体都没有那么高~,拉丁现代字体非常相似,但会产生

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}

\verb|p->~T()|

\end{document}

或者对于更大的示例,请注意您需要切换回 T1 才能使用拉丁现代 tt 字体。

在此处输入图片描述

\documentclass[a4paper,14pt]{extreport}

\renewcommand{\baselinestretch}{1.3}
\usepackage[warn]{mathtext}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[normalem]{ulem}

\usepackage{lmodern}
\usepackage{blindtext}
\usepackage{hyperref}
\usepackage{epigraph}

\usepackage{minted}

\usepackage{listings}
\usepackage{xcolor}
\lstset { %
    language=C++,
    backgroundcolor=\color{black!5}, % set backgroundcolor
    basicstyle=\footnotesize,% basic font setting
}

\showoutput
\begin{document}

{\fontencoding{T1}\selectfont
\begin{minted}{cpp}
void destroy(T* p) {
  p->~T();
}
\end{minted}
}

\end{document}

相关内容