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

[QST] Unify The Color for Latex and SVG Print #1860

Open
reed-lau opened this issue Oct 11, 2024 · 5 comments
Open

[QST] Unify The Color for Latex and SVG Print #1860

reed-lau opened this issue Oct 11, 2024 · 5 comments

Comments

@reed-lau
Copy link
Contributor

reed-lau commented Oct 11, 2024

What is your question?

With the release of Cutlass 3.6, the print_latex function now allows users to specify colors using a template parameter. However, the print_svg function's color is still hardcoded. To enhance its usability, we should extend the color parameterization feature to print_svg.

We'll first examine how print_latex handles color. It uses the TikzColorFn class as the template parameter for print_latex, which provides a color string for LaTeX TikZ format (e.g., {rgb,255:red,175;green,175;blue,255}) through the TikzColor_TV structure's operator() function.

I propose two approaches:

  1. Define SvgColorFn and SvgColor_TV similar to TikzColorFn and TikzColor_TV, returning SVG-compatible color strings (e.g., rgb(255,175,175)).
    Pros: Easy to code; can be implemented by copying and modifying existing code.
    Cons: Color definitions would be duplicated for LaTeX and SVG.
  2. Create a unified ColorFn and ColorTV that return RGB values (int values, not color strings specific to TikZ or SVG). The print_latex/svg functions would then construct the color strings for LaTeX and SVG.
    Pros: A unified color representation (RGB tuple with int type), making it easier for future users.
    Cons: More complex coding required:
    • Change TikzColor_TV to Color_TV.
    • Convert TikzColor_TV's color strings to pure RGB tuples.
    • Modify the operator() function to return RGB values(eg. void operator(int tid, int vid, int &r, int &g, int &b)).
    • Have print_latex and print_svg construct their own color strings.
    • Rename the template parameter from TikzColorFn to ColorFn.
    • Unify TikzColorWhite and TikzColorBWx8 to RGB tuple representations.

I advocate for the second approach. What are your thoughts?

Reference:
#1733

@reed-lau
Copy link
Contributor Author

@hwu36

@hwu36
Copy link
Collaborator

hwu36 commented Oct 11, 2024

@ccecka

@reed-lau
Copy link
Contributor Author

@hwu36 could you help to move this forward?"

Copy link

This issue has been labeled inactive-30d due to no recent activity in the past 30 days. Please close this issue if no further response or action is needed. Otherwise, please respond with a comment indicating any updates or changes to the original issue and/or confirm this issue still needs to be addressed. This issue will be labeled inactive-90d if there is no activity in the next 60 days.

@leimao
Copy link
Contributor

leimao commented Jan 3, 2025

Can font be configured in SVG? Because there is no font configuration, the SVG is displayed differently in different environments.

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