我正在使用 Ruby 的 erb 模板来生成一个 LaTeX 文件,该文件基本上只是带有标题的图像(尽管我没有使用该\caption
环境,因为它似乎会破坏一些东西)。代码如下所示:
\documentclass[12pt, a4paper, twoside]{article}
\usepackage[margin=2.5cm, bindingoffset=1cm, headheight=15pt]{geometry}
\usepackage{fontspec}
\newfontfamily{\normaltitle}{Exo 2}
\newfontfamily{\boldtitle}[UprightFont={* Bold}]{Exo 2}
\newfontfamily{\footerheaderfont}{Exo 2}
\usepackage[dvipsnames]{xcolor}
\definecolor{CustomGray}{HTML}{909090}
\usepackage{mdframed}
\usepackage{graphicx}
\graphicspath{ {D:/[input]/letter F img} }
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{\footerheaderfont\small{Author}}
\fancyhead[LO,RE]{\footerheaderfont\small{Title}
\fancyfoot[C]{}
\fancyfoot[LE]{\footerheaderfont\small\thepage}
\fancyfoot[RO]{\footerheaderfont\small\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\usepackage{titlesec}
\titlelabel{\thetitle.\quad}
\titleformat*{\section}{\fontsize{24}{36}\boldtitle}
\titlespacing*{\section}{0pt}{0pt}{12pt}
\setlength{\parindent}{0pt}
\setmainfont[Ligatures=TeX]{Times New Roman}
\newcommand\dictentry[3]{
\large
\hangindent=0cm
\textcolor{CustomGray}{#1}\textbf{#2}: \enspace \textit{#3}
}
\tolerance=8000
\begin{document}
\begin{titlepage}
\begin{center}
\vspace*{3cm}
\fontsize{36}{40}\selectfont
\boldtitle{Aneks F:}
\vspace{0.5cm}
\normaltitle{Fotokorpus haseł \emph{SW}}
\vfill
\end{center}
\end{titlepage}
\setcounter{page}{202}
\vbox{%
\dictentry{}
{Formować}
{tom I (A-G), litera F, str. 763, kol. lewa, akapit 26 – str. 763, kol. prawa, akapit 01}
\begin{mdframed}[linewidth=2pt, linecolor=CustomGray, nobreak=true]
\includegraphics[width=\linewidth]{"page-0763, col-1, par-26 fin.png"}
\end{mdframed}
\begin{mdframed}[linewidth=2pt, linecolor=CustomGray, nobreak=true]
\includegraphics[width=\linewidth]{"page-0763, col-2, par-01 fin.png"}
\end{mdframed}
\vspace{1em}
}
\end{document}
我想要实现的是(✓ - 实现,✗ - 未实现):
- ✓ 防止图片超出文本区域(必要时分页);
- ✓ 将图像粘贴到标题上(一个标题有时有多张图片);
- ✗ 必要时可打破“标题”。
我该如何改变我的代码来实现这一点?
======
编辑:
在使用\parbox
内部\vbox
并纠正@Don Housek 概述的语法问题之后:
\vbox{%
\parbox{4cm}{
\dictentry{}
{Formować}
{tom I (A-G), litera F, str. 763, kol. lewa, akapit 26 – str. 763, kol. prawa, akapit 01}
}
\begin{mdframed}[linewidth=2pt, linecolor=CustomGray, nobreak=true]
\includegraphics[width=\linewidth]{"page-0763, col-1, par-26 fin.png"}
\end{mdframed}
\begin{mdframed}[linewidth=2pt, linecolor=CustomGray, nobreak=true]
\includegraphics[width=\linewidth]{"page-0763, col-2, par-01 fin.png"}
\end{mdframed}
\vspace{1em}
}
它确实开始换行(满足上面的第 3 点),但现在它会产生一个额外的换行符,从而破坏了关于将“标题”粘贴到图像上的第 2 点:
答案1
您忽略了输出中的错误。\colon
是一个数学模式命令,用于获取没有关系间距的冒号(例如,用于输入$f\colon X\to Y$
)。 将您的替换\colon
为:
,您将得到预期的错误。
故事的道德启示:不要忽视 LaTeX 的错误。
答案2
在 @Don Housek 的建议下,我发现了语法错误,然后我能够生成具有换行的预期宽度文本,这会导致“标题”和图像之间出现断行。然后我通过添加换行抑制来修复它\unskip
:
\vbox{%
\parbox{15cm}{
\dictentry{}
{Formować}
{tom I (A-G), litera F, str. 763, kol. lewa, akapit 26 – str. 763, kol. prawa, akapit 01}
}
\begin{mdframed}[linewidth=2pt, linecolor=CustomGray, nobreak=true]
\includegraphics[width=\linewidth]{"page-0763, col-1, par-26 fin.png"}
\end{mdframed}
\begin{mdframed}[linewidth=2pt, linecolor=CustomGray, nobreak=true]
\includegraphics[width=\linewidth]{"page-0763, col-2, par-01 fin.png"}
\end{mdframed}
\vspace{1em}
}