包含 Java 代码以在 Latex 中显示文本

包含 Java 代码以在 Latex 中显示文本

在 texlipse 中可以做类似以下的事情吗?

\documentclass{article}
\usepackage{listings}  
\begin{document}

\section{Title}
import java
\subsection{Subtitle}

I want to display some java result

\begin{lstlisting}   
 printMyString()       
\end{lstlisting}              
\end{document}

例如,printMyString() 如下:

public String printMyString() {
return "Hello World";
}

谢谢!

答案1

虽然我不喜欢在文档中进行即时计算,但这里有一个可能的解决方案BeanShell

BeanShell 是一个小型、免费、可嵌入的 Java 源代码解释器,具有对象脚本语言功能,用 Java 编写。BeanShell 动态执行标准 Java 语法,并使用常见的脚本便利功能(如松散类型、命令和方法闭包,类似于 Perl 和 JavaScript 中的功能)对其进行扩展。

就这样。

paulo@alexandria Sandbox$ ls
bsh.jar        test.tex

我的卑微​​代码:

\documentclass{article}

\usepackage{fancyvrb}

\makeatletter
\newcommand{\calljava}{\ttfamily\@@input|"java -cp bsh.jar bsh.Interpreter tmp.bsh"}
\makeatother

\newenvironment{java}
{\VerbatimOut{tmp.bsh}}
{\endVerbatimOut\calljava}

\begin{document}

My first code.

\vspace{2em}

\begin{java}
int addTwoNumbers(int a, int b) {
   return a + b;
}
System.out.println(addTwoNumbers(10, 20));
\end{java}

\vspace{2em}

My second code.

\vspace{2em}

\begin{java}
for (int i = 1; i <= 10; i++) {
   System.out.println("I like ducks!\\par");
}
\end{java}

\end{document}

正在运行pdflatex --shell-escape test.tex

我喜欢鸭子!

这个想法很简单:获取环境主体java并将其添加到名为的临时文件中tmp.bsh,通过传递要执行的临时文件来运行解释器bsh.jar,并捕获输出。

我的好朋友 egreg 提到,除非我们编写另一个辅助文件并输入它,否则此代码无法与xetex或 一起使用luatex。那么让我们坚持pdflatex一段时间。:)

希望能帮助到你。:)

相关内容