我想将化学路易斯结构导出为透明的 PNG 文件,以便在 Word 文档中使用它们。
所以我想实现这个帖子。我就是不能让它工作,因为我对 LaTeX 的理解非常有限。
这是我的代码:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{verbatim}
\pagenumbering{gobble}
\usepackage{chemfig}
\usepackage[version=4]{mhchem}
\renewcommand*\printatom[1]{\sffamily{#1}}
\newcommand*\forcelen[1]{#1/\CF@atom@sep}
\newcommand{\pol}[2][red]{$\color{#1} \delta^{#2}$}
\begin{document}
\chemfig{
\charge{135:5pt=\pol{+}}{Si}
(-[0]\charge{0=\|,90=\|,270=\|,0:9pt=\pol[blue]{-}}{Br})
(-[2]\charge{0=\|,90=\|,180=\|,90:8pt=\pol[blue]{-}}{Br})
(-[4]\charge{90=\|,180=\|,270=\|,180:8pt=\pol[blue]{-}}{Br})
(-[6]\charge{0=\|,180=\|,270=\|,270:7pt=\pol[blue]{-}}{Br})}
\end{document}
它看起来是这样的:
当我使用\documentclass{standalone}
它将文档裁剪得太近时:
在上面提到的帖子中,OP写道:
有一个边框类选项,用于设置内容周围的边框(默认值为 0.5bp)。此选项可以接受一个值(所有边的边框)、两个值(左/右、上/下)或四个值(左、下、右、上)。
但我不知道如何实现边界。
关于 PNG 输出,另一位用户写道这个 Shell 脚本但我不知道如何使用它。我需要将脚本保存在哪里,以及在 LaTeX 文档中调用它的代码应该放在哪里?
答案1
您可以尝试使用韋斯維爾将您的文档转换为 .svg 文件,然后如果需要,转换为 .png 文件。
您必须下载此文件,然后您可以在与.tex 文件相同的文件夹中创建一个.bat 文件(例如,converter.bat),然后输入以下代码:
@echo off
path=C:\Program Files\MiKTeX 2.9\miktex\bin\x64;%path%;
dvisvgm --pdf --no-fonts myfile.pdf myflie.svg
@echo on
然后您可以在创建 pdf 文件后运行它,然后就可以了。
答案2
您必须使用外部工具,如转换,如您引用的帖子中所述。如果您想在四个边框处使用相同的边距,边框选项非常简单:
\documentclass[border=15mm]{standalone}
Latex 可以自动调用该外部工具。例如,以另一个问题:
\documentclass[convert={density=300,size=1080x800,outext=.png}, border=15mm]{standalone}
注意,您必须安装了转换程序,并且必须使用-shell-escape
选项调用 latex。
不同的方法是使用tikz
及其external
库。
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzset{
external/system call/.add=
{}%
{; convert -density 300 -transparent white "\image.pdf" "\image.png"},
/pgf/images/external info,
}
\tikzexternalize[prefix=dir/]
\begin{document}
A figure to export
% Optional: you can set the filename of the following picture:
%\tikzsetnextfilename{filename}
\begin{tikzpicture}
\node[text width=\linewidth]
{%
Your latex code here: \[x=1\]
};
\end{tikzpicture}
Another figure
\begin{tikzpicture}
\node[text width=\linewidth]
{%
Other latex code here: \[x^2=1\]
};
\end{tikzpicture}
\end{document}
本例中目录dir
必须存在,然后pdflatex --shell-escape
生成两个png文件:
dir/test-figure0.png
dir/test-figure1.png
每张图片的文件名可以用 \tikzsetnextfilename{filename}