LaTeX中调整musixtex音乐环境textwidth的问题求助(A5文档)
如何在不插入分页的情况下缩小MusixTeX音乐片段的文本宽度?
我明白你遇到的痛点了:想给A5文档里的MusixTeX音乐块缩小左右宽度,但试过的方法要么没法处理长音乐分页,要么音乐换行的位置不对。核心问题确实是MusixTeX的music环境默认只会读取全局的\linewidth,不会自动继承adjustwidth这类局部环境的宽度设置。
这里给你一个完美的解决方案,结合adjustwidth和MusixTeX自带的命令来实现需求:
- 继续使用
changepage包的adjustwidth环境来设置左右缩进,它能帮你调整音乐块的整体边界,同时不强制插入分页。 - 在
music环境内部开头添加\setlinewidth{\linewidth},这个命令会告诉MusixTeX使用当前局部环境下的\linewidth,而不是全局的文档宽度,这样音乐的换行就会对齐新的右边界。
修改后的MWE代码
\documentclass{article} \author{Myself} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{geometry} \geometry{a5paper, twoside, inner=1.375cm, outer=1.375cm, top=1.5cm, bottom=1.5cm} \usepackage{changepage} \usepackage{musixtex} \usepackage{lipsum} \begin{document} \lipsum[1] \begin{adjustwidth}{0.5cm}{0.5cm} \begin{music} \setlinewidth{\linewidth} % 关键:让MusixTeX使用当前局部的linewidth \instrumentnumber{1} \setstaffs1{1} \generalmeter{\meterfrac{9}{4}} \generalsignature{-1} \nostartrule \normalmusicsize \nobarnumbers \startpiece \NOtes\qu{ff}\ql{j}\en\bar \NOtes\qup{h}\cu{g}\qu{fedc}\en \NOtes\qu{def}\en\bar \NOtes\hup{gf}\en\rightrepeat \NOtes\ql{jjj}\en\bar \NOtes\hlp{k}\qu{h}\ql{ij}\en \NOtes\qlp{j}\cl{i}\qu{h}\en\bar \NOtes\hup{g}\qu{cdefgh}\en\bar \NOtes\hup{gf}\en \Endpiece \end{music} \end{adjustwidth} \lipsum[2] \end{document}
效果说明
- 音乐块左右各缩进0.5cm,完全适配缩小后的宽度,换行位置不再错位。
- 长音乐片段可以正常分页,不会像
minipage那样被截断在一页里。 - 不会像
\newgeometry那样强制插入额外的分页符,文本和音乐的排版衔接自然。
内容的提问来源于stack exchange,提问作者FlipMJU
相关产品推荐
相关产品推荐

