我正在寻找任何有用的类或包或样式(模板)来帮助我编写编程项目报告。
我找到了许多 LaTeX 教程,但发现从头开始相当困难。
答案1
listings
包提供了一种优雅的方式来包含外部编程源代码,如下所示。
假设您有一个名为的外部编程源代码project.cs
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
您可以从报告中导入代码。
\documentclass{report}
\usepackage{xcolor}
\usepackage{listings}
\lstset
{
basicstyle=\tt\scriptsize,
identifierstyle=\color{blue},
commentstyle=\color{red},
breaklines=true,
backgroundcolor=\color{yellow!30},
numbers=none,
language=[Sharp]C
}
\begin{document}
\lstinputlisting{project.cs}
\end{document}
输出:
有关如何使用listings
软件包的详细信息,请运行texdoc listings
以显示listings
软件包手册。选项太多,我无法一一显示。
为了绘制 UML,您可以使用名为 的 PSTricks 包pst-uml
。
答案2
如果你只是在寻找除普通文档类之外的其他内容,这里有一个使用 tufte-handout、TikZ 的 UML 图表示例,以及来自 @CounterTerrorist 的列表示例
\documentclass{tufte-handout}
\usepackage{listings}
\lstset
{
basicstyle=\ttfamily\scriptsize,
identifierstyle=\color{blue},
commentstyle=\color{red},
breaklines=true,
backgroundcolor=\color{yellow!30},
numbers=none,
language=[Sharp]C
}
\usepackage{tikz-uml}
% from http://www.ensta-paristech.fr/~kielbasi/tikzuml/index.php?lang=en
\title{A Report with Code and UML}
\author{Somebody Else}
\begin{document}
\maketitle
\section{Section Heading}
This is the introductory text of your report, with enough text to show the
column size. There's a UML diagram in Figure~\ref{fig:uml-diagram}.
\begin{figure}
\begin{tikzpicture}
% From http://www.ensta-paristech.fr/~kielbasi/tikzuml/doc/tikzuml-v0.9.6-fr.pdf
% section 1.2
\umlemptyclass{A1}
\umlemptyclass[x=3,y=-3]{A2}
\umluniaggreg[arg2=a,mult2=1,pos2=0.9]{A1}{A2}
\umluniassoc[geometry=-|,arg1=x,mult1=1,pos1=1.9,arg2=y,mult2=*,pos2=0.2]{A1}{A2}
\umlunicompo[arg=z,mult=1..*,pos=0.8,angle1=-90,angle2=-140,loopsize=2cm]{A2}{A2}
\end{tikzpicture}
\caption{UML diagram}
\label{fig:uml-diagram}
\end{figure}
This is the second paragraph of your report, with enough text to show the
indentation.
\subsection{Subsection Heading}
Also, we can include code, as shown in Listing~\ref{lst:csharp}.
\begin{lstlisting}[caption={A C\# code snippet},label={lst:csharp}]
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
\end{lstlisting}
\end{document}