\lstinline{} のフォントサイズを **のみ** 変更するにはどうすればいいですか?

\lstinline{} のフォントサイズを **のみ** 変更するにはどうすればいいですか?

一見すると、これは別の質問すでに重複として閉じられていますこれですでもそうじゃないんです ;-)

設定方法は世界的に環境\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}

ここに画像の説明を入力してください

関連情報