我是 LaTex 新手,正在整理一本我以前写的书;这是一本曲调合集,每首曲调都有一两段简短的文字。我扫描了乐谱,而不是在 MusixTex 中排版,因为我最初是手写的,我喜欢它原有的样子。
我在 A4 中设置:
\documentclass[a4paper,12pt,twoside,openany]{book}
五线谱的宽度应为 18.7 厘米,即 530 磅。我很乐意让文本保留其默认边距,我当然不想让它和乐谱一样宽。不幸的是,图像的宽度并不总是完全相同,因为扫描经过了修剪,五线谱左右两侧的内容量各不相同。这意味着我需要单独调整每幅图像的宽度和位置,以确保五线谱的宽度一致,位置正确。
我试图将每个图像插入到其章节标题和文本之间,以便其位置和大小保持一致,同时考虑到左页和右页。
实际上,我需要的是一对独立于文本边距的图像参考线。我希望我可以使用一个带有可见边框的框,宽度固定在 530pt,将图像放在里面,在框内适当移动和调整图像大小,然后在我满意时关闭可见边框。或者,只需添加一对相距 530pt 的垂直规则,定位以考虑奇数页和偶数页。但我还没有弄清楚如何做这两件事。
插入、放置和调整图像大小都没问题,我只是不知道如何确切地知道将它们放在哪里!
谢谢
答案1
也许您正在寻找类似的东西?首先,我展示两张由 LaTeX “居中”的 530pt 图像,第二张图像周围有一些可裁剪的空间。这不仅会产生未对齐的图像,而且由于图像宽度超出了边距,它们实际上也没有居中。
我改为介绍\shiftimg
将水平位移和未裁剪图像作为其两个参数的函数,这样可以将两个任意裁剪的图像对齐。此外,通过合并\pageshift
在后续页面上翻转正值和负值的函数,它将使页边距在偶数页和奇数页上保持相同,并且调用参数相同。如果重新分页将图像重新定位到相邻页面,这将非常有用。
最后,我添加了可注释的代码,该代码530pt
在纸张上布置了间隔开的垂直规则,并与纸张边缘对称。这允许您进行微调。
\documentclass[a4paper,12pt,twoside,openany]{book}
\usepackage{everypage}
\def\pageshift{42pt}
\AddEverypageHook{\xdef\pageshift{\the\dimexpr-\dimexpr\pageshift\relax\relax}}
%\usepackage[showframe,pass]{geometry}
\usepackage{graphicx,lipsum}
\def\imgA{\includegraphics[width=530pt,height=2cm]{example-image}}
\def\imgB{~~~~\includegraphics[width=530pt,height=2cm]{example-image}\,}
\newcommand\shiftimg[2]{\makebox[\dimexpr\textwidth+#1+\pageshift\relax][c]{#2}}
%%%%% CAN BE COMMENTED FOR FINAL VERSION
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
\AddEverypageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\def\imgoffset{\the\dimexpr.5\dimexpr\paperwidth-530pt\relax\relax}
\atxy{\imgoffset}{0pt}{\rule[-\paperheight]{.1pt}{\paperheight}}
\atxy{\dimexpr\paperwidth-\imgoffset\relax}{0pt}{\rule[-\paperheight]{.1pt}{\paperheight}}
%%%%%
\begin{document}
Unaltered uncropped images:\par
{\centering
\imgA\par\imgB\par}
\lipsum[1]
\shiftimg{-33pt}{\imgA}\par\shiftimg{-47pt}{\imgB}\par
\lipsum[3-6]
\shiftimg{-33pt}{\imgA}\par\shiftimg{-47pt}{\imgB}\par
\end{document}