有人建议制作4小时可以替代乳胶(IE问题) 从 LATEX 文档生成 HTML。我对此很感兴趣。
具体来说,我想建立一个理想的目录结构,以便于生成 PDF 和 HTML。到目前为止,我有类似的东西:
├── html
├── pdf
│ ├── main.aux
│ ├── main.bcf
│ ├── main.log
│ ├── main.out
│ ├── main.pdf
│ ├── main.run.xml
│ └── main.toc
└── tex
├── main.sty
├── main.tex
├── pdflatex.sh
└── sub.tex
它在某种程度上解决了我对 PDF 案例的需求。我已经html
在那里添加了一个文件夹,我计划在其中使用make4ht
。
问题:我应该如何继续才能在使用.html
中生成文件?我应该使用构建文件吗(它看起来是什么样的)?html folder
make4ht
以下是我的项目文件的内容:
为了触发 PDF 生成,我调用pdflatex.sh
(从tex
文件夹内部):
pdflatex.sh
cd ..
mkdir -p pdf
pdflatex -shell-escape -output-directory=pdf tex/main.tex
主文本
\documentclass[12pt]{article}
\usepackage{tex/main}
\begin{document}
\title{\truncate[]{15cm}{\lipsum[8]}}
\author{\truncate[]{5cm}{\lipsum[1]}}
\date{\today}
\maketitle
% \thispagestyle{empty}
\tableofcontents
% \clearpage
\subimport{tex/}{sub.tex}
\blindtext
% \Blindtext
% \Blindtext[4][3]
% \blinddocument
% \Blinddocument
% \blindtext[5]
% \blindlist{itemize}[5]
% \blindenumerate[10]
% \blindmathpaper
\end{document}
主干道
\ProvidesPackage{main}
%++++++++++++++++++++++++++++++++++++++++
\usepackage[backend=biber,style=numeric,sorting=none,sortlocale=pt-BR]{biblatex}
\addbibresource{tex/relatorio.bib}
% \usepackage[outputdir=build]{minted}
% \usepackage{minted}
\usepackage[brazil]{babel} % para relatórios em português
\usepackage[utf8]{inputenc} % para acentuação direta
\usepackage[T1]{fontenc}
\usepackage{amsmath} % improve math presentation
\usepackage{tabularx} % extra features for tabular environment
\usepackage{graphicx} % takes care of graphic including machinery
\usepackage[margin=0.8in,letterpaper]{geometry} % decreases margins
\usepackage{url}
\usepackage{import}
\usepackage[final]{hyperref} % adds hyper links inside the generated pdf file
\usepackage{csquotes}
\usepackage{indentfirst}
\usepackage{float}
\usepackage{subfig}
% \usepackage{ulem} % do no use, linebreaks on references stop working
\usepackage{listings}
\usepackage{csquotes}
% \usepackage[toc,page]{appendix}
\usepackage{appendix}
% \usepackage[strings]{underscore}
\usepackage{adjustbox}
\usepackage{longtable}
\usepackage{blindtext}
\usepackage{lipsum}
\usepackage[breakwords]{truncate}
\hypersetup{
colorlinks=true, % false: boxed links; true: colored links
linkcolor=blue, % color of internal links
citecolor=blue, % color of links to bibliography
filecolor=magenta, % color of file links
urlcolor=blue
}
%++++++++++++++++++++++++++++++++++++++++
\addto\captionsbrazil{%
\renewcommand{\appendixtocname}{Apêndice}%
\renewcommand{\appendixpagename}{Apêndice}%
}
\newcommand{\cubesat}{\textit{cubesat}}
\newcommand{\frames}{\textit{frames}}
\newcommand{\beacon}{\textit{beacon}}
亚特克斯
\begin{abstract}
\blindtext
% \Blindtext
% \Blindtext[4][3]
% \blinddocument
% \Blinddocument
% \blindtext[5]
% \blindlist{itemize}[5]
% \blindenumerate[10]
% \blindmathpaper
\end{abstract}
答案1
make4ht
您可以使用with --output-dir
(或)选项将生成的文件复制到不同的目录-d
,因此您可以尝试:
make4ht -d html tex/main.tex
但是,它会将临时文件留在当前目录中。您可以使用构建文件删除它们:
local function move_file(filename, args)
local outdir = args.outdir
-- copy files only when --output-directory option has been used
if outdir ~= "" then
local newfile = table.concat({outdir, filename}, "/")
print("moving the file: ".. filename .. " to directory: " .. outdir)
os.execute("mv ".. filename .. " " .. newfile)
end
return false
end
Make:match("html$", function(filename, args)
return move_file(filename, args)
end)
Make:match("css$", function(filename, args)
return move_file(filename, args)
end)
Make:match("tmp$", function(filename, args)
for _,ext in ipairs {"aux", "xref", "tmp", "4tc", "4ct", "idv", "lg","dvi", "log"} do
local newfile = filename:gsub("tmp$", ext)
print("Removing: ", newfile)
-- you can move the aux files to the outdir using
move_file(newfile, args)
-- or, alternatively, just delete it
-- os.remove(newfile)
end
return false
end)
这将匹配.tmp
文件,将其名称作为基本名称,并将所有带有ipairs
函数参数中列出的扩展名的文件移动到输出目录。或者,您也可以通过取消注释该os.remove
行来删除它们。
我们还匹配html
和css
文件。默认情况下,它们被复制到输出目录,此版本将把它们移到这里。
最后要说的是:您在\title
命令中使用了一些宏。我猜您在实际文档中不会使用此特定命令,因为它会导致编译错误。