Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Možnost vypnout sázení akordů (lokálně / globálně) #55

Open
karel-brinda opened this issue Oct 20, 2015 · 7 comments
Open

Možnost vypnout sázení akordů (lokálně / globálně) #55

karel-brinda opened this issue Oct 20, 2015 · 7 comments

Comments

@karel-brinda
Copy link
Owner

Popis: Pokud bude definováno makro \NOCHORDS, nebude mít \Ch žádný efekt.

Způsob použití: Akordy bude možné vypnout pro celý zpěvník (přes options) nebo lokálně (lokálně nadefinované a oddefinované makro).

Využití: momentálně např. pro písně TP BANDU, které jsou v jeho zpěvníku bez akordů, ale všude jinde mají být s akordy (nebude tedy nutné vkládat podmínky před každý akord / řádek / sloku a rozdvojovat či komplikovat zdrojový kód písně). Př. situace, kterou to vyřeší: https://github.com/karel-brinda/tp-zpevnik/blob/6898d98dbaffa98961e452cfe2689d93ca1245bb/tp-songs/04_tp/Johnny____Dej_mi_n%C4%9Bjak%C3%BD_t%C3%B3ny.tex.

@karel-brinda
Copy link
Owner Author

@vasekp, @jhajas, @pedrosow: Souhlasíte s tím, jak to je navržené?

@jhajas
Copy link
Collaborator

jhajas commented Oct 20, 2015

Pro mě ok - občas si ještě zaznamenáme progresi nahoře před slokou. Pujde tedy v pisni udelat neco takoveho?

\zp{Krasna neznama}{Pusinka}

\ifdefined\TPBAND
<A> ~ <D> ~ <C>
\define NOCHORDS
\fi

Tady <A>se uz akordy <D>nebudou tisknout <C>pokud TPBAND

@karel-brinda
Copy link
Owner Author

Půjde použít přesně tohle.

@vasekp
Copy link
Collaborator

vasekp commented Oct 21, 2015

Pár poznámek:

  1. Není moc intuitivní, jak makro oddefinovat (efekt ukončit). V TeXu je jedinou možností uzavřít definici do skupiny.
  2. Dát pozor na to, aby lokální definice udělaná v jednom souboru nepřetékala do všech následujících.
  3. Taky na to, aby to člověk nepsal přesně tak, jak v Pepově příkladu. Za definicí musí následovat obsah (např. \def\NOCHORDS{}). Tady by jím náhodou byl konec řádku, ale pokud by ho někdo odstranil, pak by se \NOCHORDS zadefinovalo jako \fi, \ifblok by nikdy neskončil a všechno by se rozhasilo poměrně spektakulárně.
  4. Nepřehánět to se složitou implementací. Ekvivalentní efekt v současné verzi je něco jako \def\Ch#1{} (tohle konkrétně si nerozumí s chords.py, muselo by to být někde mimo jeho dosah), tak není třeba, aby výsledek byl o moc delší než tohle.

Jinak souhlasím, že jako řešení je to mnohem lepší než psát nadvakrát celé sloky.

@vasekp
Copy link
Collaborator

vasekp commented Oct 21, 2015

Navrhoval bych malou úpravu: udělat globální a lokální řešení jiné. Stejně nejsou ekvivalentní – globální NOCHORDS nejde lokálně vypnout.

Globálně by to byla option, lokálně \if. Díky tomu by se dalo dobře zapínat a vypínat za běhu bez nutnosti myslet na skupiny, a třeba \zs by mohla automaticky vracet na \iftrue. Na globální úrovni by to znamenalo zadefinovat \Ch jako buď akord nebo prázdnou akci už v songbook.sty a přeskočení transpozic (trochu rychlejší běh).

Další výhoda by byla možnost změny sázení v případě globální absence akordů: dalo by se kompletně vyhodit dvojí řádkování.

@karel-brinda
Copy link
Owner Author

Mohli bychom nad tím ještě chvilku přemýšlet? Nemůžu se tomu věnovat naplno, dostanu se k tomu zase za pár dní. Přivedlo mě to totiž ještě na další myšlenku -- příkaz pro bezakordovou sloku, udělám na to samostatný ticket (pro prodiskutování).

@vasekp
Copy link
Collaborator

vasekp commented Oct 26, 2015

Já teď taky neplánuji nic programovat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants