mergeron 2024.738953.1__py3-none-any.whl → 2025.739265.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mergeron might be problematic. Click here for more details.

Files changed (39) hide show
  1. mergeron/__init__.py +26 -6
  2. mergeron/core/__init__.py +5 -65
  3. mergeron/core/{damodaran_margin_data.py → empirical_margin_distribution.py} +74 -58
  4. mergeron/core/ftc_merger_investigations_data.py +147 -101
  5. mergeron/core/guidelines_boundaries.py +290 -1078
  6. mergeron/core/guidelines_boundary_functions.py +1128 -0
  7. mergeron/core/{guidelines_boundaries_specialized_functions.py → guidelines_boundary_functions_extra.py} +87 -55
  8. mergeron/core/pseudorandom_numbers.py +16 -22
  9. mergeron/data/__init__.py +3 -0
  10. mergeron/data/damodaran_margin_data.xls +0 -0
  11. mergeron/data/damodaran_margin_data_dict.msgpack +0 -0
  12. mergeron/demo/__init__.py +3 -0
  13. mergeron/demo/visualize_empirical_margin_distribution.py +86 -0
  14. mergeron/gen/__init__.py +258 -246
  15. mergeron/gen/data_generation.py +473 -224
  16. mergeron/gen/data_generation_functions.py +876 -0
  17. mergeron/gen/enforcement_stats.py +355 -0
  18. mergeron/gen/upp_tests.py +171 -259
  19. mergeron-2025.739265.0.dist-info/METADATA +115 -0
  20. mergeron-2025.739265.0.dist-info/RECORD +23 -0
  21. {mergeron-2024.738953.1.dist-info → mergeron-2025.739265.0.dist-info}/WHEEL +1 -1
  22. mergeron/License.txt +0 -16
  23. mergeron/core/InCommon RSA Server CA cert chain.pem +0 -68
  24. mergeron/core/excel_helper.py +0 -257
  25. mergeron/core/proportions_tests.py +0 -520
  26. mergeron/ext/__init__.py +0 -5
  27. mergeron/ext/tol_colors.py +0 -851
  28. mergeron/gen/_data_generation_functions_nonpublic.py +0 -623
  29. mergeron/gen/investigations_stats.py +0 -709
  30. mergeron/jinja_LaTex_templates/clrrate_cis_summary_table_template.tex.jinja2 +0 -121
  31. mergeron/jinja_LaTex_templates/ftcinvdata_byhhianddelta_table_template.tex.jinja2 +0 -82
  32. mergeron/jinja_LaTex_templates/ftcinvdata_summary_table_template.tex.jinja2 +0 -57
  33. mergeron/jinja_LaTex_templates/ftcinvdata_summarypaired_table_template.tex.jinja2 +0 -104
  34. mergeron/jinja_LaTex_templates/mergeron.cls +0 -161
  35. mergeron/jinja_LaTex_templates/mergeron_table_collection_template.tex.jinja2 +0 -90
  36. mergeron/jinja_LaTex_templates/setup_tikz_tables.tex.jinja2 +0 -84
  37. mergeron-2024.738953.1.dist-info/METADATA +0 -93
  38. mergeron-2024.738953.1.dist-info/RECORD +0 -30
  39. /mergeron/{core → data}/ftc_invdata.msgpack +0 -0
