minted 和 mintinline 的字体大小不同

minted 和 mintinline 的字体大小不同

我想知道是否可以区分\mintinline\begin{minted},对两者使用不同的字体大小。

背景:我将 Java 代码放在我的文档中,\begin{minted}并使用全局设置字体大小\setminted[java]{fontsize=\footnotesize}。但是当我想以内联方式显示某些代码部分时,我需要使用更大的字体大小(出于美观原因:)),所以我每次都必须使用\mintinline[fontsize=\small]{java}
也许可以复制 Java 设置并创建类似的东西\mintinline{javainline},但我没有找到有关此信息。

如请求的示例代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{minted}
\setminted[java]{fontsize=\footnotesize}
\begin{document}
This is inline code: \mintinline[fontsize=\normalsize]{java}{Do.magic()} \\
And here a code block:
\begin{minted}{java}
    public class Magic(){
        public void do(){

        }
    }
\end{minted}
\end{document}

[fontsize=\normalsize]每次使用 \mintinline 时我都想摆脱书写。

答案1

您可以做得更好,即\mintinline利用当前的字体大小。

该包minted允许\setmintinline,其优先级高于\setminted\mintinline唯一的技巧是定义一个选择当前字体大小的宏。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{minted}

\makeatletter
\newcommand{\currentfontsize}{\fontsize{\f@size}{\f@baselineskip}\selectfont}
\makeatother

\setminted[java]{fontsize=\footnotesize}
\setmintedinline{fontsize=\currentfontsize}

\begin{document}

{\LARGE This is LARGE inline code: \mintinline{java}{Do.magic()}}

\bigskip

This is inline code: \mintinline{java}{Do.magic()}

And here a code block:
\begin{minted}{java}
    public class Magic(){
        public void do(){

        }
    }
\end{minted}

\end{document}

在此处输入图片描述

答案2

对我来说@egreg 的解决方案非常有效。另外,在我的例子中,也可以简单地将

\usepackage{minted}
\setminted{fontsize=\scriptsize,baselinestretch=0.9, linenos}

\setmintedinline{fontsize=\normalsize}

并且无需先保存字体大小它也能正常工作。

相关内容