我已经在使用 listing 和 minted 包,代码如下:
\documentclass[11pt,a4paper,openright,final,twoside,onecolumn]{memoir}
\listfiles
\fixpdflayout
\usepackage[utf8]{inputenc}
% Computer Modern Typewritter (For bold ttfamily in listings)
\usepackage{lmodern}
% OR... Bera Mono
%\usepackage[scaled]{beramono} % TTT Font
%\usepackage{anyfontsize} % As the name says...
\usepackage[T1]{fontenc}
% For Overleaf support
\usepackage{ifthen}
\def\useoverleaf{1} % change to non-zero (for instance, 1) to enable it
\makeatletter
\newcommand{\makecoverfile}[0]{%
\immediate\write18{latexmk -pdf cover.tex}%
}
\makeatother
%For PDF merging
\usepackage{pdfpages}
%SET DPI to 300
\pdfpxdimen=\dimexpr 1in/300\relax
\usepackage{morewrites} % Allow the use of a larger number of packages
%For English and Portuguese languages
%Portuguese will be the default.
%Use \setdefaultlanguage to change it
\usepackage{csquotes}
\usepackage[english,portuguese]{babel}
% For custom date format
\usepackage{datetime}
\newdateformat{thesisdate}{\monthname[\THEMONTH] \THEYEAR} % Month Year
\usepackage{microtype} % Make pdf look better
% Uncomment to enable floats on facing pages
%\usepackage{dpfloat}
%Side by side figures
% Eg. Fig 1a, Fig 1b
\usepackage[hang,small,bf]{caption}
%\let\tion\undefined
%\let\subfloat\undefined
\usepackage{subcaption}
%\RequirePackage{textcase}
% Dropped Caps
%\usepackage{lettrine}
% Configure Hyperlink color
%\usepackage[breaklinks=true,colorlinks=false,linkcolor=blue]{hyperref}
% Or use the default
\usepackage{hyperref}
%Optional: Redefine section names
%\def\sectionautorefname{Section}
%\def\chapterautorefname{Chapter}
%\def\figureautorefname{Figure}
%\def\listingautorefname{Listing}
%\def\tableautorefname{Table}
%For PDF Comments
\usepackage{comment}
\usepackage{pdfcomment}
\usepackage{bookmark} % New Bookmarks
%For Multiple columns in Glossary
\usepackage{multicol}
%Math symbols
\usepackage{amsmath}
\usepackage{amssymb}
%Graphics
\usepackage{graphicx}
%Colors
\usepackage{xcolor}
%Euro symbol
\usepackage{eurosym}
% Code boxes
\ifthenelse{\equal{\useoverleaf}{0}}
{\usepackage[outputdir=build]{minted}}
{\usepackage{minted}}%
\renewcommand\listingscaption{Código}
\fvset{fontsize=\footnotesize} % Make Code blocks smaller than text
%Biber using IEEE style for proper UTF-8 support
\usepackage[backend=biber,style=ieee, sorting=none]{biblatex}
\bibliography{bib/references.bib, bib/rfc.bib}
%Use acronyms
\usepackage[printonlyused]{acronym} % For acronyms
% Enable chart support through pgf and tikz
\usepackage[version=0.96]{pgf}
\usepackage{tikz}
\usepackage{pgf-umlsd}
\usetikzlibrary{arrows,shadows,trees,shapes,snakes,automata,backgrounds,petri,mindmap} % for pgf-umlsd
%For Electric Circuits
\usepackage[detect-weight=true, binary-units=true]{siunitx}
\sisetup{load-configurations = binary}
\usepackage[american,cuteinductors,smartlabels]{circuitikz}
\usetikzlibrary{calc}
\ctikzset{bipoles/thickness=1}
\ctikzset{bipoles/length=0.8cm}
\ctikzset{bipoles/diode/height=.375}
\ctikzset{bipoles/diode/width=.3}
\ctikzset{tripoles/thyristor/height=.8}
\ctikzset{tripoles/thyristor/width=1}
\ctikzset{bipoles/vsourceam/height/.initial=.7}
\ctikzset{bipoles/vsourceam/width/.initial=.7}
\tikzstyle{every node}=[font=\small]
\tikzstyle{every path}=[line width=0.8pt,line cap=round,line join=round]
% For inline TT text (e.g. code snippets)
\usepackage{verbatim}
%Frames around figures and allow force placement
\usepackage{float}
%Configure Float style
%\floatstyle{boxed}
%\restylefloat{table}
%\restylefloat{figure}
%\restylefloat{lstlisting}
%For test purposes
\usepackage{lipsum}
%Keep floats inside section!
\usepackage[section]{placeins}
\let \oldsubsubsection \subsubsection
\renewcommand{\subsubsection}[2][]{
\FloatBarrier
\oldsubsubsection#1{#2}
}
\let \oldsubsection \subsection
\renewcommand{\subsection}[2][]{
\FloatBarrier
\oldsubsection#1{#2}
}
\let \oldsection \section
\renewcommand{\section}[2][]{
\FloatBarrier
\oldsection#1{#2}
}
\let \oldchapter \chapter
\renewcommand{\chapter}[2][]{
\FloatBarrier
\oldchapter#1{#2}
}
%%%% Use the built-in division styling
\headstyles{memman}
%%% ToC down to subsections
\settocdepth{subsection}
%%% Numbering down to subsections as well
\setsecnumdepth{subsection}
%%%% extra index for first lines
\makeindex[lines]
%Margins for University of Aveiro Thesis
\setlrmarginsandblock{3cm}{2.5cm}{*}
\setulmarginsandblock{3cm}{3cm}{*}
\checkandfixthelayout
%Or custom spacing
%\addtolength{\parskip}{0.5\baselineskip}
\linespread{1.5}
\begin{document}
\ifthenelse{\equal{\useoverleaf}{0}}{}{\makecoverfile{}}%
\includepdf[pages=-]{cover.pdf}
%
%Front matter
%Custom Chapter style named thesis
\makechapterstyle{thesis}{% Based on ell
\chapterstyle{default}
\renewcommand*{\chapnumfont}{\normalfont\sffamily}
\renewcommand*{\chaptitlefont}{\normalfont\Huge\sffamily}
\settowidth{\chapindent}{\chapnumfont 111}
\renewcommand*{\chapterheadstart}{\begingroup
\vspace*{\beforechapskip}%
\begin{adjustwidth}{}{-\chapindent}%
\hrulefill
\smash{\rule{0.4pt}{15mm}}
\end{adjustwidth}\endgroup}
\renewcommand*{\printchaptername}{}
\renewcommand*{\chapternamenum}{}
\renewcommand*{\printchapternum}{%
\begin{adjustwidth}{}{-\chapindent}
\hfill
\raisebox{10mm}[0pt][0pt]{\fontsize{30}{25}\selectfont\chapnumfont \thechapter}%
\hspace*{1em}
\end{adjustwidth}\vspace*{-3.0\onelineskip}}
\renewcommand*{\printchaptertitle}[1]{%
\vskip\onelineskip
\raggedleft {\chaptitlefont ##1}\par\nobreak\vskip 4\onelineskip}}
%Select chapter style from existing or select custom
%\chapterstyle{thesis} % Others: dowding, demo2, dash, chappell, brotherton, bianchi, ger, madsen, tatcher, veelo,indexes)
% thesis can also be used as defined previously
%
%If you feel adventurous you can also define all aspects of your theme
%Use either this input or the chapterstyle before
%\input{custom-theme.tex}
\chapterstyle{veelo}
%Exclude sub figures from List of Figures
%\captionsetup[subfloat]{list=no}
% Texts
\newenvironment{introduction}
{%
\begin{minipage}{\textwidth}%
\itshape%
}
{%
\end{minipage}%
\par\addvspace{2\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}%
}
%Select Page style
\pagestyle{plain}
\frontmatter
\tightlists
\midsloppy
\raggedbottom
\setcounter{tocdepth}{2} %subsections are added to the TOC
\setcounter{secnumdepth}{4} %subsubsections are numbered
\cleardoublepage
%Table of contents
{\small\tableofcontents}
\cleardoublepage
%List of figures
{\small\listoffigures}
{\small\listoflistings}
%List of tables
\cleardoublepage
{\small\listoftables}
%Print Glossary
{\small\include{glossary}}
%
%Main document starts here
%
\mainmatter
% Start of Thesis text ----------------------------------------------------------
%Line spacing: 1.5 pt
\OnehalfSpacing
\include{chapters/chapter1}
%\include{chapter2}
%\include{chapter3}
%\include{chapter4}
% End of Thesis text ---------------------------------------------------------
% Including files is advised:
%Appendix
\backmatter
%Print all used references
\begingroup
\renewcommand{\bibfont}{\footnotesize}
%Redefine References name
\defbibheading{bibliography}[Referências]{
\chapter{#1}
}
\SingleSpacing
\setlength\bibitemsep{8pt}
\printbibliography[heading=bibliography]
\endgroup
%Load appendix
%\include{appendix-a}
\end{document}
答案1
有三个问题:首先,列表列表不会自动添加到目录中memoir
(实际上大多数标准文档类都不会添加列表列表)。您可以使用 来解决这个问题\addcontentsline{toc}{chapter}{\listoflistingscaption}
。
其次,重新定义\chapter
会导致问题,因为列表列表的minted
用途,如在\chapter*
muzimuzhi Z 的回答。
第三,babel
没有提供葡萄牙语列表列表的翻译,因此您需要使用明确设置\renewcommand\listoflistingscaption
(或者\addto\captionsportuguese{\renewcommand\listoflistingscaption
仅为葡萄牙语设置翻译,但在这种情况下这并不重要)。
把所有内容放在一起,最小化:
\documentclass{memoir}
\usepackage[utf8]{inputenc}
\usepackage[english,portuguese]{babel}
\usepackage{minted}
\usepackage{xparse}
\usepackage{placeins}
\renewcommand\listingscaption{Código}
\renewcommand\listoflistingscaption{Lista de Códigos}
\let \oldchapter \chapter
\RenewDocumentCommand \chapter { s O{#3} m }{%
\FloatBarrier
\IfValueTF{#1} % if optional star is seen
{\oldchapter*{#3}}
{\oldchapter[#2]{#3}}
}
\begin{document}
%Table of contents
{\small\tableofcontents}
%List of figures
{\small\listoffigures}
%List of listings
{\small\listoflistings}
\addcontentsline{toc}{chapter}{\listoflistingscaption}
%List of tables
{\small\listoftables}
\begin{figure}
\fbox{this is a figure}
\caption{A figure}
\end{figure}
\begin{listing}
\begin{minted}{python}
print("this is a listing")
\end{minted}
\caption{A listing}
\end{listing}
\begin{table}
\fbox{this is a table}
\caption{A table}
\end{table}
\end{document}
结果:
答案2
重新定义\chapter
不接受可选的星号*
,因此导致了问题。
\let \oldchapter \chapter
\renewcommand{\chapter}[2][]{
\FloatBarrier
\oldchapter#1{#2}
}
如果\chapter*{title}
使用,则被*
识别为#2
且为#1
空,因此它将扩展为\oldchapter{*} {title}
并产生大*
而后小的List of Listings
输出。
使用以下重新定义
\usepackage{xparse}
\RenewDocumentCommand \chapter { s O{#3} m }{%
\FloatBarrier
\IfValueTF{#1} % if optional star is seen
{\oldchapter*{#3}}
{\oldchapter[#2]{#3}}
}
也应进行类似的修改\section
。
最后但同样重要的一点是,如果不注释掉一些行,您的示例将无法编译。