@@ -1,121 +0,0 @@
1
- \begin{table}[bt]
2
- %# jinja2 code blocks for creating variables here
3
- %# Spurious blank lines don't matter?
4
- ((* if tmpl_data.obs_merger_class == 'Entry Difficult' *))
5
- ((* set table_ref, obs_merger_class_desc = "9.2", "Markets with Strong Entry Barriers (``" + tmpl_data.obs_merger_class + "'')" *))
6
- ((* else *))
7
- ((* set table_ref, obs_merger_class_desc = "3.1", tmpl_data.obs_merger_class *))
8
- ((* endif *))
9
-
10
- ((* if tmpl_data.test_res == 'Enforcement' *))
11
- ((* set prop_title = "Proportion Enforced" *))
12
- ((* else *))
13
- ((* set prop_title = "Proportion Cleared" *))
14
- ((* endif *))
15
-
16
-
17
- \centering
18
- \caption{
19
- \JINVAR{ prop_title } and Simulated \JINVAR{ tmpl_data.PolicySelector} Rates
20
- for FTC Investigated Mergers
21
- }\label{tbl:clearanceRates_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}_\JINVAR{ tmpl_data.obs_merger_class|replace(" ", "") -}_\JINVAR{ tmpl_data.obs_period|last -}}
22
- {\footnotesize
23
- \JINVAR{ tmpl_data.obs_summary_type_title } \\
24
- \JINVAR{ obs_merger_class_desc +", " + tmpl_data.obs_period|join('--') } \\[0.5\baselineskip]
25
- }
26
- \begin{tikzpicture}[auto, font = \sffamily]
27
- \begin{pgfonlayer}{background}
28
- \matrix[datatable,
29
- column 1/.style = {nodes = {align=right, text width = 27pt,},},
30
- column 2/.style = {nodes = {align=right, text width = 77pt,},},
31
- ] (stats_cis) {
32
- \JINVAR{ tmpl_data.stats_cis -}
33
- };
34
- \draw[color = OBSHDRFill, line width = 1pt,] (stats_cis-\JINVAR{- tmpl_data.stats_numrows -}-1.north west) -- (stats_cis-\JINVAR{- tmpl_data.stats_numrows -}-2.north east);
35
- \end{pgfonlayer}
36
- % Header row - column heads
37
- \matrix[hrow,
38
- above = 0 pt of stats_cis,
39
- column 1/.style = {
40
- nodes = {
41
- minimum height = 33pt,
42
- text width = 60pt,
43
- text depth = 8pt,
44
- align = left,
45
- inner sep = 3pt,
46
- },
47
- },
48
- column 2/.style = {
49
- nodes = {
50
- minimum height = 83pt,
51
- text width = 60pt,
52
- text depth = 8pt,
53
- align = left,
54
- inner sep = 3pt,
55
- },
56
- },
57
- ] (hdrrow_cis) {
58
- \node[rotate = 90] (hdr1) {Relative \\ Frequency \\}; &
59
- \node[rotate = 90] (hdr2) {\JINVAR{ prop_title|replace(" ", "\\\\") } \\ {[95\% CI]} \\}; \\
60
- };
61
- % Header row - columns description
62
- \matrix[hrow,
63
- above = 0pt of hdrrow_cis,
64
- nodes = {minimum height = 12.5pt, text width = 115.6pt,}
65
- ] (descrow_cis) {
66
- Observed Data \\
67
- };
68
-
69
- % Header column - row heads
70
- \matrix[hcol, left = 0pt of stats_cis, nodes = {
71
- text width = \JINVAR{ tmpl_data.hdrcol_cis_width -},
72
- inner xsep = 3 pt,
73
- },] (hdrcol_cis) {
74
- \JINVAR{ tmpl_data.stats_hdrstr -}
75
- };
76
- % Header column - row heads - description
77
- \JINVAR{ tmpl_data.hdrcoldescstr }
78
-
79
- % Fill along header
80
- \draw[color = OBSHDRFill, fill = OBSHDRFill,]
81
- (hdrcoldesc_cis.north west |- descrow_cis.north west)
82
- rectangle
83
- (hdrcoldesc_cis.north east); % (x1, y2); -| gives (x2, y1)
84
-
85
- % Notes below table
86
- \matrix[anytable,
87
- below right = 4pt and 8pt of hdrcol_cis.south west,
88
- nodes = {notetext, minimum height = 10pt, text width = \JINVAR{ tmpl_data.stats_cis_notewidth -}\linewidth,},
89
- ] (notestext) {
90
- NOTES: \\
91
- \JINVAR{ tmpl_data.stats_cis_notestr -}
92
- \\
93
- SOURCES: \\
94
- \(\cdot\) See notes to Table~\ref{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}} for Observed Data \\
95
- };
96
-
97
- % === Simulated clearance rate data and headers ===
98
- \begin{pgfonlayer}{background}
99
- \matrix[datatable, right = 3pt of stats_cis, nodes = {text width = 27pt,},
100
- ] (stats_sim) {
101
- \JINVAR{ tmpl_data.stats_sim -}
102
- };
103
- \draw[color = SIMHDRFill, line width = 1pt,] (stats_sim-\JINVAR{- tmpl_data.stats_numrows -}-1.north west) -- (stats_sim-\JINVAR{- tmpl_data.stats_numrows -}-4.north east);
104
- \end{pgfonlayer}
105
- % Header row - column heads
106
- \matrix[hrow,
107
- above = 0pt of stats_sim,
108
- nodes = {fill = SIMHDRFill, minimum height = 33pt, text width = 60pt, text depth = 16pt, align = left, inner sep = 3pt,}, %
109
- column 1/.style = {nodes = {text depth = 8pt, },},
110
- ] (hdrrow_sim) {
111
- \node [rotate = 90, pos = 0.0] {Relative \\ Frequency \\}; &
112
- \node [rotate = 90, pos = 0.0] {\JINVAR{tmpl_data.PolicySelector -} \\ Rate \\ {\tiny \(\safeharb{g} = \JINVAR{ tmpl_data.guppi_bound -}; \safeharb{d} = \JINVAR{ tmpl_data.rbar -}\)} \\}; &
113
- \node [rotate = 90, pos = 0.0] {\JINVAR{tmpl_data.PolicySelector -} \\ Rate \\ {\tiny \(\safeharb{g} = \JINVAR{ tmpl_data.guppi_bound -}; \safeharb{d} = \JINVAR{ tmpl_data.dbar -}\)} \\}; &
114
- \node [rotate = 90, pos = 0.0] {\JINVAR{tmpl_data.PolicySelector -} \\ Rate \\ {\tiny \(\safeharb{CMCR} = \JINVAR{ tmpl_data.cmcr_bound -}\)} \\}; \\
115
- };
116
- \matrix[hrow, above = 0pt of hdrrow_sim,
117
- nodes = {fill = SIMHDRFill, minimum height = 12.5pt, text width = 130.8pt}] (hdrrowdesc_sim) {
118
- Generated Data \\
119
- };
120
- \end{tikzpicture}
121
- \end{table}
@@ -1,82 +0,0 @@
1
- \begin{table}[bt]
2
- ((* set obs_period_last = tmpl_data.obs_period|last *))
3
- ((* if tmpl_data.obs_merger_class == 'Entry Difficult' *))
4
- ((* set table_ref, obs_merger_class_desc = "9.2", "Markets with Strong Entry Barriers (``" + tmpl_data.obs_merger_class + "'')" *))
5
- ((* else *))
6
- ((* set table_ref, obs_merger_class_desc = "3.1", tmpl_data.obs_merger_class *))
7
- ((* endif *))
8
-
9
- ((* if obs_period_last == "2003" *))
10
- ((* set data_pub_year = "2004" *))
11
- ((* elif obs_period_last == "2011" *))
12
- ((* set data_pub_year = "2013" *))
13
- ((* else *))
14
- ((* set data_pub_year = "" *))
15
- ((* endif *))
16
-
17
- \centering
18
- \caption{FTC Merger Investigations Data, Fiscal Years \JINVAR{ tmpl_data.obs_period|join('--') }}\label{tbl:FTCInvData_ByConc_\JINVAR{ tmpl_data.obs_merger_class|replace(" ", "") -}_\JINVAR{ obs_period_last -}}
19
-
20
- {\footnotesize
21
- Odds ratio --- Enforced to Closed, by Post-Merger HHI and Change in Concentration \\
22
- \JINVAR{ obs_merger_class_desc } \\[0.5\baselineskip]
23
- }
24
- \begin{tikzpicture}[font = \sffamily]
25
- \matrix[datatable, nodes = {align = center, inner xsep = 0pt, text width = 40pt,}] (datamtrx) {
26
- \JINVAR{ tmpl_data.invdata_byhhianddelta -}
27
- };
28
- % Demarcate totals row (#9) and totals column (#9)
29
- \draw[color = OBSHDRFill, line width = 1pt,] (datamtrx-1-9.north west) -- (datamtrx-9-9.south west);
30
- \draw[color = OBSHDRFill, line width = 1pt,] (datamtrx-9-1.north west) -- (datamtrx-9-9.north east);
31
- % Header row - column heads
32
- \matrix[hrow, above = 0pt of datamtrx, nodes = {minimum height = 36pt}] (hdrrow) {
33
- {0 -- \\ 99} & {100 -- \\ 199} & {200 -- \\ 299} & {300 -- \\ 499} & {500 -- \\ 799} & {800 -- \\ 1,199} & {1,200 -- \\ 2,499} & 2,500 -- 5,000 & TOTAL \\
34
- };
35
- % Header column - row headings
36
- \matrix[hcol, left = 0pt of datamtrx] (hdrcol) {
37
- 0 -- 1,799 \\
38
- 1,800 -- 1,999 \\
39
- 2,000 -- 2,399 \\
40
- 2,400 -- 2,999 \\
41
- 3,000 -- 3,999 \\
42
- 4,000 -- 4,999 \\
43
- 5,000 -- 6,999 \\
44
- 7,000 -- 10,000 \\
45
- TOTAL \\
46
- };
47
- % Notes below table
48
- \matrix[anytable, below right = 4pt and -4pt of hdrcol.south west, nodes = {notetext, minimum height = 10pt, text width = 0.92*\linewidth,},] (notestext) {%
49
- \JINVAR{ tmpl_data.invdata_notestr -}
50
- SOURCES: \\
51
- \JINVAR{ tmpl_data.invdata_sourcestr -}
52
- \(\cdot\) Guidelines standards from (a.) \fullcite{USHMG1992} and (b.) \fullcite{USHMG2010} \\
53
- };
54
-
55
- % Demarcate the yellow(?) and red zones in 1992 Guidelines standards
56
- \draw[draw = VibrRed, line width = 1.25pt]
57
- (datamtrx-9-1.south east)
58
- -- (datamtrx-1-1.south east)
59
- -- (datamtrx-1-9.south east)
60
- ;
61
- \draw[draw = VibrRed, line width = 1.25pt, dashed]
62
- (datamtrx-9-2.south east)
63
- -- (datamtrx-3-2.south east)
64
- -- (datamtrx-3-9.south east)
65
- ;
66
-
67
- % Text height for descriptive titles is defined as 12pt (at two places below, one for each descriptor)
68
- % Header (first) row - description of column heads
69
- \draw[hdrtext, draw = OBSHDRFill] %
70
- ($(hdrrow.north west) + (0pt, +12pt)$) node (hdrrowdescNW) {}
71
- rectangle
72
- (hdrrow.north east) node[pos=0.5, anchor = north] {Change in Concentration (\Deltah{})};
73
- % Header (first) colum - description of row heads
74
- \draw[hdrtext, draw = OBSHDRFill]
75
- ($(hdrcol.north west) + (-12pt, 0pt)$) node (hdrcoldescNW) {}
76
- rectangle
77
- (hdrcol.south west) node[pos=0.5, rotate = 90] {Post-merger HHI \(\left(\mathrm{HHI}_{post}\right)\)};
78
-
79
- % Fill top left corner, with more or fewer header/descriptor rows, only the top-left coordinates change
80
- \draw[hdrtext, draw = OBSHDRFill] (hdrcoldescNW |- hdrrowdescNW) rectangle (datamtrx.north west); % (x1, y2); -| gives (x2, y1)
81
- \end{tikzpicture}
82
- \end{table}
@@ -1,57 +0,0 @@
1
- \begin{table}[bt]
2
- %# jinja2 code blocks for creating variables here
3
- %# Spurious blank lines don't matter?
4
- ((* if tmpl_data.obs_merger_class == 'Entry Difficult' *))
5
- ((* set table_ref, obs_merger_class_desc = "9.2", "Markets with Strong Entry Barriers (``" + tmpl_data.obs_merger_class + "'')" *))
6
- ((* else *))
7
- ((* set table_ref, obs_merger_class_desc = "3.1", tmpl_data.obs_merger_class *))
8
- ((* endif *))
9
-
10
- \centering
11
- \caption{FTC Merger Investigations Data}\label{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}_\JINVAR{ tmpl_data.obs_merger_class|replace(" ", "") -}}
12
- {\footnotesize \JINVAR{ tmpl_data.obs_summary_type_title } \\
13
- \JINVAR{ obs_merger_class_desc } \\[0.5\baselineskip]}
14
- \begin{tikzpicture}[auto, font = \sffamily]
15
- \begin{pgfonlayer}{background}
16
- \matrix[datatable, nodes = {text width = 42pt,},] (clr_rate_raw) {
17
- \JINVAR{ tmpl_data.invdata_datstr|replace("nan\%", "---") -}
18
- };
19
- \draw[color = OBSHDRFill, line width = 1pt] (clr_rate_raw-11-1.north west) -- (clr_rate_raw-11-4.north east);
20
- \draw[color = OBSHDRFill, line width = 1pt] (clr_rate_raw-1-2.north east) -- (clr_rate_raw-11-2.south east);
21
- \end{pgfonlayer}
22
-
23
- % Header row - column heads
24
- \matrix[hrow, above = 0 pt of clr_rate_raw, nodes = {align = right, inner xsep = 3pt, minimum height = 12.5pt, text width = 42pt},] (hdrrow_raw) {
25
- Relative & Proportion & Relative & Proportion \\
26
- Frequency & Cleared & Frequency & Cleared \\
27
- };
28
- % Header row - columns description -- period 1
29
- \matrix[hrow, above right = 0pt of hdrrow_raw.north west, nodes = {minimum height = 12.5pt, text width = 95.6pt,},] (descrow_raw_pd1) {
30
- 1996--2003 \\
31
- };
32
- % Header row - columns description -- period 2
33
- \matrix[hrow, above left = 0pt of hdrrow_raw.north east, nodes = {minimum height = 12.5pt, text width = 95.6pt,},] (descrow_raw_pd2) {
34
- 2004--2011 \\
35
- };
36
- % Header row - columns description
37
- \matrix[hrow, above left = 0pt of descrow_raw_pd2.north east, nodes = {minimum height = 12.5pt, text width = 190.8pt},] (descrow_raw) {
38
- Observed Data \\
39
- };
40
- % Header column - row heads
41
- \matrix[hcol, left = 0pt of clr_rate_raw, nodes = {text width = 108pt},] (hdrcol_raw) {
42
- \JINVAR{ tmpl_data.invdata_hdrstr -}
43
- };
44
- % Header column - row heads - description
45
- \JINVAR{ tmpl_data.invdata_hdrcoldescstr }
46
-
47
- % Notes below table
48
- \matrix[anytable, below right = 4pt and 4pt of hdrcol_raw.south west, nodes = {notetext, minimum height = 10pt, text width = 0.72*\linewidth,},] (notestext) {
49
- \JINVAR{ tmpl_data.invdata_notestr }
50
- SOURCES: \\
51
- % \(\cdot\) Fed. Trade Comm'n (2004), \textit{supra} note~\ref{fn:FTCInvData1996to2003}, Table~4.1 and Table~10.2 \\
52
- \JINVAR{ tmpl_data.invdata_sourcestr }
53
- % \(\cdot\) Fed. Trade Comm'n (2013), \textit{supra} note~\ref{fn:FTCInvData1996to2011}, Table~4.1 and Table~10.2 \\
54
- };
55
- \end{tikzpicture}
56
- \end{table}
57
-
@@ -1,104 +0,0 @@
1
- \begin{table}[bt]
2
- ((* if tmpl_data.obs_merger_class_0 == 'All Markets' *))
3
- ((* set obs_merger_class_0 = tmpl_data.obs_merger_class_0 *))
4
- ((* else *))
5
- ((* set obs_merger_class_0 = "Markets with, ``" + tmpl_data.obs_merger_class_0 + "''" *))
6
- ((* endif *))
7
-
8
- ((* if tmpl_data.test_res == 'Enforcement' *))
9
- ((* set prop_title = "Proportion Enforced" *))
10
- ((* else *))
11
- ((* set prop_title = "Proportion Cleared" *))
12
- ((* endif *))
13
-
14
- ((* set obs_merger_class_1 = "Markets with, ``" + tmpl_data.obs_merger_class_1 + "''" *))
15
-
16
- \centering
17
- \caption{FTC Merger Investigations Data}\label{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}}
18
- {\footnotesize \JINVAR{ tmpl_data.obs_summary_type_title } \\
19
- Grouped by Entry Conditions and Reporting Period \\[0.5\baselineskip]}
20
- \begin{tikzpicture}[auto, font = \sffamily]
21
- \begin{pgfonlayer}{background}
22
- \matrix[datatable, nodes = {text width = 27pt,},] (invres_rate_raw) {
23
- \JINVAR{ tmpl_data.invdata_datstr -}
24
- };
25
- % Horizontal scoring for totals
26
- \draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-1.north west) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-8.north east);
27
- % Vertical scoring for column groups
28
- \draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-2.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-2.south east);
29
- \draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-4.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-4.south east);
30
- \draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-6.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-6.south east);
31
- \end{pgfonlayer}
32
-
33
- \matrix[hrow,
34
- above = 0 pt of invres_rate_raw,
35
- nodes = {minimum height = 33pt, text depth = 10pt, text width = 60pt, align = left, inner sep = 3pt,},
36
- ] (hdrrow_raw) {
37
- \node[rotate = 90] {Relative \\ Frequency \\}; &
38
- \node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; &
39
- \node[rotate = 90] {Relative \\ Frequency \\}; &
40
- \node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; &
41
- \node[rotate = 90] {Relative \\ Frequency \\}; &
42
- \node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; &
43
- \node[rotate = 90] {Relative \\ Frequency \\}; &
44
- \node[rotate = 90] {\JINVAR{ prop_title|replace(" ", "\\\\") } \\}; \\
45
- };
46
- % Header row - columns description -- Markets 0 - period 1-2
47
- \matrix[hrow, above left = 0pt of hdrrow_raw.north, nodes = {minimum height = 12.5pt, text width = 65.6pt,},] (descrow_raw_pds1) {
48
- \JINVAR{ tmpl_data.obs_periods_str }
49
- \JINVAR{ tmpl_data.mkt_counts_str_class_0 }
50
- };
51
- % Header row - columns description -- Markets 1 - period 1-2
52
- \matrix[hrow, above right = 0pt of hdrrow_raw.north, nodes = {minimum height = 12.5pt, text width = 65.6pt,},] (descrow_raw_pds2) {
53
- \JINVAR{ tmpl_data.obs_periods_str }
54
- \JINVAR{ tmpl_data.mkt_counts_str_class_1 }
55
- };
56
- % Header row - columns description
57
- \matrix[hrow, above left = 0pt of descrow_raw_pds1.north east, nodes = {minimum height = 12.5pt, text width = 130.8pt},] (descrow_raw_mkt1) { \JINVAR{ obs_merger_class_0 } \\
58
- };
59
- % Header row - columns description
60
- \matrix[hrow, above right = 0pt of descrow_raw_pds2.north west, nodes = {minimum height = 12.5pt, text width = 130.8pt},] (descrow_raw_mkt2) { \JINVAR{ obs_merger_class_1 } \\
61
- };
62
- % Header row - columns description
63
- \matrix[hrow, above left = 0pt of descrow_raw_mkt2.north east, nodes = {minimum height = 12.5pt, text width = 261.2pt},] (descrow_raw_top) {
64
- Observed Data \\
65
- };
66
- % Vertical scoring for column groups
67
- \draw[color = white, line width = 1pt] (descrow_raw_pds1-1-1.north east) -- (invres_rate_raw-1-2.north east);
68
- \draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north east) -- (invres_rate_raw-1-4.north east);
69
- \draw[color = white, line width = 1pt] (descrow_raw_pds2-1-1.north east) -- (invres_rate_raw-1-6.north east);
70
-
71
- % Header column - row heads
72
- \matrix[hcol, left = 0pt of invres_rate_raw, nodes = {
73
- text width = \JINVAR{ tmpl_data.hdrcol_raw_width -},
74
- inner xsep = 3 pt,
75
- },] (hdrcol_raw) {
76
- \JINVAR{ tmpl_data.invdata_hdrstr -}
77
- };
78
- % Header column - row heads - description
79
- \JINVAR{ tmpl_data.invdata_hdrcoldescstr }
80
-
81
- % Fill along header
82
- \draw[color = OBSHDRFill, fill = OBSHDRFill,]
83
- (hdrcoldesc_raw.north west |- descrow_raw_top.north west)
84
- rectangle
85
- (hdrcoldesc_raw.north east)
86
- ;
87
- ((# % Separator for header column
88
- \draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north west) -- (invres_rate_raw-1-1.north west); #))
89
-
90
- % Notes below table
91
- \matrix[anytable,
92
- below right = 4pt and 4pt of hdrcol_raw.south west,
93
- nodes = {notetext, minimum height = 8pt, text width = \JINVAR{ tmpl_data.invdata_notewidth -}\linewidth,},
94
- ] (notestext) {%
95
- \JINVAR{ tmpl_data.invdata_notestr -}
96
- SOURCES: \\
97
- % TODO: Table numbers need updating
98
- % \(\cdot\) \fullcite{FTCInvData2003}, Table~4.1 and Table~10.2 \\
99
- \JINVAR{ tmpl_data.invdata_sourcestr -}
100
- % \(\cdot\) \fullcite{FTCInvData2011}, Table~4.1 and Table~10.2 \\
101
- };
102
- \end{tikzpicture}
103
- \end{table}
104
-
@@ -1,161 +0,0 @@
1
- %% https://tex.stackexchange.com/questions/638194/
2
- \ExplSyntaxOn % Switch on expl3 syntax
3
- \sys_ensure_backend: % load the backend code
4
- \pdf_version_gset:n{1.7} % Use provided expl3 function
5
- \ExplSyntaxOff % Switch off expl3 syntax
6
-
7
- \LoadClass{scrartcl}
8
- \RequirePackage[singlespacing=true]{scrlayer-scrpage}
9
- \KOMAoptions{
10
- draft=off,
11
- fontsize=12pt,
12
- paper=letter,
13
- DIV=12,
14
- footnotes=multiple,
15
- numbers=withendperiod,
16
- headsepline=on,
17
- footsepline=off,
18
- abstract=on,
19
- headheight=36pt,
20
- footheight=36pt,
21
- }
22
- \RequirePackage[l2tabu, orthodox]{nag}
23
-
24
- \RequirePackage{polyglossia}
25
- \setdefaultlanguage[variant=american]{english}
26
- % Appendix prefix for scrartcl
27
- \newcommand*{\appendixmore}{%
28
- \renewcommand*{\sectionformat}{%
29
- \appendixname~\thesection\autodot\enskip%
30
- }%
31
- \renewcommand*{\sectionmarkformat}{%
32
- \appendixname~\thesection\autodot\enskip%
33
- }%
34
- }
35
-
36
- \RequirePackage[doublespacing]{setspace}
37
- \RequirePackage[noorphans, listvskip, font=singlespacing]{quoting}
38
- \RequirePackage{csquotes}
39
- \AtBeginEnvironment{quoting}{\vspace{-1\baselineskip}}
40
-
41
- \RequirePackage[en-US,calc]{datetime2}
42
- \RequirePackage{fontawesome5}
43
- \RequirePackage{etoolbox}
44
- \RequirePackage{auxhook}
45
- \RequirePackage{xurl}
46
- \RequirePackage[table]{xcolor}
47
- \RequirePackage{tikz}
48
- \usetikzlibrary{backgrounds, calc, matrix, positioning}
49
-
50
- \RequirePackage{titling}
51
- \setlength{\droptitle}{-1.0in}
52
-
53
- % Define CAP Economics official color
54
- \definecolor{CAPEconPurple}{HTML}{200054}
55
- % https://htmlcolorcodes.com/color-picker/
56
- \definecolor{CAPEconPurpleTint4}{HTML}{9080aa}
57
- \definecolor{CAPEconPurpleTint6}{HTML}{c7bfd4}
58
- \definecolor{CAPEconPurpleTint7}{HTML}{e3dfea}
59
-
60
- % Fonts and math
61
- \RequirePackage{fontspec}
62
- \setmonofont[Scale=MatchLowercase,]{Fira Mono}
63
- \setsansfont{Fira Sans}
64
- \setmainfont{STIX Two Text}
65
-
66
- \RequirePackage[standard]{ntheorem}
67
- \RequirePackage{mathtools}
68
- \RequirePackage{unicode-math}
69
- \setmathfont[math-style=ISO]{STIX Two Math}
70
- % Separate \mathscr from \mathcal
71
- \setmathfont{STIX Two Math}[range={scr,bfscr},StylisticSet=01]
72
-
73
- \defaultfontfeatures[\rmfamily,\sffamily]{
74
- Ligatures={TeX, Common},
75
- Numbers={proportional, lining}
76
- }
77
- \RequirePackage[
78
- activate={true,nocompatibility},
79
- tracking=true,
80
- ]{microtype}
81
-
82
- \RequirePackage{tabularray}
83
- \UseTblrLibrary{booktabs}
84
- %% Tables need sansserif font
85
- %% https://tex.stackexchange.com/questions/286733/change-content-font-in-tabular-environments
86
- \makeatletter
87
- \appto\@floatboxreset{%
88
- \ifx\@captype\andy@table
89
- \sffamily\addfontfeatures{Numbers={Monospaced, Lining},}
90
- \fi
91
- }
92
- \def\andy@table{table}
93
- \makeatother
94
-
95
- %% Don't want full page figures to be vertically centered
96
- %% https://tex.stackexchange.com/questions/28067/automatic-vertical-alignment-of-a-single-float-on-a-dedicated-page
97
- \makeatletter
98
- \setlength{\@fptop}{0pt}
99
- \setlength{\@fpbot}{0pt plus 1fil}
100
- \makeatother
101
-
102
- %% Captions in Sans Serif
103
- \addtokomafont{caption}{\sffamily}
104
- \addtokomafont{caption}{\fontsize{10pt}{12pt}\selectfont}
105
-
106
- %% Tweak footnotes
107
- \setlength{\footnotesep}{1.5ex}
108
- % \interfootnotelinepenalty=10000 % Force note text together
109
- %% Read KOMA-Script documentation
110
- \setfootnoterule[0.4pt]{\linewidth}
111
- \deffootnote{2.5em}{2.5em}{%
112
- \makebox[2.5em][l]{\hspace{1ex}\thefootnotemark.}%
113
- }
114
-
115
- %% For highlighting text with a colored background, soul
116
- \RequirePackage{soul}
117
- \sethlcolor{yellow}
118
-
119
- %% Properly typset intervals, and avoid messages about unmatched parentheses
120
- \RequirePackage{interval}
121
- \intervalconfig{
122
- soft open fences,
123
- }
124
-
125
- %%% custom commands, environments and symbols
126
- \renewcommand{\ge}{\geqslant}\renewcommand{\geq}{\geqslant}
127
- \renewcommand{\le}{\leqslant}\renewcommand{\leq}{\leqslant}
128
- \DeclarePairedDelimiter\abs{\lvert}{\rvert}%
129
- \DeclarePairedDelimiter\norm{\lVert}{\rVert}%
130
-
131
- %% Define a paired-delimiter for defining sets
132
- %% https://tex.stackexchange.com/questions/268766/curly-braces-in-math-mode
133
- \DeclarePairedDelimiter\set\{\}
134
- %% http://mirrors.ctan.org/macros/latex/contrib/mathtools/mathtools.pdf, 27--28
135
- \DeclarePairedDelimiterX\SetSuchThat[2]{\lbrace}{\rbrace}{%
136
- #1 \, \delimsize\vert \, \mathopen{}#2
137
- }
138
-
139
- %% Sometimes, you just want to comment out several lies of text
140
- %% https://tex.stackexchange.com/questions/44282/multiline-comment
141
- \newcommand{\mycomment}[1]{}
142
-
143
-
144
- %% Need a datetime package for various date related inserts
145
- \RequirePackage[en-US,calc]{datetime2}
146
-
147
- \RequirePackage{xurl}
148
- \RequirePackage{hyperref}
149
- \ProcessOptions\relax
150
- \hypersetup{%
151
- unicode=true,
152
- bookmarksnumbered=false,
153
- hidelinks,
154
- pdfencoding=auto,
155
- }
156
- \RequirePackage[capitalize, noabbrev]{cleveref}
157
-
158
- \AtBeginDocument{%
159
- \SetBlockEnvironment{quoting}
160
- }
161
-
@@ -1,90 +0,0 @@
1
- \documentclass{mergeron}
2
-
3
- \usepackage{luacode}
4
- \begin{luacode}
5
- local function embedfull(tfmdata)
6
- tfmdata.embedding = "full"
7
- end
8
-
9
- luatexbase.add_to_callback(
10
- "luaotfload.patch_font", embedfull, "embedfull"
11
- )
12
- \end{luacode}
13
-
14
- % Specify location for includegraphics files:
15
- \graphicspath{{~/mergeron}}
16
-
17
- %% Define some symbols
18
- \newcommand{\mktshr}[1]{\emph{s}\textsubscript{#1}}
19
- \newcommand{\safeharb}[1]{\ensuremath{\overline{#1}}}
20
- \newcommand{\Conc}[0]{HHI}
21
- \newcommand{\Deltah}[0]{ΔHHI}
22
- % \newcommand{\Deltah}[0]{\ensuremath{\Delta HHI}}
23
-
24
- %% A square-root symbol that scales with the arguments (varies with font, sadly)
25
- %% https://www.pgdp.net/wiki/LaTeX_formatting_tips_and_tricks
26
- %% https://mirrors.ibiblio.org/CTAN/fonts/stix2-type1/stix2.pdf
27
- %% If you need bigger surds, you can also use {largesymbols}{"75} or {"76}
28
- \DeclareMathDelimiter{\bigsurd}{\mathopen}{largesymbols}{"F9}{largesymbols}{"74}
29
- \NewDocumentCommand\FlexSurd{m}{\ensuremath{\left\bigsurd #1\right.}}
30
- \NewDocumentCommand\ExpSqRoot{m}{\ensuremath{#1^{1/2}}}
31
-
32
- %% Define colors for tables
33
- \definecolor{table_bar_green}{HTML}{dfeadf}
34
-
35
- %% BibLaTex/APA style citation
36
- \usepackage[
37
- sorting=nyt,
38
- style=apa,
39
- natbib,
40
- maxcitenames=2,
41
- ]{biblatex}
42
- \addbibresource{HorizontalMergerAnalysis.bib}
43
- \AtBeginDocument{%
44
- \SetCiteCommand{\parencite}%
45
- }
46
-
47
- \NewDocumentCommand\casecitefull{m m m}{%
48
- \ifblank{#1}{}{#1~}%
49
- \citefield{#3}[mkbibemph]{title},~%
50
- \citelist{#3}{citation}%
51
- \ifblank{#2}{~}{,~#2~}%
52
- (\citelist{#3}{organization} \citefield{#3}{year})%
53
- }
54
- \NewDocumentCommand\casecitetitle{m m m}{%
55
- \ifblank{#1}{}{#1~}%
56
- \citefield{#3}[mkbibemph]{shorttitle}%
57
- \ifblank{#2}{}{ at~#2}%
58
- }
59
- \NewDocumentCommand\casecite{O{} O{} m}{%
60
- \ifentryseen{#3}%
61
- {\casecitetitle{#1}{#2}{#3}}%
62
- {\casecitefull{#1}{#2}{#3}}%
63
- }
64
-
65
-
66
- %% Set some page typesetting parameters, recalculate the type area, and go
67
- \clubpenalty=10000
68
- \widowpenalty=10000
69
- \displaywidowpenalty=10000
70
- \tolerance 1414
71
- \hbadness 1414
72
- \emergencystretch 1.5em
73
- \hfuzz 0.3pt
74
- \vfuzz
75
- \hfuzz
76
- \raggedbottom{}
77
- \recalctypearea{}
78
-
79
- % -----------------------------------------------------------------------------
80
- \begin{document}
81
-
82
- \include{mergeron_TikZTableSettings.tex}
83
- ((* for item in tmpl_data.path_list *))
84
- \include{ \JINVAR{ item } }
85
- ((* endfor *))
86
-
87
-
88
- % -----------------------------------------------------------------------------
89
- \end{document}
90
-