在 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
一段时间。:)
希望能帮助到你。:)