我需要在 LaTeX 中插入一个文本文件。但不同项目的文本文件名不同。所以我想将文本文件名定义为变量,并在插入文本时引用该变量
我尝试了下面的代码。但是
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{{\myfile}}
不起作用。只有
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{abc.txt}
有人可以给我一些指导吗?
\usepackage{fancyvrb}
<<text, echo=F>>=
targetvar<-'abc'
textfile<-paste(targetvar,'.txt',sep='')
@
\newcommand{\myfile}{\Sexpr{textfile}}
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{{\myfile}}
答案1
您可以使用 Sweave 的results=tex
代码块参数来构建一个 LaTeX\input{}
指令,该指令将从 R 构建的任何文件路径插入文本。
这个 Sweave 文件(称之为"example.Rnw"
)...
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
<<text, echo=FALSE, results=tex>>=
targetvar<-'abc'
textfile <- paste(targetvar,'.txt',sep='')
cat("\\VerbatimInput[baselinestretch=1,fontsize=\\footnotesize]{",
textfile,
"}", sep="")
cat("\n")
@
\end{document}
"example.tex"
...通过调用以下代码在 Sweave 运行后将生成此 LaTex 文件 ( ) Sweave("example.Rnw")
:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{abc.txt}
\end{document}
答案2
你能试一下吗\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{\myfile}
此 MWE 的工作原理如下:
\documentclass{article}
\usepackage{fancyvrb}
\newcommand{\myfile}{\jobname}
\begin{document}
\VerbatimInput[baselinestretch=1,fontsize=\footnotesize]{\myfile}
\end{document}
背景:您使用{{\myfile}}
- 如果\myfile
是test.txt
,则要加载的文件名是{test.txt}
- 包括括号。如果没有额外的括号,它可以正常工作。