LaTeX — управление шириной текста в музыкальной среде

#latex #pdflatex

#Латекс #pdflatex

Вопрос:

Я набираю документ формата А5, который включает в себя музыкальную среду, предоставляемую musixtex. Я хотел бы уменьшить ширину строки / ширину текста только для музыки.

Вот несколько вещей, которые я пробовал:

  1. Поместите музыку в мини-страницу. Это отлично работает для коротких отрывков, но для более длинной музыки может потребоваться разрыв страницы, которого нет у мини-страницы.
  2. Используйте newgeometry команду и далее restoregeometry . Это работает, но, по-видимому, вставляет a newpage , чего я также хотел бы избежать.
  3. Используйте пакет changepage, который предоставляет команду adjustwidth . Это работает в левой части страницы, но тогда музыка не приводит к разрыву строки в нужном положении, а смещается вправо. Я предоставляю MWE этого ниже.
  4. Используйте среду, похожую на список, например, trivlist или itemize. Это работает в левой части страницы, но тогда музыка не приводит к разрыву строки в нужном месте, а смещается вправо, в основном так же, как указано выше.
 documentclass{article}

author{Myself}

usepackage[utf8]{inputenc}
usepackage[T1]{fontenc}

usepackage{geometry}
    geometry{a5paper}
    geometry{twoside}
    geometry{inner=1.375cm}
    geometry{outer=1.375cm}
    geometry{top=1.5cm}
    geometry{bottom=1.5cm}

usepackage{changepage}

usepackage{musixtex}

usepackage{lipsum}

begin{document}

lipsum[1]

begin{adjustwidth}{0.5cm}{0.5cm}

begin{music}
instrumentnumber{1}
setstaffs1{1}
generalmeter{meterfrac{9}{4}}
generalsignature{-1}
nostartrule
normalmusicsize
nobarnumbers
startpiece
NOtesqu{ff}ql{j}enbar
NOtesqup{h}cu{g}qu{fedc}en
NOtesqu{def}enbar
NOteshup{gf}enrightrepeat
NOtesql{jjj}enbar
NOteshlp{k}qu{h}ql{ij}en
NOtesqlp{j}cl{i}qu{h}enbar
NOteshup{g}qu{cdefgh}enbar
NOteshup{gf}en
Endpiece
end{music}

end{adjustwidth}

lipsum[2]

end{document}
  

Для меня оба варианта (3) и 4), похоже, не работают, потому что musixtex не понимает / не знает новых настроек для ширины строки и т. Д.

Дополнительная информация: я знаю, как должен быть скомпилирован код musixtex, я использую makefile, который снова вызывает pdflatex, musixflx и pdflatex. Это не причина проблемы.

Любая помощь будет оценена

Ответ №1:

Вы могли бы использовать tcolorbox для создания разбитого окна:

 documentclass{article}

author{Myself}

usepackage[utf8]{inputenc}
usepackage[T1]{fontenc}

usepackage{geometry}
    geometry{a5paper}
    geometry{twoside}
    geometry{inner=1.375cm}
    geometry{outer=1.375cm}
    geometry{top=1.5cm}
    geometry{bottom=1.5cm}

usepackage{changepage}

usepackage{musixtex}

usepackage{lipsum}

usepackage[most]{tcolorbox}

tcolorboxenvironment{music}{breakable,text width=dimexprtextwidth-2cm,enhanced,grow to left by=-1cm,colframe=white,colback=white}

begin{document}

lipsum[1]

begin{music}
instrumentnumber{1}
setstaffs1{1}
generalmeter{meterfrac{9}{4}}
generalsignature{-1}
nostartrule
normalmusicsize
nobarnumbers
startpiece
NOtesqu{ff}ql{j}enbar
NOtesqup{h}cu{g}qu{fedc}en
NOtesqu{def}enbar
NOteshup{gf}enrightrepeat
NOtesql{jjj}enbar
NOteshlp{k}qu{h}ql{ij}en
NOtesqlp{j}cl{i}qu{h}enbar
NOteshup{g}qu{cdefgh}enbar
NOteshup{gf}en
Endpiece
end{music}

lipsum[2]

end{document}