make4ht 的理想目录结构,干净的构建

make4ht 的理想目录结构,干净的构建

有人建议制作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 foldermake4ht

以下是我的项目文件的内容:

为了触发 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行来删除它们。

我们还匹配htmlcss文件。默认情况下,它们被复制到输出目录,此版本将把它们移到这里。

最后要说的是:您在\title命令中使用了一些宏。我猜您在实际文档中不会使用此特定命令,因为它会导致编译错误。

在此处输入图片描述

相关内容