
私は、lstlisting を使用して Maxima コードを LaTeX に埋め込もうとしていますが、リストの上に余分な空白が表示されます。これは私のプリアンブルにあります:
\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}
関連する LaTeX コードは次のとおりです。
\begin{tabular}{ll}
\textcolor{red}{\ttfamily (\%i1)} &
\begin{lstlisting}
divide(x*((x^2*p^2-t^2)^2 + 2*x*p^3*(x-(2*x^3+2*x^2+x+1)*t)), (x+1)*(t^2-x^2*p^2)^2, t);
\end{lstlisting}
\end{tabular}
結果は次のようになります:
リストの最初の行をテーブルの上部に揃えます。
これを修正する方法を誰か提案できますか?
答え1
\documentclass
からまでの完全な MWE を提示していただければ\end{document}
、推測したり水晶玉を使ったりする必要がなくなります。
それでも、私はボールを使ってあなたの例を少し修正しました。間違った仮定をしたとしても私を責めないでください。
テーブルを使用して、左の列にマーカーを表示し、右の列にコード例を表示します。コード例を -environment で囲みます。lstlisting
これは、表示される数式と非常によく似た動作をします。つまり、コードの上部と下部に空白スペースが追加されます。
代わりに、コードを左の列のラベルに合わせて配置したいのですよね?
コードを揃えるには、上記の環境の代わりに コマンドを使用する必要があります\lstinline!code!
。区切り文字として感嘆符 ( ) を使用する代わりに!
、コード内に存在しない他の任意の文字を選択できます。
最後に、テーブルを と平和的に連携させる必要があります\lstinline
。私は、2 番目の列を、長い行を分割できる定義済みの幅の列に変更することでこれを行いました。通常の列のようにl
、以前はそうだったように、それに追加しました。この新しい列タイプは(大文字の L)>{\raggedright\arraybackslash}
と名付けられました。L
これは私の例です:
\documentclass{article}
\usepackage{listings}
\usepackage{color}
%% New
\usepackage{array} % to define new column declarations.
%% Define a new column declaration
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}
\begin{document}
\begin{tabular}{l L{5cm} } % <--- I used the new L-column, made it 5
% <--- cm wide!
\textcolor{red}{\ttfamily (\%i1)} &
%% New: use inline listing, it has to be one line!
\lstinline!divide(x*((x^2*p^2-t^2)^2 + 2*x*p^3*(x-(2*x^3+2*x^2+x+1)*t)), (x+1)*(t^2-x^2*p^2)^2, t);!
\end{tabular}
\end{document}
そして結果は次の通りです。