
얼핏 보면 다음과 중복된 것처럼 보일 수도 있습니다.다른 질문중복으로 이미 종료되었습니다.이 하나. 하지만 그렇지 않습니다 ;-)
어떻게 설정하나요?전 세계적으로환경 \lstinline
의 글꼴 크기와 관계없이 모든 매크로 의 글꼴 크기는 무엇입니까?lstlisting
환경에 대한 기본값은 \small
매우 좋아 보이지만 주변 텍스트와 더 잘 혼합되기 때문에 인라인에는 보통 크기가 필요합니다.
아래에는 요청한 대로 매크로 반복을 보여주는 MWE가 나와 있습니다 \lstset
.
\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
실행되기 때문에 \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}