我正在使用的程序会将 LaTeX 表格输出到 LaTeX 文件中(outreg2
来自 Stata 的命令),我使用 texify 运行该程序以制作表格的 pdf。我裁剪这些表格(使用 pdfcrop)并将它们嵌入到其他地方。但是,pdf 包含页码,这阻止 pdfcrop 直接裁剪表格周围。我需要一种在裁剪之前自动删除页码的方法。我想将命令插入\pagenumbers{gobble}
LaTeX 代码中以自动删除页码。
我相信
texify --pdf --texinfo="\pagenumbering{gobble}" filename.tex
应该可以工作。但不行。没有弹出任何异常,但页码仍然存在。我找不到任何文档来展示--texinfo
在运行 LaTeX 文件创建 pdf 之前使用该选项将 LaTeX 代码拼接到文件中的示例。
我应该如何正确使用 texify 命令?或者
\pagenumbering{gobble}
在运行 texify 之前还有其他方法可以进行拼接吗?
答案1
这篇文章包含统计软件标签中提到了Stata 用户编写的命令outreg2
(可在运行中获取ssc install outreg2
)。因此,我提供了两个基于 Stata 的解决方案。
解决方案 1。
该outreg2
命令输出可使用适当软件编译的 LaTeX 代码。原始发帖者提到
我想在 LaTeX 代码中插入命令
\pagenumbers{gobble}
以自动删除页码。
如果这就是所需要的,那么我将在下面展示一个用于filefilter
实现该目的的完整示例。
clear all
set more off
* Example data, estimation and LaTeX code
sysuse auto
local filepath "/path/to/myfile.tex"
regress mpg foreign weight
outreg2 using "`filepath'", tex replace
* Introduce required text
filefilter "`filepath'" "`filepath'.2", ///
from("\BSbegin{document}") ///
to("\BSpagenumbering{gobble}\n\BSbegin{document}") replace
copy "`filepath'.2" "`filepath'", replace
erase "`filepath'.2"
该命令filefilter
只是寻找
\begin{document}
在生成的.tex
文件中并将其替换为
\pagenumbers{gobble}
\begin{document}
运行help filefilter
以了解详情。
解决方案 2。
使用tex(frag)
该outreg2
命令的选项。这将输出一个 片段,可以使用 LaTeX命令tex
将其包含在某些模板文件中。.tex
\input{}
因此使用
outreg2 using "`filepath'", tex(frag) replace
并创建一个模板.tex
文件
\documentclass[]{article}
\setlength{\pdfpagewidth}{8.5in} \setlength{\pdfpageheight}{11in}
\pagenumbering{gobble}
\begin{document}
\input{file-created-with-outreg2}
\end{document}
这样,您甚至可以创建多个tex
片段并将它们全部包含在模板.tex
文件中。
运行help outreg2
以了解详情。
答案2
Roberto 专门针对 OP 的情况进行了回答。我想尝试给出一个更一般的答案:
(对于没有耐心的读者:解决方案位于本答案的下部。)
首先让我们创建一个小的测试文件 –testfile.tex
\documentclass{article}
\begin{document}
content
\end{document}
正如原帖所指出的,
texify --pdf --texinfo="\pagestyle{empty}" testfile.tex
:
不会产生任何错误,但页码仍然可见(我更喜欢\pagestyle…
)。由于 Texify 带有选项--pdf
内部调用 PDFLaTeX,让我们看看会发生什么
pdflatex testfile.tex "\pagestyle{empty}"
答案(并不那么)令人惊讶:结果相同——没有错误,但也没有成功。但对于 (PDF(La))TeX,另一种方法是众所周知的:
pdflatex "\pagestyle{empty}\input{testfile.tex}"
虽然,哎呀,没有变化。但是这个有效:
pdflatex "\AtBeginDocument{\pagestyle{empty}}\input{testfile.tex}"
(*)
如果我们现在尝试将其适应 Texify,我们将
texify --pdf --texinfo="\AtBeginDocument{\pagestyle{empty}}\input{testfile.tex}"
得到错误texify: Missing file argument.
所以我尝试了
texify --pdf --texinfo="\AtBeginDocument{\pagestyle{empty}}\input{testfile.tex}" testfile.tex
(是的,该文件被调用了两次)。令人惊讶的是没有错误,但仍然没有成功。但还有另一个可能的参数(参见http://docs.miktex.org/manual/texify.html)--tex-option
,通过这个替换,--texinfo
我发现……
解决方案
如果一个简单的 PDFLaTeX 调用如下(*)确实不够,人们想调用 Texify,这个命令提示符调用有效:
texify --pdf --tex-option="\AtBeginDocument{\pagestyle{empty}}\input{testfile.tex}" testfile.tex
再说一遍:是的,这里故意调用了两次该文件。
因为这很长,所以可以将其放入批处理文件中,然后稍后调用它。
test.bat
:
@echo 关闭 texify --pdf --tex-option="\AtBeginDocument{\pagestyle{empty}}\input{%1}" %1
现在在命令提示符中必须执行:
test.bat testfile.tex
至少在这里,这种方式效果很好。
顺便说一句:感谢 Werner,因为他\AtBeginDocument…
在他的评论对于重复的问题。