我想知道是否可以区分\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}
并且无需先保存字体大小它也能正常工作。