LaTeXにアンダーブレースの高さを無視させるにはどうすればよいですか?
How Can I Make Latex Ignore Height Underbrace
解決:
を使用したソリューション対角ブレースのTikZ:
documentclass {article} usepackage {amsmath、array} usepackage {tikz} usetikzlibrary {decorations.pathreplacing} setlength arraycolsep {4pt}%デフォルト値:6pt newcommand tikzmark [1] {% tikz [overlay、画像、ベースラインを覚えておいてください] coordinate [anchor = base](#1);} newcommand DrawBrace [3] {% draw [decorate、decoration = {brace、amplitude = 2pt、mirror、raise = 2pt}](# 1)-(#2)ノード[黒、途中、傾斜、yshift = -10pt] { footnotesize $#3 $}; } begin {document} begin {equation *} left( begin {array} {* {9} {c}} tikzmark {a} phantom {-} 1 \& ddots&\ && tikzmark {b} phantom {-} 1 \ &&& tikzmark {c} -1 \ &&&& ddots&\ &&&&& tikzmark {d} -1 \ && &&&& tikzmark {e} phantom {-} 0 \ &&&&&&& ddots&\ &&&&&&&& tikzmark {f} phantom {-} 0 \ end {array} right) end {equation *} begin {tikzpicture} [remember picture、overlay] DrawBrace {a} {b} {r _ {+}(s)-mal} DrawBrace {c} { d} {r _ {-}(s)-mal} DrawBrace {e} {f} {r_ {0}(s)-mal} end {tikzpicture} end {document}
本当にエレガントなソリューションではありません。基本的に、必要なのは、によって生成される追加の垂直スペースを設定することです。アンダーブレースをゼロにします。このための簡単なツールの1つは raiseboxは最初と2番目に オプション 引数を使用すると、結果のボックスに明示的な高さと深さを指定できます。
2つの合併症:
- NS 内側 配列は垂直方向の中央に配置されるため、
underbrace構造は曖昧です。
- 線の1つが深さゼロの場合、外側の配列に追加の垂直スペースが挿入されるため、ボックス化された構成全体を再度下げる必要があります。
これはこの「解決策」につながります:
begin {equation *} left(、 begin {array} {[email protected] {} [email protected] {} rrr}%@ {}は、列間の空白を抑制するために2回使用されます overbrace { boxed { begin {array} {rrr}%最初のブロック(1)1 && \& ddots&\ && 1 \ end {array}}} ^ {r _ +(s)-mal} \& raisebox {-.5 height} [。5 height] [。5 height] {%$ underbrace { raisebox { depth} {%$ boxed { begin {array} {rrr}%2番目のブロック(- 1)-1 && \& ddots&\ && -1 \ end {array}} $%}%} _ {r _ {-}(s)-mal} $%}%\& & underbrace { boxed { begin {array} {rrr}%3番目のブロック0 && \& ddots&\ && 0 \ end {array}}} _ {r_0(s)-mal} \ end {array} 、 right) end {equation *}
あるに違いないtikzmarkの方法。でも今は時間がありません。一方、醜いハックは、を使用して手動でスペースを縮小することです\ [長さ]のように
documentclass {article} usepackage [pdftex、active、tightpage] {preview} setlength PreviewBorder {2mm} usepackage {amsmath、array} renewcommand arraycolsep {4pt}%デフォルト値:6pt begin {document} begin {preview} begin {equation *} left(、 begin {array} {[email protected] {} [email protected] {} rrr}%@ {}は、列間の空白を抑制するために2回使用されます overbrace { boxed { begin {array} {rrr}%最初のブロック(1)1 && \& ddots&\ && 1 \ end {array}}} ^ {r _ +(s)-mal} \ & underbrace { boxed { begin {array} {rrr}%2番目のブロック(-1)-1 && \& ddots&\ && -1 \ end {array}}} _ {r_ {-}(s)-mal} \ [-17pt] %%%<--Here & & underbrace{ oxed{ egin{array}{rrr} % Third block 0 & & \ & ddots & \ & & 0\ end{array} } }_{r_0(s)-mal} \ end{array},
ight) end{equation*} end{preview} end{document}
の適切な値を見積もるのに、目を見張るようなことはほとんど必要ありません。\ [-17pt]、しかし。