1. ホーム
  2. latex

[解決済み] 専門書のようなLaTeXのソースコード一覧表示

2022-03-17 16:54:32

質問

例えば、Spring Frameworkのような有名な書籍のような出力を得るには、Latexのソースコードリストはどのように見えるべきでしょうか?latex listingsパッケージで試しましたが、以下のような美しいものを作成することができませんでした。だから、私は主に以下のサンプルのようなものを生成するための書式設定命令に興味があります(Manning'sから サンプルチャプター に対して Springの活用法 ):

EDIT 特に Tormod Fjeldskår(トルモド・フィエルスコール 以下は、希望する外観を実現するための完全なスニペットです。

\usepackage{listings}
\usepackage{courier}
\lstset{
    basicstyle=\footnotesize\ttfamily, % Default font
    % numbers=left,              % Location of line numbers
    numberstyle=\tiny,          % Style of line numbers
    % stepnumber=2,              % Margin between line numbers
    numbersep=5pt,              % Margin between line numbers and text
    tabsize=2,                  % Size of tabs
    extendedchars=true,
    breaklines=true,            % Lines will be wrapped
    keywordstyle=\color{red},
    frame=b,
    % keywordstyle=[1]\textbf,
    % keywordstyle=[2]\textbf,
    % keywordstyle=[3]\textbf,
    % keywordstyle=[4]\textbf,   \sqrt{\sqrt{}}
    stringstyle=\color{white}\ttfamily, % Color of strings
    showspaces=false,
    showtabs=false,
    xleftmargin=17pt,
    framexleftmargin=17pt,
    framexrightmargin=5pt,
    framexbottommargin=4pt,
    % backgroundcolor=\color{lightgray},
    showstringspaces=false
}
\lstloadlanguages{ % Check documentation for further languages ...
     % [Visual]Basic,
     % Pascal,
     % C,
     % C++,
     % XML,
     % HTML,
     Java
}
% \DeclareCaptionFont{blue}{\color{blue}} 

% \captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

文書内でこれと一緒に使ってください。

\lstinputlisting[label=samplecode, caption=A sample]{sourceCode/HelloWorld.java}

解決方法は?

あなたが本当に望んでいるのは、キャプションの外観をカスタマイズすることだと思います。これを最も簡単に行うには caption パッケージで提供されます。このパッケージの使用方法については マニュアル(PDF) . マニュアルの4章で説明されているように、おそらく独自のカスタムキャプションフォーマットを作成する必要があるでしょう。

編集する MikTexでテストしました。

\documentclass{report}

\usepackage{color}
\usepackage{xcolor}
\usepackage{listings}

\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox{gray}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}

% This concludes the preamble

\begin{document}

\begin{lstlisting}[label=some-code,caption=Some Code]
public void here() {
    goes().the().code()
}
\end{lstlisting}

\end{document}

結果