SF.net SVN: geany-plugins:[1105] trunk/geanylatex
frlan at users.sourceforge.net
frlan at xxxxx
Sun Jan 3 21:50:42 UTC 2010
Revision: 1105
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1105&view=rev
Author: frlan
Date: 2010-01-03 21:50:42 +0000 (Sun, 03 Jan 2010)
Log Message:
-----------
Make text for inserting a reference configurable via a hidden pref.
Modified Paths:
--------------
trunk/geanylatex/doc/geanylatex.tex
trunk/geanylatex/src/geanylatex.c
Modified: trunk/geanylatex/doc/geanylatex.tex
===================================================================
--- trunk/geanylatex/doc/geanylatex.tex 2010-01-02 22:53:35 UTC (rev 1104)
+++ trunk/geanylatex/doc/geanylatex.tex 2010-01-03 21:50:42 UTC (rev 1105)
@@ -572,6 +572,35 @@
Please ensure, you reload the plugin once this option has been changed.
+\subsubsection{Customized reference strings}
+
+Geany\LaTeX{} is able to insert references to a label where its
+using some default value. As this value is not always optimal, it
+can be changed using a hidden preference by setting
+\texttt{glatex\_reference\_page}, \texttt{glatex\_reference\_chapter} or
+\texttt{glatex\_reference\_all} inside configuration file as shown inside
+the example configuration snippet.
+
+\begin{lstlisting}
+[general]
+glatex_set_koma_active=true
+glatex_set_toolbar_active=true
+
+[reference]
+glatex_reference_page=\\textbf{\pageref{{{reference}}}}
+glatex_reference_chapter=\\textbf{\\ref{{{reference}}}}
+glatex_reference_all=\\textbf{\\ref{{{reference}}}, page \pageref{{{reference}}}}\end{lstlisting}
+
+Please take care in this case \texttt{\{\{reference\}\}} will be
+replace by label name.
+
+Also \texttt{\textbackslash{}t}, \texttt{\textbackslash{}r},
+\texttt{\textbackslash{}n} will be handled as known from C so you will
+need to add a second \textbackslash{} in front of in such cases. Even
+this seems to be annyoing on the first hand, it allows you to insert some
+more complicated constructs over here which might require a new line inside.
+
+
\section{Contribution to the plugin}
If you like the plugin, there are a number of ways, how to
contribute to the development of the plugin.
Modified: trunk/geanylatex/src/geanylatex.c
===================================================================
--- trunk/geanylatex/src/geanylatex.c 2010-01-02 22:53:35 UTC (rev 1104)
+++ trunk/geanylatex/src/geanylatex.c 2010-01-03 21:50:42 UTC (rev 1105)
@@ -54,6 +54,9 @@
/* Options for plugin */
static gboolean glatex_set_koma_active = FALSE;
static gboolean glatex_deactivate_toolbaritems_with_non_latex = TRUE;
+static gchar *glatex_ref_chapter_string = NULL;
+static gchar *glatex_ref_page_string = NULL;
+static gchar *glatex_ref_all_string = NULL;
static gboolean glatex_set_toolbar_active = FALSE;
/* Function will be deactivated, when only loaded */
@@ -554,29 +557,40 @@
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
{
gchar *ref_string = NULL;
-
+ GString *template_string = NULL;
+
ref_string = g_strdup(gtk_combo_box_get_active_text(
GTK_COMBO_BOX(textbox_ref)));
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1)) == TRUE)
{
- ref_string = g_strconcat("\\ref{", ref_string, "}", NULL);
+ template_string = g_string_new(glatex_ref_chapter_string);
}
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio2))== TRUE)
{
- ref_string = g_strconcat("\\pageref{", ref_string, "}", NULL);
+ template_string = g_string_new(glatex_ref_page_string);
}
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio3))== TRUE)
{
- ref_string = g_strconcat("\\ref{", ref_string, "}, ", _("page"),
- " \\pageref{", ref_string, "}", NULL);
+ template_string = g_string_new(glatex_ref_all_string);
}
- if (ref_string != NULL)
+ if (ref_string != NULL && template_string != NULL)
{
- glatex_insert_string(ref_string, TRUE);
+ gchar *tmp;
+ utils_string_replace_all(template_string, "{{reference}}", ref_string);
+ tmp = g_string_free(template_string, FALSE);
+ glatex_insert_string(tmp, TRUE);
g_free(ref_string);
+ g_free(tmp);
}
+ else
+ {
+ if (ref_string != NULL)
+ g_free(ref_string);
+ if (template_string != NULL)
+ g_free(template_string);
+ }
}
gtk_widget_destroy(dialog);
@@ -1321,6 +1335,13 @@
glatex_deactivate_toolbaritems_with_non_latex = utils_get_setting_boolean(config, "toolbar",
"glatex_deactivate_toolbaritems_with_non_latex", TRUE);
+ glatex_ref_page_string = utils_get_setting_string(config, "reference",
+ "glatex_reference_page", _("page \\pageref{{{reference}}}"));
+ glatex_ref_chapter_string = utils_get_setting_string(config, "reference",
+ "glatex_reference_chapter", "\\ref{{{reference}}}");
+ glatex_ref_all_string = utils_get_setting_string(config, "reference",
+ "glatex_reference_all", _("\\ref{{{reference}}}, page \\pageref{{{reference}}}"));
+
main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
g_key_file_free(config);
@@ -1462,4 +1483,7 @@
gtk_widget_destroy(glatex_toolbar);
g_free(config_file);
+ g_free(glatex_ref_chapter_string);
+ g_free(glatex_ref_page_string);
+ g_free(glatex_ref_all_string);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list