在生成 SVG 输出之前水平盒子溢出

在生成 SVG 输出之前水平盒子溢出

我的 MWE 仍然欺骗了我。.tex 文件中只有以下几行:

\documentclass[dvisvgm]{minimal}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\DeclareUnicodeCharacter{00B0}{\ensuremath{{}^\circ}}

%% debug overful hbox
\showboxdepth=\maxdimen%
\showboxbreadth=\maxdimen%
% \showboxdepth=5
% \showboxbreadth=5
\setlength{\overfullrule}{20pt}

\begin{document}
\begin{tikzpicture}
  \node at (13.205,-11.662) {\fontsize{14}{14}SIDEREAL HOUR ANGLE};
  \node[font=\fontsize{12}{14}, anchor=east] at (26.410,-11.662) {\textcopyright\enspace 2021 Firstname Lastname};
  \node at (13.205,6.033) {\fontsize{12}{15}\textbf{LUNAR DISTANCE (SHA 290° to 120°)\quad06 Dec 2021}};
  \node[rotate=90,font=\fontsize{14}{16}] at (-1.251,0.0) {DECLINATION};
  \node[rotate=90,font=\fontsize{12}{14}] at (-1.251,-3.711) {South};
  \node[rotate=90,font=\fontsize{12}{14}] at (-1.251,3.711) {North};
\end{tikzpicture}
\end{document}

我使用以下命令进行编译:

latex example.tex
dvisvgm example

并且每次我得到一个 Overfull hbox (我使用不同的文件名):

在此处输入图片描述

生成的 SVG 将其显示在右边框上:

在此处输入图片描述

  • “DISTANCE” 输出为“DIST ANCE”
  • 除顶行外,字体大小不正确(太小)
  • 并且会产生一个巨大的“Overfull hbox”

我感到很困惑,因为我玩了剩下的几行却没有得出任何结论。我使用:

  • Windows 10(当前)
  • “这是 pdfTeX,版本 3.141592653-2.6-1.40.23 (MiKTeX 21.10)”

我是不是犯了一个明显的错误?非常感谢您的帮助。抱歉,我找不到“latex”标签。

12月7日更新:

使用以下命令:

latex example.tex
dvisvgm example --font-format=woff

消除了“DIST ANCE”之间的空格;顶行现在是粗体;文本的字体大小显示正确。但是溢出的水平盒子仍然存在:

在此处输入图片描述

Lualatex 需要注释掉\DeclareUnicodeCharacter{00B0}{\ensuremath{{}^\circ}}并将度数符号替换为\textdegree。然后执行:

dvilualatex example.tex
dvisvgm example --font-format=woff

剩余的水平盒子过满,由右侧的粗黑条表示(它不应该出现在那里!):

在此处输入图片描述

什么原因造成这种大量溢出的水平盒子?

12 月 7 日发现:

巨大的 Ovberfull hbox 是由“最小”类引起的。将类更改为“独立”,如所示,\documentclass[tikz,dvisvgm]{standalone}此问题消失。请参阅:https://ctan.org/pkg/standalone?lang=en

但是还有一个问题:只有使用 设置为粗体时,文本大小才会改变\textbf{....}。当前测试用例:

\documentclass[tikz,dvisvgm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \node[font=\fontsize{14}{15}] at (13.205,-11.662) {\textbf{SIDEREAL HOUR ANGLE}};
  \node[font=\fontsize{14}{15},anchor=east] at (26.410,-11.662) {\textcopyright\enspace 2021 Firstname Lastname};
  \node[font=\fontsize{14}{15}] at (13.205,6.033) {\textbf{LUNAR DISTANCE (SHA 290\textdegree to 120\textdegree)\quad06 Dec 2021}};
  \node[rotate=90,font=\fontsize{14}{15}] at (-1.251,0.0) {\textbf{DECLINATION}};
  \node[rotate=90,font=\fontsize{14}{15}] at (-1.251,-3.711) {\textbf{South}};
  \node[rotate=90,font=\fontsize{14}{15}] at (-1.251,3.711) {\textbf{North}};
\end{tikzpicture}
\end{document}

生成:

在此处输入图片描述

但我无法控制版权文本的文本大小。如果您将任何粗体文本更改为正常(删除\textbf{...}),文本大小将恢复为某个默认大小。欢迎提供提示!

答案1

正如 Marcel Krüger 在评论中所说,minimal在生成 Ti 时不应使用该类由于页面宽度和高度有限,因此无法将 Z 图片放在一页上。我费了好大劲才发现这一点。我想要一个适合 PDF 文件中 A4 横向页面的图表,然后将其放入 SVG 文件中。

我找不到课程列表,而 MiKTeX 文件夹中有 23 个可供选择。因此,猜测让我尝试了该standalone课程(在 MiKTeXtex\latex\standalone子文件夹中)。这解决了我遇到的大Overfull \hbox问题。有关此类的详细信息,请参见此处:https://ctan.org/pkg/standalone?lang=en

完整的图表现在看起来是正确的(尽管星座线比 PDF 中的要细一些):

在此处输入图片描述

也感谢马丁!

相关内容