
一見すると、これは別の質問すでに重複として閉じられていますこれですでもそうじゃないんです ;-)
設定方法は世界的に環境\lstinline
のフォント サイズとは関係なく、すべてのマクロのフォント サイズは同じですか?lstlisting
環境のデフォルトは です\small
。これは非常に見栄えが良いのですが、周囲のテキストとうまく混ざり合うため、インラインには標準サイズが必要です。
\lstset
以下は、リクエストに応じて、マクロの繰り返しを示す MWE です。
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily\small,numbers=left}
\begin{document}
\begin{lstlisting}
Displayed code listings
Look great
In a small font
\end{lstlisting}
I would like \lstinline{inline listings} to be at normalsize as in
\lstset{basicstyle=\ttfamily}%
\lstinline{this piece of code}
but then I have to issue a new \verb|lstset| macro
\lstset{basicstyle=\ttfamily\small}%
in order to get back to small size
\begin{lstlisting}
for displayed code listings
to show appropiately.
again
\end{lstlisting}
\end{document}
答え1
\myinline
私の MWE のように新しいコマンドを作成するのはどうでしょうか:
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily\small,numbers=left}
\newcommand{\myinline}[1]{\lstinline[basicstyle={\ttfamily\normalsize}]{#1}}
\begin{document}
\begin{lstlisting}
Displayed code listings
Look great
In a small font
\end{lstlisting}
I would like \lstinline{inline listings} to be at normalsize as in
\myinline{this piece of code}
but then I have to issue a new \verb|lstset| macro
in order to get back to small size
\begin{lstlisting}
for displayed code listings
to show appropiately.
again
\end{lstlisting}
\end{document}
答え2
\lstinline
コードを見ると、この 2 つを区別する方法はありません。ただし、内部的に実行されるため、パッチを追加することで区別できるようです\lstset
。これが他の結果をもたらすかどうかはわかりません。
\documentclass[a4paper]{article}
\usepackage{listings,xcolor,xpatch}
\lstset{
basicstyle=\color{red}\ttfamily,
}
% style for inline
\lstdefinestyle{foobar}{
basicstyle=\color{green}\ttfamily\tiny,
}
% \ShowCommand\lstinline shows \lstinline runs \lstset{flexiblecolumns,#1}, so we mess with that
\makeatletter
\xpatchcmd\lstinline{flexiblecolumns,}{flexiblecolumns,style=foobar,}{}{\typeout{patch failed}}
\makeatother
\begin{document}
\begin{lstlisting}
FooBar
\end{lstlisting}
inline \lstinline|FooBar|
\end{document}
答え3
別の名前で保存し\lstinline
、元のものとオプションbasicstyle=\ttfamily
(なし\small
) を渡すように再定義します。
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily\small,numbers=left}
\NewCommandCopy{\originallstinline}{\lstinline}
\RenewDocumentCommand{\lstinline}{O{}}{%
\originallstinline[basicstyle=\ttfamily,#1]%
}
\begin{document}
\begin{lstlisting}
Displayed code listings
Look great
In a small font
\end{lstlisting}
Here I see that \lstinline{inline listings} is at normalsize
and there is no need to issue a new \verb|lstset| macro
in order to get back to small size
\begin{lstlisting}
for displayed code listings
to show appropriately.
again
\end{lstlisting}
We can also pass options like in \lstinline[language=TeX]|\LaTeX|
\end{document}